From patchwork Thu Nov 19 17:02:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Lin, Xueqin" X-Patchwork-Id: 84355 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BB21BA04DD; Thu, 19 Nov 2020 10:07:37 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6230FF90; Thu, 19 Nov 2020 10:07:36 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id A0F08F3E for ; Thu, 19 Nov 2020 10:07:34 +0100 (CET) IronPort-SDR: m9TBb4jFF0gVMD3cx1mnMts/k5jTczN7DD9V8fLcTMUruqQ/HH8W4rkRfjT02BvhGyZZ12rTcY LG3F5Uo17c1Q== X-IronPort-AV: E=McAfee;i="6000,8403,9809"; a="255967270" X-IronPort-AV: E=Sophos;i="5.77,490,1596524400"; d="scan'208";a="255967270" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2020 01:07:32 -0800 IronPort-SDR: LUbmmb0UiAD8OGYDoOjI7Y9v0aF+fSEiludZjYP04Bi0c5RPoZvNa6KVGR1HyJCdEWXsIHWbcG jhGctknjyhRw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,490,1596524400"; d="scan'208";a="544934013" Received: from unknown (HELO xlin-dpdk50.sh.intel.com) ([10.67.118.237]) by orsmga005.jf.intel.com with ESMTP; 19 Nov 2020 01:07:30 -0800 From: Xueqin Lin To: dts@dpdk.org Cc: Xueqin Lin Date: Thu, 19 Nov 2020 12:02:11 -0500 Message-Id: <20201119170211.13389-1-xueqin.lin@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dts] [PATCH] test_plan/iavf_rss: add co-exist layer3 test case for GTPU 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" Signed-off-by: Lin Xueqin --- .../cvl_advanced_iavf_rss_gtpu_test_plan.rst | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) 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 ===================================================