From patchwork Wed Jun 9 09:52:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Horman X-Patchwork-Id: 1489772 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=140.211.166.138; helo=smtp1.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=JwP5qUC5; dkim-atps=neutral Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 4G0Mps4fXLz9sCD for ; Wed, 9 Jun 2021 19:52:37 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 86EF283C33; Wed, 9 Jun 2021 09:52:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MSj8v5lufMNE; Wed, 9 Jun 2021 09:52:34 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 6B22B83C48; Wed, 9 Jun 2021 09:52:32 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id D52FCC0028; Wed, 9 Jun 2021 09:52:31 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 95891C000E for ; Wed, 9 Jun 2021 09:52:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 8C4CC404F5 for ; Wed, 9 Jun 2021 09:52:29 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp4.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7oIhGRs8waTs for ; Wed, 9 Jun 2021 09:52:28 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by smtp4.osuosl.org (Postfix) with ESMTPS id 11A7040122 for ; Wed, 9 Jun 2021 09:52:27 +0000 (UTC) Received: by mail-ed1-x52c.google.com with SMTP id dj8so28002860edb.6 for ; Wed, 09 Jun 2021 02:52:27 -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=t12D3WuQ5l97FK24Wi3sVdnEXl3B9EsMKG/V7Fq5bks=; b=JwP5qUC5vU3W1jOyPl/DX3987si79+iCUrOO3KomzZ9ZSolJweDzSY8nyeiuZMzjFz z/tMT8BHUzU9fkDMCcWZRDsVbZVpheehT7ioycj7BF0DlPten2OF7qkSZHILrw8imUmO SfuBBORpRNBUyn9fFMHzzYK63bkJ9hrBM/FmILm9KwFQYE4716HvD3WCqrXFe64NYVw7 s+2g8BX4NF3B7g3HUpToQLHpUmMNql7H/erAUW8yC0RIRIvQm8KEIpaJDDQCEhfI3sWP i0EqAe91SVt6lCRq063Zk8lXO5tcQcsspZTbXwsox/Ob4ujc+vUA3uwkjPHRdoKaq3D6 MZrw== 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=t12D3WuQ5l97FK24Wi3sVdnEXl3B9EsMKG/V7Fq5bks=; b=T+VsqV/KiNk1nqLQqo0z+8TbQ1wuTHoCtx1KFTjMh/bR99odfRAcjI2npoGcW/e4DP bTZHnNozYUCnP+P09oAzwsBSNXgRmAe+JxD3vAsC+sxlMivUTt9EJZopbDDMr+awMFXp pOBk8P04GhRvXkJEdTGo10K6A61q8qsEXt6Xj3N6khgkXVHZ+ndmPYTda9ugJo/ZwBea 7XgB0tj3Gg4JffpOflBVNtXtOnL4KGXa3rJSzmc20Zgr+pFGW7qK+10foiLEpa7yYIqs 1UaJXHiqdIyPY7bkrj+2SFZ+XaGngCwkHQluVnm1XxOkSYUsvfdNgKVillkD7hnWxEAO lSUA== X-Gm-Message-State: AOAM532xLwpd0Rda70/uSUXLcnGIOxTYs2XRCVK/EytIpQGXFlnjGEa9 2EuqkrjB8K5fSk/YWnS6IfoLUSyDNVedQqT3OpHeqga/j+oT250+o/ASr7q+q3N3TeclwNv1owE e0pNoz1MiAkuZ6xam9T8R60//2OQbFRwidEaWp/TYWxiGwNxGdkQAejZZ2Hi10FVJume3RQpljT je X-Google-Smtp-Source: ABdhPJzxjiRfuvzzWN+MJIfoYvZuqP4+t9sP3fjQ5wHmDVRX2ZBVCAshQFFvAJR8nVXWzmxOAeuL7Q== X-Received: by 2002:a50:e702:: with SMTP id a2mr30535431edn.3.1623232345621; Wed, 09 Jun 2021 02:52:25 -0700 (PDT) Received: from momiji.horms.nl ([2001:982:756:703:d63d:7eff:fe99:ac9d]) by smtp.gmail.com with ESMTPSA id nc26sm840636ejc.106.2021.06.09.02.52.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Jun 2021 02:52:24 -0700 (PDT) From: Simon Horman To: dev@openvswitch.org Date: Wed, 9 Jun 2021 11:52:09 +0200 Message-Id: <20210609095209.6205-3-simon.horman@netronome.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210609095209.6205-1-simon.horman@netronome.com> References: <20210609095209.6205-1-simon.horman@netronome.com> MIME-Version: 1.0 Cc: Baowen Zheng , Yong Xu , oss-drivers@netronome.com, Simon Horman , Tianyu Yuan , Marcelo Ricardo Leitner Subject: [ovs-dev] [PATCH v3 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 --- 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 e1b75f5a3..a0ad239ec 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -159,9 +159,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 @@ -171,6 +168,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