From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2569AA0546; Fri, 14 Feb 2020 09:35:53 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D6FC91BC25; Fri, 14 Feb 2020 09:35:52 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id D9FF85B3C for ; Fri, 14 Feb 2020 09:35:50 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Feb 2020 00:35:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,439,1574150400"; d="scan'208";a="347913786" Received: from unknown (HELO dpdk-wenjielx-dtspatch135.sh.intel.com) ([10.240.176.135]) by fmsmga001.fm.intel.com with ESMTP; 14 Feb 2020 00:35:48 -0800 From: Peng Yuan To: dts@dpdk.org Cc: Peng Yuan Date: Fri, 14 Feb 2020 16:41:17 +0800 Message-Id: <1581669677-128068-1-git-send-email-yuan.peng@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH]test_plans: add passthru to cvl_fdir_test_plan.rst X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" Add passthru action and modify some GTPU input set format Signed-off-by: Peng Yuan diff --git a/test_plans/cvl_fdir_test_plan.rst b/test_plans/cvl_fdir_test_plan.rst index 79e9da4..0b0f4de 100644 --- a/test_plans/cvl_fdir_test_plan.rst +++ b/test_plans/cvl_fdir_test_plan.rst @@ -34,9 +34,9 @@ CVL:Classification:Flow Director ================================ -* Enable fdir filter for IPv4/IPv6 + TCP/UDP/SCTP (OS default package) -* Enable fdir filter for UDP tunnel: Vxlan / NVGRE (OS default package) -* Enable fdir filter for GTP (comm #1 package) +Enable fdir filter for IPv4/IPv6 + TCP/UDP/SCTP (OS default package) +Enable fdir filter for UDP tunnel: Vxlan / NVGRE (OS default package) +Enable fdir filter for GTP (comm #1 package) Pattern and input set --------------------- @@ -77,43 +77,36 @@ Pattern and input set | | MAC_IPV4_TUN_MAC_IPV4_SCTP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | +------------------------------+----------------------------+-------------------------------------------------------------------------------+ | GTP-U data packet types | | | - | IPv4 transport, IPv4 payload | MAC_IPV4_GTPU_IPV4_PAY | [TEID], [QFI] | + | IPv4 transport, IPv4 payload | MAC_IPV4_GTPU | [TEID] | +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_GTPU_IPV4_UDP | [TEID], [QFI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_GTPU_IPV4_TCP | [TEID], [QFI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_GTPU_IPV4_SCTP | [TEID], [QFI] | + | | MAC_IPV4_GTPU_EH | [TEID], [QFI] | +------------------------------+----------------------------+-------------------------------------------------------------------------------+ -.. note:: - - 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. - 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 +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. + 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 Action type ----------- - * queue index - * drop - * rss queues - * count identifier 0x1234 shared on|off - * mark id + queue index + drop + rss queues + passthru + count identifier 0x1234 shared on|off + mark id Prerequisites ============= 1. Hardware: - - - columbiaville_25g/columbiaville_100g + columbiaville_25g/columbiaville_100g 2. Software: - - - DPDK: http://dpdk.org/git/dpdk - - scapy: http://www.secdev.org/projects/scapy/ + DPDK: http://dpdk.org/git/dpdk + scapy: http://www.secdev.org/projects/scapy/ 3. Copy specific ice package to /lib/firmware/intel/ice/ddp/ice.pkg Then reboot server, and compile DPDK @@ -133,9 +126,7 @@ Prerequisites testpmd> port config 0 udp_tunnel_port add vxlan 4789 testpmd> start -.. note:: - - if need two ports environment, launch ``testpmd`` with the following arguments:: + 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 @@ -192,8 +183,8 @@ Send packets matched packets:: - pkt1 = 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) - pkt2 = Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, proto=255, ttl=2, tos=4)/Raw('x' * 80) + 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="enp175s0f0") + sendp([Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21", frag=1, proto=255, ttl=2, tos=4)/Raw('x' * 80)],iface="enp175s0f0") mismatched packets:: @@ -393,7 +384,7 @@ Send packets sendp([Ether(dst="00:11:22:33:44:55")/IP(dst='192.168.1.15')/UDP(sport=200, dport=4790)/VXLAN(flags=0xc)/IP(src='192.168.0.20', dst='192.168.0.21')/UDP(sport=22, dport=23)/Raw('x' * 80)], iface="enp175s0f0") sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/VXLAN()/IP(dst="192.168.0.21", src="192.168.0.20")/SCTP(sport=22,dport=23)/("X"*480)], iface="enp175s0f0") -* MAC_IPV4_GTPU_IPV4_PAY +* MAC_IPV4_GTPU_EH matched packets:: @@ -402,14 +393,43 @@ Send packets 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) mismatched packets:: - 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)/IP()/SCTP()/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=0x1234567)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP()/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=0x35)/IP()/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()/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=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) +* 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) + + 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 =================================== @@ -491,11 +511,10 @@ Test case: MAC_IPV4_TCP 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 / tcp src is 22 dst is 23 / end actions queue index 63 / 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 63 / end -2. send matched packets, check the packets is distributed to queue 63:: - - send mismatched packets, check the packets are not distributed to queue 63. +2. send matched packets, check the packets is distributed to queue 63. + send mismatched packets, check the packets are not distributed to queue 63. 3. verify rules can be listed and destroyed:: @@ -844,6 +863,388 @@ Test case: queue index wrong parameters flow 1 can be created successfully, flow 2 and flow 3 failed to be created cause of confliction. +Test case: MAC_IPV4_PAY passthru/count +====================================== + +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 + +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:: + + flow query 0 0 count + count: + hits_set: 1 + bytes_set: 0 + hits: 2 + 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 redirected to the same queue. + check there is no rule listed. + +Test case: MAC_IPV4_PAY passthru/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 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_UDP passthru/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 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TCP passthru/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 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_SCTP passthru/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 / sctp src is 22 dst is 23 tag is 1 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV6_PAY passthru/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 proto is 1 hop is 2 tc is 1 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV6_UDP passthru/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 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV6_TCP passthru/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 / tcp src is 22 dst is 23 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV6_SCTP passthru/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 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_IPV4_PAY passthru/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 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_IPV4_UDP passthru/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 / udp src is 22 dst is 23 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_IPV4_TCP passthru/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 / tcp src is 22 dst is 23 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_IPV4_SCTP passthru/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 / sctp src is 22 dst is 23 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_MAC_IPV4_PAY passthru/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 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_MAC_IPV4_UDP passthru/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 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_MAC_IPV4_TCP passthru/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 / tcp src is 22 dst is 23 / 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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + +Test case: MAC_IPV4_TUN_MAC_IPV4_SCTP passthru/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 + +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 packet is redirected to the same queue without FDIR ID. + check there is no rule listed. + Test case: MAC_IPV4_PAY drop ============================ @@ -1577,12 +1978,12 @@ all the above five rules are failed to created. 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_IPV4_PAY queue index -============================================= +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 / ipv4 / 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 2. send matched packets, check the packets are distributed to queue 1. send mismatched packets, check the packets are not distributed to queue 1. @@ -1599,12 +2000,122 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY queue index verify matched packets are not distributed to queue 1. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY drop +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 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 / gtp_psc qfi is 0x34 / ipv4 / 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 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 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. @@ -1621,12 +2132,12 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY drop verify matched packets are not dropped. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY queue group -============================================= +Test case: MAC_IPV4_GTPU queue group +==================================== 1. create filter rules:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / ipv4 / end actions rss queues 0 1 end / end + flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / 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. @@ -1643,11 +2154,11 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY queue group verify matched packets are not distributed to queue group. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY mark/count/query -================================================== +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 / ipv4 / end actions queue index 2 / mark id 2 / count / end + 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. @@ -1657,7 +2168,7 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY mark/count/query count: hits_set: 1 bytes_set: 0 - hits: 5 + hits: 10 bytes: 0 3. verify rules can be listed and destroyed:: @@ -1672,20 +2183,21 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY mark/count/query verify matched packets are not distributed to queue 2, and no FDIR. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY TEID mark/count/query -======================================================= +Test case: MAC_IPV4_GTPU mark/count/query +========================================= 1. create filter rules on port 1:: - flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / ipv4 / 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 + 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, check the packets are distributed to queue in 0-63, the FDIR=0x64:: 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) send mismatched packets, check the packets have not FDIR:: - 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()/UDP()/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)/IP()/Raw('x'*20) check the count number:: @@ -1693,7 +2205,7 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY TEID mark/count/query count: hits_set: 1 bytes_set: 0 - hits: 1 + hits: 2 bytes: 0 3. verify rules can be listed and destroyed:: @@ -1708,20 +2220,20 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY TEID mark/count/query verify matched packets are distributed to queue in 0-63, and no FDIR. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY QFI mark/count/query -======================================================= +Test case: MAC_IPV4_GTPU_EH QFI mark/count/query +================================================ 1. create filter rules on port 1:: - flow create 1 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc qfi is 0x34 / ipv4 / end actions drop / mark id 3 / count / end + flow create 1 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc qfi is 0x34 / end actions drop / mark id 3 / count / end 2. send matched packets, check the packets are dropped:: - 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()/TCP()/Raw('x'*20) + 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) send mismatched packets, check the packets are not dropped, no FDIR:: - 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_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) check the count number:: @@ -1744,26 +2256,62 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY QFI mark/count/query verify matched packets are not dropped, and no FDIR. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY multirules -============================================ +Test case: MAC_IPV4_GTPU_EH without QFI mark/count/query +======================================================== 1. create filter rules on port 0:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / ipv4 / end actions queue index 1 / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x35 / ipv4 / end actions queue index 2 / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x35 / ipv4 / end actions queue index 3 / end + flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / end actions queue index 15 / mark id 3 / count / end + +2. send matched packets, check the packets are distributed to queue 15, the FDIR=0x3:: + + 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) + + send mismatched packets, check the packets are not distributed to queue 15, no FDIR:: + + 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) + + check the count number:: + + flow query 0 0 count + count: + hits_set: 1 + bytes_set: 0 + hits: 1 + 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 15, and no FDIR. + Then check there is no rule listed. + +Test case: MAC_IPV4_GTPU_EH multirules +====================================== + +1. create filter rules on port 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 the three rules are created successfully. then create the following rules:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x35 / ipv4 / end actions queue index 3 / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x35 / ipv4 / end actions queue index 4 / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x75 / ipv4 / end actions queue index 4 / end + 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 the three rules are failed to created. then create the following rule:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x34 / ipv4 / end actions queue index 3 / end + flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x1234567 / gtp_psc qfi is 0x34 / end actions queue index 3 / end the rule is created successfully. @@ -1791,13 +2339,13 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY multirules verify matched packets are not distributed to same queue. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY two ports -=========================================== +Test case: MAC_IPV4_GTPU_EH two ports +===================================== 1. create filter rules on two ports:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / ipv4 / end actions queue index 1 / end - flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / ipv4 / 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 / gtp_psc qfi is 0x34 / end actions queue index 1 / end send matched packets:: @@ -1807,8 +2355,8 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY two ports 2. create filter rules on two ports:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x35 / ipv4 / end actions queue index 2 / end - flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x35 / ipv4 / end actions queue index 3 / 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 send matched packets:: @@ -1823,16 +2371,17 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY two ports 4. create filter rules on two ports:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x34 / ipv4 / end actions queue index 1 / end - flow create 1 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc / ipv4 / end actions queue index 2 / 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 send matched packets:: 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) - send the packet to two ports, it is not distributed to queue 1 of port 0, - it is distributed to queue 2 of port 1. - + 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. 5. verify rules can be listed and destroyed:: @@ -1848,13 +2397,13 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY two ports verify matched packets are not distributed to expected queue. Then check there is no rule listed. -Test case: MAC_IPV4_GTPU_IPV4_PAY wrong parameters -================================================== +Test case: MAC_IPV4_GTPU_EH wrong parameters +============================================ 1. create filter rules on port 0:: - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / gtp_psc qfi is 0x100 / ipv4 / end actions queue index 1 / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc qfi is 0x5 / ipv4 / end actions queue index 2 / end + 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 the two flows can not be created successfully. @@ -1864,6 +2413,21 @@ Test case: MAC_IPV4_GTPU_IPV4_PAY wrong parameters there is no flow listed. +Test case: MAC_IPV4_GTPU wrong parameters +========================================= + +1. create filter rules on port 0:: + + flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x100000000 / end actions queue index 1 / end + + the flow can not be created successfully. + +2. list the flow:: + + testpmd> flow list 0 + + there is no flow listed. + Test case: count query identifier share ======================================= -- 2.7.4