From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 298AEA04E0; Fri, 29 Nov 2019 09:23:43 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ED7D11E2B; Fri, 29 Nov 2019 09:23:42 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 5488C91 for ; Fri, 29 Nov 2019 09:23:41 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Nov 2019 00:23:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,256,1571727600"; d="scan'208";a="203664646" Received: from dpdktestzhiwei.sh.intel.com ([10.67.119.33]) by orsmga008.jf.intel.com with ESMTP; 29 Nov 2019 00:23:38 -0800 From: "zhiwei.he" To: dts@dpdk.org Cc: "zhiwei.he" Date: Fri, 29 Nov 2019 16:24:29 +0800 Message-Id: <1575015869-47438-1-git-send-email-zhiwei.he@intel.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dts] [PATCH V1] test_plans: Add rss test plan support CVL100Gand25g nic X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" From: "zhiwei.he" add rss test plan support CVL25gand100g NIC Signed-off-by: zhiwei.he --- test_plans/enabe_rss_in_cvl_test_plan.rst | 1006 +++++++++++++++++++++++++++++ 1 file changed, 1006 insertions(+) create mode 100644 test_plans/enabe_rss_in_cvl_test_plan.rst diff --git a/test_plans/enabe_rss_in_cvl_test_plan.rst b/test_plans/enabe_rss_in_cvl_test_plan.rst new file mode 100644 index 0000000..099010d --- /dev/null +++ b/test_plans/enabe_rss_in_cvl_test_plan.rst @@ -0,0 +1,1006 @@ +.. Copyright (c) <2018>, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +==================== +Enable advanced RSS in CVL +==================== +Description +=========== + +Generic flow API (rte_flow) has been actually defined to include RSS, but +till now, RSS is out of rte_flow. It was suggested to move existing RSS to +rte_flow. This can be better for users, and may save effort for CPK +development. RSS enabling: now, rte_flow API enabling RSS is support on +igb/ixgbe/ice. RSS input set changing: now, rte flow API RSS input set is +support on ICE. + +Notes: non-default RSS hash functions are not supported -- Operation not +supported. + +Prerequisites +============= + +1. Hardware: + columbiaville_25g/columbiaville_100g/ + +2. Software: + dpdk: http://dpdk.org/git/dpdk + scapy: http://www.secdev.org/projects/scapy/ + + +Test case: CVL enable advanced RSS +================================= +Note This rss feature designed for CVL NIC 25G and 100g, so below the case only support CVL nic. +Prerequisites: +1. bind the CVL port to dpdk driver:: + tester: + modprobe uio + modprobe ice + insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko + + usertools/dpdk-devbind.py --force --bind=igb_uio 0000:18:00.0 0000:18:00.1 + usertools/dpdk-devbind.py --force --bind=ice 0000:18:00.1 + +2. Launch the testpmd to configuration queue of rx and tx number 64 + testpmd>./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 -- -i --portmask=0xff --rxq=64 --txq=64 --port-topology=loop + testpmd>set fwd rxonly + testpmd>set verbose 1 + testpmd>rx_vxlan_port add 4789 0 + +3. start scapy and configuration NVGRE and GTP profile + scapy: + >>> import sys + >>> sys.path.append('/root') + >>> from nvgre import NVGRE + >>> from scapy.contrib.gtp import * + +4. test case: + MAC IPV4 l3 src only: + create rule for the rss type for l3 src only:: + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end + send the 100 IP pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP())/("X"*480)], iface="enp175s0f0", count=100) + + testpmd> stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 NONFRAG + + MAC IPV4 l3 src only +frag: + testpmd> start + send the 100 IP +frag type pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(), frag=5)/SCTP(sport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 "FRAG" + + MAC IPV4 l3 dst only: + create rule for the rss type for l3 dst only:: + flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end + + testpmd> start + send the 100 IP +frag type pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(dst=RandIP())/("X"*480)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 "FRAG" + + MAC IPV4 l3 dst only +frag + testpmd> start + + send the 100 IP frag pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 "FRAG" + + MAC IPV4 l3 src only +frag+ICMP + testpmd> start + send the 100 IP pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(), frag=5)/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 dst only +frag+ICMP: + testpmd> start + send the 100 IP pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(dst=RandIP(), frag=5)/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 all: + create rule for the rss type for l3 all keywords: + + testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end + testpmd> start + send the 100 IP pkts + + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/("X"*480)], iface="enp175s0f0", count=100) + testpmd>stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + + MAC IPV4 l3 all +frag+ICMP: + create rule for the rss type for IPV4 l3 all (src and dst) +frag+ICMP + flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end + + send the 100 IP pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/ICMP()/("X"*480)], iface="enp175s0f0", count=100) + testpmd>stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 all NVGRE+frag+ICMP + create rule for the rss type is IPV4 l3 all +NVGRE inner IPV4 +frag + ICMP + + testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end + testpmd> start + + send the 100 nvgre IP pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd>stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 src NVGRE+frag+ICMP + create rule for the rss type is IPV4 l3 src +NVGRE inner IPV4 +frag + ICMP + + testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end + testpmd> start + send the 100 IP nvgre pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src=RandIP())/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 dst NVGRE+frag+ICMP: + testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end + testpmd> start + send the 100 IP nvgre pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(dst=RandIP())/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 src VXLAN+frag+ICMP + create rule for the rss type is IPV4 src VXLAN +frag +ICMP + + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end + testpmd>start + send the 100 VXLAN pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IP(src=RandIP(), frag=5)/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 dst VXLAN+frag+ICMP + create rule for the rss type is IPV4 dst VXLAN +frag+ICMP + + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end + testpmd>start + send the 100 vxlan pkts + + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IP(dst=RandIP(), frag=5)/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 l3 all VXLAN+frag+ICMP + create rule for the rss type is IPV4 all VXLAN +frag +ICMP + + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end + testpmd>start + + send the 100 vxlan pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IP(src=RandIP(),dst=RandIP(),frag=5)/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + + MAC IPV6 L3 src: + create rule for the rss type is IPV6 L3 src + + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end + testpmd>start + send the 100 IPV6 pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/("X" * 80)], iface="enp175s0f0", count=100) + + MAC IPV6 L3 src+frag: + create rule for the rss type is IPV6 L3 src +ExtHdrFragment + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-src-only end / end + testpmd>start + + send the 100 IPV6 pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 L3 dst+frag: + create rule for the rss type is IPV6 L3 dst +ExtHdrFragment + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-dst-only end key_len 0 queues end / end + testpmd>start + send the 100 IPV6 pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(dst=RandIP6())/IPv6ExtHdrFragment()/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 L3 all+frag+ICMP: + create rule for the rss type is IPV6 L3 all +ExtHdrFragment+ICMP + + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end + testpmd>start + send the 100 IPV6 pkts + + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6(),dst=RandIP6())/IPv6ExtHdrFragment()/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + UDP + MAC IPV4 UDP src and dst + + create rule for the rss type is ipv4 UDP +l3 src and dst + + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end + testpmd>start + send the 100 IP+UDP pkts + + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP())/UDP(dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + testpmd> stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 UDP all+frag: + create rule for the rss type is ipv4 +UDP +frag + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end + testpmd> start + + send the 100 IP src IP +UDP port pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + + send the 100 IP +UDP port pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + + send the 100 IP src and dst IP +UDP port pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/UDP()/("X"*480)], iface="enp175s0f0", count=100) + + testpmd> stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 UDP all+NVGRE frag + + create rule for the rss type is ipv4 + inner IP and UDP + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end + testpmd>start + + send the 100 NVGRE IP pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + + testpmd> stop + + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 UDP all+VXLAN frag + + create rule for the rss type is ipv4 + vxlan UDP + testpmd> flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end + testpmd> start + To send VXLAN pkts with IP src and dst , UDP port + + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 UDP all + create rule for the rss type is IPV6 + UDP src and dst type hash : + + testpmd> flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end + testpmd> start + + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/UDP(sport=RandShort(),dport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 UDP all+frag + To send IPV6 pkts with IPV6 src +frag +UDP port + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/UDP(sport=RandShort(),dport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + TCP + MAC IPV4 TCP src and dst + create rule for the rss type is IPV4 + TCP L3 src and L4 dst type hash : + + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end + To send IPV4 pkts with scr IP and TCP dst port + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP())/TCP(dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end + To send IPV4 pkts with scr IP and TCP src port + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(dst=RandIP())/TCP(sport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 TCP all+frag + Create rule for the rss type is IPV4 +tcp and hash tcp src and dst ports + + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end + testpmd>start + To send IPV4 pkts with IP src and dst ip and TCP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + To send IPV4 pkts without IP src and dst ip and includ TCP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/TCP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + To send IPV4 pkts with IP src and dst ip and without TCP port + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/TCP()/("X"*480)], iface="enp175s0f0", count=100) + To send IPV4 pkts with IP src and dst +frag and without TCP port + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP(),frag=4)/TCP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 TCP all+NVGRE frag + Create rule for the RSS type nvgre IP src dst ip and TCP + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end + testpmd>start + To send NVGRE ip pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 TCP all+VXLAN frag + + Create rule for the rss type is IPV4 +tcp and hash tcp src and dst ports + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end + testpmd>start + To send VXLAN pkts includ src and dst ip and TCP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/TCP()/VXLAN()/Ether()/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 TCP all + Create rule for the rss IPV6 tcp + testpmd>flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end + testpmd>start + To send IPV6 pkts include TCP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 TCP all+frag + To send ipv6 pkts and IPV6 frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/TCP(sport=RandShort(),dport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + SCTP + MAC IPV4 SCTP src and dst + Create rule for the rss type IPV4 and SCTP, hash keywords with ipv4 sctp and l3 src port l4 dst port + testpmd>flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l3-src-only l4-dst-only end key_len 0 queues end / end + testpmd>start + to send IP pkts includ SCTP dport + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP())/SCTP(dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + to send IP pkts includ SCTP sport + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(dst=RandIP())/SCTP(sport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 SCTP all+frag + Create rule for the rss type IPV4 and SCTP, hash keywords with ipv4 sctp + testpmd>flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end + testpmd>start + to send IPV4 pkt include SCTP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP())/SCTP()/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src=RandIP(),dst=RandIP(),frag=4)/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 SCTP all+NVGRE frag + create rule for the rss type IPV4 and hash keywords ipv4 sctp src and dst type + + testpmd>flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end + testpmd>start + To send NVGRE ip pkts and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV4 SCTP all+VXLAN frag + create rule for the rss type IPV4 and hash keywords ipv4 sctp src and dst type + testpmd>flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end + testpmd>start + To send VXLAN ip pkts and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/SCTP()/VXLAN()/Ether()/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + MAC IPV6 SCTP all + reate rule for the rss type IPV6 and hash keywords ipv4 sctp src and dst type + testpmd>flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end + testpmd>start + To send IPV6 pkts and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/SCTP(sport=RandShort(),dport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + + MAC IPV6 SCTP all+frag + to send IPV6 pkts includ frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/SCTP(sport=RandShort(),dport=RandShort())/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOD PPPOE pay dynamic mac and session id + Create rule for the rss type pppoes type + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end + testpmd>start + to send pppoe 100pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP())/UDP(sport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=0x7)/PPP(proto=0x21)/IP(src=RandIP())/UDP(sport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOE IPV4 +frag + Create rule for the rss type pppoes type + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end + testpmd>start + to send pppoe pkts and includ frag in the iP + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP(),frag=5))/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOE IPV4 + create rule for the rss type pppoes + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end + testpmd>start + to send pppoe pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOE IPV4+UDP + create rule for the rss type pppoes and hash l3 src , l4 dst port + + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end + testpmd>start + to send pppoe pkt and include the UPD ports + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP())/UDP(dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOE IPV4+TCP + create rule for the rss type pppoe and hash tcp keywords + + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / tcp / end actions rss types ipv4-tcp key_len 0 queues end / end + testpmd>start + to send pppoe pkt and include the TCP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP())/TCP(dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOE IPV4+SCTP + create rule for the rss type pppoe and hash sctp keywords + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / sctp / end actions rss types ipv4-sctp key_len 0 queues end / end + testpmd>start + to send pppoe pkt and include the SCTP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP())/SCTP(dport=RandShort())/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + PPPOE IPV4+ICMP + create rule for the rss type pppoe and hash icmp keywords + testpmd>flow create 0 ingress pattern eth / pppoes / ipv4 / sctp / end actions rss types ipv4 key_len 0 queues end / end + testpmd>start + to send pppoe pkt and include the ICMP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/PPPoE(sessionid=RandShort())/PPP(proto=0x21)/IP(src=RandIP())/ICMP()/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + + GTPU IPV4 +frag + create rule for the rss type GTPU and hash l3 src keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end + testpmd>start + to send GTPU pkts + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(teid=0x123456)/IP(src=RandIP())/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + to send GTPU PKTS and IPV4 frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(teid=0x123456)/IP(src=RandIP(),frag=6)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + GTPU IPV4+IPFRAG+UDP + create rule for the rss type GTPU and hash l3 src and dst keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4 l3-src-only l4-dst-only end key_len 0 queues end / end + testpmd>start + to send GTP pkts and include IP pkts and UDP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(teid=0x123456)/IP(src=RandIP(),frag=6)/UDP(dport=RandShort())/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + GTPU IPV4+IPFRAG+TCP + create rule for the rss type GTPU and hash l3 src and dst keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4 l3-src-only l4-dst-only end key_len 0 queues end / end + testpmd>start + to send GTP pkts and include IP pkts and tcp + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(teid=0x123456)/IP(src=RandIP(),frag=6)/TCP(dport=RandShort())/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + + GTPU IPV4+IPFRAG+ICMP + create rule for the rss type GTPU and hash l3 src and dst keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end + testpmd>start + to send GTP pkts and include IP pkts and ICMP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP(dport=2152)/GTP_U_Header(teid=0x123456)/IP(src=RandIP(),frag=6)/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and to check the 100 pkts has send to differently totaly 10 queues evenly with + differently RSS random value + + symmetric_toeplitz IPV4 PAY + create rule for the rss type symmetric_toeplitz and hash ipv4 src and dst keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP and switch src and dst ip address + + sendp([Ether()/IP(src="192.168.0.2",dst="192.168.0.1")/("X"*480)], iface="enp175s0f0", count=100) + hash=0xc5f4afb8 - RSS qeue=0x0 + hash=0xc5f4afb8 - RSS qeue=0x0 + + + to send ip pkts with fix IP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="8.8.8.2",dst="5.6.7.8")/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP and switch src and dst ip address + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="5.6.7.8",dst="8.8.8.2")/("X"*480)], iface="enp175s0f0", count=100) + 0x9bf1f12f - RSS queue=0x7 + 0x9bf1f12f - RSS queue=0x7 + + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV4 PAY+Frag + create rule for the rss type symmetric_toeplitz and hash ipv4 src and dst keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP includ frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.1",dst="192.168.0.2",frag=6)/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP includ frag and switch src and dst ip address + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.2",dst="192.168.0.1",frag=6)/("X"*480)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV4 UDP+Frag + create rule for the rss type symmetric_toeplitz and hash UDP src and dst keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP includ frag and UDP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.1",dst="192.168.0.2",frag=6)/UDP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP includ frag and switch src and dst ip address and UDP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.2",dst="192.168.0.1",frag=6)/UDP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + + symmetric_toeplitz IPV4 UDP L3 src L3 dst L4 src and dst + create rule for the rss type symmetric_toeplitz and hash l3 l4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp l3-src-only l3-dst-only l4-src-only l4-dst-only end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP includ frag and UDP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="1.1.4.1",dst="2.2.2.3")/UDP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP includ frag and switch src and dst ip address and UDP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="2.2.2.3",dst="1.1.4.1")/UDP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV4 TCP+Frag + create rule for the rss type symmetric_toeplitz and hash TCP keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP includ frag and TCP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.1",dst="192.168.0.2",frag=6)/TCP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP includ frag and switch src and dst ip address and tcp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.2",dst="192.168.0.1",frag=6)/TCP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV4 SCTP+Frag + create rule for the rss type symmetric_toeplitz and hash SCTP keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss func symmetric_toeplitz types ipv4-sctp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP includ frag and SCTP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.1",dst="192.168.0.2",frag=6)/SCTP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP includ frag and switch src and dst ip address and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.2",dst="192.168.0.1",frag=6)/SCTP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV4 ICMP+Frag + create rule for the rss type symmetric_toeplitz and hash ICMP keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IP includ frag and ICMP + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.1",dst="192.168.0.2",frag=6)/ICMP()/("X"*480)], iface="enp175s0f0", count=100) + to send ip pkts with fix IP includ frag and switch src and dst ip address and ICMP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.2",dst="192.168.0.1",frag=6)/ICMP()/("X"*480)], iface="enp175s0f0", count=100) + + 0xc5f4afb8 + 0xc5f4afb8 + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV6 PAY + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IPV6 pkts with fixed address + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X" * 80)], iface="enp175s0f0", count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/("X" * 80)], iface="enp175s0f0", count=100) + hash=0xf7225f89 - RSS queue=0x1 + hash=0xf7225f89 - RSS queue=0x1 + to send ip pkts with fix IPV6 pkts with fixed address without MAC address + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/("X" * 80)], iface="enp175s0f0", count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address without mac address + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X" * 80)], iface="enp175s0f0", count=100) + 0xf7225f89 - RSS queue=0x1 + 0xf7225f89 - RSS queue=0x1 + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV6 PAY+frag + + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IPV6 pkts with fixed address and includ IPV6 frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/IPv6ExtHdrFragment()/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV6 +UDP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / udp / end actions rss func symmetric_toeplitz types ipv6-udp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IPV6 pkts with fixed address and includ IPV6 frag and UDP port + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/UDP(sport=30,dport=32)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=30)/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV6 +TCP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IPV6 pkts with fixed address and includ IPV6 frag and tcp port + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/TCP(sport=30,dport=32)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=30)/("X" * 80)], iface="enp175s0f0", count=100) + + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV6 +SCTP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss func symmetric_toeplitz types ipv6-sctp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IPV6 pkts with fixed address and includ IPV6 frag and sctp port + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/SCTP(sport=30,dport=32)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=30)/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz IPV6 ICMP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix IPV6 pkts with fixed address and includ IPV6 frag and ICMP port + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/ICMP)(/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz NVGRE IPV4 + create rule for the rss type symmetric_toeplitz and hash IPV4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix nvgre pkts with fixed address and includ frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/IP(src="192.168.0.8",dst="192.168.0.69",frag=6)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/IP(src="192.168.0.69",dst="192.168.0.8",frag=6)/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz VXLAN IPV4 + create rule for the rss type symmetric_toeplitz and hash IPV4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix vxlan pkts with fixed address and includ frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IP(src="192.168.0.1",dst="192.168.0.2",frag=6)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IP(src="192.168.0.2",dst="192.168.0.1",frag=6)/("X"*480)], iface="enp175s0f0", count=100) + hash=0xcc617262 - RSS queue=0x2 + hash=0xefad623a - RSS queue=0x2 + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz NVGRE IPV4+UDP + create rule for the rss type symmetric_toeplitz and hash IPV4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix nvgre pkts with fixed address and includ frag and udp ports + + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether(dst="68:05:ca:a3:28:94")/IP(src="8.8.8.1",dst="5.6.8.2")/UDP(sport=20,dport=22)/("X"*480)],iface="enp175s0f0",count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether(dst="68:05:ca:a3:28:94"/IP(src="5.6.8.2",dst="8.8.8.1")/UDP(sport=22,dport=20)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz NVGRE IPV4+SCTP + create rule for the rss type symmetric_toeplitz and hash IPV4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss func symmetric_toeplitz types ipv4-sctp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix nvgre pkts with fixed address and includ frag and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether(dst="68:05:ca:a3:28:94")/IP(src="8.8.8.1",dst="5.6.8.2")/SCTP(sport=20,dport=22)/("X"*480)],iface="enp175s0f0",count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether(dst="68:05:ca:a3:28:94")/IP(src="5.6.8.2",dst="8.8.8.1")/SCTP(sport=22,dport=20)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz NVGRE IPV4+TCP + create rule for the rss type symmetric_toeplitz and hash IPV4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix nvgre pkts with fixed address and includ frag and tcp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether(dst="68:05:ca:a3:28:94")/IP(src="8.8.8.1",dst="5.6.8.2")/TCP(sport=20,dport=22)/("X"*480)],iface="enp175s0f0",count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether(dst="68:05:ca:a3:28:94")/IP(src="5.6.8.2",dst="8.8.8.1")/TCP(sport=22,dport=20)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz NVGRE IPV4+ICMP + create rule for the rss type symmetric_toeplitz and hash IPV4 keywords + testpmd>flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end + testpmd>start + to send ip pkts with fix nvgre pkts with fixed address and includ frag and icmp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src="8.8.8.1",dst="5.6.8.2")/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IP(src="5.6.8.2",dst="8.8.8.1")/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fixed. + + symmetric_toeplitz NVGRE IPV6 pay + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix nvgre pkts with fixed address + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/("X"*480)],iface="enp175s0f0",count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)],iface="enp175s0f0",count=100) + 0xf7225f89 + 0xf7225f89 + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz NVGRE IPV6 pay+UDP + + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / udp / end actions rss func symmetric_toeplitz types ipv6-udp end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix nvgre pkts with fixed address and includ ipv6 frag and UDP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/UDP(sport=30,dport=32)/("X"*480)],iface="enp175s0f0",count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address and udp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=33)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz NVGRE IPV6 +TCP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix nvgre pkts with fixed address and includ ipv6 frag and tcp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/TCP(sport=30,dport=32)/("X"*480)],iface="enp175s0f0",count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address and tcp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=33)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz NVGRE IPV6 +SCTP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + + testpmd>flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss func symmetric_toeplitz types ipv6-sctp end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix nvgre pkts with fixed address and includ ipv6 frag and SCTP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/SCTP(sport=30,dport=32)/("X"*480)],iface="enp175s0f0",count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address and SCTP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=33)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz NVGRE IPV6 +ICMP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix nvgre pkts with fixed address and includ ipv6 frag and ICMP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + to send ip pkts with fix IPv6 includ frag and switch src and dst ip address and ICMP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + + symmetric_toeplitz VXLAN IPV6 PAY+UDP + + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / udp / end actions rss func symmetric_toeplitz types ipv6-udp end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix vxlan pkts with fixed address and includ ipv6 frag and UDP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/UDP(sport=30,dport=32)/("X"*480)],iface="enp175s0f0",count=100) + to send VXLAN pkts with fix IPv6 includ frag and switch src and dst ip address and UDP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=33)/("X"*480)],iface="enp175s0f0",count=100) + 0xc2032268 + 0xc2032268 + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz VXLAN IPV6 pay + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix vxlan pkts with fixed address and includ ipv6 frag + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/("X"*480)],iface="enp175s0f0",count=100) + to send VXLAN pkts with fix IPv6 includ frag and switch src and dst ip address + sendp([Ether(dst="68:05:ca:a3:28:94")/IP()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)],iface="enp175s0f0",count=100) + hash=0xc2032268 - RSS queue=0x0 + hash=0xc2032268 - RSS queue=0x0 + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz VXLAN IPV6 PAY+TCP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix vxlan pkts with fixed address and includ ipv6 frag and tcp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/TCP(sport=30,dport=32)/("X"*480)],iface="enp175s0f0",count=100) + to send VXLAN pkts with fix IPv6 includ frag and switch src and dst ip address and tcp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=33)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz VXLAN IPV6 PAY+SCTP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + + testpmd>flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss func symmetric_toeplitz types ipv6-sctp end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix vxlan pkts with fixed address and includ ipv6 frag and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/SCTP(sport=30,dport=32)/("X"*480)],iface="enp175s0f0",count=100) + to send VXLAN pkts with fix IPv6 includ frag and switch src and dst ip address and sctp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=33)/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + symmetric_toeplitz VXLAN IPV6 PAY+ICMP + create rule for the rss type symmetric_toeplitz and hash IPV6 keywords + testpmd>flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end + testpmd>start + to send ipv6 pkts with fix vxlan pkts with fixed address and includ ipv6 frag and ICMP ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + to send VXLAN pkts with fix IPv6 includ frag and switch src and dst ip address and icmp ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)],iface="enp175s0f0",count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + + simple_xor + create rule for the rss type simple_xor + testpmd>flow create 0 ingress pattern end actions rss func simple_xor key_len 0 queues end / end + testpmd>start + + IPV4 + to send IPV4 pkt with fixed IP and switch IP src and dst address and switch the upd, tcp, sctp, icpm ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="1.1.4.1",dst="2.2.2.3")/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="2.2.2.3",dst="1.1.4.1")/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="1.1.4.1",dst="2.2.2.3")/UDP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="2.2.2.3",dst="1.1.4.1")/UDP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="1.1.4.1",dst="2.2.2.3")/TCP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="2.2.2.3",dst="1.1.4.1")/TCP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="1.1.4.1",dst="2.2.2.3")/SCTP(sport=20,dport=22)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="2.2.2.3",dst="1.1.4.1")/SCTP(sport=22,dport=20)/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="1.1.4.1",dst="2.2.2.3")/ICMP()/("X"*480)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IP(src="2.2.2.3",dst="1.1.4.1")/ICMP()/("X"*480)], iface="enp175s0f0", count=100) + testpmd> stop + verify 100 pkts has sent, and check the has value has fix + + IPV6 + to send IPV6 pkt with fixed IP and switch IP src and dst address and switch the upd, tcp, sctp, icpm ports + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/UDP(sport=30,dport=32)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=30)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/TCP(sport=30,dport=32)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=30)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/SCTP(sport=30,dport=32)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=30)/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2929")/ICMP)(/("X" * 80)], iface="enp175s0f0", count=100) + sendp([Ether(dst="68:05:ca:a3:28:94")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X" * 80)], iface="enp175s0f0", count=100) + + 0x5c24be5 - RSS queue=0x5 + 0x5c24be5 - RSS queue=0x5 + testpmd> stop + verify 100 pkts has sent, and check the has value has fix \ No newline at end of file -- 1.8.3.1