From patchwork Mon May 17 11:18:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Horman X-Patchwork-Id: 1479399 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=0szNZENY; dkim-atps=neutral Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FkGqV4Y8Wz9sWW for ; Mon, 17 May 2021 21:19:18 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 8192A402DD; Mon, 17 May 2021 11:19:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6ZeXJVMZilbc; Mon, 17 May 2021 11:19:12 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTP id 5D05D402E3; Mon, 17 May 2021 11:19:10 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2B4C3C002F; Mon, 17 May 2021 11:19:08 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0F3B3C0027 for ; Mon, 17 May 2021 11:19:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id CC17B606A2 for ; Mon, 17 May 2021 11:19:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id htEBXosYPGAF for ; Mon, 17 May 2021 11:19:05 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by smtp3.osuosl.org (Postfix) with ESMTPS id C56636058B for ; Mon, 17 May 2021 11:19:04 +0000 (UTC) Received: by mail-ej1-x62d.google.com with SMTP id k14so5129952eji.2 for ; Mon, 17 May 2021 04:19:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4cIRRDcigsxa9w1h6OhvrGoGY5Yo5eOSmJ0WwyGrUGw=; b=0szNZENYHJuL2U4ukgs1S3YX+C06tnTTMd6aqbSxl6wSn/uwkQIXFaUYl2VCvDEYvZ ufA4tTbf+pggKHE/iInzxeCWM0HuWuj6Mm7ZTCMahcLpKY2tc7sq7s9Rua2ZuM5uPZ6U IQwDghA8QtrvAoFt5WQDhKAewdEvkbmZK8FYLiT0zd3tKuTl/sS62IQl4GS2cPx8csLm dpJWUJhbVRNNvCTIvteswCUoceh8AezOKUBsj3oYO3iBtVnCSqWEA5ikKFU3S+zLznWC afI9KphbP366gU1eB7cCuIsIesTx8ZAmc3nbGeklIhMbGAvgbLZWFW3a/VrtMAShDGMW gEyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4cIRRDcigsxa9w1h6OhvrGoGY5Yo5eOSmJ0WwyGrUGw=; b=endZyXUHhGL0MChPw3frBcb5N2VYxuITizJIjW7DWGRFs6OAFMRS+6bO30pKP5x1Zd AB1X4UF7EFBXeVxZCPBP/sW5WTnZF/UBty4apY0LOLpxEmC1xnqu+bMER4OEUFrPTfeR vYBuapDFKi1lwyx75cGEuPYWsMlCTrOnEJEje9ChV5hJm2RRHw7dwOG/8F5olxz+Apme sr4ln/krUk8gQwsH5KBDW+AzH324y6JLdM9l6MiAsYSdBqqUiJMqJjIfv8y1ef/vdLct QTACRYsENZ+ZLm9WQJheOP1eGDpc1b4Hogzj9t06ASRxhNUa+0xN5iBESYKgDXe+WcR0 UEzA== X-Gm-Message-State: AOAM532CKUWzNvel1pBj+HiTB6eZcZ6pyQrAf2GOH6N4KbOhxpUTvZ3R wYDeJA+WI9EuMsoOn6CSFHG5x/DQoN9o30OO8zQF0yjXw3xLHg1liojfLcVMbiPHxtNiS5QMrlR LQ/ljfsowQGA7OGG6Xuwl17aIp0zyjQkKdDQujK8gBue8o1/R21Gx3IVbtB49p7zQKPI5GFjyuw == X-Google-Smtp-Source: ABdhPJwRBvdQbnRcp6INCP9fFiQksaQrV0efMAmQeIJ9t2aszAmJUUe/mXvKUWBmfS1iyp38Tq7l0Q== X-Received: by 2002:a17:906:a84e:: with SMTP id dx14mr23864599ejb.220.1621250342445; Mon, 17 May 2021 04:19:02 -0700 (PDT) Received: from madeliefje.horms.nl ([2001:982:7ed1:403:9eeb:e8ff:fe0d:5b6a]) by smtp.gmail.com with ESMTPSA id da14sm819339edb.44.2021.05.17.04.19.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 May 2021 04:19:01 -0700 (PDT) From: Simon Horman To: dev@openvswitch.org Date: Mon, 17 May 2021 13:18:54 +0200 Message-Id: <20210517111854.6697-3-simon.horman@netronome.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210517111854.6697-1-simon.horman@netronome.com> References: <20210517111854.6697-1-simon.horman@netronome.com> MIME-Version: 1.0 Cc: Baowen Zheng , Yong Xu , oss-drivers@netronome.com, Simon Horman , Ilya Maximets , Marcelo Ricardo Leitner , Tianyu Yuan Subject: [ovs-dev] [PATCH v2 2/2] add test cases for ingress_policing_kpkts parameters X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Tianyu Yuan Exercise OVS setting of ingress_policing_kpkts parameters using ovs-vsctl and verify that the correct values are stored on OVSDB. Verify the ingress_policing parameters with tc command. Also check offload and non-offload in tc software datapath based on tc filter type (matchall and basic). Skip test of pps if OVS or kernel does not support pps rate limit. Example invocation: make check TESTSUITEFLAGS='-k ingress_policing_kpkts' make check-offloads TESTSUITEFLAGS='-k ingress_policing_kpkts' Signed-off-by: Tianyu Yuan Signed-off-by: Simon Horman Signed-off-by: Louis Peens --- tests/atlocal.in | 17 +++++++++-- tests/ovs-vsctl.at | 23 +++++++++++++++ tests/system-offloads-traffic.at | 50 ++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 3 deletions(-) diff --git a/tests/atlocal.in b/tests/atlocal.in index cfca7e192..1054298f4 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -175,9 +175,6 @@ find_command() # Set HAVE_NC find_command nc -# Set HAVE_TC -find_command tc - # Determine correct netcat option to quit on stdin EOF if nc --version 2>&1 | grep -q nmap.org; then # Nmap netcat @@ -187,6 +184,20 @@ else NC_EOF_OPT="-q 1 -w 5" fi +# Set HAVE_TC +find_command tc + +# When HAVE_TC=yes, check if the current tc supports adding pps filter +SUPPORT_TC_INGRESS_PPS="no" +if test $HAVE_TC="yes"; then + ip link add veth0 type veth peer name veth1 + tc qdisc add dev veth0 handle ffff: ingress + if tc filter add dev veth0 parent ffff: u32 match u32 0 0 police pkts_rate 100 pkts_burst 10; then + SUPPORT_TC_INGRESS_PPS="yes" + fi + ip link del veth0 +fi + # Set HAVE_TCPDUMP find_command tcpdump diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at index dccb11741..d6cd2c084 100644 --- a/tests/ovs-vsctl.at +++ b/tests/ovs-vsctl.at @@ -1687,3 +1687,26 @@ ingress_policing_rate: 100 ]) OVS_VSCTL_CLEANUP AT_CLEANUP + +dnl ---------------------------------------------------------------------- +AT_BANNER([set ingress policing(kpkts) test]) + +AT_SETUP([set ingress_policing_kpkts_rate and ingress_policing_kpkts_burst]) +AT_KEYWORDS([ingress_policing_kpkts]) +OVS_VSCTL_SETUP +AT_CHECK([RUN_OVS_VSCTL_TOGETHER( + [add-br a], + [add-port a a1], + [set interface a1 ingress_policing_kpkts_rate=100], + [set interface a1 ingress_policing_kpkts_burst=10], + [--columns=ingress_policing_kpkts_burst,ingress_policing_kpkts_rate list interface a1])], + [0], + [ + + + +ingress_policing_kpkts_burst: 10 +ingress_policing_kpkts_rate: 100 +]) +OVS_VSCTL_CLEANUP +AT_CLEANUP diff --git a/tests/system-offloads-traffic.at b/tests/system-offloads-traffic.at index c8e4c68fa..be63057bb 100644 --- a/tests/system-offloads-traffic.at +++ b/tests/system-offloads-traffic.at @@ -120,3 +120,53 @@ matchall ]) OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP + +AT_SETUP([offloads - set ingress_policing_kpkts_rate and ingress_policing_kpkts_burst - offloads disabled]) +AT_KEYWORDS([ingress_policing_kpkts]) +AT_SKIP_IF([test $SUPPORT_TC_INGRESS_PPS = "no"]) +OVS_TRAFFIC_VSWITCHD_START() +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:hw-offload=false]) +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) +ADD_NAMESPACES(at_ns0) +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +AT_CHECK([ovs-vsctl set interface ovs-p0 ingress_policing_kpkts_rate=100]) +AT_CHECK([ovs-vsctl set interface ovs-p0 ingress_policing_kpkts_burst=10]) +AT_CHECK([ovs-vsctl --columns=other_config list open], [0], [dnl +other_config : {hw-offload="false"} +]) +AT_CHECK([tc -o -s -d filter show dev ovs-p0 ingress | + sed -n 's/.*\(pkts_rate [[0-9]]*[[a-zA-Z]]* pkts_burst [[0-9]]*[[a-zA-Z]]*\).*/\1/; T; p; q'], + [0],[dnl +pkts_rate 100000 pkts_burst 10240 +]) +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress | + sed -n 's/.*\(basic\).*/\1/; T; p; q'], [0], [dnl +basic +]) +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([offloads - set ingress_policing_kpkts_rate and ingress_policing_kpkts_burst - offloads enabled]) +AT_KEYWORDS([ingress_policing_kpkts]) +AT_SKIP_IF([test $SUPPORT_TC_INGRESS_PPS = "no"]) +OVS_TRAFFIC_VSWITCHD_START() +AT_CHECK([ovs-vsctl set Open_vSwitch . other_config:hw-offload=true]) +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) +ADD_NAMESPACES(at_ns0) +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +AT_CHECK([ovs-vsctl set interface ovs-p0 ingress_policing_kpkts_rate=100]) +AT_CHECK([ovs-vsctl set interface ovs-p0 ingress_policing_kpkts_burst=10]) +AT_CHECK([ovs-vsctl --columns=other_config list open], [0], [dnl +other_config : {hw-offload="true"} +]) +AT_CHECK([tc -o -s -d filter show dev ovs-p0 ingress | + sed -n 's/.*\(pkts_rate [[0-9]]*[[a-zA-Z]]* pkts_burst [[0-9]]*[[a-zA-Z]]*\).*/\1/; T; p; q'], + [0],[dnl +pkts_rate 100000 pkts_burst 10240 +]) +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress | + sed -n 's/.*\(matchall\).*/\1/; T; p; q'], [0], [dnl +matchall +]) +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP