test suite reviews and discussions
 help / color / mirror / Atom feed
From: "zhiwei.he" <zhiwei.he@intel.com>
To: dts@dpdk.org
Cc: "zhiwei.he" <zhiwei.he@intel.com>
Subject: [dts] [PATCH V1] test_plans: Add rss test plan support CVL100Gand25g nic
Date: Fri, 29 Nov 2019 16:24:29 +0800	[thread overview]
Message-ID: <1575015869-47438-1-git-send-email-zhiwei.he@intel.com> (raw)

From: "zhiwei.he" <zhiwei.he@intel.com>

add rss test plan support CVL25gand100g NIC

Signed-off-by: zhiwei.he <zhiwei.he@intel.com>
---
 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


                 reply	other threads:[~2019-11-29  8:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1575015869-47438-1-git-send-email-zhiwei.he@intel.com \
    --to=zhiwei.he@intel.com \
    --cc=dts@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).