From: Peng Yuan <yuan.peng@intel.com>
To: dts@dpdk.org
Cc: Peng Yuan <yuan.peng@intel.com>
Subject: [dts] [PATCH v2]test_plans: rework case struction
Date: Wed, 1 Apr 2020 07:51:55 +0000 [thread overview]
Message-ID: <1585727515-149718-1-git-send-email-yuan.peng@intel.com> (raw)
1/ rework the case stucture.
2/ add stress cases.
3/ add validate cases.
Signed-off-by: Peng Yuan <yuan.peng@intel.com>
---
test_plans/cvl_fdir_test_plan.rst | 3425 +++++++++++++------------------------
1 file changed, 1194 insertions(+), 2231 deletions(-)
diff --git a/test_plans/cvl_fdir_test_plan.rst b/test_plans/cvl_fdir_test_plan.rst
index fe8cac5..08e8f21 100644
--- a/test_plans/cvl_fdir_test_plan.rst
+++ b/test_plans/cvl_fdir_test_plan.rst
@@ -83,13 +83,14 @@ Pattern and input set
+------------------------------+----------------------------+-------------------------------------------------------------------------------+
Notes: 1. Enable fdir filter for UDP tunnel: Vxlan / NVGRE (OS default package) , share code not
- support outer header as inputset, so Out Dest IP and VNI/GRE_KEY may not able to be implemented.
+ support outer header as inputset, so Out Dest IP and VNI/GRE_KEY may not able to be implemented.
2. For VXLAN case MAC_IPV4_TUN_*** means MAC_IPV4_UDP_VXLAN_***
3. For Dest MAC, there is package /sharecode limitation on multicast dst mac support for FDIR
Function type
-------------
+ validate
create
list
destroy
@@ -113,6 +114,7 @@ Prerequisites
1. Hardware:
columbiaville_25g/columbiaville_100g
+ design the cases with 2 ports card.
2. Software:
DPDK: http://dpdk.org/git/dpdk
@@ -127,7 +129,7 @@ Prerequisites
5. Launch the app ``testpmd`` with the following arguments::
- ./testpmd -c 0xff -n 6 -w 86:00.0 -- -i --portmask=0xff --rxq=64 --txq=64 --port-topology=loop
+ ./testpmd -c 0xff -n 6 -w 86:00.0,,flow-mark-support=1 -- -i --portmask=0xff --rxq=64 --txq=64 --port-topology=loop
testpmd> set fwd rxonly
testpmd> set verbose 1
@@ -138,11 +140,7 @@ Prerequisites
Notes: if need two ports environment, launch ``testpmd`` with the following arguments::
- ./testpmd -c 0xff -n 6 -w 86:00.0 -w 86:00.1 -- -i --portmask=0xff --rxq=64 --txq=64 --port-topology=loop
-
- If create rules with mark actions, please add the following parameters in testpmd command line::
-
- -w 86:00.0,flow-mark-support=1 -w 86:00.1,flow-mark-support=1
+ ./testpmd -c 0xff -n 6 -w 86:00.0,flow-mark-support=1 -w 86:00.1,flow-mark-support=1 -- -i --portmask=0xff --rxq=64 --txq=64 --port-topology=loop
Default parameters
@@ -397,669 +395,694 @@ Send packets
matched packets::
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(frag=1)/Raw('x'*20)
- p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
- p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
- p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/ICMP()/Raw('x'*20)
- p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/Raw('x'*20)
- p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/IPv6ExtHdrFragment(1000)/Raw('x'*20)
- p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/UDP()/Raw('x'*20)
- p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
- p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/ICMP()/Raw('x'*20)
+ p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
+ p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(frag=1)/Raw('x'*20)
+ p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/UDP()/Raw('x'*20)
+ p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
+ p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/ICMP()/Raw('x'*20)
+ p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/Raw('x'*20)
+ p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/IPv6ExtHdrFragment(1000)/Raw('x'*20)
+ p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/UDP()/Raw('x'*20)
+ p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
+ p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/ICMP()/Raw('x'*20)
mismatched packets::
- p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/SCTP()/Raw('x'*20)
- p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/SCTP()/Raw('x'*20)
- p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
- p_gtpu14 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
- p_gtpu15 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
- p_gtpu16 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/Raw('x'*20)
+ p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/SCTP()/Raw('x'*20)
+ p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IPv6()/SCTP()/Raw('x'*20)
+ p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
+ p_gtpu14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
+ p_gtpu15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
+ p_gtpu16 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/Raw('x'*20)
* MAC_IPV4_GTPU
matched packets::
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(frag=1)/Raw('x'*20)
- p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
- p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
- p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/ICMP()/Raw('x'*20)
- p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/Raw('x'*20)
- p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/IPv6ExtHdrFragment(1000)/Raw('x'*20)
- p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/UDP()/Raw('x'*20)
- p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
- p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/ICMP()/Raw('x'*20)
- p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
+ p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
+ p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(frag=1)/Raw('x'*20)
+ p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/UDP()/Raw('x'*20)
+ p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/TCP(sport=22, dport=23)/Raw('x'*20)
+ p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/ICMP()/Raw('x'*20)
+ p_gtpu6 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/Raw('x'*20)
+ p_gtpu7 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/IPv6ExtHdrFragment(1000)/Raw('x'*20)
+ p_gtpu8 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/UDP()/Raw('x'*20)
+ p_gtpu9 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP( dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/TCP(sport=22, dport=23)/Raw('x'*20)
+ p_gtpu10 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/ICMP()/Raw('x'*20)
+ p_gtpu11 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
mismatched packets::
- p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/Raw('x'*20)
- p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/SCTP()/Raw('x'*20)
- p_gtpu14 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/SCTP()/Raw('x'*20)
- p_gtpu15 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IP()/Raw('x'*20)
-
-Test case: MAC_IPV4_PAY queue index
-===================================
+ p_gtpu12 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/Raw('x'*20)
+ p_gtpu13 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/SCTP()/Raw('x'*20)
+ p_gtpu14 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6()/SCTP()/Raw('x'*20)
+ p_gtpu15 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IP()/Raw('x'*20)
-1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
+Test case: flow validation
+==========================
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+1. validate MAC_IPV4_PAY with queue index action::
-3. verify rules can be listed and destroyed::
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
- testpmd> flow list 0
+ get the message::
- check the existing rule.
- destroy the rule::
+ Flow rule validated
- testpmd> flow destroy 0 rule 0
+2. repeat step 1 with all patterns in pattern and input set table,
+ get the same result.
- verify matched packets are not distributed to queue 1.
- check there is no rule listed.
+3. repeat step 1-2 with action rss queues/drop/passthru/mark/mark+rss,
+ get the same result.
-Test case: MAC_IPV4_PAY selected inputset queue index
-=====================================================
+4. validate combined use of actions::
-1. create filter rules::
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / mark / count / end
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 end / mark id 1 / count identifier 0x1234 shared on / end
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark id 2 / count identifier 0x34 shared off / end
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark id 3 / rss / count shared on / end
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / count shared off / end
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 1 / end actions queue index 1 / end
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 17 / end actions queue index 2 / end
+ get the message::
-2. send matched packets::
+ Flow rule validated
- pkt1 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=1) / Raw('x' * 80)
- pkt2 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, proto=1) / Raw('x' * 80)
- pkt3 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)
- pkt4 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)
- pkt5 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=17, ttl=2, tos=4)/Raw('x' * 80)
- pkt6 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, proto=17, ttl=2, tos=4)/Raw('x' * 80)
+5. check the flow list::
- check the pkt1 and pkt2 are redirected to queue 1.
- check the pkt3-pkt6 are redirected to queue 2
- send mismatched packets::
+ testpmd> flow list 0
- pkt7 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.22", proto=1) / Raw('x' * 80)
- pkt8 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=6) / Raw('x' * 80)
- pkt9 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/ Raw('x' * 80)
- pkt10 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1)/TCP(sport=22,dport=23)/ Raw('x' * 80)
+ there is no rule listed.
- check the packets are not distributed to queue 1 or queue 2.
+Test case: negative validation
+==============================
-3. verify rules can be listed and destroyed::
+1. only count action::
- testpmd> flow list 0
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions count / end
- check the existing rule.
- destroy the rule::
+ get the error message::
- testpmd> flow flush 0
+ Invalid input action: Invalid argument
- verify matched packets are not distributed to expected queue.
- check there is no rule listed.
+2. void action::
-Test case: MAC_IPV4_UDP queue index
-===================================
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / and actions end
-1. create filter rules::
+ get the message::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions queue index 1 / end
+ Invalid argument
-2. send matched packets, check the packets is distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+3. conflict action::
-3. verify rules can be listed and destroyed::
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 2 3 end / rss / end
- testpmd> flow list 0
+ get the message::
- check the existing rule.
- destroy the rule::
+ Unsupported action combination: Invalid argument
- testpmd> flow destroy 0 rule 0
+4. invalid mark id::
- verify matched packet is not distributed to queue 1.
- check there is no rule listed.
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions passthru / mark id 4294967296 / end
-Test case: MAC_IPV4_TCP queue index
-===================================
+ get the message::
-1. create filter rules::
+ Bad arguments
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 63 / end
+5. invalid input set::
-2. send matched packets, check the packets is distributed to queue 63.
- send mismatched packets, check the packets are not distributed to queue 63.
+ flow validate 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tc is 4 / end actions queue index 1 / end
-3. verify rules can be listed and destroyed::
+ get the message::
- testpmd> flow list 0
+ Bad arguments
- check the existing rule.
- destroy the rule::
+6. invalid queue index::
- testpmd> flow destroy 0 rule 0
+ flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 64 / end
- verify matched packet is not distributed to queue 63.
- check there is no rule listed.
+ get the message::
-Test case: MAC_IPV4_SCTP queue index
-====================================
+ Invalid input action: Invalid argument
-1. create filter rules::
+7. invalid rss queues parameter
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 tag is 1 / end actions queue index 2 / end
+ Invalid number of queues::
-2. send matched packets, check the packets is distributed to queue 2.
- send mismatched packets, check the packets are not distributed to queue 2.
+ flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 end / end
+ flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 0 end / end
+ flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues end / end
-3. verify rules can be listed and destroyed::
+ get the message::
- testpmd> flow list 0
+ Invalid input action: Invalid argument
- check the existing rule.
- destroy the rule::
+ Discontinuous queues::
- testpmd> flow destroy 0 rule 0
+ flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 5 end / end
- verify matched packet is not distributed to queue 2.
- check there is no rule listed
+ get the message::
-Test case: MAC_IPV6_PAY queue index
-===================================
+ Discontinuous queue region: Invalid argument
-1. create filter rules::
+ invalid rss queues index::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions queue index 1 / end
+ flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 63 64 end / end
-2. send matched packets, check the packets is distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+ get the message::
-3. verify rules can be listed and destroyed::
+ Invalid queue region indexes.: Invalid argument
- testpmd> flow list 0
+8. Invalid value of input set::
- check the existing rule.
- destroy the rule::
+ flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x100 / end actions queue index 1 / end
+ flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / end actions queue index 2 / end
+ flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / end actions queue index 1 / end
- testpmd> flow destroy 0 rule 0
+ get the message::
- verify matched packet is not distributed to queue 1.
- check there is no rule listed.
+ Bad arguments
-Test case: MAC_IPV6_PAY selected inputset queue index
-=====================================================
+9. unsupported pattern,validate GTPU rule with OS default package::
-1. create filter rules::
+ flow validate 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
- flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 44 / end actions queue index 1 / end
- flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 6 / end actions queue index 2 / end
+ get the message::
-2. send matched packets::
+ Bad arguments
- pkt1 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=44, tc=1, hlim=2)/("X"*480)
- pkt2 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment(1000)/("X"*480)
- pkt3 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=44)/TCP(sport=22,dport=23)/("X"*480)
- pkt4 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment(1000)/TCP(sport=22,dport=23)/("X"*480)
- pkt5 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=6)/("X"*480)
- pkt6 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)
+10. invalid port::
- check pkt1-pkt4 are redirected to queue 1.
- check pkt5 and pkt6 are redirected to queue 2.
- send mismatched packets::
+ flow validate 2 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
- pkt7 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2021", nh=44)/("X"*480)
- pkt8 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)
- pkt9 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=17)/("X"*480)
+ get the message::
- check the packets are not distributed to queue 1 or queue 2.
+ No such device: No such device
-3. verify rules can be listed and destroyed::
+11. check the flow list::
testpmd> flow list 0
- check the existing rule.
- destroy the rule::
+ there is no rule listed.
- testpmd> flow destroy 0 rule 0
- verify matched packet are not distributed to expected queue.
- check there is no rule listed.
+Test case: MAC_IPV4_PAY pattern
+===============================
-Test case: MAC_IPV6_UDP queue index
-===================================
+Subcase 1: MAC_IPV4_PAY queue index
+-----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
-2. send matched packets, check the packets is distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets are distributed to queue 1 without FDIR matched ID.
+ send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.
3. verify rules can be listed and destroyed::
testpmd> flow list 0
- check the existing rule.
+ check the rule listed.
destroy the rule::
testpmd> flow destroy 0 rule 0
- verify matched packet is not distributed to queue 1.
+4. verify matched packets are not distributed to queue 1 without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV6_TCP queue index
-===================================
+Subcase 2: MAC_IPV4_PAY rss queues
+----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 2 3 end / end
-2. send matched packets, check the packets is distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets are distributed to queue 2 or 3 without without FDIR matched ID.
+ send mismatched packets, check the packets are not distributed to queue 2 or 3 without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packets are not distributed to queue 2 or 3 without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 3: MAC_IPV4_PAY passthru
+--------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is not distributed to queue 1.
- check there is no rule listed.
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions passthru / end
-Test case: MAC_IPV6_SCTP queue index
-====================================
+2. send matched packets, check the packets are distributed by RSS without FDIR matched ID.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions queue index 1 / end
+4. verify matched packets are distributed to the same queue without FDIR matched ID=0x0.
+ check there is no rule listed.
-2. send matched packets, check the packets is distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+Subcase 4: MAC_IPV4_PAY drop
+----------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are dropped
+ send mismatched packets, check the packets are not dropped.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is not distributed to queue 1.
+4. verify matched packets are not dropped.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_PAY queue index
-============================================
+Subcase 5: MAC_IPV4_PAY mark+rss
+--------------------------------
+Note: This combined action is mark with RSS which is without queues specified.
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark / rss / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packets are distributed to the same queue without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 6: MAC_IPV4_PAY mark
+----------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify the packets hit rule are not distributed to queue 1.
- check there is no rule listed.
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark id 1 / end
-Test case: MAC_IPV4_TUN_IPV4_UDP queue index
-============================================
+2. repeat the steps of passthru with mark part in subcase 3,
+ get the same result.
+
+Subcase 7: MAC_IPV4_PAY protocal
+--------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 1 / end actions queue index 1 / mark id 1 / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 17 / end actions passthru / mark id 3 / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets::
-3. verify rules can be listed and destroyed::
+ pkt1 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=1) / Raw('x' * 80)
+ pkt2 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, proto=1) / Raw('x' * 80)
+ pkt3 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)
+ pkt4 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)
+ pkt5 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=17, ttl=2, tos=4)/Raw('x' * 80)
+ pkt6 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, proto=17, ttl=2, tos=4)/Raw('x' * 80)
- testpmd> flow list 0
+ check the pkt1 and pkt2 are redirected to queue 1 with FDIR matched ID=0x1.
+ check the pkt3-pkt6 are distributed by RSS with FDIR matched ID=0x3.
+ send mismatched packets::
- check the existing rule.
- destroy the rule::
+ pkt7 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.22", proto=1) / Raw('x' * 80)
+ pkt8 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=6) / Raw('x' * 80)
+ pkt9 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/ Raw('x' * 80)
+ pkt10 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1)/TCP(sport=22,dport=23)/ Raw('x' * 80)
- testpmd> flow destroy 0 rule 0
+ check the packets received have not FDIR matched ID.
- verify the packets hit rule are not distributed to queue 1.
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets have not FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_TCP queue index
-============================================
+
+Test case: MAC_IPV4_UDP pattern
+===============================
+
+Subcase 1: MAC_IPV4_UDP queue index
+-----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions queue index 63 / mark id 0 / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets is distributed to queue 63 with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are received without FDIR matched ID.
3. verify rules can be listed and destroyed::
testpmd> flow list 0
- check the existing rule.
+ check the rule listed.
destroy the rule::
testpmd> flow destroy 0 rule 0
- verify the packets hit rule are not distributed to queue 1.
+4. verify matched packet is received without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_SCTP queue index
-=============================================
+Subcase 2: MAC_IPV4_UDP rss queues
+----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 4294967294 / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets is distributed to queue 0-3 with FDIR matched ID=0xfffffffe.
+ send mismatched packets, check the packets are received without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packet is not received without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 3: MAC_IPV4_UDP passthru
+--------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rule with mark::
+
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
- verify the packets hit rule are not distributed to queue 1.
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are distributed to the same queue without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_PAY queue index
-================================================
+Subcase 4: MAC_IPV4_UDP drop
+----------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions drop / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packet, check the packet is dropped.
+ send mismatched packets, check the packets are not dropped.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packet is dropped.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 5: MAC_IPV4_UDP mark+rss
+--------------------------------
+Note: This combined action is mark with RSS which is without queues specified.
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
+
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x2
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
- verify the packets hit rule are not distributed to queue 1.
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are distributed to the same queue without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_UDP queue index
-================================================
+Subcase 6: MAC_IPV4_UDP mark
+----------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions mark id 1 / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. repeat the step 2-3 of in subcase 3,
+ get the same result.
-3. verify rules can be listed and destroyed::
+Test case: MAC_IPV4_TCP pattern
+===============================
- testpmd> flow list 0
+1. replace "udp" with "tcp" in all the subcases of MAC_IPV4_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV4_UDP pattern.
+3. get the same result.
- check the existing rule.
- destroy the rule::
+Test case: MAC_IPV4_SCTP pattern
+================================
- testpmd> flow destroy 0 rule 0
+1. replace "udp" with "sctp" in all the subcases of MAC_IPV4_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV4_UDP pattern.
+3. get the same result.
- verify the packets hit rule are not distributed to queue 1.
- check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_TCP queue index
-================================================
+Test case: MAC_IPV6_PAY pattern
+===============================
+
+Subcase 1: MAC_IPV6_PAY queue index
+-----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions queue index 1 / mark / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets is distributed to queue 1 with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are received without FDIR matched ID.
3. verify rules can be listed and destroyed::
testpmd> flow list 0
- check the existing rule.
+ check the rule listed.
destroy the rule::
testpmd> flow destroy 0 rule 0
- verify the packets hit rule are not distributed to queue 1.
+4. verify matched packet is received without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP queue index
-=================================================
+Subcase 2: MAC_IPV6_PAY rss queues
+----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end \
+ actions rss queues 56 57 58 59 60 61 62 63 end / mark / end
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
+2. send matched packets, check the packets is distributed to queue 56-63 with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are not distributed to queue 56-63 with FDIR matched ID=0x0.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packet is received without FDIR matched ID=0x0.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 3: MAC_IPV6_PAY passthru
+--------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify the packets hit rule are not distributed to queue 1.
- check there is no rule listed.
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions passthru / mark / end
-Test case: queue index wrong parameters
-=======================================
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-1. invalid parameters::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 64 / end
+4. verify matched packets are destributed to the same queue without FDIR matched ID .
+ check there is no rule listed.
- failed to be created.
+Subcase 4: MAC_IPV6_PAY drop
+----------------------------
-2. same pattern items, different action::
+1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 2 / end
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions drop / end
+
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are not dropped.
- flow 1 can be created successfully,
- flow 2 and flow 3 failed to be created cause of confliction.
+3. repeat step 3 of subcase 1.
+
+4. verify matched packet is dropped.
+ check there is no rule listed.
-Test case: MAC_IPV4_PAY passthru/count
-======================================
+Subcase 5: MAC_IPV6_PAY mark+rss
+--------------------------------
+Note: This combined action is mark with RSS which is without queues specified.
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions passthru / count / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions mark / rss / end
-2. send matched packets, check the packets are redirected by RSS
- send mismatched packets, check the packets are redirected by RSS
- check the count number::
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
- flow query 0 0 count
- count:
- hits_set: 1
- bytes_set: 0
- hits: 2
- bytes: 0
+3. repeat step 3 of subcase 1.
-3. verify rules can be listed and destroyed::
+4. verify matched packets are distributed to the same queue without FDIR matched ID.
+ check there is no rule listed.
- testpmd> flow list 0
+Subcase 6: MAC_IPV6_PAY mark
+----------------------------
- check the existing rule.
- destroy the rule::
+1. create filter rules::
- testpmd> flow destroy 0 rule 0
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 0 hop is 2 tc is 1 / end actions mark / end
- verify matched packets are redirected to the same queue.
- check there is no rule listed.
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
-Test case: MAC_IPV4_PAY passthru/mark
-=====================================
+Subcase 7: MAC_IPV6_PAY protocal
+--------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is ABAB:910A:2222:5498:8475:1111:3900:1010 proto is 44 / end actions rss queues 5 6 end / mark id 1 / end
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 proto is 6 / end actions mark id 2 / rss / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets::
-3. verify rules can be listed and destroyed::
+ pkt1 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="ABAB:910A:2222:5498:8475:1111:3900:1010", nh=44, tc=1, hlim=2)/("X"*480)
+ pkt2 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="ABAB:910A:2222:5498:8475:1111:3900:1010")/IPv6ExtHdrFragment(1000)/("X"*480)
+ pkt3 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="ABAB:910A:2222:5498:8475:1111:3900:1010", nh=44)/TCP(sport=22,dport=23)/("X"*480)
+ pkt4 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="ABAB:910A:2222:5498:8475:1111:3900:1010")/IPv6ExtHdrFragment(1000)/TCP(sport=22,dport=23)/("X"*480)
+ pkt5 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=6)/("X"*480)
+ pkt6 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)
- testpmd> flow list 0
+ check pkt1-pkt4 are redirected to queue 5 or queue 6 with FDIR matched ID=0x1.
+ check pkt5 and pkt6 are distributed by RSS with FDIR matched ID=0x2.
+ send mismatched packets::
- check the existing rule.
- destroy the rule::
+ pkt7 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="ABAB:910A:2222:5498:8475:1111:3900:1011", nh=44)/("X"*480)
+ pkt8 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)
+ pkt9 = Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", nh=17)/("X"*480)
- testpmd> flow destroy 0 rule 0
+ check the packets received have not FDIR matched ID.
- verify matched packets are redirected to the same queue without FDIR ID.
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets have not FDIR matched.
check there is no rule listed.
-Test case: MAC_IPV4_UDP passthru/mark
-=====================================
+
+Test case: MAC_IPV6_UDP pattern
+===============================
+
+Subcase 1: MAC_IPV6_UDP queue index
+-----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions passthru / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions queue index 1 / mark / end
-2. send matched packets, check the packets are redirected by RSS.
- send mismatched packets, check the packets are redirected by RSS.
+2. send matched packets, check the packets is distributed to queue 1 with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are received without FDIR matched ID=0x0.
3. verify rules can be listed and destroyed::
testpmd> flow list 0
- check the existing rule.
+ check the rule listed.
destroy the rule::
testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue.
+4. verify matched packet is received without FDIR matched ID=0x0.
check there is no rule listed.
-Test case: MAC_IPV4_TCP passthru/mark
-=====================================
+Subcase 2: MAC_IPV6_UDP rss queues
+----------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions rss / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets is distributed by RSS.
+ send mismatched packets, check the packets are distributed by RSS too.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packet is destributed to the same queue.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 3: MAC_IPV6_UDP passthru
+--------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions passthru / mark / end
-Test case: MAC_IPV4_SCTP passthru/mark
-======================================
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 tag is 1 / end actions passthru / mark / end
+4. verify matched packets are destributed to the same queue without FDIR matched ID .
+ check there is no rule listed.
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+Subcase 4: MAC_IPV6_UDP drop
+----------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions drop / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are not dropped.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify matched packet is dropped.
check there is no rule listed.
-Test case: MAC_IPV6_PAY passthru/mark
-=====================================
+Subcase 5: MAC_IPV6_UDP mark+rss
+--------------------------------
+Note: This combined action is mark with RSS which is without queues specified.
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 1 hop is 2 tc is 1 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions mark / rss / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packets are distributed to the same queue without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 6: MAC_IPV6_UDP mark
+----------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions mark / end
-Test case: MAC_IPV6_UDP passthru/mark
-=====================================
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
-1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions passthru / mark / end
+Test case: MAC_IPV6_TCP pattern
+===============================
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+1. replace "udp" with "tcp" in all the subcases of MAC_IPV6_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV6_UDP pattern.
+3. get the same result.
-3. verify rules can be listed and destroyed::
+Test case: MAC_IPV6_SCTP pattern
+================================
- testpmd> flow list 0
+1. replace "udp" with "sctp" in all the subcases of MAC_IPV6_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV6_UDP pattern.
+3. get the same result.
- check the existing rule.
- destroy the rule::
- testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
-Test case: MAC_IPV6_TCP passthru/mark
-=====================================
+Test case: MAC_IPV4_TUN_IPV4_PAY pattern
+========================================
+
+Subcase 1: MAC_IPV4_TUN_IPV4_PAY queue index
+--------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets are distributed to queue 1 without FDIR matched ID.
+ send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.
3. verify rules can be listed and destroyed::
@@ -1070,106 +1093,92 @@ Test case: MAC_IPV6_TCP passthru/mark
testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
+ verify the packets hit rule are not distributed to queue 1 without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV6_SCTP passthru/mark
-======================================
+Subcase 2: MAC_IPV4_TUN_IPV4_PAY rss queues
+-------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 end / mark / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are received without FDIR matched ID.
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are received without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_PAY passthru/mark
-==============================================
+Subcase 3: MAC_IPV4_TUN_IPV4_PAY passthru
+-----------------------------------------
1. create filter rules::
flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are received without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_UDP passthru/mark
-==============================================
+Subcase 4: MAC_IPV4_TUN_IPV4_PAY drop
+-------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets dropped.
+ send mismatched packets, check the packets are not dropped.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. check there is no rule listed.
+ verify the packets hit the rule are not dropped.
- check the existing rule.
- destroy the rule::
+Subcase 5: MAC_IPV4_TUN_IPV4_PAY mark/rss
+-----------------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark / rss / end
-Test case: MAC_IPV4_TUN_IPV4_TCP passthru/mark
-==============================================
+2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions passthru / mark / end
+4. verify matched packet is redirected to the same queue without FDIR matched ID.
+ check there is no rule listed.
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+Subcase 6: MAC_IPV4_TUN_IPV4_PAY mark
+-------------------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark / end
- check the existing rule.
- destroy the rule::
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
- testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+Test case: MAC_IPV4_TUN_IPV4_UDP pattern
+========================================
-Test case: MAC_IPV4_TUN_IPV4_SCTP passthru/mark
-===============================================
+Subcase 1: MAC_IPV4_TUN_IPV4_UDP queue index
+--------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets are distributed to queue 1 with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are received without FDIR matched ID.
3. verify rules can be listed and destroyed::
@@ -1180,106 +1189,106 @@ Test case: MAC_IPV4_TUN_IPV4_SCTP passthru/mark
testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are received without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_PAY passthru/mark
-==================================================
+Subcase 2: MAC_IPV4_TUN_IPV4_UDP rss queues
+-------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark / end
-
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 38 39 40 41 end / mark id 1 / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are received without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are received without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_UDP passthru/mark
-==================================================
+Subcase 3: MAC_IPV4_TUN_IPV4_UDP passthru
+-----------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify the packets hit rule are distributed to the same queue without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 4: MAC_IPV4_TUN_IPV4_UDP drop
+-------------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end
-Test case: MAC_IPV4_TUN_MAC_IPV4_TCP passthru/mark
-==================================================
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are received without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions passthru / mark / end
+4. verify the packets hit rule are received without FDIR matched ID.
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+Subcase 5: MAC_IPV4_TUN_IPV4_UDP mark/rss
+-----------------------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions mark id 1 / rss / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are distributed to the same queue without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP passthru/mark
-===================================================
+Subcase 6: MAC_IPV4_TUN_IPV4_UDP mark
+-------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions passthru / mark / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
-3. verify rules can be listed and destroyed::
- testpmd> flow list 0
+Test case: MAC_IPV4_TUN_IPV4_TCP pattern
+========================================
- check the existing rule.
- destroy the rule::
+1. replace "udp" with "tcp" in all the subcases of MAC_IPV4_TUN_IPV4_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV4_TUN_IPV4_UDP pattern.
+3. get the same result.
- testpmd> flow destroy 0 rule 0
+Test case: MAC_IPV4_TUN_IPV4_SCTP pattern
+=========================================
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+1. replace "udp" with "sctp" in all the subcases of MAC_IPV4_TUN_IPV4_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV4_TUN_IPV4_UDP pattern.
+3. get the same result.
-Test case: MAC_IPV4_PAY mark/rss
-================================
+
+Test case: MAC_IPV4_TUN_MAC_IPV4_PAY pattern
+============================================
+
+Subcase 1: MAC_IPV4_TUN_MAC_IPV4_PAY queue index
+------------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 0 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed to queue 0 without FDIR matched ID.
+ send mismatched packets, check the packets are not distributed to queue 0 without FDIR matched ID.
3. verify rules can be listed and destroyed::
@@ -1290,84 +1299,91 @@ Test case: MAC_IPV4_PAY mark/rss
testpmd> flow destroy 0 rule 0
- verify matched packets are redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are not distributed to queue 0 without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_UDP mark/rss
-================================
+Subcase 2: MAC_IPV4_TUN_MAC_IPV4_PAY rss queues
+-----------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions mark / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 end / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 0.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 0.
+2. send matched packets, check the packets are distributed to queue group without FDIR matched ID.
+ send mismatched packets, check the packets are not distributed to queue group without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify the packets hit rule are not distributed to queue group without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 3: MAC_IPV4_TUN_MAC_IPV4_PAY passthru
+---------------------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / end
-Test case: MAC_IPV4_TCP mark/rss
-================================
+2. send matched packets, check the packets are distributed by RSS without FDIR matched ID.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions mark id 1 / rss / end
+4. verify the packets hit rule are distributed to same queue without FDIR matched ID.
+ check there is no rule listed.
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+Subcase 4: MAC_IPV4_TUN_MAC_IPV4_PAY drop
+-----------------------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are not dropped.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are not dropped.
check there is no rule listed.
-Test case: MAC_IPV4_SCTP mark/rss
-=================================
+Subcase 5: MAC_IPV4_TUN_MAC_IPV4_PAY mark/rss
+---------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 tag is 1 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark / rss / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify the packets hit rule are distributed to same queue without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 6: MAC_IPV4_TUN_MAC_IPV4_PAY mark
+-----------------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark / end
-Test case: MAC_IPV6_PAY mark/rss
-================================
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
+
+Test case: MAC_IPV4_TUN_MAC_IPV4_UDP pattern
+============================================
+
+Subcase 1: MAC_IPV4_TUN_MAC_IPV4_UDP queue index
+------------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 1 hop is 2 tc is 1 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 15 / mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed to queue 15 with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are received without FDIR matched ID.
3. verify rules can be listed and destroyed::
@@ -1378,106 +1394,106 @@ Test case: MAC_IPV6_PAY mark/rss
testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are distributed by RSS without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV6_UDP mark/rss
-================================
+Subcase 2: MAC_IPV4_TUN_MAC_IPV4_UDP rss queues
+-----------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions mark id 1 / rss / end
-
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are distributed by RSS without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV6_TCP mark/rss
-================================
+Subcase 3: MAC_IPV4_TUN_MAC_IPV4_UDP passthru
+---------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify the packets hit rule are distributed by RSS without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 4: MAC_IPV4_TUN_MAC_IPV4_UDP drop
+-----------------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / mark id 1 / end
-Test case: MAC_IPV6_SCTP mark/rss
-=================================
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions mark id 1 / rss / end
+4. verify the packets hit rule are distributed by RSS without FDIR matched ID.
+ check there is no rule listed.
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+Subcase 5: MAC_IPV4_TUN_MAC_IPV4_UDP mark/rss
+---------------------------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss / mark id 1 / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are distributed by RSS without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
+4. verify the packets hit rule are distributed to same queue without FDIR matched ID.
check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_PAY mark/rss
-=========================================
+Subcase 6: MAC_IPV4_TUN_MAC_IPV4_UDP mark
+-----------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 0.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 0.
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
-3. verify rules can be listed and destroyed::
- testpmd> flow list 0
+Test case: MAC_IPV4_TUN_MAC_IPV4_TCP pattern
+============================================
- check the existing rule.
- destroy the rule::
+1. replace "udp" with "tcp" in all the subcases of MAC_IPV4_TUN_MAC_IPV4_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV4_TUN_MAC_IPV4_UDP pattern.
+3. get the same result.
- testpmd> flow destroy 0 rule 0
+Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP pattern
+=============================================
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+1. replace "udp" with "sctp" in all the subcases of MAC_IPV4_TUN_MAC_IPV4_UDP pattern.
+2. Then repeat all the steps in all the subcases of MAC_IPV4_TUN_MAC_IPV4_UDP pattern.
+3. get the same result.
-Test case: MAC_IPV4_TUN_IPV4_UDP mark/rss
-=========================================
+Test case: MAC_IPV4_GTPU_EH pattern
+===================================
+
+Subcase 1: MAC_IPV4_GTPU_EH queue index
+---------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed to queue 1 with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.
3. verify rules can be listed and destroyed::
@@ -1488,128 +1504,131 @@ Test case: MAC_IPV4_TUN_IPV4_UDP mark/rss
testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+4. verify matched packets are not distributed to queue 1 without FDIR matched ID.
+ Then check there is no rule listed.
-Test case: MAC_IPV4_TUN_IPV4_TCP mark/rss
-=========================================
+Subcase 2: MAC_IPV4_GTPU_EH queue group
+---------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions rss queues 0 1 2 3 end / mark id 1 / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are not distributed to queue group without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packets are not distributed to queue group without FDIR matched ID.
+ Then check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 3: MAC_IPV4_GTPU_EH passthru
+------------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions passthru / mark id 1 / end
-Test case: MAC_IPV4_TUN_IPV4_SCTP mark/rss
-==========================================
+2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions mark id 1 / rss / end
+4. verify matched packets are redirected to the same queue without FDIR ID.
+ check there is no rule listed.
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+Subcase 4: MAC_IPV4_GTPU_EH drop
+--------------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are not dropped without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+4. verify matched packets are not dropped without FDIR matched ID.
+ Then check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_PAY mark/rss
-=============================================
+Subcase 5: MAC_IPV4_GTPU_EH mark/rss
+------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions mark id 1 / rss / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x1.
+ send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packets are redirected to the same queue without FDIR matched ID.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 6: MAC_IPV4_GTPU_EH mark
+--------------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions mark id 1 / end
-Test case: MAC_IPV4_TUN_MAC_IPV4_UDP mark/rss
-=============================================
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
-1. create filter rules::
+Subcase 7: MAC_IPV4_GTPU_EH QFI queue index / mark
+--------------------------------------------------
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions mark id 1 / rss / end
+1. create filter rules on port 0::
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc qfi is 0x34 / end actions queue index 1 / mark id 3 / end
-3. verify rules can be listed and destroyed::
+2. send matched packets, check the packet is redirected to queue 1 with FDIR matched ID=0x3::
- testpmd> flow list 0
+ p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
- check the existing rule.
- destroy the rule::
+ send mismatched packets, check the packet received has not FDIR::
- testpmd> flow destroy 0 rule 0
+ p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+3. repeat step 3 of subcase 1.
-Test case: MAC_IPV4_TUN_MAC_IPV4_TCP mark/rss
-=============================================
+4. verify matched packet received has not FDIR.
+ Then check there is no rule listed.
-1. create filter rules::
+Subcase 8: MAC_IPV4_GTPU_EH without QFI rss queues / mark
+---------------------------------------------------------
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions mark id 1 / rss / end
+1. create filter rules on port 0::
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / end actions rss queues 2 3 end / mark id 1 / end
-3. verify rules can be listed and destroyed::
+2. send matched packets, check the packet is distributed to queue 2 or queue 3 with FDIR matched ID=0x3::
- testpmd> flow list 0
+ p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0)/IP()/TCP()/Raw('x'*20)
- check the existing rule.
- destroy the rule::
+ send mismatched packets, check the packet received has no FDIR::
- testpmd> flow destroy 0 rule 0
+ p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0)/IP()/TCP()/Raw('x'*20)
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+3. repeat step 3 of subcase 1.
+
+4. verify matched packet received has not FDIR.
+ Then check there is no rule listed.
-Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP mark/rss
-==============================================
+Test case: MAC_IPV4_GTPU pattern
+================================
+
+Subcase 1: MAC_IPV4_GTPU queue index
+------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions mark id 1 / rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions queue index 1 / mark / end
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
+2. send matched packets, check the packets are distributed to queue 1 with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are not distributed to queue 1 without FDIR matched ID.
3. verify rules can be listed and destroyed::
@@ -1620,1263 +1639,399 @@ Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP mark/rss
testpmd> flow destroy 0 rule 0
- verify matched packet is redirected to the same queue without FDIR ID.
- check there is no rule listed.
+4. verify matched packets are not distributed to queue 1 without FDIR matched ID.
+ Then check there is no rule listed.
-Test case: mark/rss wrong parameters
-====================================
+Subcase 2: MAC_IPV4_GTPU queue group
+------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions rss / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions rss queues 0 1 end / mark / end
-2. The rule failed to be created, report proper error message.
+2. send matched packets, check the packets are distributed to queue group with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are not distributed to queue group without FDIR matched ID.
-3. list the flow::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
-
- there is no flow listed.
+4. verify matched packets are not distributed to queue group without FDIR matched ID.
+ Then check there is no rule listed.
-Test case: MAC_IPV4_PAY drop
-============================
+Subcase 3: MAC_IPV4_GTPU passthru
+---------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions drop / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions passthru / mark / end
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
+2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.
-3. verify rules can be listed and destroyed::
+3. repeat step 3 of subcase 1.
- testpmd> flow list 0
+4. verify matched packets are distributed to same queue without FDIR matched ID.
+ Then check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 4: MAC_IPV4_GTPU drop
+-----------------------------
- testpmd> flow destroy 0 rule 0
+1. create filter rules::
- check there is no rule listed.
- verify matched packets are not dropped.
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions drop / end
-Test case: MAC_IPV4_UDP drop
-============================
+2. send matched packets, check the packets are dropped.
+ send mismatched packets, check the packets are not dropped.
-1. create filter rules::
+3. repeat step 3 of subcase 1.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions drop / end
+4. verify matched packets are not dropped without FDIR matched ID.
+ Then check there is no rule listed.
-2. send matched packets, check the packet dropped.
- send mismatched packets, check the packets are not dropped.
+Subcase 5: MAC_IPV4_GTPU mark/rss
+---------------------------------
-3. verify rules can be listed and destroyed::
+1. create filter rules::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions mark / rss / end
- check the existing rule.
- destroy the rule::
+2. send matched packets, check the packets are redirected by RSS with FDIR matched ID=0x0.
+ send mismatched packets, check the packets are redirected by RSS without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+3. repeat step 3 of subcase 1.
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
+4. verify matched packets are distributed to same queue without FDIR matched ID.
+ Then check there is no rule listed.
-Test case: MAC_IPV4_TCP drop
-============================
+Subcase 6: MAC_IPV4_GTPU mark
+-----------------------------
1. create filter rules::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions drop / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions mark / end
-2. send matched packets, check the packet dropped.
- send mismatched packets, check the packets are not dropped.
+2. repeat the steps of passthru in subcase 3,
+ get the same result.
-3. verify rules can be listed and destroyed::
- testpmd> flow list 0
+Test case: negative cases
+=========================
- check the existing rule.
- destroy the rule::
+Subcase 1: invalid parameters of queue index
+--------------------------------------------
- testpmd> flow destroy 0 rule 0
+1. Invalid parameters::
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 64 / end
-Test case: MAC_IPV4_SCTP drop
-=============================
+ Failed to create flow, report message::
-1. create filter rules::
+ Invalid queue for FDIR.: Invalid argument
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 / end actions drop / end
+2. check there is no rule listed.
-2. send matched packets, check the packet dropped.
- send mismatched packets, check the packets are not dropped.
+Subcase 2: invalid parameters of rss queues
+-------------------------------------------
-3. verify rules can be listed and destroyed::
+1. Invalid number of queues::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 end / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 0 end / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues end / end
- check the existing rule.
- destroy the rule::
+ Failed to create flow, report message::
- testpmd> flow destroy 0 rule 0
+ Invalid input action: Invalid argument
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
+2. Discontinuous queues::
-Test case: MAC_IPV6_PAY drop
-============================
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 5 end / end
-1. create filter rules::
+ Failed to create flow, report message::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 1 hop is 2 tc is 1 \
- / end actions drop / end
+ Discontinuous queue region: Invalid argument
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
+3. invalid queue index::
-3. verify rules can be listed and destroyed::
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 63 64 end / end
- testpmd> flow list 0
+ Failed to create flow, report message::
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
-
-Test case: MAC_IPV6_UDP drop
-============================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packet dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
-
-Test case: MAC_IPV6_TCP drop
-============================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packet dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
-
-Test case: MAC_IPV6_SCTP drop
-=============================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packet dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packet hit the rule is not dropped.
-
-Test case: MAC_IPV4_TUN_IPV4_PAY drop
-=====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_IPV4_UDP drop
-=====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_IPV4_TCP drop
-=====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_IPV4_SCTP drop
-======================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_PAY drop
-=========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_UDP drop
-=========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_TCP drop
-=========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP drop
-==========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions drop / end
-
-2. send matched packets, check the packets dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- check there is no rule listed.
- verify the packets hit the rule are not dropped.
-
-Test case: MAC_IPV4_PAY queue group
-===================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 0 1 end / end
-
-2. send matched packets, check the packets are distributed to queue 0 or 1.
- send mismatched packets, check the packets are not distributed to queue 0 or 1.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify pkt1 and pkt2 are not distributed to queue 0 or 1.
- check there is no rule listed.
-
-Test case: MAC_IPV4_UDP queue group
-===================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions rss queues 1 2 3 4 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TCP queue group
-===================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions rss queues 56 57 58 59 60 61 62 63 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_SCTP queue group
-====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 tag is 1 / end actions rss queues 0 1 2 3 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV6_PAY queue group
-===================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 1 hop is 2 tc is 1 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV6_UDP queue group
-===================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV6_TCP queue group
-===================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV6_SCTP queue group
-====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_IPV4_PAY queue group
-============================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_IPV4_UDP queue group
-============================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 38 39 40 41 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_IPV4_TCP queue group
-============================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_IPV4_SCTP queue group
-=============================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_PAY queue group
-================================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_UDP queue group
-================================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_TCP queue group
-================================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP queue group
-=================================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions rss queues 1 2 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packets hit rule are not distributed to queue group.
- check there is no rule listed.
-
-Test case: queue group wrong parameters
-=======================================
-
-1. invalid number of queues::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 0 1 2 end / end
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 0 end / end
-
-2. Discontinuous queues::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 1 2 3 5 end / end
-
-3. invalid queue index::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions rss queues 63 64 end / end
-
-4. "--rxq=32 --txq=32", set queue group 64 queues::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 end / end
-
-all the above five rules are failed to created.
-
-5. "--rxq=64 --txq=64", set queue group 64 queues,
- create the 64 queues flow successfully.
- send matched packets, check the packets are distributed to queue 0-63.
- send mismatched packets, check the packets are distributed to queue 0-63 too.
-
-Test case: MAC_IPV4_GTPU_EH queue index
-=======================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / end
-
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are not distributed to queue 1.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU_EH passthru/mark
-=========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions passthru / mark / end
-
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are redirected to the same queue without FDIR ID.
- check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU_EH mark/rss
-====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions mark id 1 / rss / end
-
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are redirected to the same queue without FDIR ID.
- check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU_EH drop
-================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
-
-2. send matched packets, check the packets are dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are not dropped.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU_EH queue group
-=======================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions rss queues 0 1 end / end
-
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are not distributed to queue group.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU queue index
-====================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions queue index 1 / end
-
-2. send matched packets, check the packets are distributed to queue 1.
- send mismatched packets, check the packets are not distributed to queue 1.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are not distributed to queue 1.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU passthru/mark
-======================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions passthru / mark / end
-
-2. send matched packets, check the packets are redirected by RSS with FDIR ID.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are redirected to the same queue without FDIR ID.
- check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU mark/rss
-=================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions mark id 1 / rss / end
-
-2. send matched packets, check the packets are redirected by RSS with FDIR ID 1.
- send mismatched packets, check the packets are redirected by RSS without FDIR ID 1.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are redirected to the same queue without FDIR ID.
- check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU drop
-=============================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions drop / end
-
-2. send matched packets, check the packets are dropped.
- send mismatched packets, check the packets are not dropped.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
+ Invalid queue region indexes.: Invalid argument
- check the existing rule.
- destroy the rule::
+4. "--rxq=7 --txq=7", set queue group 8 queues::
- testpmd> flow destroy 0 rule 0
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions rss queues 0 1 2 3 4 5 6 7 end / end
- verify matched packets are not dropped.
- Then check there is no rule listed.
+ Failed to create flow, report message::
-Test case: MAC_IPV4_GTPU queue group
-====================================
+ Invalid queue region indexes.: Invalid argument
-1. create filter rules::
+5. check there is no rule listed.
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions rss queues 0 1 end / end
+6. "--rxq=8 --txq=8", set queue group 8 queues,
+ create the 8 queues flow successfully.
+ send matched packets, check the packets are distributed to queue 0-7.
+ send mismatched packets, check the packets are distributed to queue 0-7 too.
-2. send matched packets, check the packets are distributed to queue group.
- send mismatched packets, check the packets are not distributed to queue group.
+Subcase 3: Invalid parameters of input set
+------------------------------------------
-3. verify rules can be listed and destroyed::
+1. Invalid value of teid and qfi::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x100 / end actions queue index 1 / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / end actions queue index 2 / end
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / end actions queue index 1 / end
- check the existing rule.
- destroy the rule::
+ Failed to create flow, report message "Bad arguments"
- testpmd> flow destroy 0 rule 0
+2. check there is no rule listed.
- verify matched packets are not distributed to queue group.
- Then check there is no rule listed.
+Subcase 4: Invalid parameters of mark ID
+----------------------------------------
-Test case: MAC_IPV4_GTPU_EH mark/count/query
-============================================
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 2 / mark id 2 / count / end
-
-2. send matched packets, check the packets are distributed to queue 2, the FDIR=0x2.
- send mismatched packets, check the packets are not distributed to queue 2, no FDIR.
- check the count number::
-
- flow query 0 0 count
- count:
- hits_set: 1
- bytes_set: 0
- hits: 10
- bytes: 0
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are not distributed to queue 2, and no FDIR.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_GTPU mark/count/query
-=========================================
-
-1. create filter rules on port 1::
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 / end actions queue index 1 / mark id 4294967296 / end
- flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions rss queues 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 end / mark id 100 / count / end
+ Failed to create flow, report message "Bad arguments"
-2. send matched packets, check the packets are distributed to queue in 0-63, the FDIR=0x64::
+2. check there is no rule listed.
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)
+Subcase 5: Duplicated rules
+---------------------------
- send mismatched packets, check the packets have not FDIR::
+1. Create a FDIR rule::
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/IP()/Raw('x'*20)
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end
- check the count number::
+ the rule is created successfully.
- flow query 1 0 count
- count:
- hits_set: 1
- bytes_set: 0
- hits: 2
- bytes: 0
+2. Create the same rule again, Failed to create flow, report message::
-3. verify rules can be listed and destroyed::
+ Rule already exists!: File exists
- testpmd> flow list 1
+3. check there is only one rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 6: conflicted rules
+---------------------------
- testpmd> flow destroy 1 rule 0
+1. Create a FDIR rule::
- verify matched packets are distributed to queue in 0-63, and no FDIR.
- Then check there is no rule listed.
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / end
-Test case: MAC_IPV4_GTPU_EH QFI mark/count/query
-================================================
+ the rule is created successfully.
-1. create filter rules on port 1::
+2. Create a rule with same input set but different action::
- flow create 1 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc qfi is 0x34 / end actions drop / mark id 3 / count / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 2 / end
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions drop / end
-2. send matched packets, check the packets are dropped::
+ Failed to create the two flows, report message::
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/TCP()/Raw('x'*20)
+ Rule already exists!: File exists
- send mismatched packets, check the packets are not dropped, no FDIR::
+3. check there is only one rule listed.
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
+Subcase 7: conflicted actions
+-----------------------------
- check the count number::
+1. Create a rule with two conflicted actions::
- flow query 1 0 count
- count:
- hits_set: 1
- bytes_set: 0
- hits: 1
- bytes: 0
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions queue index 1 / rss queues 2 3 end / end
-3. verify rules can be listed and destroyed::
+ Failed to create flow, report message::
- testpmd> flow list 1
+ Invalid input action: Invalid argument
- check the existing rule.
- destroy the rule::
+2. check there is no rule listed.
- testpmd> flow destroy 1 rule 0
+Subcase 8: void action
+----------------------
- verify matched packets are not dropped, and no FDIR.
- Then check there is no rule listed.
+1. Create a rule with void action::
-Test case: MAC_IPV4_GTPU_EH without QFI mark/count/query
-========================================================
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions end
-1. create filter rules on port 0::
+ Failed to create flow, report message::
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / end actions queue index 15 / mark id 3 / count / end
+ Invalid input action: Invalid argument
-2. send matched packets, check the packets are distributed to queue 15, the FDIR=0x3::
+2. check there is no rule listed.
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0)/IP()/TCP()/Raw('x'*20)
+Subcase 9: unsupported action
+-----------------------------
- send mismatched packets, check the packets are not distributed to queue 15, no FDIR::
+1. Create a rule with count action only::
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0)/IP()/TCP()/Raw('x'*20)
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions count / end
- check the count number::
+ Failed to create flow, report message::
- flow query 0 0 count
- count:
- hits_set: 1
- bytes_set: 0
- hits: 1
- bytes: 0
+ Invalid input action: Invalid argument
-3. verify rules can be listed and destroyed::
+2. check there is no rule listed.
- testpmd> flow list 0
+Subcase 10: delete a non-existent rule
+--------------------------------------
- check the existing rule.
- destroy the rule::
+1. show the rule list of port 0::
- testpmd> flow destroy 0 rule 0
+ flow list 0
- verify matched packets are not distributed to queue 15, and no FDIR.
- Then check there is no rule listed.
+ There is no rule listed.
-Test case: MAC_IPV4_GTPU_EH multirules
-======================================
+2. destroy rule 0 of port 0::
-1. create filter rules on port 0::
+ flow destroy 0 rule 0
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x35 / end actions queue index 2 / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x35 / end actions queue index 3 / end
+ There is no error message reported.
- the three rules are created successfully.
- then create the following rules::
+3. check there is no rule listed.
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x35 / end actions queue index 3 / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x35 / end actions queue index 4 / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x75 / end actions queue index 4 / end
+4. flush rules of port 0::
- the three rules are failed to created.
- then create the following rule::
+ flow flush 0
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x34 / end actions queue index 3 / end
+ There is no error message reported.
- the rule is created successfully.
+5. check there is no rule listed.
-2. send matched packets::
+Subcase 11: unsupported input set field
+---------------------------------------
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
- p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
- p_gtpu4 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
+1. Create a IPV4_PAY rule with TC input set::
- check the packets, p_gtpu1 to queue 1, p_gtpu2 to queue 3, p_gtpu3 to queue 2, p_gtpu4 to queue 3.
- send mismatched packets, check the packets are not distributed to queue 1-3::
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tc is 2 / end actions queue index 1 / end
- p_gtpu5 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x36)/IP()/Raw('x'*20)
+ Failed to create flow, report message::
-3. verify rules can be listed and destroyed::
+ Bad arguments
- testpmd> flow list 0
+2. check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Subcase 12: invalid port
+------------------------
- testpmd> flow flush 0
+1. Create a rule on port 2::
- verify matched packets are not distributed to same queue.
- Then check there is no rule listed.
+ flow create 2 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / end
-Test case: MAC_IPV4_GTPU_EH two ports
-=====================================
+ Failed to create flow, report message::
-1. create filter rules on two ports::
+ No such device: No such device
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / end
- flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / end
+2. check there is no rule listed on port 2::
- send matched packets::
+ testpmd> flow list 2
+ Invalid port 2
- p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
+Subcase 13: unsupported pattern
+-------------------------------
- send the packet to two ports, both are distributed to queue 1.
+1. Create a GTPU rule with OS default package::
-2. create filter rules on two ports::
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions drop / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x35 / end actions queue index 2 / end
- flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x35 / end actions queue index 3 / end
+ Failed to create flow, report error message.
- send matched packets::
+2. check there is no rule listed.
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
+Subcase 14: conflict patterns
+-----------------------------
- send the packet to two ports, both are distributed to expected queue.
+Note: MAC_IPV4_UDP packet can match MAC_IPV4_PAY rule if ip address can match.
+so if there is a MAC_IPV4_PAY rule existing,
+MAC_IPV4_UDP rule will be set to switch rule.
+set "--log-level=ice,7", then check::
-3. flush the rules::
+ ice_flow_create(): Succeeded to create (1) flow -> FDIR
+ ice_flow_create(): Succeeded to create (2) flow -> switch
- flow flush 0
- flow flush 1
+1. set MAC_IPV4_PAY rule firstly::
-4. create filter rules on two ports::
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / end
- flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions queue index 2 / end
+ the first flow rule is set to fdir filter, send matched packet::
- send matched packets::
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/Raw('x' * 80)],iface="enp175s0f0", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21") /UDP(sport=22, dport=23)/ Raw('x' * 80)],iface="enp175s0f0", count=10)
- p_gtpu2 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x35)/IP()/Raw('x'*20)
- p_gtpu3 = Ether(src="a4:bf:01:51:27:ca", dst="00:00:00:00:01:03")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
+ the two packets are both redirected to queue 1.
+ then create MAC_IPV4_UDP flow, it is set to switch filter::
- send the packets to two ports,
- p_gtpu2 is not distributed to queue 1 of port 0, it is distributed to queue 2 of port 1.
- p_gtpu3 is distributed to queue 2 of port 1, it is distributed to queue 1 of port 0.
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 2 / end
-5. verify rules can be listed and destroyed::
+ send same packets, MAC_IPV4_PAY packet to queue 1, MAC_IPV4_UDP packet to queue 2.
- testpmd> flow list 0
- testpmd> flow list 1
+2. flush the rules.
- check the existing rules.
- destroy the rule::
+3. set MAC_IPV4_UDP rule firstly::
- testpmd> flow destroy 0 rule 0
- testpmd> flow destroy 1 rule 0
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 2 / end
- verify matched packets are not distributed to expected queue.
- Then check there is no rule listed.
+ the first rule is set to fdir filter, send matched packet::
-Test case: MAC_IPV4_GTPU_EH wrong parameters
-============================================
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21") /UDP(sport=22, dport=23)/ Raw('x' * 80)],iface="enp175s0f0", count=10)
-1. create filter rules on port 0::
+ the packet is redirected to queue 2.
+ then create MAC_IPV4_PAY rule, it is set to switch filter::
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x100 / end actions queue index 1 / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / end actions queue index 2 / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / end
- the two flows can not be created successfully, report proper error message.
+ send same packet, it is redirected to queue 1, because the packet match switch filter first.
-2. list the flow::
- testpmd> flow list 0
+Test case: count/query
+======================
- there is no flow listed.
+Subcase 1: count for 1 rule of 1 port
+-------------------------------------
-Test case: MAC_IPV4_GTPU wrong parameters
-=========================================
+1. create filter rules::
-1. create filter rules on port 0::
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / count / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / end actions queue index 1 / end
+2. send matched packets, check the packets are redirected to queue 1.
+ send mismatched packets, check the packets are redirected by RSS.
+ check the count number::
- the flow can not be created successfully.
+ flow query 0 0 count
+ count:
+ hits_set: 1
+ bytes_set: 0
+ hits: 2
+ bytes: 0
-2. list the flow::
+3. verify rules can be listed and destroyed::
testpmd> flow list 0
- there is no flow listed.
+ check the existing rule.
+ destroy the rule::
+
+ testpmd> flow destroy 0 rule 0
+
+ verify matched packets are redirected by RSS.
+ check there is no rule listed.
+
+4. check the count number::
-Test case: count query identifier share
-=======================================
+ testpmd> flow query 0 0 count
+ Flow rule #0 not found
+
+Subcase 2: count query identifier share
+---------------------------------------
1. create filter rules::
flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / end actions queue index 1 / count identifier 0x1234 shared on / end
- flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / end actions queue index 2 / count identifier 0x1234 shared on / end
- flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 / end actions queue index 3 / count identifier 0x1234 shared off / end
- flow create 0 ingress pattern eth / ipv4 src is 192.168.0.4 / end actions queue index 4 / count identifier 0x1234 / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / end actions rss queues 2 3 end / count identifier 0x1234 shared on / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 / end actions passthru / mark / count identifier 0x1234 shared off / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.4 / end actions mark id 1 / rss / count identifier 0x1234 / end
flow create 0 ingress pattern eth / ipv4 src is 192.168.0.5 / end actions queue index 5 / count shared on / end
flow create 0 ingress pattern eth / ipv4 src is 192.168.0.6 / end actions drop / count shared on / end
flow create 0 ingress pattern eth / ipv4 src is 192.168.0.7 / end actions drop / count identifier 0x1235 shared on / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.8 / end actions rss / count / end
2. send matched packets::
@@ -2887,10 +2042,15 @@ Test case: count query identifier share
sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.5",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0", count=10)
sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.6",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0", count=10)
sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.7",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.8",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0", count=10)
check the packets,
- packet 1 to queue 1, packet 2 to queue 2, packet 3 to queue 3, packet 4 to queue 4, packet 5 to queue 5,
+ packet 1 to queue 1, packet 2 to queue 2 or queue 3,
+ packet 3 is distributed by RSS with FDIR matched ID=0x0,
+ packet 4 is distributed by RSS with FDIR matched ID=0x1,
+ packet 5 to queue 5,
packet 6 dropped, packet 7 dropped.
+ packet 8 is distributed by RSS.
3. query count::
@@ -2936,6 +2096,12 @@ Test case: count query identifier share
bytes_set: 0
hits: 10
bytes: 0
+ testpmd> flow query 0 7 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ bytes: 0
4. verify rules can be listed and destroyed::
@@ -2946,21 +2112,23 @@ Test case: count query identifier share
testpmd> flow flush 0
- verify matched packet are not distributed to same queue.
- check there is no rule listed.
+5. check there is no rule listed,
+ send matched packets, query count, flow rule not found.
-Test case: multi patterns count query
-=====================================
+Subcase 3: multi patterns mark count query
+------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / count / end
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / count / end
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions rss queues 62 63 end / count / end
- flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queue index 1 / count / end
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 3 / count / end
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 / tcp dst is 23 / end actions queue index 4 / count / end
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions queue index 5 / count / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 0 / count / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / mark id 1 / count / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions rss queues 62 63 end / mark id 2 / count / end
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queue index 1 / mark id 3 / count / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 3 / mark id 4 / count / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 / tcp dst is 23 / end actions queue index 4 / count / mark id 5 / end
+ flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions queue index 5 / mark id 6 / count / end
+ flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions rss queues 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 \
+ 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 end / mark id 100 / count / end
2. send matched packets::
@@ -2971,10 +2139,12 @@ Test case: multi patterns count query
sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(dport=4790)/VXLAN(flags=0xc)/IP(dst="192.168.0.21", src="192.168.0.20")/UDP(sport=22,dport=23)/("X"*480)], iface="enp175s0f0", count=10)
sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/VXLAN(vni=2)/Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20")/TCP(dport=23)/("X"*480)], iface="enp175s0f0", count=10)
sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/VXLAN(vni=2)/Ether()/IP(src='192.168.0.20', dst='192.168.0.21')/SCTP(sport=22,dport=23)/("X"*480)], iface="enp175s0f0", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP()/Raw('x'*20)], iface="enp175s0f0", count=10)
check the packets,
packet 1 to queue 1, packet 2 dropped, packet 3 to queue 62-63, packet 4 to queue 1, packet 5 to queue 3,
- packet 6 to queue 4, packet 7 to queue 5.
+ packet 6 to queue 4, packet 7 to queue 5, packet 8 is distributed by RSS.
+ all the packets are received with FDIR matched ID.
3. query count::
@@ -3020,630 +2190,423 @@ Test case: multi patterns count query
bytes_set: 0
hits: 10
bytes: 0
+ testpmd> flow query 0 7 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ bytes: 0
-4. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- There are 7 rules listed.
- destroy the rule 0::
-
- testpmd> flow destroy 0 rule 0
-
- verify the packet matching rule 0 is not distributed to queue 1.
- check rule 1-6 listed.
-
-5. destroy the rule 6::
-
- testpmd> flow destroy 0 rule 6
-
- verify the packet matching rule 6 is not distributed to queue 5.
- check rule 1-5 listed.
-
-6. destroy the rule 3::
-
- testpmd> flow destroy 0 rule 3
-
- verify the packet matching rule 3 is not distributed to queue 1.
- check rule 1/2/4/5 listed.
-
-7. flush the all the rules::
-
- testpmd> flow flush 0
-
- verify the matched packets are not distributed to the same queue.
- check no rule listed.
-
-Test case: two ports multi patterns count query
-===============================================
-
-1. create filter rules::
-
- flow create 1 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 255 tos is 4 / end actions queue index 1 / count / end
- flow create 1 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions rss queues 6 7 end / count / end
- flow create 1 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions rss queues 6 7 end / count / end
- flow create 1 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions queue index 2 / count / end
- flow create 1 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / count / end
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions drop / count / end
- flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queue index 1 / count / end
-
-2. send matched packets::
-
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp175s0f1", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp175s0f1", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp175s0f1", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp175s0f1", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/VXLAN()/Ether()/IP(src='192.168.0.20', dst='192.168.0.21')/("X"*480)], iface="enp175s0f1", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IP(dst="192.168.0.21", ttl=2, tos=4)/TCP(sport=22,dport=23)/Raw(load="X"*480)], iface="enp175s0f0", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp175s0f0", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IP(dst="192.168.0.21", ttl=2, tos=4)/TCP(sport=22,dport=23)/Raw(load="X"*480)], iface="enp175s0f1", count=10)
-
- check the packets,
- packet 1 to queue 1 of port 1, packet 2 to queue 6-7 of port 1, packet 3 to queue 6-7 of port 1,
- packet 4 to queue 2 of port 1, packet 5 dropped of port 1,
- packet 6 to dropped of port 0, packet 7 to queue 1 of port 0.
- packet 8 received by port 1.
-
-3. query count::
-
- testpmd> flow query 1 0 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- bytes: 0
- testpmd> flow query 1 1 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- bytes: 0
- testpmd> flow query 1 2 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- testpmd> flow query 1 3 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- bytes: 0
- testpmd> flow query 1 4 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- bytes: 0
- testpmd> flow query 0 0 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- testpmd> flow query 0 1 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
-
-4. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
- testpmd> flow list 1
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow flush 0
- testpmd> flow flush 1
-
- verify matched packet are not distributed to same queue.
- check there is no rule listed::
-
- testpmd> flow list 0
- testpmd> flow list 1
-
-Test case: max count
-====================
-
-1. create 257 flows with count::
-
- flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / end actions drop / count / end
- flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / end actions drop / count / end
- ……
- flow create 0 ingress pattern eth / ipv4 src is 192.168.1.1 / end actions drop / count / end
- flow create 0 ingress pattern eth / ipv4 src is 192.168.1.2 / end actions drop / count / end
-
- the last one failed to create.
-
-2. send matched packets::
-
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.1.1",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0", count=10)
-
- check the packet dropped.
-
-3. query count::
-
- testpmd> flow query 0 255 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 10
- bytes: 0
-
-4. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow flush 0
-
- verify matched packet are not dropped.
- check there is no rule listed.
-
-Test case: MAC_IPV4_PAY queue index mark
-========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / mark id 0 / end
-
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x0" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_UDP queue index mark
-========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions queue index 0 / mark id 1 / end
-
-2. send 1 matched packet, check the packets are distributed to queue 0 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 0 without "FDIR matched" printed.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_TCP queue index mark
-========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 4294967294 / end
-
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0xfffffffe" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
-
-3. verify rules can be listed and destroyed::
+4. verify rules can be listed and destroyed::
testpmd> flow list 0
check the existing rule.
destroy the rule::
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_SCTP drop mark
-==================================
-
-1. create filter rules::
+ testpmd> flow flush 0
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 tag is 1 / end actions drop / mark id 1 / end
+5. check there is no rule listed,
+ send matched packets, query count, flow rule not found.
-2. send 1 matched packet, check the packets are dropped.
- send 1 mismatched packet, check the packets are not dropped without "FDIR matched" printed.
+Subcase 4: max count number
+---------------------------
-3. verify rules can be listed and destroyed::
+1. create 257 flows with count::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / end actions drop / count / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / end actions drop / count / end
+ ……
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.255 / end actions drop / count / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.1.1 / end actions drop / count / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.1.2 / end actions drop / count / end
- check the existing rule.
- destroy the rule::
+ the last one failed to create, report the error message::
- testpmd> flow destroy 0 rule 0
+ No free counter found
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+2. send matched packets::
-Test case: MAC_IPV6_PAY queue index mark
-========================================
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.1.1",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0", count=10)
-1. create filter rules::
+ check the packet dropped.
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 proto is 1 hop is 2 tc is 1 / end actions queue index 1 / mark id 1 / end
+3. query count::
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+ testpmd> flow query 0 255 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ bytes: 0
-3. verify rules can be listed and destroyed::
+4. verify rules can be listed and destroyed::
testpmd> flow list 0
- check the existing rule.
+ check that 256 rules listed.
destroy the rule::
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV6_UDP queue index mark
-========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
-
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
-
-3. verify rules can be listed and destroyed::
+ testpmd> flow flush 0
- testpmd> flow list 0
+ verify matched packet are not dropped.
+ check there is no rule listed.
- check the existing rule.
- destroy the rule::
+Test case: two ports
+====================
- testpmd> flow destroy 0 rule 0
+Subcase 1: same rule on two ports
+---------------------------------
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+1. create filter rules on two ports::
-Test case: MAC_IPV6_TCP queue index mark
-========================================
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / mark / end
+ flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / end actions queue index 1 / mark / end
-1. create filter rules::
+ send matched packets::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
+ p_gtpu1 = Ether(src="a4:bf:01:51:27:ca", dst="00:11:22:33:44:55")/IP(src="192.168.0.20", dst="192.168.0.21")/UDP(dport=2152) \
+ /GTP_U_Header(gtp_type=255, teid=0x12345678)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/Raw('x'*20)
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+ send the packet to two ports, both are distributed to queue 1 with FDIR matched ID=0x0.
-3. verify rules can be listed and destroyed::
+2. list the rules on two ports::
testpmd> flow list 0
+ ID Group Prio Attr Rule
+ 0 0 0 i-- ETH IPV4 UDP GTPU GTP_PSC => QUEUE MARK
+ testpmd> flow list 1
+ ID Group Prio Attr Rule
+ 0 0 0 i-- ETH IPV4 UDP GTPU GTP_PSC => QUEUE MARK
- check the existing rule.
- destroy the rule::
+3. destroy rule 0 on port 0::
testpmd> flow destroy 0 rule 0
+ Flow rule #0 destroyed
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV6_SCTP queue index mark
-=========================================
-
-1. create filter rules::
-
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
-
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
-
-3. verify rules can be listed and destroyed::
+ list the rules on two ports::
testpmd> flow list 0
+ testpmd> flow list 1
+ ID Group Prio Attr Rule
+ 0 0 0 i-- ETH IPV4 UDP GTPU GTP_PSC => QUEUE MARK
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_IPV4_PAY queue index mark
-=================================================
-
-1. create filter rules::
+4. send the matched packet to port 0, it is redirected by RSS without FDIR matched ID.
+ send the matched packet to port 1, it is still redirected to queue 1 with FDIR matched ID=0x0.
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end
+5. destroy rule 0 on port 1::
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+ testpmd> flow destroy 1 rule 0
+ Flow rule #0 destroyed
-3. verify rules can be listed and destroyed::
+ list the rules on two ports::
testpmd> flow list 0
+ testpmd> flow list 1
- check the existing rule.
- destroy the rule::
+ there is no rule listed on both ports.
+ send the matched packet to port 0/1, it is redirected by RSS without FDIR matched ID.
- testpmd> flow destroy 0 rule 0
+Subcase 2: same input set, different actions on two ports
+---------------------------------------------------------
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+1. create filter rules on two ports::
-Test case: MAC_IPV4_TUN_IPV4_UDP queue group mark
-=================================================
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
+ flow create 1 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end
-1. create filter rules::
+ send matched packets to two ports::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 1 2 end / mark id 1 / end
+ pkt = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw('x' * 80)
-2. send 1 matched packet, check the packets are distributed to queue 1-2 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1-2 without "FDIR matched" printed.
+ the packet sent to port 0 is redirected to queue 1 with FDIR matched ID=0x1,
+ the packet sent to port 1 is redirected to queue 2 or queue 3 with FDIR matched ID=0x1.
-3. verify rules can be listed and destroyed::
+2. destroy rule 0 on both ports::
- testpmd> flow list 0
+ testpmd> flow flush 0
+ testpmd> flow flush 1
- check the existing rule.
- destroy the rule::
+ list the rules on two ports::
- testpmd> flow destroy 0 rule 0
+ testpmd> flow list 0
+ testpmd> flow list 1
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+ there is no rule listed on both ports.
+ send the matched packet to port 0/1, it is redirected by RSS without FDIR matched ID.
-Test case: MAC_IPV4_TUN_IPV4_TCP drop mark
-==========================================
+Subcase 3: two ports multi patterns count query
+-----------------------------------------------
1. create filter rules::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / mark id 1 / end
-
-2. send 1 matched packet, check the packets are dropped.
- send 1 mismatched packet, check the packets are not dropped without "FDIR matched" printed.
-
-3. verify rules can be listed and destroyed::
-
- testpmd> flow list 0
-
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
+ flow create 1 ingress pattern eth / ipv4 dst is 192.168.0.21 proto is 255 tos is 4 / end actions queue index 1 / mark id 1 / count identifier 0x1234 shared on / end
+ flow create 1 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / sctp src is 22 dst is 23 / end actions rss queues 6 7 end / mark id 2 / count identifier 0x1234 shared on / end
+ flow create 1 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / udp src is 22 dst is 23 / end actions rss queues 6 7 end / mark id 1 / count / end
+ flow create 1 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 hop is 2 tc is 1 / tcp src is 22 dst is 23 / end actions queue index 2 / mark / count / end
+ flow create 1 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / count / end
+ flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions drop / count / end
+ flow create 0 ingress pattern eth / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 / end actions queue index 1 / mark id 1 / count identifier 0x1234 shared on / end
- verify matched packets are dropped without "FDIR matched" printed.
- Then check there is no rule listed.
+2. send matched packets::
-Test case: MAC_IPV4_TUN_IPV4_SCTP queue index mark
-==================================================
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255, ttl=2, tos=4) / Raw('x' * 80)],iface="enp175s0f1", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1, hlim=2)/SCTP(sport=22,dport=23)/("X"*480)], iface="enp175s0f1", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1, hlim=2)/UDP(sport=22,dport=23)/("X"*480)], iface="enp175s0f1", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", tc=1, hlim=2)/TCP(sport=22,dport=23)/("X"*480)], iface="enp175s0f1", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/VXLAN()/Ether()/IP(src='192.168.0.20', dst='192.168.0.21')/("X"*480)], iface="enp175s0f1", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(dst="192.168.0.21", ttl=2, tos=4)/TCP(sport=22,dport=23)/Raw(load="X"*480)], iface="enp175s0f0", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", src="2001::2", nh=0, tc=1, hlim=2)/("X"*480)], iface="enp175s0f0", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(dst="192.168.0.21", ttl=2, tos=4)/TCP(sport=22,dport=23)/Raw(load="X"*480)], iface="enp175s0f1", count=10)
-1. create filter rules::
+ check the packets,
+ packet 1 to queue 1 of port 1, packet 2 to queue 6-7 of port 1, packet 3 to queue 6-7 of port 1,
+ packet 4 to queue 2 of port 1, packet 5 dropped of port 1,
+ packet 6 to dropped of port 0, packet 7 to queue 1 of port 0.
+ packet 8 received by port 1.
+ all the received packets have specified FDIR matched ID.
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
+3. query count::
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+ testpmd> flow query 1 0 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 20
+ bytes: 0
+ testpmd> flow query 1 1 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 20
+ bytes: 0
+ testpmd> flow query 1 2 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ testpmd> flow query 1 3 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ bytes: 0
+ testpmd> flow query 1 4 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ bytes: 0
+ testpmd> flow query 0 0 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
+ testpmd> flow query 0 1 count
+ COUNT:
+ hits_set: 1
+ bytes_set: 0
+ hits: 10
-3. verify rules can be listed and destroyed::
+4. verify rules can be listed correctly::
testpmd> flow list 0
+ testpmd> flow list 1
- check the existing rule.
- destroy the rule::
+5. destroy the rule::
- testpmd> flow destroy 0 rule 0
+ testpmd> flow flush 0
+ testpmd> flow flush 1
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+ verify matched packet are received without FDIR matched ID.
+ check there is no rule listed::
-Test case: MAC_IPV4_TUN_MAC_IPV4_PAY queue index mark
-=====================================================
+ testpmd> flow list 0
+ testpmd> flow list 1
-1. create filter rules::
+ query the count number, all reported::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end
+ Flow rule #[ID] not found
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+Test case: Stress test
+======================
-3. verify rules can be listed and destroyed::
+Subcase 1: port stop/port start/port reset
+------------------------------------------
- testpmd> flow list 0
+1. create a rule::
- check the existing rule.
- destroy the rule::
+ flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 1 / mark / end
- testpmd> flow destroy 0 rule 0
+2. list the rule and send matched packet::
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21") / Raw('x' * 80)],iface="enp175s0f0")
-Test case: MAC_IPV4_TUN_MAC_IPV4_UDP queue index mark
-=====================================================
+ check the packet are redirected to queue 1 with FDIR matched ID=0x0
-1. create filter rules::
+3. stop the port, then start the port::
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
+ testpmd> port stop 0
+ testpmd> port start 0
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+4. show the rule list, the rule is still there.
-3. verify rules can be listed and destroyed::
+5. verify matched packet can be still redirected to queue 1 with FDIR matched ID=0x0.
- testpmd> flow list 0
+6. reset pf::
- check the existing rule.
- destroy the rule::
+ testpmd> port stop 0
+ testpmd> port reset 0
+ testpmd> port start 0
- testpmd> flow destroy 0 rule 0
+7. show the rule list, the rule is still there.
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+8. verify matched packet can be still redirected to queue 1 with FDIR matched ID=0x0.
+Subcase 2: add/delete rules
+---------------------------
-Test case: MAC_IPV4_TUN_MAC_IPV4_TCP queue index mark
-=====================================================
+1. create two rules::
-1. create filter rules::
+ flow create 0 ingress pattern eth / ipv4 proto is 255 / end actions queue index 1 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 2 3 end / mark id 1 / end
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
+ return the message::
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+ Flow rule #0 created
+ Flow rule #1 created
-3. verify rules can be listed and destroyed::
+ list the rules::
testpmd> flow list 0
+ ID Group Prio Attr Rule
+ 0 0 0 i-- ETH IPV4 => QUEUE MARK
+ 1 0 0 i-- ETH IPV4 TCP => RSS MARK
- check the existing rule.
- destroy the rule::
-
- testpmd> flow destroy 0 rule 0
-
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
-
-Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP queue index mark
-======================================================
+2. delete the rules::
-1. create filter rules::
+ testpmd> flow flush 0
- flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / sctp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
+3. repeate the create and delete operations in step1-2 15360 times.
-2. send 1 matched packet, check the packets are distributed to queue 1 with "FDIR matched ID=0x1" printed.
- send 1 mismatched packet, check the packets are not distributed to queue 1 without "FDIR matched" printed.
+4. create the two rules one more time, check the rules listed.
-3. verify rules can be listed and destroyed::
+5. send matched packet::
- testpmd> flow list 0
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", proto=255)/Raw('x' * 80)],iface="enp175s0f0")
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp175s0f0")
- check the existing rule.
- destroy the rule::
+ check packet 1 is redirected to queue 1 with FDIR matched ID=0x0
+ check packet 2 is redirected to queue 2 or queue 3 with FDIR matched ID=0x1
- testpmd> flow destroy 0 rule 0
+Subcase 3: delete rules
+-----------------------
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed.
+1. create 3 rules and destory the first rule::
-Test case: multirules mark
-==========================
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 1 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 24 / end actions queue index 2 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 25 / end actions queue index 3 / mark / end
-1. create filter rules::
+ there are rule 0/1/2 listed::
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / udp src is 22 dst is 23 / end actions queue index 1 / mark id 1 / end
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 2 / mark id 1 / end
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / sctp src is 22 dst is 23 / end actions queue index 1 / mark id 2 / count / end
+ flow list 0
-2. send matched packet::
+ send packets match rule 0, rule 1 and rule 2,
+ Verify all packets can be redirected to expected queue and mark.
+ destory the first rule::
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /UDP(sport=22,dport=23)/Raw('x' * 80)],iface="enp175s0f0")
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /TCP(sport=22,dport=23)/Raw('x' * 80)],iface="enp175s0f0")
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", ttl=2, tos=4) /SCTP(sport=22,dport=23)/Raw('x' * 80)],iface="enp175s0f0")
+ flow destroy 0 rule 0
- check packet 1 to queue 1 with "FDIR matched ID=0x1" printed.
- packet 2 to queue 2 with "FDIR matched ID=0x1" printed.
- packet 3 to queue 1 with "FDIR matched ID=0x2" printed.
+ list the rules, verify there are only rule 1 and rule 2 listed.
+ send packet matched rule 0, verify it is received without FDIR matched ID.
+ send packets matched rule 1 and rule 2, Verify all packets be redirected and mark.
+ flush rules::
-3. query count::
+ flow flush 0
- testpmd> flow query 0 2 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 1
- bytes: 0
+ send packets match rule 0, rule 1 and rule 2, verify all packets can not mark.
-4. verify rules can be listed and destroyed::
+2. create 3 rules and destory the second rule::
- testpmd> flow list 0
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 1 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 24 / end actions queue index 2 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 25 / end actions queue index 3 / mark / end
- check 3 rules listed.
- destroy the rule 0::
+ there are rule 0/1/2 listed::
- testpmd> flow destroy 0 rule 0
+ flow list 0
- verify packet 1 is distributed to different queue without "FDIR matched" printed.
- Then check there is 2 rules listed.
- packet 2 to queue 2 with "FDIR matched ID=0x1" printed.
- packet 3 to queue 1 with "FDIR matched ID=0x2" printed.
- query count::
+ send packets match rule 0, rule 1 and rule 2,
+ Verify all packets can be redirected to expected queue and mark.
+ destory the second rule::
- testpmd> flow query 0 2 count
- COUNT:
- hits_set: 1
- bytes_set: 0
- hits: 2
- bytes: 0
+ flow destroy 0 rule 1
+ list the rules, verify there are only rule 0 and rule 2 listed.
+ send packet matched rule 1, verify it is received without FDIR matched ID.
+ send packets matched rule 0 and rule 2, Verify all packets be redirected and mark.
flush rules::
- testpmd> flow flush 0
+ flow flush 0
- verify matched packets are distributed to different queue without "FDIR matched" printed.
- Then check there is no rule listed, and no count exist.
+ send packets match rule 0, rule 1 and rule 2, verify all packets can not mark.
-Test case: mark wrong parameters
-================================
+3. create 3 rules and destory the third rule::
-1. create filter rules::
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 1 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 24 / end actions queue index 2 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.56.0 dst is 192.1.0.0 tos is 4 / tcp src is 22 dst is 25 / end actions queue index 3 / mark / end
- flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 / end actions queue index 1 / mark id 4294967296 / end
+ there are rule 0/1/2 listed::
- the flow failed to be created.
+ flow list 0
-2. list the flow::
+ send packets match rule 0, rule 1 and rule 2,
+ Verify all packets can be redirected to expected queue and mark.
+ destory the last rule::
- testpmd> flow list 0
+ flow destroy 0 rule 2
- Then check there is no rule listed.
+ list the rules, verify there are only rule 0 and rule 1 listed.
+ send packet matched rule 2, verify it is received without FDIR matched ID.
+ send packets matched rule 0 and rule 1, Verify all packets be redirected and mark.
+ flush rules::
-Test case: pattern conflict flow
-================================
+ flow flush 0
-MAC_IPV4_PAY and MAC_IPV4_UDP are conflict patterns.
-so if create one, then create the other one, the second flow will be
-set to switch filer.
-IPV4_UDP packet can match MAC_IPV4_PAY rule.
-but IPV4_PAY packet cannot match MAC_IPV4_UDP rule.
+ send packets match rule 0, rule 1 and rule 2, verify all packets can not mark.
-1. set MAC_IPV4_PAY firstly::
+Subcase 4: max rules
+--------------------
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / end
+1. create 15360 rules on port 0::
- the first flow is set to fdir filter, send matched packet::
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.100.20 dst is 192.168.0.0 / end actions queue index 1 / mark / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.100.20 dst is 192.168.0.1 / end actions queue index 1 / mark / end
+ ......
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.100.20 dst is 192.168.59.255 / end actions queue index 1 / mark / end
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/Raw('x' * 80)],iface="enp175s0f0", count=10)
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21") /UDP(sport=22, dport=23)/ Raw('x' * 80)],iface="enp175s0f0", count=10)
+ all the rules are created successfully.
- the two type packets both to queue 1.
- then create MAC_IPV4_UDP flow, it is set to switch filer::
+2. create one more rule::
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 2 / end
+ flow create 0 ingress pattern eth / ipv4 src is 192.168.100.20 dst is 192.168.60.0 / end actions queue index 1 / mark / end
- send same packets, IPV4_PAY packet to queue 1, IPV4_UDP packet to queue 2.
+ the rule failed to create. return the error message::
-2. set MAC_IPV4_UDP firstly::
+ Failed to create flow
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 2 / end
+3. check the rule list, there are 15360 rules listed.
- send matched packet::
+4. send matched packets for rule 0 and rule 15359::
- sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21") /UDP(sport=22, dport=23)/ Raw('x' * 80)],iface="enp175s0f0", count=10)
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.100.20",dst="192.168.0.0")/Raw('x' * 80)],iface="enp175s0f0")
+ sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.100.20",dst="192.168.59.255")/Raw('x' * 80)],iface="enp175s0f0")
- packet to queue 2.
- then create MAC_IPV4_PAY flow::
+ check all packets are redirected to expected queue with FDIR matched ID=0x0
- flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.21 / end actions queue index 1 / end
+5. flush all the rules, check the rule list,
+ there is no rule listed.
- send same packet, packet to queue 1, because the packet match switch filter first.
+6. verify matched packets for rule 0 and rule 15359 received without FDIR matched ID.
--
2.7.4
next reply other threads:[~2020-04-01 0:37 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-01 7:51 Peng Yuan [this message]
2020-04-01 5:54 ` Tu, Lijuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1585727515-149718-1-git-send-email-yuan.peng@intel.com \
--to=yuan.peng@intel.com \
--cc=dts@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).