From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 24238A00BE; Tue, 15 Mar 2022 05:10:49 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E140E40395; Tue, 15 Mar 2022 05:10:48 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 49B564014F for ; Tue, 15 Mar 2022 05:10:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1647317447; x=1678853447; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=T/TPgERihUqSNTZR4uWF+LAGUVJAWtN1eLSEPlGriK8=; b=PWCWvLzKZ9CCGj5sLB3nfgOqwaEbI5Iqrqo+YiYLzOC3UvZHmFhSe0wM jkSDil6U+augpzsqOHWPwuQWXN+5UeIL/CSOJ0DrQQI4qlwa0GHDU3/S3 H4kh3ihd8a4UG9VMv/o4ALzcezgwtfLy1AAyEPbx2nK/yfSu4MLigIc1e eaYT+nSZbWyvXhANLlLmsgTYkSiYCoVccTDKcBDYN1ihvhbg8bzl/qkji aOFiuE5cTE4RKz6hHTQE6PEUAVcogAkYZ3R/7LmcVZY/B4H4HZo/OhlaB BNjFVPoBgVtnnuT/gZzhkfTv+aIZfzr5tZtV6c+TeX/KTPShtuZTqjBec Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10286"; a="280973757" X-IronPort-AV: E=Sophos;i="5.90,182,1643702400"; d="scan'208";a="280973757" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2022 21:10:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,182,1643702400"; d="scan'208";a="540265300" Received: from dpdk-yaqi.sh.intel.com ([10.67.118.156]) by orsmga007.jf.intel.com with ESMTP; 14 Mar 2022 21:10:42 -0700 From: Yaqi Tang To: dts@dpdk.org Cc: Yaqi Tang Subject: [dts][PATCH V1] tests/cvl_advanced_iavf_rss_pppol2tpoudp: add test cases for l2tpv2 control and data Date: Tue, 15 Mar 2022 12:10:41 +0800 Message-Id: <20220315041041.397913-1-yaqi.tang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 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 Support IAVF PPPoL2TPv2oUDP RSS Hash, and required to distribute packets based on inner IP src+dest address and TCP/UDP src+dest port. Signed-off-by: Yaqi Tang Tested-by: Yaqi Tang < yaqi.tang@intel.com> --- ...uite_cvl_advanced_iavf_rss_pppol2tpoudp.py | 1321 +++++++++++++++++ 1 file changed, 1321 insertions(+) diff --git a/tests/TestSuite_cvl_advanced_iavf_rss_pppol2tpoudp.py b/tests/TestSuite_cvl_advanced_iavf_rss_pppol2tpoudp.py index 81cff39d..3a6bbd97 100644 --- a/tests/TestSuite_cvl_advanced_iavf_rss_pppol2tpoudp.py +++ b/tests/TestSuite_cvl_advanced_iavf_rss_pppol2tpoudp.py @@ -1714,6 +1714,1150 @@ vector_case_64 = [ }, ] +#l2tpv2 control + data +vector_case_65 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_L2TPV2_CONTROL", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type control session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_66 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_L2TPV2_CONTROL", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type control session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_67 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_L2TPV2_CONTROL", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type control session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_68 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_L2TPV2_CONTROL", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type control session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_69 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_70 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_L2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_71 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_72 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_l session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_73 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_s session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_74 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_s session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_75 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_76 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_77 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l_s session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_78 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_l_s session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_79 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_80 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_L2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_81 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_82 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_l session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_83 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_s session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_84 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_s session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_85 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_86 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_87 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l_s session_id is 0x1111 / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_88 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_l_s session_id is 0x1111 / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_89 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_90 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_91 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_92 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_l session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_93 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_s session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_94 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_s session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_95 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_96 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_o session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_97 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv4 / udp / l2tpv2 type data_l_s session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_98 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv4 / udp / l2tpv2 type data_l_s session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_99 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_100 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_101 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_102 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_l session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_103 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_s session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_104 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_s session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_105 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_106 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_O", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_o session_id is 0x1111 offset_size is 6 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw(b'\\x00\\x00\\x00\\x00')/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_107 = [ + { + "sub_casename": "l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / ipv6 / udp / l2tpv2 type data_l_s session_id is 0x1111 / ppp / end actions rss types l2tpv2 end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] + +vector_case_108 = [ + { + "sub_casename": "eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L_S", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth src is 00:00:00:00:00:01 / ipv6 / udp / l2tpv2 type data_l_s session_id is 0x1111 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "save_hash" + }, + { + "send_packet": "Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_different" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_hash_same" + }, + { + "send_packet": "Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw(b'\\x00\\x00')", + "action": "check_no_hash" + }, + ] + }, +] class TestCVLAdvancedIAVFRSSPPPoL2TPv2oUDP(TestCase): @@ -2038,6 +3182,183 @@ class TestCVLAdvancedIAVFRSSPPPoL2TPv2oUDP(TestCase): def test_case_eth_ipv4_udp_l2tpv2_ppp_ipv6_tcp_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_TCP(self): self.switch_testpmd(symmetric=False) self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_64) + + #l2tpv2 control + data + def test_case_l2tpv2_session_id_MAC_IPV4_L2TPV2_CONTROL(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_65) + + def test_case_eth_l2_src_only_MAC_IPV4_L2TPV2_CONTROL(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_66) + + def test_case_l2tpv2_session_id_MAC_IPV6_L2TPV2_CONTROL(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_67) + + def test_case_eth_l2_src_only_MAC_IPV6_L2TPV2_CONTROL(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_68) + + def test_case_l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_69) + + def test_case_eth_l2_src_only_MAC_IPV4_L2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_70) + + def test_case_l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_71) + + def test_case_eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_72) + + def test_case_l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_73) + + def test_case_eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_74) + + def test_case_l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_75) + + def test_case_eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_76) + + def test_case_l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_77) + + def test_case_eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_78) + + def test_case_l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_79) + + def test_case_eth_l2_src_only_MAC_IPV6_L2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_80) + + def test_case_l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_81) + + def test_case_eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_82) + + def test_case_l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_83) + + def test_case_eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_84) + + def test_case_l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_85) + + def test_case_eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_86) + + def test_case_l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_87) + + def test_case_eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_88) + + def test_case_l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_89) + + def test_case_eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_90) + + def test_case_l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_91) + + def test_case_eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_92) + + def test_case_l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_93) + + def test_case_eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_94) + + def test_case_l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_95) + + def test_case_eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_96) + + def test_case_l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_97) + + def test_case_eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_98) + + def test_case_l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_99) + + def test_case_eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_100) + + def test_case_l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_101) + + def test_case_eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_102) + + def test_case_l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_103) + + def test_case_eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_104) + + def test_case_l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_105) + + def test_case_eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_O(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_106) + + def test_case_l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_107) + + def test_case_eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L_S(self): + self.switch_testpmd(symmetric=False) + self.rssprocess.handle_rss_distribute_cases(cases_info=vector_case_108) def tear_down(self): # destroy all flow rule on port 0 -- 2.25.1