From: Tianyu Yuan <tianyu.y...@corigine.com> * 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.y...@corigine.com> Signed-off-by: Simon Horman <simon.hor...@netronome.com> Signed-off-by: Louis Peens <louis.pe...@netronome.com> --- tests/ovs-vsctl.at | 58 ++++++++++++++++++++++++++++++++ tests/system-offloads-traffic.at | 47 ++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at index d2cb41403..790d46f18 100644 --- a/tests/ovs-vsctl.at +++ b/tests/ovs-vsctl.at @@ -1659,3 +1659,61 @@ 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], + [list interface a1 > configured_interface_a1.txt])], + [0], []) +AT_CHECK( + [uuidfilt configured_interface_a1.txt], + [0], + [[ + + + +_uuid : <0> +admin_state : [] +bfd : {} +bfd_status : {} +cfm_fault : [] +cfm_fault_status : [] +cfm_flap_count : [] +cfm_health : [] +cfm_mpid : [] +cfm_remote_mpids : [] +cfm_remote_opstate : [] +duplex : [] +error : [] +external_ids : {} +ifindex : [] +ingress_policing_burst: 10 +ingress_policing_rate: 100 +lacp_current : [] +link_resets : [] +link_speed : [] +link_state : [] +lldp : {} +mac : [] +mac_in_use : [] +mtu : [] +mtu_request : [] +name : a1 +ofport : [] +ofport_request : [] +options : {} +other_config : {} +statistics : {} +status : {} +type : "" +]]) +OVS_VSCTL_CLEANUP +AT_CLEANUP diff --git a/tests/system-offloads-traffic.at b/tests/system-offloads-traffic.at index 4f601ef93..b9cd29c95 100644 --- a/tests/system-offloads-traffic.at +++ b/tests/system-offloads-traffic.at @@ -70,3 +70,50 @@ 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]) +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 list open | grep other_config > other_config.txt]) +AT_CHECK([cat other_config.txt],[0], + [other_config : {hw-offload="false"} +]) +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress |grep rate| awk '{a=index($0,"rate");b=index($0,"mtu");print substr($0,a,b-a-1)}' > tc_ovs-p0.txt ],[0],[]) +AT_CHECK([cat tc_ovs-p0.txt],[0], + [rate 100Kbit burst 1280b +]) +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress | grep basic | head -n 1 | awk '{a=index($0,"basic");print substr($0,a,5)}'| head -n 1],[0], + [basic +]) +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + + +AT_SETUP([offloads - set ingress_policing_rate and ingress_policing_burst - offloads enabled]) +AT_KEYWORDS([ingress_policing]) +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 list open | grep other_config > other_config.txt]) +AT_CHECK([cat other_config.txt],[0], + [other_config : {hw-offload="true"} +]) +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress | grep rate| awk '{a=index($0,"rate");b=index($0,"mtu");print substr($0,a,b-a-1)}' > tc_ovs-p0.txt ],[0],[]) +AT_CHECK([cat tc_ovs-p0.txt],[0], + [rate 100Kbit burst 1280b +]) +AT_CHECK([tc -s -d filter show dev ovs-p0 ingress | grep matchall | head -n 1 | awk '{a=index($0,"matchall");print substr($0,a,8)}'| head -n 1],[0], + [matchall +]) +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP -- 2.20.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev