From patchwork Tue Mar 15 04:03:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yaqi Tang X-Patchwork-Id: 108716 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 75FC5A00BE; Tue, 15 Mar 2022 05:04:48 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4440F40395; Tue, 15 Mar 2022 05:04:48 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 339214014F for ; Tue, 15 Mar 2022 05:04:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1647317086; x=1678853086; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=fABa2wGaOVTOrNACVnkroXwLWiIw3J3z6YJ7fe6h8Hw=; b=cjyatY+bba7zOJWV6wb39H5G5IjcT+tfnvvQERE9+/N1ndpLstl/4YE3 x0u0oGlCrMTN3vjxSt14pc4WWFs3AjUBtDL7/pwySzQfOVriykIOGu4zI /rsZS6lroJIUWh/5CJ6HaqkK411Z4ydiG5r83q/jYU4XSgcHKrjUWD5fa lmN0PKvOhM05XBWUQ4pQupiB7jBPEiuWkJ/iuIXgB9YenS46/qUHwxUT4 cy1LAmeS2V+fAds1IgsTWZvZftaCjPEWeVMvp9R9SyGf/tZG1/iQBOpEN Lz8D8L7hRi9Cx0WXrWncEtuMP5tD4d4/P+ulWFRhL9vmWwGaiHHW4AHbX w==; X-IronPort-AV: E=McAfee;i="6200,9189,10286"; a="319427795" X-IronPort-AV: E=Sophos;i="5.90,182,1643702400"; d="scan'208";a="319427795" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2022 21:03:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,182,1643702400"; d="scan'208";a="515710297" Received: from dpdk-yaqi.sh.intel.com ([10.67.118.156]) by orsmga006.jf.intel.com with ESMTP; 14 Mar 2022 21:03:31 -0700 From: Yaqi Tang To: dts@dpdk.org Cc: Yaqi Tang Subject: [dts][PATCH V1] test_plans/cvl_advanced_iavf_rss_pppol2tpoudp: add test plan for l2tpv2 control and data Date: Tue, 15 Mar 2022 12:03:29 +0800 Message-Id: <20220315040329.397792-1-yaqi.tang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 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> --- ...vanced_iavf_rss_pppol2tpoudp_test_plan.rst | 1718 +++++++++++++++++ 1 file changed, 1718 insertions(+) diff --git a/test_plans/cvl_advanced_iavf_rss_pppol2tpoudp_test_plan.rst b/test_plans/cvl_advanced_iavf_rss_pppol2tpoudp_test_plan.rst index 151621b6..7de39295 100644 --- a/test_plans/cvl_advanced_iavf_rss_pppol2tpoudp_test_plan.rst +++ b/test_plans/cvl_advanced_iavf_rss_pppol2tpoudp_test_plan.rst @@ -2741,3 +2741,1721 @@ Test case: eth_ipv4_udp_l2tpv2_ppp_ipv6_tcp_ipv6_MAC_IPV4_PPPoL2TPV2_IPV6_TCP check the packet rss hash value is 0. 7. distroy the rule and and check there is no rule listed. + +#l2tpv2 control + data +Test case 1: l2tpv2_session_id_MAC_IPV4_L2TPV2_CONTROL +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 2: eth_l2_src_only_MAC_IPV4_L2TPV2_CONTROL +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77)/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)],iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 3: l2tpv2_session_id_MAC_IPV6_L2TPV2_CONTROL +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 4: eth_l2_src_only_MAC_IPV6_L2TPV2_CONTROL +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x2222)],iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0xc80,len=12,session_id=0x1111)],iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 5: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA +=================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 6: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA +================================================= +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 7: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L +===================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 8: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L +=================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 9: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_S +===================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 10: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_S +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 11: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_O +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 12: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_O +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 13: l2tpv2_session_id_MAC_IPV4_L2TPV2_DATA_L_S +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 14: eth_l2_src_only_MAC_IPV4_L2TPV2_DATA_L_S +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 15: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 16: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA +================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 17: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 18: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=8,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 19: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_S +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 20: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_S +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 21: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_O +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 22: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_O +==================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 23: l2tpv2_session_id_MAC_IPV6_L2TPV2_DATA_L_S +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 24: eth_l2_src_only_MAC_IPV6_L2TPV2_DATA_L_S +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x2222)], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=12,session_id=0x1111)], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 25: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 26: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 27: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 28: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 29: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_S +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 30: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_S +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 31: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_O +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 32: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_O +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 / ppp / end actions rss types eth l2-src-only end key_len 0 queues end / end + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 33: l2tpv2_session_id_MAC_IPV4_PPPoL2TPV2_DATA_L_S +============================================================ +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 34: eth_l2_src_only_MAC_IPV4_PPPoL2TPV2_DATA_L_S +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 35: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 36: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA +====================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x000,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 37: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 38: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x400,len=12,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 39: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_S +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 40: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_S +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x080,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 41: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_O +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 42: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_O +======================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x2222,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x020,session_id=0x1111,offset=6)/Raw('\x00\x00\x00\x00')/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 43: l2tpv2_session_id_MAC_IPV6_PPPoL2TPV2_DATA_L_S +============================================================ +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='11:22:33:44:55:77')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. + +Test case 44: eth_l2_src_only_MAC_IPV6_PPPoL2TPV2_DATA_L_S +========================================================== +1. validate the rule, and check there is not rule listed. + +2. create a rss 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 + + check there is a rss rule listed successfully. + +3. send a basic hit pattern packet,record the hash value:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet distributed to queue by rss. + +4. send hit pattern packets with changed input set in the rule:: + + sendp([Ether(src='11:22:33:44:55:77')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packets have different hash value with basic packet. + check all the packets are distributed to queues by rss. + +5. send hit pattern packets with changed input set not in the rule:: + + sendp([Ether(src='00:00:00:00:00:01')/IPv6()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x2222)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the received packet have same hash value with the basic packet. + check all the packets are distributed to queues by rss. + note: if there is not this type packet in the case, omit this step. + +6. send not hit pattern packet:: + + sendp([Ether(src='00:00:00:00:00:01')/IP()/UDP(dport=1701)/L2TP(hdr=0x480,len=16,session_id=0x1111)/HDLC()/Raw('\x00\x00')], iface="ens260f0") + + check the packet rss hash value is 0. + +7. distroy the rule and check there is no rule listed. +