[ovs-dev] [PATCH v3 2/2] Add test cases for ingress_policing parameters

Tonghao Zhang xiangxia.m.yue at gmail.com
Tue Apr 13 13:06:16 UTC 2021


On Fri, Apr 9, 2021 at 7:52 PM Simon Horman <simon.horman at netronome.com> wrote:
>
> From: Tianyu Yuan <tianyu.yuan at corigine.com>
>
> tests/ovs-vsctl.at: Add ingress_policing test in ovs-vsctl unit test
> tests/system-offloads-traffic.at: Check ingress_policing with offloads enabled and disabled
>
> Exercise OVS setting of ingress_policing 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).
>
> Example invocation:
> make check TESTSUITEFLAGS='-k ingress_policing'
> make check-offloads TESTSUITEFLAGS='-k ingress_policing'
>
> Signed-off-by: Tianyu Yuan <tianyu.yuan at corigine.com>
> Signed-off-by: Simon Horman <simon.horman at netronome.com>
> Signed-off-by: Louis Peens <louis.peens at netronome.com>
Reviewed-by: Tonghao Zhang <xiangxia.m.yue at gmail.com>
> ---
> v3
> * Avoid use of tmp files using --columns
> * Simplify screen scraping commands using sed
> * Skip tests if tc is unavailable
> ---
>  tests/atlocal.in                 |  3 ++
>  tests/ovs-vsctl.at               | 23 +++++++++++++++
>  tests/system-offloads-traffic.at | 50 ++++++++++++++++++++++++++++++++
>  3 files changed, 76 insertions(+)
>
> diff --git a/tests/atlocal.in b/tests/atlocal.in
> index 02e2dc57f..cfca7e192 100644
> --- a/tests/atlocal.in
> +++ b/tests/atlocal.in
> @@ -175,6 +175,9 @@ 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
> diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
> index 8f7916037..dccb11741 100644
> --- a/tests/ovs-vsctl.at
> +++ b/tests/ovs-vsctl.at
> @@ -1664,3 +1664,26 @@ AT_CHECK([grep "server name" ovsdb-server.log], [0],
>
>  OVS_VSCTL_CLEANUP
>  AT_CLEANUP
> +
> +dnl ----------------------------------------------------------------------
> +AT_BANNER([set ingress policing test])
> +
> +AT_SETUP([set ingress_policing_rate and ingress_policing_burst])
> +AT_KEYWORDS([ingress_policing])
> +OVS_VSCTL_SETUP
> +AT_CHECK([RUN_OVS_VSCTL_TOGETHER(
> +   [add-br a],
> +   [add-port a a1],
> +   [set interface a1 ingress_policing_rate=100],
> +   [set interface a1 ingress_policing_burst=10],
> +   [--columns=ingress_policing_burst,ingress_policing_rate list interface a1])],
> +   [0],
> +   [
> +
> +
> +
> +ingress_policing_burst: 10
> +ingress_policing_rate: 100
> +])
> +OVS_VSCTL_CLEANUP
> +AT_CLEANUP
> diff --git a/tests/system-offloads-traffic.at b/tests/system-offloads-traffic.at
> index 4f601ef93..c8e4c68fa 100644
> --- a/tests/system-offloads-traffic.at
> +++ b/tests/system-offloads-traffic.at
> @@ -70,3 +70,53 @@ AT_CHECK([ovs-appctl upcall/show | grep -E "offloaded flows : [[1-9]]"], [0], [i
>
>  OVS_TRAFFIC_VSWITCHD_STOP
>  AT_CLEANUP
> +
> +AT_SETUP([offloads - set ingress_policing_rate and ingress_policing_burst - offloads disabled])
> +AT_KEYWORDS([ingress_policing])
> +AT_SKIP_IF([test $HAVE_TC = "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_rate=100])
> +AT_CHECK([ovs-vsctl set interface ovs-p0 ingress_policing_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/.*\(rate [[0-9]]*[[a-zA-Z]]* burst [[0-9]]*[[a-zA-Z]]*\).*/\1/; T; p; q'],
> +  [0],[dnl
> +rate 100Kbit burst 1280b
> +])
> +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress | grep basic |
> +  sed -n 's/.*\(basic\).*/\1/; T; p; q'], [0], [dnl
> +basic
> +])
> +OVS_TRAFFIC_VSWITCHD_STOP
> +AT_CLEANUP
> +
> +AT_SETUP([offloads - set ingress_policing_rate and ingress_policing_burst - offloads enabled])
> +AT_KEYWORDS([ingress_policing])
> +AT_SKIP_IF([test $HAVE_TC = "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_rate=100])
> +AT_CHECK([ovs-vsctl set interface ovs-p0 ingress_policing_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/.*\(rate [[0-9]]*[[a-zA-Z]]* burst [[0-9]]*[[a-zA-Z]]*\).*/\1/; T; p; q'],
> +  [0],[dnl
> +rate 100Kbit burst 1280b
> +])
> +AT_CHECK([tc -o -s -d filter show dev ovs-p0 ingress | grep matchall |
> +  sed -n 's/.*\(matchall\).*/\1/; T; p; q'], [0], [dnl
> +matchall
> +])
> +OVS_TRAFFIC_VSWITCHD_STOP
> +AT_CLEANUP
> --
> 2.20.1
>


-- 
Best regards, Tonghao


More information about the dev mailing list