test_plan/iavf_rss: add co-exist layer3 test case for GTPU

Message ID 20201119170211.13389-1-xueqin.lin@intel.com (mailing list archive)
State Accepted
Headers
Series test_plan/iavf_rss: add co-exist layer3 test case for GTPU |

Commit Message

Lin, Xueqin Nov. 19, 2020, 5:02 p.m. UTC
  Signed-off-by: Lin Xueqin <xueqin.lin@intel.com>

---
 .../cvl_advanced_iavf_rss_gtpu_test_plan.rst  | 52 +++++++++++++++++++
 1 file changed, 52 insertions(+)
  

Comments

Tu, Lijuan Nov. 23, 2020, 3:11 a.m. UTC | #1
> Signed-off-by: Lin Xueqin <xueqin.lin@intel.com>

Applied
  

Patch

diff --git a/test_plans/cvl_advanced_iavf_rss_gtpu_test_plan.rst b/test_plans/cvl_advanced_iavf_rss_gtpu_test_plan.rst
index 551ea96..58ffb03 100644
--- a/test_plans/cvl_advanced_iavf_rss_gtpu_test_plan.rst
+++ b/test_plans/cvl_advanced_iavf_rss_gtpu_test_plan.rst
@@ -2514,6 +2514,58 @@  Subcase: IPV6_GTPU_IPV4 and IPV6_GTPU_IPV4_TCP
 
 7. repeat step 2, packet 2 has same hash value with packet 1, packet 3 has different hash value with packet 1.
 
+Test case: co-exist L3 IPv4/IPv6_GTPU_EH
+========================================
+
+Subcase 1: co-exist L3 IPV4/IPV6_GTPU_EH_IPV4
+---------------------------------------------
+
+Rule 1::
+    flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end
+Rule 2::
+    flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end
+
+Packets::
+
+    pkt1=Ether(dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(dst="192.168.1.1", src="192.168.0.2")/("X"*480)
+    pkt2=Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(dst="192.168.1.1", src="192.168.0.2")/("X"*480)
+    pkt3=Ether(dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(dst="192.168.1.1", src="192.168.0.3")/("X"*480)
+    pkt4=Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(dst="192.168.1.1", src="192.168.0.3")/("X"*480)
+
+1. Rule1 and rule2 only have outer layer 3 difference.
+2. Send rule1 matched pkt1, mark queue id as Q1, use default input to do hash.
+3. Send rule2 matched pkt2, mark queue id as Q2, use default input to do hash.
+4. Create rule 1.
+5. Send rule1 matched pkt1, mark queue id as Q3.
+6. Check Q3 is different from Q1, use rule1 input set to do hash.
+7. Send rule2 matched pkt2, mark queue id as Q4.
+8. Check Q4 is same as Q2, still use default input to do hash, not use rule1 input set.
+9. Send rule1 nomatched pkt3, change src IP address, mark queue id as Q5.
+10. Check Q5 is same as Q3.
+11. Flush flow list.
+12. Create rule 2.
+13. Send rule2 matched pkt2, mark queue id as Q6.
+14. Check Q6 is different from Q2, use rule2 input set to do hash.
+15. Send rule1 matched pkt1, mark queue id as Q7.
+16. Check Q7 is same as Q1, still use default input set to do hash, not use rule2 input set.
+17. Send rule2 nomatched pkt4, change src IP address, mark queue id as Q8.
+18. Check Q8 is same as Q6.
+
+Subcase 2: co-exist L3 IPV4/IPV6_GTPU_EH_IPV6
+---------------------------------------------
+
+Rule 1::
+    flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end
+rule 2::
+    flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end
+
+Packets::
+
+    pkt1=Ether(dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6(dst="::12", src="::35")/("X"*480)
+    pkt2=Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6(dst="::12", src="::35")/("X"*480)
+    pkt3=Ether(dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6(dst="::13", src="::35")/("X"*480)
+    pkt4=Ether(dst="00:11:22:33:44:55")/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IPv6(dst="::13", src="::35")/("X"*480)
+Test steps are same as subcase 1.
 
 Test case: toeplitz and symmetric rules combination
 ===================================================