[dts] [PATCH v3]test_plans: adapt to rss refactor and add GTPoGRE packets
Peng Yuan
yuan.peng at intel.com
Tue Feb 2 20:13:58 CET 2021
According to the RSS refactor, we changed the negative case, toeplitz case and symmetric cases
in such three test plans:
cvl_advanced_rss_test_plan.rst
cvl_advanced_rss_gtpu_test_plan.rst
cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst
add GTPoGRE packets check to cvl_advanced_rss_gtpu_test_plan.rst
Signed-off-by: Peng Yuan <yuan.peng at intel.com>
diff --git a/test_plans/cvl_advanced_rss_gtpu_test_plan.rst b/test_plans/cvl_advanced_rss_gtpu_test_plan.rst
index 1d5a1a2f..604aeb34 100644
--- a/test_plans/cvl_advanced_rss_gtpu_test_plan.rst
+++ b/test_plans/cvl_advanced_rss_gtpu_test_plan.rst
@@ -60,51 +60,51 @@ Pattern and input set
| IPv4/IPv6 transport | | |
| IPv4/IPv6 payload | | |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_GTPU_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_GTPU_EH_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_GTPU_EH_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_EH_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_EH_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
.. table::
@@ -240,6 +240,19 @@ run the same test steps as below:
================================
Pattern: outer ipv4 + inner ipv4
================================
+GTPoGRE is imported in DPDK-21.02.
+The Ptype is parsed same as GTP packet, so they match gtp RSS rule.
+We just need to add the GTPoGRE packet to the packets check.
+we need to add GTPoGRE packet to "basic hit pattern packets",
+"hit pattern/defined input set" and "hit pattern/not defined input set".
+the GTPoGRE packet format in this pattern is to add::
+
+ IP(proto=0x2F)/GRE(proto=0x0800)/
+
+after Ether layer, before IP layer, just like::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)],iface="enp216s0f0")
+
Test case: MAC_IPV4_GTPU_EH_IPV4 with UL/DL
===========================================
@@ -590,6 +603,21 @@ hit pattern/not defined input set::
sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=22, dport=33)/("X"*480)],iface="enp216s0f0")
+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_IPV4
+------------------------------------------
+rule::
+
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+
+hit pattern/defined input set::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22, dport=23)/("X"*480)],iface="enp216s0f0")
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22, dport=23)/("X"*480)],iface="enp216s0f0")
+
+hit pattern/not defined input set::
+
+ sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32, dport=33)/("X"*480)],iface="enp216s0f0")
+
Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP
-------------------------------------
rule::
@@ -698,6 +726,14 @@ rule::
packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC.
+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_IPV4
+------------------------------------------
+rule::
+
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+
+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_IPV4.
+
Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP
-------------------------------------
rule::
@@ -1049,6 +1085,22 @@ hit pattern/not defined input set::
sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=22, dport=33)/("X"*480)],iface="enp216s0f0")
sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=22, dport=33)/("X"*480)],iface="enp216s0f0")
+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_IPV4
+---------------------------------------
+rule::
+
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+
+hit pattern/defined input set::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22, dport=23)/("X"*480)],iface="enp216s0f0")
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22, dport=23)/("X"*480)],iface="enp216s0f0")
+
+hit pattern/not defined input set::
+
+ sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32, dport=33)/("X"*480)],iface="enp216s0f0")
+ sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32, dport=33)/("X"*480)],iface="enp216s0f0")
+
Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP
----------------------------------
rule::
@@ -1362,6 +1414,21 @@ hit pattern/not defined input set::
sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=22,dport=33)/("X"*480)],iface="enp216s0f0")
+Subcase: MAC_IPV4_GTPU_IPV4_UDP_IPV4
+------------------------------------
+rule::
+
+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+
+hit pattern/defined input set::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)],iface="enp216s0f0")
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)],iface="enp216s0f0")
+
+hit pattern/not defined input set::
+
+ sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=33)/("X"*480)],iface="enp216s0f0")
+
Subcase: MAC_IPV4_GTPU_IPV4_UDP
-------------------------------
rule::
@@ -1448,6 +1515,14 @@ reconfig all the cases of "Pattern: outer ipv4 + inner ipv4"
change the packet's inner L3 layer from IP to IPv6;
change the ipv4 address to ipv6 address.
+the GTPoGRE packet format in this pattern is to add::
+
+ IP(proto=0x2F)/GRE(proto=0x0800)/
+
+after Ether layer, before IP layer, just like::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)],iface="enp216s0f0")
+
================================
Pattern: outer ipv6 + inner ipv4
================================
@@ -1459,6 +1534,14 @@ reconfig all the cases of "Pattern: outer ipv4 + inner ipv4"
packets:
change the packet's outer L3 layer from IP to IPv6;
+the GTPoGRE packet format in this pattern is to add::
+
+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/
+
+after Ether layer, before IP layer, just like::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)],iface="enp216s0f0")
+
================================
Pattern: outer ipv6 + inner ipv6
================================
@@ -1473,6 +1556,13 @@ reconfig all the cases of "Pattern: outer ipv4 + inner ipv4"
change the packet's inner L3 layer from IP to IPv6;
change the ipv4 address to ipv6 address.
+the GTPoGRE packet format in this pattern is to add::
+
+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/
+
+after Ether layer, before IP layer, just like::
+
+ sendp([Ether(dst="68:05:CA:BB:26:E0")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)],iface="enp216s0f0")
Test case: negative cases
=========================
@@ -1486,9 +1576,6 @@ Subcase: invalid input set
testpmd> flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end
ice_flow_create(): Failed to create flow
port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Invalid input pattern: Invalid argument
- testpmd> flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
- ice_flow_create(): Failed to create flow
- port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Invalid input pattern: Invalid argument
testpmd> flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types udp end key_len 0 queues end / end
ice_flow_create(): Failed to create flow
port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Invalid input pattern: Invalid argument
@@ -1502,7 +1589,6 @@ Subcase: invalid input set
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end
- flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types udp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 gtpu end key_len 0 queues end / end
@@ -1700,6 +1786,14 @@ Test case: default pattern supported
Test case: inner L4 protocal hash
=================================
+Note: add two GTPoGRE packets in each subcase with::
+
+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/
+
+or::
+
+ IP(proto=0x2F)/GRE(proto=0x0800)/
+
Subcase: MAC_IPV4_GTPU_IPV4_UDP/TCP
-----------------------------------
1. start testpmd without disable rss::
@@ -2547,11 +2641,10 @@ all the test cases run the same test steps as below:
check both the packets are distributed to queues by rss.
note: if there is not this type packet in the case, omit this step.
7. distroy the rule and list rule.
-8. send the basic packet.
- if the rule inner protocol is IPV4_UDP/TCP or IPV6_UDP/TCP,
- check the received packet has different hash value in step 4.
- if the rule inner protocol is IPV4/IPV6,
- check the received packet has not hash value, and distributed to queue 0.
+8. send the same packets in step3, only switch ip address.
+ check the received packets which switched ip address have different hash value.
+
+Note: the GTPoGRE packets need to be added to symmetric cases as a Ptype, just like toeplitz cases.
==========================================
Pattern: symmetric outer ipv4 + inner ipv4
@@ -2899,7 +2992,6 @@ Test case: symmetric negative cases
flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 l3-dst-only end key_len 0 queues end / end
flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end
flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end
- flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end
flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end
flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types tcp end key_len 0 queues end / end
flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp l3-src-only end key_len 0 queues end / end
@@ -2914,7 +3006,6 @@ Test case: symmetric negative cases
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 l3-dst-only end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end
- flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types tcp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp l3-src-only end key_len 0 queues end / end
diff --git a/test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst b/test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst
index 52702686..09928615 100644
--- a/test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst
+++ b/test_plans/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan.rst
@@ -53,18 +53,18 @@ Pattern and input set
| | MAC_PPPOE_IPV4_PAY | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, ipv4 |
| +---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOE_IPV4_UDP_PAY | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv4-udp |
+ | | | l4-src-only, l4-dst-only, ipv4-udp, ipv4 |
| +---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOE_IPV4_TCP_PAY | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv4-tcp |
+ | | | l4-src-only, l4-dst-only, ipv4-tcp, ipv4 |
| PPPOE +---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOE_IPV6_PAY | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, ipv6 |
| +---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOE_IPV6_UDP_PAY | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv6-udp |
+ | | | l4-src-only, l4-dst-only, ipv6-udp, ipv6 |
| +---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOE_IPV6_TCP_PAY | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv6-tcp |
+ | | | l4-src-only, l4-dst-only, ipv6-tcp, ipv6 |
| +---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOE_PAY | eth, l2-src-only, l2-dst-only, pppoe |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
@@ -2110,6 +2110,59 @@ Subcase 12: MAC_PPPOE_IPV4_UDP_PAY_L3_SRC_ONLY_L3_DST_ONLY_L4_SRC_ONLY_L4_DST_ON
4. send packets mismatched the pattern, check the hash values not exist.
+5. destroy the rule::
+
+ testpmd> flow destroy 0 rule 0
+ testpmd> flow list 0
+
+ check the rule not exists in the list.
+ send the matched packets, check the hash values of the packets are not exist.
+
+Subcase 13: MAC_PPPOE_IPV4_UDP_PAY_IPV4
+---------------------------------------
+
+1. validate a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY::
+
+ testpmd> flow validate 0 ingress pattern eth / pppoes / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+
+ get the message::
+
+ Flow rule validated
+
+ check the flow list::
+
+ testpmd> flow list 0
+
+ check the rule not exists in the list.
+
+2. create a rule for RSS type of MAC_PPPOE_IPV4_UDP_PAY::
+
+ testpmd> flow create 0 ingress pattern eth / pppoes / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+ testpmd> flow list 0
+
+ check the rule exists in the list.
+
+3. send matched packets
+
+ * MAC_PPPOE_IPV4_UDP_PAY packet::
+
+ sendp([Ether(src="00:11:22:33:44:55", dst="10:22:33:44:55:66")/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x"*80)],iface="ens786f0")
+
+ change the fields [Source IP][Dest IP], send packets::
+
+ sendp([Ether(src="00:11:22:33:44:55", dst="10:22:33:44:55:66")/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src="192.168.1.3", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x"*80)],iface="ens786f0")
+ sendp([Ether(src="00:11:22:33:44:55", dst="10:22:33:44:55:66")/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src="192.168.1.1", dst="192.168.1.7")/UDP(sport=25,dport=23)/Raw("x"*80)],iface="ens786f0")
+ sendp([Ether(src="00:11:22:33:44:55", dst="10:22:33:44:55:66")/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src="192.168.1.3", dst="192.168.1.7")/UDP(sport=25,dport=23)/Raw("x"*80)],iface="ens786f0")
+
+ check the hash values are different from the first packet.
+ change other fields, send packets::
+
+ sendp([Ether(src="00:11:22:33:44:53", dst="10:22:33:44:55:99")/PPPoE(sessionid=7)/PPP(proto=0x0021)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=19,dport=99)/Raw("x"*80)],iface="ens786f0")
+
+ check the hash values are the same as the first packet.
+
+4. send packets mismatched the pattern, check the hash values not exist.
+
5. destroy the rule::
testpmd> flow destroy 0 rule 0
diff --git a/test_plans/cvl_advanced_rss_test_plan.rst b/test_plans/cvl_advanced_rss_test_plan.rst
index 729a6897..8197e56c 100644
--- a/test_plans/cvl_advanced_rss_test_plan.rst
+++ b/test_plans/cvl_advanced_rss_test_plan.rst
@@ -56,74 +56,74 @@ Pattern and input set
| IPv4/IPv6 + TCP/UDP/SCTP | MAC_IPV4 | eth, l2-src-only, l2-dst-only, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_UDP | eth, l2-src-only, l2-dst-only, ipv4-udp, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only |
+ | | | l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_TCP | eth, l2-src-only, l2-dst-only, ipv4-tcp, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only |
+ | | | l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_SCTP | eth, l2-src-only, l2-dst-only, ipv4-sctp, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only |
+ | | | l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6 | eth, l2-src-only, l2-dst-only, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_UDP | eth, l2-src-only, l2-dst-only, ipv6-udp, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only |
+ | | | l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_TCP | eth, l2-src-only, l2-dst-only, ipv6-tcp, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only |
+ | | | l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_SCTP | eth, l2-src-only, l2-dst-only, ipv6-sctp, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only |
+ | | | l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| GTP-U data packet types | MAC_IPV4_GTPU_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
| IPv4/IPv6 transport | | |
| IPv4/IPv6 payload | | |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_GTPU_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_GTPU_EH_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV4_GTPU_EH_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV4_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV4_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_EH_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_IPV6_GTPU_EH_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
- | | MAC_IPV6_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |
+ | | MAC_IPV6_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| VLAN | MAC_VLAN_IPV4 | c-vlan |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
@@ -144,24 +144,24 @@ Pattern and input set
| PPPOES | MAC_PPPOES_IPV4 | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV4_UDP | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv4-udp |
+ | | | l4-src-only, l4-dst-only, ipv4-udp, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV4_TCP | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv4-tcp |
+ | | | l4-src-only, l4-dst-only, ipv4-tcp, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV4_SCTP | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv4-sctp |
+ | | | l4-src-only, l4-dst-only, ipv4-sctp, ipv4 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV6 | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV6_UDP | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv6-udp |
+ | | | l4-src-only, l4-dst-only, ipv6-udp, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV6_TCP | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv6-tcp |
+ | | | l4-src-only, l4-dst-only, ipv6-tcp, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES_IPV6_SCTP | eth, l2-src-only, l2-dst-only, l3-src-only, l3-dst-only, |
- | | | l4-src-only, l4-dst-only, ipv6-udp |
+ | | | l4-src-only, l4-dst-only, ipv6-udp, ipv6 |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
| | MAC_PPPOES | eth, l2-src-only, l2-dst-only, pppoe |
+-------------------------------+---------------------------+----------------------------------------------------------------------------------+
@@ -945,6 +945,33 @@ nvgre packet::
sendp([Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=32,dport=23)/("X"*480)], iface="ens786f0")
+Subcase: MAC_IPV4_UDP_IPV4
+--------------------------
+1. create rss rule::
+
+ flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+
+2. hit pattern/defined input set:
+ipv4-udp packets::
+
+ sendp([Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)],iface="ens786f0")
+ sendp([Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)],iface="ens786f0")
+
+nvgre packet::
+
+ sendp([Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)], iface="ens786f0")
+ sendp([Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)], iface="ens786f0")
+
+
+3. hit pattern/not defined input set:
+ipv4-udp packets::
+
+ sendp([Ether(dst="00:11:22:33:44:53", src="68:05:CA:BB:27:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=33)/("X"*480)],iface="enp134s0f0")
+
+nvgre packet::
+
+ sendp([Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=233/("X"*480)], iface="ens786f0")
+
Subcase: MAC_IPV4_UDP_ALL
-------------------------
1. create rss rule::
@@ -1641,6 +1668,31 @@ ipv4_udp_vxlan_ipv6_udp packet::
sendp([Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)],iface="ens786f0")
+Subcase: MAC_IPV6_UDP_IPV6
+--------------------------
+1. create rss rule::
+
+ flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6 end key_len 0 queues end / end
+
+2. hit pattern/defined input set:
+ipv6-udp packets::
+
+ sendp([Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)],iface="enp134s0f0")
+ sendp([Ether(dst="00:11:22:33:44:55", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)],iface="enp134s0f0")
+
+ipv4_udp_vxlan_ipv6_udp packet::
+
+ sendp([Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)],iface="ens786f0")
+ sendp([Ether(src="00:11:22:33:44:55", dst="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)],iface="ens786f0")
+
+3. hit pattern/not defined input set:
+ipv6-udp packets::
+
+ sendp([Ether(dst="00:11:22:33:44:53", src="68:05:CA:BB:27:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=33)/("X"*480)],iface="enp134s0f0")
+
+ipv4_udp_vxlan_ipv6_udp packet::
+
+ sendp([Ether(src="00:11:22:33:44:53", dst="68:05:CA:BB:27:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)],iface="ens786f0")
Subcase: MAC_IPV6_UDP_ALL
-------------------------
@@ -1787,12 +1839,9 @@ all the test cases run the same test steps as below:
check all the packets are distributed to queues by rss.
note: if there is not this type packet in the case, omit this step.
7. distroy the rule and list rule.
-8. send same packets with step 2.
- if the rule is MAC_IPV4_UDP/TCP/SCTP or MAC_IPV6_UDP/TCP/SCTP,
- check the received packets which switched ip address have different hash value,
- which only switched L4 ports have same hash value.
- if the rule is MAC_IPV4 or MAC_IPV6,
- check the received packets have not hash value.
+8. send same packets with step 3, only switch ip address.
+ check the received packets which switched ip address have not hash value,
+ or have different hash value.
Test case: symmetric MAC_IPV4
=============================
@@ -2083,9 +2132,12 @@ Test Case: negative case
testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-udp end key_len 0 queues end / end
ice_flow_create(): Failed to create flow
port_flow_complain(): Caught PMD error type 10 (item specification): cause: 0x7fff3b61eb08, Invalid input set: Invalid argument
- testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+ testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types udp end key_len 0 queues end / end
ice_flow_create(): Failed to create flow
- port_flow_complain(): Caught PMD error type 10 (item specification): cause: 0x7fff3b61eb08, Invalid input set: Invalid argument
+ port_flow_complain(): Caught PMD error type 10 (item specification): cause: 0x7fff70533a48, Invalid input set: Invalid argument
+ testpmd> flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types tcp end key_len 0 queues end / end
+ ice_flow_create(): Failed to create flow
+ port_flow_complain(): Caught PMD error type 10 (item specification): cause: 0x7fff70533a48, Invalid input set: Invalid argument
testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end
ice_flow_create(): Failed to create flow
port_flow_complain(): Caught PMD error type 10 (item specification): cause: 0x7fff3b61eb08, Invalid input set: Invalid argument
@@ -2105,7 +2157,8 @@ Test Case: negative case
flow validate 0 ingress pattern eth / ipv4 / end actions rss types eth l3-src-only end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / end actions rss types ipv4-udp end key_len 0 queues end / end
- flow validate 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end
+ flow validate 0 ingress pattern eth / ipv4 / udp / end actions rss types udp end key_len 0 queues end / end
+ flow validate 0 ingress pattern eth / ipv6 / tcp / end actions rss types tcp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / end actions rss types ipv6 end key_len 0 queues end / end
flow validate 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 l3-src-only end key_len 0 queues end / end
--
2.17.1
More information about the dts
mailing list