test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V3 ] test_plans:add rss enable feature for the CVL25 and CVL100G nic
@ 2019-12-11 14:02 zhiwei.he
  0 siblings, 0 replies; only message in thread
From: zhiwei.he @ 2019-12-11 14:02 UTC (permalink / raw)
  To: dts; +Cc: zhiwei.he

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

Signed-off-by: zhiwei.he <zhiwei.he@intel.com>
---
 test_plans/enable_advanced_rss_cvl_test_plan.rst | 2727 ++++++++++++++++++++++
 1 file changed, 2727 insertions(+)
 create mode 100644 test_plans/enable_advanced_rss_cvl_test_plan.rst

diff --git a/test_plans/enable_advanced_rss_cvl_test_plan.rst b/test_plans/enable_advanced_rss_cvl_test_plan.rst
new file mode 100644
index 0000000..4cc3fdb
--- /dev/null
+++ b/test_plans/enable_advanced_rss_cvl_test_plan.rst
@@ -0,0 +1,2727 @@
+.. Copyright (c) <2019>, 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/
+ 
+Note This rss feature designed for CVL NIC 25G and 100g, so below the case only support CVL nic.
+
+3. bind the CVL port to dpdk driver in DUT::
+   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
+   
+4. Launch the testpmd to configuration queue of rx and tx number 64 in DUT::
+   
+   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 in tester
+   scapy::
+   >>> import sys
+   >>> sys.path.append('/root')
+   >>> from nvgre import NVGRE
+   >>> from scapy.contrib.gtp import * 
+
+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
+	   testpmd>start
+   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 64 queues evenly with 
+   differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 NONFRAG
+   
+   Verbose log: 
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x60994f6e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV   4  - l2_len=14 - l3_len=20 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+  ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+  RX-packets: 4              TX-packets: 0              TX-dropped: 0
+
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 
+Test case MAC IPV4 l3 src only +frag:
+=====================================
+   create rule for the rss type for l3 src only::
+       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 +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 64 queues evenly with 
+   differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 "FRAG"
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x8f3b929a - RSS queue=0x1a - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x1a ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case MAC IPV4 l3 dst only:   
+============================== 
+   create rule for the rss type for l3 dst only::
+       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 +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 64 queues evenly with 
+   differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 "FRAG"
+   
+   Verbose log: 
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x1cf7734e - RSS queue=0xe - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0xe ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case MAC IPV4 l3 dst only +frag:
+==================================== 
+   create rule for the rss type for l3 dst only::
+       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 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 64 queues evenly with 
+   differently RSS random value,and check the pkts typ is L2_ETHER L3_IPV4 "FRAG"
+   
+   Verbose log: 
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=126 - nb_segs=1 - RSS hash=0x19ba9335 - RSS queue=0x35 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x35 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case MAC IPV4 l3 src only +frag+ICMP:
+=========================================== 
+   create rule for the rss type for l3 dst only::
+       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 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log: 
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=122 - nb_segs=1 - RSS hash=0xa0082ea9 - RSS queue=0x29 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x29 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case  MAC IPV4 l3 dst only +frag+ICMP:
+===========================================
+    create rule for the rss type for l3 dst only::
+       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 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 64 queues evenly with 
+   differently RSS random value
+   Verbose log: 
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=122 - nb_segs=1 - RSS hash=0xc2aeab85 - RSS queue=0x5 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x5 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x5f40189d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+	 
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0x9062a59e - RSS queue=0x1e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_ICMP  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x1e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0x3acd1b57 - RSS queue=0x17 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_ICMP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - Receive queue=0x17 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOW
+	
+	statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xb6edf1d9 - RSS queue=0x19 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_ICMP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - Receive queue=0x19 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case MAC IPV4 l3 dst NVGRE+frag+ICMP:
+==========================================
+   create rule for the rss type is IPV4 l3 dst +NVGRE inner IPV4 +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 64 queues evenly with 
+   differently RSS random value  
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xbe7a5fcb - RSS queue=0xb - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_ICMP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - Receive queue=0xb ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=172 - nb_segs=1 - RSS hash=0x68f0f2f0 - RSS queue=0x30 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x30 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=172 - nb_segs=1 - RSS hash=0xeaad4722 - RSS queue=0x22 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x22 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 64 queues evenly with 
+   differently RSS random value 
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=172 - nb_segs=1 - RSS hash=0xd27688d2 - RSS queue=0x12 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x12 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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)
+	   
+   Verbose log:  
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=134 - nb_segs=1 - RSS hash=0x8d68d06b - RSS queue=0x2b - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x2b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+	 
+Test case  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 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())/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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0x12b21f36 - RSS queue=0x36 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x36 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0x91e45159 - RSS queue=0x19 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x19 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=150 - nb_segs=1 - RSS hash=0xc7ef87f0 - RSS queue=0x30 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x30 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+   UDP
+Test case  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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xbc5d0649 - RSS queue=0x9 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x9 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case  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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log :
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xebbe10b9 - RSS queue=0x39 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x39 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case  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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0x5ede0d03 - RSS queue=0x3 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x3 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=572 - nb_segs=1 - RSS hash=0x19c3ca22 - RSS queue=0x22 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x22 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0x680b4ccd - RSS queue=0xd - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - Receive queue=0xd ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=150 - nb_segs=1 - RSS hash=0x32444f2e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+   TCP
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=534 - nb_segs=1 - RSS hash=0x1e540c6b - RSS queue=0x2b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER L3_IPV4 L4_TCP  - l2_len=14 - l3_len=20 - l4_len=20 - Receive queue=0x2b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=534 - nb_segs=1 - RSS hash=0x13568cc3 - RSS queue=0x3 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER L3_IPV4 L4_TCP  - l2_len=14 - l3_len=20 - l4_len=20 - Receive queue=0x3 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=576 - nb_segs=1 - RSS hash=0xace157a1 - RSS queue=0x21 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_TCP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=20 - Receive queue=0x21 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=596 - nb_segs=1 - RSS hash=0x55a8c647 - RSS queue=0x7 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER L3_IPV4 L4_TCP  - l2_len=14 - l3_len=20 - l4_len=20 - Receive queue=0x7 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=154 - nb_segs=1 - RSS hash=0xe50da430 - RSS queue=0x30 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER L3_IPV6 L4_TCP  - l2_len=14 - l3_len=40 - l4_len=20 - Receive queue=0x30 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+Test case MAC IPV6 TCP all+frag:
+===============================
+    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 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=162 - nb_segs=1 - RSS hash=0x811e5fd9 - RSS queue=0x19 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x19 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+   
+SCTP
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=526 - nb_segs=1 - RSS hash=0x2bc3393c - RSS queue=0x3c - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 L4_SCTP  - l2_len=14 - l3_len=20 - l4_len=12 - Receive queue=0x3c ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=526 - nb_segs=1 - RSS hash=0x93fcd128 - RSS queue=0x28 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 L4_SCTP  - l2_len=14 - l3_len=20 - l4_len=12 - Receive queue=0x28 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++	 
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=568 - nb_segs=1 - RSS hash=0x99c15268 - RSS queue=0x28 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_SCTP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=12 - Receive queue=0x28 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case  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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+    src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=580 - nb_segs=1 - RSS hash=0x2dd6c341 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 L4_SCTP  - l2_len=14 - l3_len=20 - l4_len=12 - Receive queue=0x1 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=146 - nb_segs=1 - RSS hash=0x747b7629 - RSS queue=0x29 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER L3_IPV6 L4_SCTP  - l2_len=14 - l3_len=40 - l4_len=12 - Receive queue=0x29 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:02 - dst=68:05:CA:A3:28:94 - type=0x8864 - length=530 - nb_segs=1 - RSS hash=0x7d10ebb0 - RSS queue=0x30 - hw ptype: L2_ETHER_PPPOE L3_IPV4_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x30 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   Verbose log:
+   src=A4:BF:01:68:D2:02 - dst=68:05:CA:A3:28:94 - type=0x8864 - length=522 - nb_segs=1 - RSS hash=0x479dc5ff - RSS queue=0x3f - hw ptype: L2_ETHER_PPPOE L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x3f l_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:02 - dst=68:05:CA:A3:28:94 - type=0x8864 - length=530 - nb_segs=1 - RSS hash=0x780919d3 - RSS queue=0x13 - hw ptype: L2_ETHER_PPPOE L3_IPV4_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x13 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 end 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbos log:
+   src=A4:BF:01:68:D2:02 - dst=68:05:CA:A3:28:94 - type=0x8864 - length=542 - nb_segs=1 - RSS hash=0x5276958d - RSS queue=0xd - hw ptype: L2_ETHER_PPPOE L3_IPV4_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0xd ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 end 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:02 - dst=68:05:CA:A3:28:94 - type=0x8864 - length=534 - nb_segs=1 - RSS hash=0x8e1478bd - RSS queue=0x3d - hw ptype: L2_ETHER_PPPOE L3_IPV4_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x3d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case PPPOE IPV4+ICMP:
+=========================
+   create rule for the rss type pppoe and hash icmp keywords::
+        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 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:02 - dst=68:05:CA:A3:28:94 - type=0x8864 - length=530 - nb_segs=1 - RSS hash=0x937942b3 - RSS queue=0x33 - hw ptype: L2_ETHER_PPPOE L3_IPV4_EXT_UNKNOWN L4_ICMP  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x33 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=558 - nb_segs=1 - RSS hash=0x9e0ebe0d - RSS queue=0xd - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GTPU INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_ICMP  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =32913, Destination UDP port =2152, VNI = 4660 - Receive queue=0xd ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=558 - nb_segs=1 - RSS hash=0x1fffbba9 - RSS queue=0x29 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GTPU INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =32913, Destination UDP port =2152, VNI = 4660 - Receive queue=0x29 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 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 64 queues evenly with 
+   differently RSS random value
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=570 - nb_segs=1 - RSS hash=0x9b95719a - RSS queue=0x1a - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GTPU INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =32913, Destination UDP port =2152, VNI = 4660 - Receive queue=0x1a ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 64 queues evenly with 
+   differently RSS random value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=558 - nb_segs=1 - RSS hash=0x246ceef7 - RSS queue=0x37 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GTPU INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =32913, Destination UDP port =2152, VNI = 4660 - Receive queue=0x37 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   statistics log:
+   ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+   RX-packets: 1              TX-packets: 0              TX-dropped: 0
+   
+   ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+   RX-packets: 2              TX-packets: 0              TX-dropped: 0
+   
+   ......
+   
+   ------- Forward Stats for RX Port= 0/Queue=63 -> TX Port= 0/Queue=63 -------
+   RX-packets: 4              TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 100            RX-dropped: 0             RX-total: 100
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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(dst="68:05:ca:a3:28:94")/IP(src="192.168.0.2",dst="192.168.0.1")/("X"*480)], iface="enp175s0f0", count=100)
+		
+   
+   Verbos log:  
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   To verify the hash value keep with a same value when the IP has exchanged.
+
+   hash=0xf84ccd9b - RSS queue=0
+   hash=0xf84ccd9b - RSS queue=0
+   
+   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)
+
+   testpmd> stop
+   verify 100 pkts has sent, and check the has value has fixed, verify the has value keep with a same value, when the IP has exchanged
+   
+   		
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x772baed3 - RSS queue=0x13 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x13 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x772baed3 - RSS queue=0x13 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x13 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   
+   0x772baed3 - RSS queue=0x19
+   0x772baed3 - RSS queue=0x19
+   
+    statistics log:
+    ------- Forward Stats for RX Port= 0/Queue=19 -> TX Port= 0/Queue=19 -------
+    RX-packets: 200            TX-packets: 0              TX-dropped: 0
+    
+    ---------------------- Forward statistics for port 0  ----------------------
+    RX-packets: 200            RX-dropped: 0             RX-total: 200
+    TX-packets: 0              TX-dropped: 0             TX-total: 0
+    ----------------------------------------------------------------------------
+    
+    +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+    RX-packets: 200            RX-dropped: 0             RX-total: 200
+    TX-packets: 0              TX-dropped: 0             TX-total: 0
+    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+Test case 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 rss has has fixed with a same value.
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+     hash=0xf84ccd9b
+	 hash=0xf84ccd9b
+	 
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=27 -> TX Port= 0/Queue=27 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=27 -> TX Port= 0/Queue=27 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xb17bfaa4 - RSS queue=0x24 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x24 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xb17bfaa4 - RSS queue=0x24 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x24 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+ 
+     To verify after change the ip address and udp port , then rss value keep with a value
+     RSS hash=0xb17bfaa4 - RSS queue=0x24
+	 RSS hash=0xb17bfaa4 - RSS queue=0x24
+	 
+  statistics log:	 
+  ------- Forward Stats for RX Port= 0/Queue=36 -> TX Port= 0/Queue=36 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=534 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=534 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+	 RSS hash=0xf84ccd9b - RSS queue=0x1b
+	 RSS hash=0xf84ccd9b - RSS queue=0x1b
+	 
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=27 -> TX Port= 0/Queue=27 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 rssh hash keep a fixed value.
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=526 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=526 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+	 RSS hash=0xf84ccd9b - RSS queue=0x1b
+	 RSS hash=0xf84ccd9b - RSS queue=0x1b
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=27 -> TX Port= 0/Queue=27 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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) 
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash value with a fixed value .
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=522 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_FRAG  - l2_len=14 - l3_len=20 - l4_len=0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+	 RSS hash=0xf84ccd9b - RSS queue=0x1b
+	 RSS hash=0xf84ccd9b - RSS queue=0x1b
+
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=27 -> TX Port= 0/Queue=27 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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)
+
+   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)
+        testpmd> stop
+   verify 100 pkts has sent, and check the rssh hash with a fixed value .
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=134 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+     
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=134 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_FRAG  - sw ptype: L2_ETHER L3_IPV6_EXT L4_FRAG  - l2_len=14 - l3_len=48 - l4_len=0 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_UDP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+     statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=154 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER L3_IPV6 L4_TCP  - l2_len=14 - l3_len=40 - l4_len=20 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=154 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_TCP  - sw ptype: L2_ETHER L3_IPV6 L4_TCP  - l2_len=14 - l3_len=40 - l4_len=20 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=146 - nb_segs=1 - RSS hash=0x302ae154 - RSS queue=0x14 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER L3_IPV6 L4_SCTP  - l2_len=14 - l3_len=40 - l4_len=12 - Receive queue=0x14 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=146 - nb_segs=1 - RSS hash=0x302ae154 - RSS queue=0x14 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_SCTP  - sw ptype: L2_ETHER L3_IPV6 L4_SCTP  - l2_len=14 - l3_len=40 - l4_len=12 - Receive queue=0x14 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=142 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+  statistics log:
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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()/IP()/NVGRE()/Ether()/IP(src="192.168.0.8",dst="192.168.0.69",frag=6)/("X"*480)], iface="enp175s0f0", count=100)
+        sendp([Ether()/IP()/NVGRE()/Ether()/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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=556 - nb_segs=1 - RSS hash=0xfb259850 - RSS queue=0x10 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_FRAG  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=0 - Receive queue=0x10 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=556 - nb_segs=1 - RSS hash=0xfb259850 - RSS queue=0x10 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_FRAG  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=0 - Receive queue=0x10 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+  
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=16 -> TX Port= 0/Queue=16 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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)
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash with a fixed value.
+   
+   Verbose log:
+    src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+    src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xf84ccd9b - RSS queue=0x1b - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_FRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x1b ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=27 -> TX Port= 0/Queue=27 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+  statistics log: 	 
+  ------- Forward Stats for RX Port= 0/Queue=29 -> TX Port= 0/Queue=29 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=568 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_SCTP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=12 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=568 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_SCTP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=12 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+  statistics log: 	 
+  ------- Forward Stats for RX Port= 0/Queue=29 -> TX Port= 0/Queue=29 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+	 
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=576 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_TCP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=20 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=576 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4 INNER_L4_TCP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - inner_l4_len=20 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=29 -> TX Port= 0/Queue=29 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+Test case 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 rss hash with a fixed value.
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=564 - nb_segs=1 - RSS hash=0xf554691d - RSS queue=0x1d - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV4_EXT_UNKNOWN INNER_L4_ICMP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV4  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=20 - Receive queue=0x1d ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=29 -> TX Port= 0/Queue=29 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+   
+Test case 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)
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash with a fixed value.
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=576 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=576 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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 rss hash with a fixed value.
+  Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=584 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - inner_l4_len=8 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=584 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - inner_l4_len=8 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 rss hash with a fixed value.
+  Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=596 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6 INNER_L4_TCP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - inner_l4_len=20 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=596 - nb_segs=1 - RSS hash=0xe964492e - RSS queue=0x2e - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6 INNER_L4_TCP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - inner_l4_len=20 - Receive queue=0x2e ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=46 -> TX Port= 0/Queue=46 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=588 - nb_segs=1 - RSS hash=0x302ae154 - RSS queue=0x14 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6 INNER_L4_SCTP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - inner_l4_len=12 - Receive queue=0x14 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=588 - nb_segs=1 - RSS hash=0x302ae154 - RSS queue=0x14 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6 INNER_L4_SCTP  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - inner_l4_len=12 - Receive queue=0x14 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log: 
+   ------- Forward Stats for RX Port= 0/Queue=20 -> TX Port= 0/Queue=20 -------
+   RX-packets: 200            TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+Test case 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 rss hash with a fixed value.
+   Verbose log:
+    src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=584 - nb_segs=1 - RSS hash=0xecf6d539 - RSS queue=0x39 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - Receive queue=0x39 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+    src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=584 - nb_segs=1 - RSS hash=0xecf6d539 - RSS queue=0x39 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4 TUNNEL_NVGRE INNER_L2_ETHER INNER_L3_IPV6  - l2_len=14 - l3_len=20 - tunnel_len=8 - inner_l2_len=14 - inner_l3_len=40 - Receive queue=0x39 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log: 
+   ------- Forward Stats for RX Port= 0/Queue=57 -> TX Port= 0/Queue=57 -------
+   RX-packets: 200            TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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)
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=612 - nb_segs=1 - RSS hash=0x2612a8b2 - RSS queue=0x32 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x32 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=612 - nb_segs=1 - RSS hash=0x2612a8b2 - RSS queue=0x32 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_UDP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x32 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log: 
+   ------- Forward Stats for RX Port= 0/Queue=50 -> TX Port= 0/Queue=50 -------
+   RX-packets: 200            TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+   
+Test case 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)
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=584 - nb_segs=1 - RSS hash=0xecf6d539 - RSS queue=0x39 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x39 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=584 - nb_segs=1 - RSS hash=0xecf6d539 - RSS queue=0x39 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - VXLAN packet: packet type =24721, Destination UDP port =4789, VNI = 0 - Receive queue=0x39 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=57 -> TX Port= 0/Queue=57 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+   
+Test case 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=624 - nb_segs=1 - RSS hash=0x2612a8b2 - RSS queue=0x32 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x32 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=624 - nb_segs=1 - RSS hash=0x2612a8b2 - RSS queue=0x32 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_TCP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x32 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+  statistics log: 
+  ------- Forward Stats for RX Port= 0/Queue=50 -> TX Port= 0/Queue=50 -------
+  RX-packets: 200            TX-packets: 0              TX-dropped: 0
+
+  ---------------------- Forward statistics for port 0  ----------------------
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ----------------------------------------------------------------------------
+
+  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+  RX-packets: 200            RX-dropped: 0             RX-total: 200
+  TX-packets: 0              TX-dropped: 0             TX-total: 0
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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=30)/("X"*480)],iface="enp175s0f0",count=100)
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=616 - nb_segs=1 - RSS hash=0x2612a8b2 - RSS queue=0x32 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x32 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=616 - nb_segs=1 - RSS hash=0x2612a8b2 - RSS queue=0x32 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_SCTP  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x32 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+   statistics log: 
+   ------- Forward Stats for RX Port= 0/Queue=50 -> TX Port= 0/Queue=50 -------
+   RX-packets: 200            TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+   
+Test case 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 rss hash with a fixed value
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=612 - nb_segs=1 - RSS hash=0xecf6d539 - RSS queue=0x39 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN TUNNEL_GRENAT INNER_L2_ETHER INNER_L3_IPV6_EXT_UNKNOWN INNER_L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6 L4_UDP  - l2_len=14 - l3_len=40 - l4_len=8 - VXLAN packet: packet type =24801, Destination UDP port =4789, VNI = 0 - Receive queue=0x39 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log: 
+   ------- Forward Stats for RX Port= 0/Queue=50 -> TX Port= 0/Queue=50 -------
+   RX-packets: 200            TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Test case 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
+   
+Test case  simple_xor 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 rss hash with a fixed value.
+   
+   Verbose log:
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x3030602 - RSS queue=0x2 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x2 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   src=A4:BF:01:68:D2:03 - dst=68:05:CA:A3:28:94 - type=0x0800 - length=514 - nb_segs=1 - RSS hash=0x3030602 - RSS queue=0x2 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV4  - l2_len=14 - l3_len=20 - Receive queue=0x2 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   statistics log: 
+   ------- Forward Stats for RX Port= 0/Queue= 2 -> TX Port= 0/Queue= 2 -------
+   RX-packets: 200            TX-packets: 0              TX-dropped: 0
+   
+   ---------------------- Forward statistics for port 0  ----------------------
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ----------------------------------------------------------------------------
+   
+   +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+   RX-packets: 200            RX-dropped: 0             RX-total: 200
+   TX-packets: 0              TX-dropped: 0             TX-total: 0
+   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+Test case simple_xor 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)
+   
+        testpmd> stop
+   verify 100 pkts has sent, and check the rss hash with a fixed value.
+   
+   Verbose log:
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=134 - nb_segs=1 - RSS hash=0x5c24be5 - RSS queue=0x25 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x25 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+	 
+   src=00:00:00:00:00:00 - dst=68:05:CA:A3:28:94 - type=0x86dd - length=134 - nb_segs=1 - RSS hash=0x5c24be5 - RSS queue=0x25 - hw ptype: L2_ETHER L3_IPV6_EXT_UNKNOWN L4_NONFRAG  - sw ptype: L2_ETHER L3_IPV6  - l2_len=14 - l3_len=40 - Receive queue=0x25 ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN
+
+    statistics log: 
+    ------- Forward Stats for RX Port= 0/Queue=37 -> TX Port= 0/Queue=37 -------
+    RX-packets: 200            TX-packets: 0              TX-dropped: 0
+    
+    ---------------------- Forward statistics for port 0  ----------------------
+    RX-packets: 200            RX-dropped: 0             RX-total: 200
+    TX-packets: 0              TX-dropped: 0             TX-total: 0
+    ----------------------------------------------------------------------------
+    
+    +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+    RX-packets: 200            RX-dropped: 0             RX-total: 200
+    TX-packets: 0              TX-dropped: 0             TX-total: 0
+    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-11 14:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-11 14:02 [dts] [PATCH V3 ] test_plans:add rss enable feature for the CVL25 and CVL100G nic zhiwei.he

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).