From: Haiyang Zhao <haiyangx.zhao@intel.com>
To: dts@dpdk.org, qi.fu@intel.com
Cc: Xie wei <weix.xie@intel.com>
Subject: [dts] [PATCH V3 3/8] tests/TestSuite_cvl_advanced_iavf_rss:update script
Date: Mon, 2 Nov 2020 17:21:15 +0800 [thread overview]
Message-ID: <20201102092120.9146-4-haiyangx.zhao@intel.com> (raw)
In-Reply-To: <20201102092120.9146-1-haiyangx.zhao@intel.com>
From: Xie wei <weix.xie@intel.com>
* according to test plan, update cvl_advanced_iavf_rss script.
Signed-off-by: Xie wei <weix.xie@intel.com>
---
| 6305 ++++++++++++++++++----
1 file changed, 5279 insertions(+), 1026 deletions(-)
--git a/tests/TestSuite_cvl_advanced_iavf_rss.py b/tests/TestSuite_cvl_advanced_iavf_rss.py
index f1135b5..7513a80 100644
--- a/tests/TestSuite_cvl_advanced_iavf_rss.py
+++ b/tests/TestSuite_cvl_advanced_iavf_rss.py
@@ -29,781 +29,5078 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
-import time
+import re
+import random
from packet import Packet
from pmd_output import PmdOutput
from test_case import TestCase
-from config import UserConf
-import rte_flow_common as rfc
-
-vf0_mac = "00:01:23:45:67:89"
-vf1_mac = "00:11:22:33:44:55"
+from rte_flow_common import RssProcessing
+
+vf0_mac = "00:11:22:33:44:55"
+
+# toeplitz related data start
+mac_ipv4_toeplitz_basic_pkt = {
+ 'ipv4-nonfrag': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ ],
+ 'ipv4-frag': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2", frag=6)/("X"*480)' % vf0_mac,
+ ],
+ 'ipv4-icmp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ ],
+ 'ipv4-tcp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'ipv4-udp-vxlan': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv4_udp_toeplitz_basic_pkt = {
+ 'ipv4-udp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'nvgre': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv4_tcp_toeplitz_basic_pkt = {
+ 'ipv4-tcp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'nvgre': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv4_sctp_toeplitz_basic_pkt = {
+ 'ipv4-sctp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'nvgre': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv6_toeplitz_basic_pkt = {
+ 'ipv6-nonfrag': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ ],
+ 'ipv6-frag': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ ],
+ 'ipv6-icmp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ ],
+ 'ipv6-udp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'nvgre': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv6_udp_toeplitz_basic_pkt = {
+ 'ipv6-udp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'ipv4_udp_vxlan_ipv6_udp': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv6_tcp_toeplitz_basic_pkt = {
+ 'ipv6-tcp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'ipv4_tcp_vxlan_ipv6_tcp': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+mac_ipv6_sctp_toeplitz_basic_pkt = {
+ 'ipv6-sctp': [
+ 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ ],
+ # 'ipv4_sctp_vxlan_ipv6_sctp': [
+ # 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=23)/("X"*480)' % vf0_mac,
+ # ],
+}
+
+#mac_ipv4
+mac_ipv4_l2_src = {
+ 'sub_casename': 'mac_ipv4_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2", frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5",frag=7)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=19,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ ],
+}
+
+mac_ipv4_l2_dst = {
+ 'sub_casename': 'mac_ipv4_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5",frag=7)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=19,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ ],
+}
+
+mac_ipv4_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv4_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5",frag=7)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=23,dport=25)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ ],
+}
+
+mac_ipv4_l3_src = {
+ 'sub_casename': 'mac_ipv4_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'],
+ # 'action': {'save_hash': 'ipv4-udp-vxlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'][0],
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ ],
+}
+
+mac_ipv4_l3_dst = {
+ 'sub_casename': 'mac_ipv4_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'],
+ # 'action': {'save_hash': 'ipv4-udp-vxlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'][0],
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ ],
+}
+
+mac_ipv4_all = {
+ 'sub_casename': 'mac_ipv4_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'],
+ # 'action': {'save_hash': 'ipv4-udp-vxlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480))' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],
+ 'action': {'check_hash_different': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],
+ 'action': {'check_hash_different': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'][0],
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},
+ # },
+ ],
+}
-tv_iavf_mac_eth_src_only = {
- "name": "iavf_mac_eth_src_only",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l2-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(src=RandMAC())/IP()/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+# mac ipv4_udp
+mac_ipv4_udp_l2_src = {
+ 'sub_casename': 'mac_ipv4_udp_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ],
}
-tv_iavf_mac_eth_dst_only = {
- "name": "iavf_mac_eth_dst_only",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l2-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_udp_l2_dst = {
+ 'sub_casename': 'mac_ipv4_udp_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': ' Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ],
}
-tv_iavf_mac_ipv4_l3_src = {
- "name": "iavf_mac_ipv4_l3_src",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_src_frag = {
- "name": "iavf_mac_ipv4_l3_src_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),frag=5)/SCTP(sport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(), dst="192.168.0.8", frag=5)/SCTP(sport=RandShort())/("X" * 80)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_dst = {
- "name": "iavf_mac_ipv4_l3_dst",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(dst=RandIP())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src="192.168.0.8",dst=RandIP())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_dst_frag = {
- "name": "iavf_mac_ipv4_l3_dst_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_src_frag_icmp = {
- "name": "iavf_mac_ipv4_l3_dst_frag_icmp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(), frag=5)/ICMP()/("X" *480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_dst_frag_icmp = {
- "name": "iavf_mac_ipv4_l3_dst_frag_icmp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(dst=RandIP(), frag=5)/ICMP()/("X" *480)' % vf0_mac,
- 'Ether(dst="%s")/IP(dst=RandIP(), src="192.168.0.5",frag=5)/ICMP()/("X" * 80)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_pay = {
- "name": "iavf_mac_ipv4_pay",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/("X" *480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_pay_frag_icmp = {
- "name": "iavf_mac_ipv4_pay_frag_icmp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/ICMP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_src_nvgre = {
- "name": "iavf_mac_ipv4_l3_src_nvgre",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP()/NVGRE()/Ether()/IP(src=RandIP())/ICMP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_l3_dst_nvgre = {
- "name": "iavf_mac_ipv4_l3_dst_nvgre",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP()/NVGRE()/Ether()/IP(dst=RandIP())/ICMP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_nvgre_udp_frag = {
- "name": "iavf_mac_ipv4_nvgre_udp_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_nvgre_sctp = {
- "name": "iavf_mac_ipv4_nvgre_sctp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_tcp_pay = {
- "name": "iavf_mac_ipv4_tcp_pay",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP()/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/TCP()/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP(),frag=4)/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- ],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_tcp_frag = {
- "name": "iavf_mac_ipv4_tcp_frag",
- "rte_flow_pattern": "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",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP()) / TCP(dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst="192.168.0.2")/TCP(sport=22,dport=RandShort())/("X"*480)' % vf0_mac,
- ],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_udp = {
- "name": "iavf_mac_ipv4_udp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types l3-src-only l4-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP())/UDP(dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst="192.168.0.2")/UDP(sport=33,dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_udp_frag = {
- "name": "iavf_mac_ipv4_udp_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP()/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_sctp = {
- "name": "iavf_mac_ipv4_sctp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types l3-src-only l4-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP())/SCTP(dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(dst=RandIP())/SCTP(sport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_sctp_frag = {
- "name": "iavf_mac_ipv4_sctp_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP()/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_l3_src = {
- "name": "iavf_mac_ipv6_l3_src",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / end actions rss types l3-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_l3_src_frag = {
- "name": "iavf_mac_ipv6_l3_src_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / end actions rss types l3-src-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IPv6(src=RandIP6(),dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X" * 480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_l3_dst = {
- "name": "iavf_mac_ipv6_l3_dst",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / end actions rss types l3-dst-only end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(dst=RandIP6())/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst=RandIP6())/IPv6ExtHdrFragment()/("X" * 480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_pay = {
- "name": "iavf_mac_ipv6_pay",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/IPv6ExtHdrFragment()/ICMP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_sctp_pay = {
- "name": "iavf_mac_ipv6_sctp_pay",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-tv_iavf_mac_ipv6_udp = {
- "name": "iavf_mac_ipv6_udp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6()) / UDP(sport=RandShort(), dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_udp_frag = {
- "name": "iavf_mac_ipv6_udp_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_tcp = {
- "name": "iavf_mac_ipv6_tcp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_tcp_frag = {
- "name": "iavf_mac_ipv6_tcp_frag",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_udp_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv4_udp_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ],
}
-tv_iavf_mac_cvlan_rss = {
- "name": "iavf_mac_cvlan_rss",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / vlan / ipv4 / end actions rss types c-vlan end key_len 0 queues end / end",
- "scapy_str": ['Ether()/Dot1Q(vlan=RandShort())/IP(src=RandIP())/UDP()/("X"*480)',
- 'Ether(type=0x9100)/Dot1Q(vlan=RandShort())/Dot1Q(vlan=56)/IP(src=RandIP())/UDP()/("X"*480)',
- ],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_udp_l3_src = {
+ 'sub_casename': 'mac_ipv4_udp_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_mac_ipv4_pfcp_session = {
- "name": "iavf_mac_ipv4_pfcp_session",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end",
- "scapy_str": [
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/Raw("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=0)/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/("X"*480)' % vf0_mac,
+mac_ipv4_udp_l3_dst = {
+ 'sub_casename': 'mac_ipv4_udp_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
}
-tv_iavf_mac_ipv6_pfcp_session = {
- "name": "iavf_mac_ipv6_pfcp_session",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=0)/("X"*480)' % vf0_mac,
- 'Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/'
- '("X"*480)' % vf0_mac,
- ],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_udp_l3src_l4src = {
+ 'sub_casename': 'mac_ipv4_udp_l3src_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_up_match_dismatch = {
- "name": "iavf_gtpu_ipv4_up_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / "
- "end actions rss types ipv4 l3-src-only end key_len 0 queues end / end",
+mac_ipv4_udp_l3src_l4dst = {
+ 'sub_casename': 'mac_ipv4_udp_l3src_l4dst',
+ 'port_id': 0,
+ 'rule': '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',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01",dst="%s")/IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255,teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader( pdu_type=1, qos_flow=0x34) / IP(src=RandIP()) /("X"*480)' % vf0_mac],
+mac_ipv4_udp_l3dst_l4src = {
+ 'sub_casename': 'mac_ipv4_udp_l3dst_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01",dst="%s")/IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255,teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader( pdu_type=0, qos_flow=0x34) / IP(dst=RandIP()) /("X"*480)' % vf0_mac,
- 'Ether(src="00:00:00:00:01:01",dst="%s")/IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255,teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader( pdu_type=0, qos_flow=0x34) / IP(dst=RandIP()) / UDP() /("X"*480)' % vf0_mac,
- ],
+mac_ipv4_udp_l3dst_l4dst = {
+ 'sub_casename': 'mac_ipv4_udp_l3dst_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_udp_l4_src = {
+ 'sub_casename': 'mac_ipv4_udp_l4_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_down_match_dismatch = {
- "name": "iavf_gtpu_ipv4_down_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / "
- "end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end",
+mac_ipv4_udp_l4_dst = {
+ 'sub_casename': 'mac_ipv4_udp_l4_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01",dst="%s")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(dst=RandIP())/("X"*480)' % vf0_mac],
+mac_ipv4_udp_all = {
+ 'sub_casename': 'mac_ipv4_udp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01",dst="%s")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(src=RandIP())/("X"*480)' % vf0_mac,
- ],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+# mac ipv4_tcp
+mac_ipv4_tcp_l2_src = {
+ 'sub_casename': 'mac_ipv4_tcp_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ ],
}
-tv_iavf_gtpu_ipv4_frag_up_match_dismatch = {
- "name": "iavf_gtpu_ipv4_frag_up_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 l3-src-only end "
- "key_len 0 queues end / end ",
+mac_ipv4_tcp_l2_dst = {
+ 'sub_casename': 'mac_ipv4_tcp_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': ' Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(src=RandIP(),frag=6)/("X"*480)' % vf0_mac],
+mac_ipv4_tcp_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv4_tcp_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/TCP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34)/IP(src=RandIP(),frag=6)/("X"*480)' % vf0_mac],
+mac_ipv4_tcp_l3_src = {
+ 'sub_casename': 'mac_ipv4_tcp_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_tcp_l3_dst = {
+ 'sub_casename': 'mac_ipv4_tcp_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_frag_down_match_dismatch = {
+mac_ipv4_tcp_l3src_l4src = {
+ 'sub_casename': 'mac_ipv4_tcp_l3src_l4src',
+ 'port_id': 0,
+ 'rule': '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',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "name": "iavf_gtpu_ipv4_frag_down_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end "
- "key_len 0 queues end / end ",
+mac_ipv4_tcp_l3src_l4dst = {
+ 'sub_casename': 'mac_ipv4_tcp_l3src_l4dst',
+ 'port_id': 0,
+ 'rule': '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',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34) / IP(dst=RandIP(), frag=6) /("X"*480)' % vf0_mac],
+mac_ipv4_tcp_l3dst_l4src = {
+ 'sub_casename': 'mac_ipv4_tcp_l3dst_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34) / IP(src=RandIP(), frag=6) /("X"*480)' % vf0_mac],
+mac_ipv4_tcp_l3dst_l4dst = {
+ 'sub_casename': 'mac_ipv4_tcp_l3dst_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_tcp_l4_src = {
+ 'sub_casename': 'mac_ipv4_tcp_l4_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_udp_up_match_dismatch = {
- "name": "iavf_gtpu_ipv4_udp_up_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp "
- "l3-src-only end key_len 0 queues end / end",
+mac_ipv4_tcp_l4_dst = {
+ 'sub_casename': 'mac_ipv4_tcp_l4_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(src=RandIP()) / UDP(dport=RandShort())/("X"*480)' % vf0_mac],
+mac_ipv4_tcp_all = {
+ 'sub_casename': 'mac_ipv4_tcp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(dst=RandIP()) / UDP(dport=RandShort())/("X"*480)' % vf0_mac],
+# mac ipv4_sctp
+mac_ipv4_sctp_l2_src = {
+ 'sub_casename': 'mac_ipv4_sctp_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/SCTP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ ],
+}
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_sctp_l2_dst = {
+ 'sub_casename': 'mac_ipv4_sctp_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': ' Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.3", src="192.168.0.5")/SCTP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ ],
}
-tv_iavf_gtpu_ipv4_udp_down_match_dismatch = {
+mac_ipv4_sctp_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv4_sctp_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.3", src="192.168.0.5")/SCTP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ ],
+}
- "name": "iavf_gtpu_ipv4_udp_down_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end "
- "key_len 0 queues end / end ",
+mac_ipv4_sctp_l3_src = {
+ 'sub_casename': 'mac_ipv4_sctp_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34) / IP(dst=RandIP(), frag=6) /("X"*480)' % vf0_mac],
+mac_ipv4_sctp_l3_dst = {
+ 'sub_casename': 'mac_ipv4_sctp_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34) / IP(src=RandIP(), frag=6) /("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_sctp_l3src_l4src = {
+ 'sub_casename': 'mac_ipv4_sctp_l3src_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l3-src-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_tcp_up_match_dismatch = {
- "name": "iavf_gtpu_ipv4_tcp_up_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp /"
- " end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end",
+mac_ipv4_sctp_l3src_l4dst = {
+ 'sub_casename': 'mac_ipv4_sctp_l3src_l4dst',
+ 'port_id': 0,
+ 'rule': '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',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(src=RandIP())/TCP(dport=RandShort())/("X"*480)' % vf0_mac],
+mac_ipv4_sctp_l3dst_l4src = {
+ 'sub_casename': 'mac_ipv4_sctp_l3dst_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l3-dst-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / TCP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(dst=RandIP())/TCP(dport=RandShort())/("X"*480)' % vf0_mac],
+mac_ipv4_sctp_l3dst_l4dst = {
+ 'sub_casename': 'mac_ipv4_sctp_l3dst_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l3-dst-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv4_sctp_l4_src = {
+ 'sub_casename': 'mac_ipv4_sctp_l4_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.1.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_tcp_down_match_dismatch = {
+mac_ipv4_sctp_l4_dst = {
+ 'sub_casename': 'mac_ipv4_sctp_l4_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.1.1", src="192.168.1.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.1.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "name": "iavf_gtpu_ipv4_tcp_down_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp /"
- " end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end",
+mac_ipv4_sctp_all = {
+ 'sub_casename': 'mac_ipv4_sctp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.1.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],
+ 'action': {'check_hash_different': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34) /IP(dst=RandIP())/TCP(dport=RandShort())/("X"*480)' % vf0_mac],
+# mac_ipv6
+mac_ipv6_l2_src = {
+ 'sub_casename': 'mac_ipv6_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / TCP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34) /IP(src=RandIP())/TCP(dport=RandShort())/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv6_l2_dst = {
+ 'sub_casename': 'mac_ipv6_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2027")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2027")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2027")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
}
-tv_iavf_gtpu_ipv4_icmp_up_match_dismatch = {
- "name": "iavf_gtpu_ipv4_icmp_up_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 l3-src-only end "
- "key_len 0 queues end / end",
+mac_ipv6_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv6_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(src=RandIP())/ICMP()/("X"*480)' % vf0_mac],
+mac_ipv6_l3_src = {
+ 'sub_casename': 'mac_ipv6_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'][0],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(dst=RandIP())/ICMP()/("X"*480)' % vf0_mac],
+mac_ipv6_l3_dst = {
+ 'sub_casename': 'mac_ipv6_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'][0],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv6_all = {
+ 'sub_casename': 'mac_ipv6_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/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)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'],
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],
+ 'action': {'check_hash_different': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],
+ 'action': {'check_hash_different': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],
+ 'action': {'check_hash_different': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'][0],
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+}
+# mac_ipv6_udp
+mac_ipv6_udp_l2_src = {
+ 'sub_casename': 'mac_ipv6_udp_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
}
-tv_iavf_gtpu_ipv4_icmp_down_match_dismatch = {
+mac_ipv6_udp_l2_dst = {
+ 'sub_casename': 'mac_ipv6_udp_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
+}
- "name": "iavf_gtpu_ipv4_icmp_down_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end "
- "key_len 0 queues end / end",
+mac_ipv6_udp_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv6_udp_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/UDP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
+}
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34) /IP(dst=RandIP())/ICMP()/("X"*480)' % vf0_mac],
+mac_ipv6_udp_l3_src = {
+ 'sub_casename': 'mac_ipv6_udp_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34) /IP(src=RandIP())/ICMP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
+mac_ipv6_udp_l3_dst = {
+ 'sub_casename': 'mac_ipv6_udp_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
}
-tv_iavf_gtpu_ipv4_sctp_up_match_dismatch = {
- "name": "iavf_gtpu_ipv4_sctp_up_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types l3-src-only end "
- "key_len 0 queues end / end",
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(src=RandIP())/SCTP()/("X"*480)' % vf0_mac],
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x34)/IP(dst=RandIP())/SCTP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
+mac_ipv6_udp_l3src_l4src = {
+ 'sub_casename': 'mac_ipv6_udp_l3src_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l3-src-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
-tv_iavf_gtpu_ipv4_sctp_down_match_dismatch = {
- "name": "iavf_gtpu_ipv4_sctp_down_match_dismatch",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types l3-dst-only end "
- "key_len 0 queues end / end",
- "match_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34) /IP(dst=RandIP())/SCTP()/("X"*480)' % vf0_mac],
- "dismatch_str": ['Ether(src="00:00:00:00:01:01", dst="%s") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'
- 'GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x34) /IP(src=RandIP())/SCTP()/("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_mac_ipv4_tcp_inputset = {
- "name": "iavf_mac_ipv4_tcp_inputset",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end",
- "pf_rule": "rx-flow-hash tcp4 sdfn",
- "check_pf_rule_set": "rx-flow-hash tcp4",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "pf_scapy": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue,
- "check_pf_rss_func": rfc.check_pf_rss_queue
-}
-
-tv_mac_ipv4_udp_inputset = {
- "name": "iavf_mac_ipv4_udp_inputset",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end",
- "pf_rule": "rx-flow-hash udp4 sdfn",
- "check_pf_rule_set": "rx-flow-hash udp4",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "pf_scapy": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue,
- "check_pf_rss_func": rfc.check_pf_rss_queue
-}
-
-tv_mac_ipv4_sctp_inputset = {
- "name": "iavf_mac_ipv4_sctp_inputset",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-sctp4 end key_len 0 queues end / end",
- "pf_rule": "rx-flow-hash sctp4 sdfn",
- "check_pf_rule_set": "rx-flow-hash sctp4",
- "scapy_str": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "pf_scapy": ['Ether(dst="%s")/IP(src=RandIP(),dst=RandIP())/SCTP()/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue,
- "check_pf_rss_func": rfc.check_pf_rss_queue
-}
-
-tv_mac_ipv6_tcp_inputset = {
- "name": "iavf_mac_ipv6_tcp_inputset",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end",
- "pf_rule": "rx-flow-hash tcp6 sdfn",
- "check_pf_rule_set": "rx-flow-hash tcp6",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "pf_scapy": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue,
- "check_pf_rss_func": rfc.check_pf_rss_queue
-}
-
-tv_mac_ipv6_udp_inputset = {
- "name": "iavf_mac_ipv6_udp_inputset",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end",
- "pf_rule": "rrx-flow-hash udp6 sdfn",
- "check_pf_rule_set": "rx-flow-hash udp6",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "pf_scapy": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/UDP(sport=RandShort(),dport=RandShort())/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue,
- "check_pf_rss_func": rfc.check_pf_rss_queue
-}
-
-tv_mac_ipv6_sctp_inputset = {
- "name": "iavf_mac_ipv6_sctp_inputset",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end",
- "pf_rule": "rx-flow-hash sctp6 sdfn",
- "check_pf_rule_set": "rx-flow-hash sctp6",
- "scapy_str": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/SCTP(sport=RandShort(),dport=RandShort())/("X"*480)' % vf0_mac],
- "pf_scapy": ['Ether(dst="%s")/IPv6(src=RandIP6(),dst=RandIP6())/SCTP()/("X"*480)'],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue,
- "check_pf_rss_func": rfc.check_pf_rss_queue
-}
-
-tv_iavf_mac_ipv4_l2tpv3 = {
- "name": "iavf_mac_ipv4_l2tpv3",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / l2tpv3oip / end actions rss types l2tpv3 end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src="192.168.0.3", proto=115)/L2TP(hex(RandNum(16,255))[1:]+"\\x00\\x00\\x00")/Raw("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_l2tpv3 = {
- "name": "iavf_mac_ipv6_l2tpv3",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / l2tpv3oip / end actions rss types l2tpv3 end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888", nh=115)/L2TP(hex(RandNum(16,255))[1:]+"\\x00\\x00\\x00")/Raw("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_esp = {
- "name": "iavf_mac_ipv4_esp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / esp / end actions rss types esp end key_len 0 queues end / end",
- "scapy_str": ['Ether(dst="%s")/IP(src="192.168.0.3", proto=50)/ESP(spi=RandShort())/Raw("X"*480)' % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_esp = {
- "name": "iavf_mac_ipv6_esp",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / esp / end actions rss types esp end key_len 0 queues end / end",
- "scapy_str": ["Ether(dst='%s')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888', nh=50)/ESP(spi=RandShort())/Raw('X'*480)" % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv4_ah = {
- "name": "iavf_mac_ipv4_ah",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv4 / ah / end actions rss types ah end key_len 0 queues end / end",
- "scapy_str": ["Ether(dst='%s')/IP(src='192.168.0.3', proto=51)/AH(spi=RandShort())/Raw('X'*480)" % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tv_iavf_mac_ipv6_ah = {
- "name": "iavf_mac_ipv6_ah",
- "rte_flow_pattern": "flow create 0 ingress pattern eth / ipv6 / ah / end actions rss types ah end key_len 0 queues end / end",
- "scapy_str": ["Ether(dst='%s')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888', nh=51)/AH(spi=RandShort())/Raw('X'*480)" % vf0_mac],
- "send_count": 100,
- "check_func": rfc.check_iavf_packets_rss_queue
-}
-
-tvs_iavf_mac_eth_src = [
- tv_iavf_mac_eth_src_only,
-]
-
-tvs_iavf_mac_eth_dst = [
- tv_iavf_mac_eth_dst_only,
-]
-tvs_iavf_mac_rss_ipv4 = [
- tv_iavf_mac_ipv4_l3_src,
- tv_iavf_mac_ipv4_l3_src_frag,
- tv_iavf_mac_ipv4_l3_dst,
- tv_iavf_mac_ipv4_l3_dst_frag,
- tv_iavf_mac_ipv4_pay,
-]
-
-tvs_iavf_mac_rss_ipv4_icmp = [
- tv_iavf_mac_ipv4_l3_src_frag_icmp,
- tv_iavf_mac_ipv4_l3_dst_frag_icmp,
- tv_iavf_mac_ipv4_pay_frag_icmp
-]
-
-tvs_iavf_mac_rss_ipv4_nvgre = [
- tv_iavf_mac_ipv4_l3_src_nvgre,
- tv_iavf_mac_ipv4_l3_dst_nvgre,
- tv_iavf_mac_ipv4_nvgre_udp_frag,
- tv_iavf_mac_ipv4_nvgre_sctp,
-]
-
-tvs_iavf_mac_rss_ipv4_tcp = [
- tv_iavf_mac_ipv4_tcp_pay,
- tv_iavf_mac_ipv4_tcp_frag,
-]
-
-tvs_iavf_mac_rss_ipv4_udp = [
- tv_iavf_mac_ipv4_udp,
- tv_iavf_mac_ipv4_udp_frag,
-]
-
-tvs_iavf_mac_rss_ipv4_sctp = [
- tv_iavf_mac_ipv4_sctp,
- tv_iavf_mac_ipv4_sctp_frag,
-]
-
-tvs_iavf_mac_rss_ipv6 = [
- tv_iavf_mac_ipv6_l3_src,
- tv_iavf_mac_ipv6_l3_src_frag,
- tv_iavf_mac_ipv6_l3_dst,
- tv_iavf_mac_ipv6_pay,
- # tv_iavf_mac_ipv6_sctp_pay,
-]
-
-tvs_iavf_mac_rss_ipv6_udp = [
- tv_iavf_mac_ipv6_udp,
- tv_iavf_mac_ipv6_udp_frag,
-]
-
-tvs_iavf_mac_rss_ipv6_tcp = [
- tv_iavf_mac_ipv6_tcp,
- tv_iavf_mac_ipv6_tcp_frag,
-]
-
-tvs_iavf_mac_rss_cvlan = [
- tv_iavf_mac_cvlan_rss,
-]
-
-tvs_iavf_mac_rss_pfcp = [
- tv_iavf_mac_ipv4_pfcp_session,
- tv_iavf_mac_ipv6_pfcp_session,
-]
-
-tvs_iavf_gtpu_ipv4 = [
- tv_iavf_gtpu_ipv4_up_match_dismatch,
- tv_iavf_gtpu_ipv4_down_match_dismatch,
-]
-
-tvs_iavf_gtpu_ipv4_frag = [
- tv_iavf_gtpu_ipv4_frag_up_match_dismatch,
- tv_iavf_gtpu_ipv4_frag_down_match_dismatch,
-]
-
-tvs_iavf_gtpu_ipv4_udp = [
- tv_iavf_gtpu_ipv4_udp_up_match_dismatch,
- tv_iavf_gtpu_ipv4_udp_down_match_dismatch,
-]
-
-tvs_iavf_gtpu_ipv4_tcp = [
- tv_iavf_gtpu_ipv4_tcp_up_match_dismatch,
- tv_iavf_gtpu_ipv4_tcp_down_match_dismatch,
-]
-
-tvs_iavf_gtpu_ipv4_icmp = [
- tv_iavf_gtpu_ipv4_icmp_up_match_dismatch,
- tv_iavf_gtpu_ipv4_icmp_down_match_dismatch,
-]
-
-tvs_iavf_gtpu_ipv4_sctp = [
- tv_iavf_gtpu_ipv4_sctp_up_match_dismatch,
- tv_iavf_gtpu_ipv4_sctp_down_match_dismatch,
-]
-
-tvs_check_pf_vf_inputset = [
- tv_mac_ipv4_tcp_inputset,
- tv_mac_ipv4_udp_inputset,
- tv_mac_ipv4_sctp_inputset,
- tv_mac_ipv6_tcp_inputset,
- tv_mac_ipv6_udp_inputset,
- tv_mac_ipv6_sctp_inputset,
-]
-
-tvs_iavf_mac_rss_ipv4_l2tpv3 = [tv_iavf_mac_ipv4_l2tpv3]
-
-tvs_iavf_mac_rss_ipv6_l2tpv3 = [tv_iavf_mac_ipv6_l2tpv3]
-
-tvs_iavf_mac_rss_ipv4_esp = [tv_iavf_mac_ipv4_esp]
-
-tvs_iavf_mac_rss_ipv6_esp = [tv_iavf_mac_ipv6_esp]
-
-tvs_iavf_mac_rss_ipv4_ah = [tv_iavf_mac_ipv4_ah]
-
-tvs_iavf_mac_rss_ipv6_ah = [tv_iavf_mac_ipv6_ah]
+mac_ipv6_udp_l3src_l4dst = {
+ 'sub_casename': 'mac_ipv6_udp_l3src_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l3-src-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
+mac_ipv6_udp_l3dst_l4src = {
+ 'sub_casename': 'mac_ipv6_udp_l3dst_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l3-dst-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
+
+mac_ipv6_udp_l3dst_l4dst = {
+ 'sub_casename': 'mac_ipv6_udp_l3dst_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l3-dst-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
+
+mac_ipv6_udp_l4_src = {
+ 'sub_casename': 'mac_ipv6_udp_l4_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
+
+mac_ipv6_udp_l4_dst = {
+ 'sub_casename': 'mac_ipv6_udp_l4_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
+
+mac_ipv6_udp_all = {
+ 'sub_casename': 'mac_ipv6_udp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],
+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},
+ # },
+ ],
+}
+# mac_ipv6_tcp
+mac_ipv6_tcp_l2_src = {
+ 'sub_casename': 'mac_ipv6_tcp_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ ],
+}
+
+mac_ipv6_tcp_l2_dst = {
+ 'sub_casename': 'mac_ipv6_tcp_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ ],
+}
+
+mac_ipv6_tcp_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv6_tcp_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/TCP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ ],
+}
+
+mac_ipv6_tcp_l3_src = {
+ 'sub_casename': 'mac_ipv6_tcp_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l3_dst = {
+ 'sub_casename': 'mac_ipv6_tcp_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l3src_l4src = {
+ 'sub_casename': 'mac_ipv6_tcp_l3src_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l3-src-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l3src_l4dst = {
+ 'sub_casename': 'mac_ipv6_tcp_l3src_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l3-src-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l3dst_l4src = {
+ 'sub_casename': 'mac_ipv6_tcp_l3dst_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l3dst_l4dst = {
+ 'sub_casename': 'mac_ipv6_tcp_l3dst_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l4_src = {
+ 'sub_casename': 'mac_ipv6_tcp_l4_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_l4_dst = {
+ 'sub_casename': 'mac_ipv6_tcp_l4_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_all = {
+ 'sub_casename': 'mac_ipv6_tcp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/TCP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],
+ 'action': {'check_hash_different': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],
+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},
+ # },
+ ],
+}
+# mac_ipv6_sctp
+mac_ipv6_sctp_l2_src = {
+ 'sub_casename': 'mac_ipv6_sctp_l2_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types eth l2-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/SCTP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ ],
+}
+
+mac_ipv6_sctp_l2_dst = {
+ 'sub_casename': 'mac_ipv6_sctp_l2_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/SCTP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ ],
+}
+
+mac_ipv6_sctp_l2src_l2dst = {
+ 'sub_casename': 'mac_ipv6_sctp_l2src_l2dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types eth end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2923",dst="CDCD:910A:2222:5498:8475:1111:3900:2025")/SCTP(sport=25,dport=99)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ ],
+}
+
+mac_ipv6_sctp_l3_src = {
+ 'sub_casename': 'mac_ipv6_sctp_l3_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l3_dst = {
+ 'sub_casename': 'mac_ipv6_sctp_l3_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l3src_l4src = {
+ 'sub_casename': 'mac_ipv6_sctp_l3src_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l3-src-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l3src_l4dst = {
+ 'sub_casename': 'mac_ipv6_sctp_l3src_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l3-src-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l3dst_l4src = {
+ 'sub_casename': 'mac_ipv6_sctp_l3dst_l4src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l3-dst-only l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l3dst_l4dst = {
+ 'sub_casename': 'mac_ipv6_sctp_l3dst_l4dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l3-dst-only l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l4_src = {
+ 'sub_casename': 'mac_ipv6_sctp_l4_src',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l4-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_l4_dst = {
+ 'sub_casename': 'mac_ipv6_sctp_l4_dst',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp l4-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_all = {
+ 'sub_casename': 'mac_ipv6_sctp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=32,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=33)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E1")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6()/UDP()/VXLAN()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2021")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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=22,dport=33)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],
+ 'action': {'check_hash_different': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],
+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},
+ # },
+ ],
+}
+# toeplitz related data end
+
+mac_ipv4 = [mac_ipv4_l2_src, mac_ipv4_l2_dst, mac_ipv4_l2src_l2dst, mac_ipv4_l3_src, mac_ipv4_l3_dst, mac_ipv4_all]
+
+mac_ipv4_udp = [mac_ipv4_udp_l2_src, mac_ipv4_udp_l2_dst, mac_ipv4_udp_l2src_l2dst,
+ mac_ipv4_udp_l3_src, mac_ipv4_udp_l3_dst, mac_ipv4_udp_l3src_l4src,
+ mac_ipv4_udp_l3src_l4dst, mac_ipv4_udp_l3dst_l4src, mac_ipv4_udp_l3dst_l4dst,
+ mac_ipv4_udp_l4_src, mac_ipv4_udp_l4_dst, mac_ipv4_udp_all]
+
+mac_ipv4_tcp = [mac_ipv4_tcp_l2_src, mac_ipv4_tcp_l2_dst, mac_ipv4_tcp_l2src_l2dst,
+ mac_ipv4_tcp_l3_src, mac_ipv4_tcp_l3_dst, mac_ipv4_tcp_l3src_l4src,
+ mac_ipv4_tcp_l3src_l4dst, mac_ipv4_tcp_l3dst_l4src, mac_ipv4_tcp_l3dst_l4dst,
+ mac_ipv4_tcp_l4_src, mac_ipv4_tcp_l4_dst, mac_ipv4_tcp_all]
+
+mac_ipv4_sctp = [mac_ipv4_sctp_l2_src, mac_ipv4_sctp_l2_dst, mac_ipv4_sctp_l2src_l2dst,
+ mac_ipv4_sctp_l3_src, mac_ipv4_sctp_l3_dst, mac_ipv4_sctp_l3src_l4src,
+ mac_ipv4_sctp_l3src_l4dst, mac_ipv4_sctp_l3dst_l4src, mac_ipv4_sctp_l3dst_l4dst,
+ mac_ipv4_sctp_l4_src, mac_ipv4_sctp_l4_dst, mac_ipv4_sctp_all]
+
+mac_ipv6 = [mac_ipv6_l2_src, mac_ipv6_l2_dst, mac_ipv6_l2src_l2dst, mac_ipv6_l3_src, mac_ipv6_l3_dst, mac_ipv6_all]
+
+mac_ipv6_udp = [mac_ipv6_udp_l2_src, mac_ipv6_udp_l2_dst, mac_ipv6_udp_l2src_l2dst,
+ mac_ipv6_udp_l3_src, mac_ipv6_udp_l3_dst, mac_ipv6_udp_l3src_l4src,
+ mac_ipv6_udp_l3src_l4dst, mac_ipv6_udp_l3dst_l4src, mac_ipv6_udp_l3dst_l4dst,
+ mac_ipv6_udp_l4_src, mac_ipv6_udp_l4_dst, mac_ipv6_udp_all]
+
+mac_ipv6_tcp = [mac_ipv6_tcp_l2_src, mac_ipv6_tcp_l2_dst, mac_ipv6_tcp_l2src_l2dst,
+ mac_ipv6_tcp_l3_src, mac_ipv6_tcp_l3_dst, mac_ipv6_tcp_l3src_l4src,
+ mac_ipv6_tcp_l3src_l4dst, mac_ipv6_tcp_l3dst_l4src, mac_ipv6_tcp_l3dst_l4dst,
+ mac_ipv6_tcp_l4_src, mac_ipv6_tcp_l4_dst, mac_ipv6_tcp_all]
+
+mac_ipv6_sctp = [mac_ipv6_sctp_l2_src, mac_ipv6_sctp_l2_dst, mac_ipv6_sctp_l2src_l2dst,
+ mac_ipv6_sctp_l3_src, mac_ipv6_sctp_l3_dst, mac_ipv6_sctp_l3src_l4src,
+ mac_ipv6_sctp_l3src_l4dst, mac_ipv6_sctp_l3dst_l4src, mac_ipv6_sctp_l3dst_l4dst,
+ mac_ipv6_sctp_l4_src, mac_ipv6_sctp_l4_dst, mac_ipv6_sctp_all]
+
+# symmetric related data start
+mac_ipv4_symmetric = {
+ 'sub_casename': 'mac_ipv4_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-nonfrag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-frag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-frag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-icmp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-icmp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vlan-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vlan-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vlan'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vlan'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2928",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:2020",dst="ABAB:910B:6666:3457:8295:3333:1800:2928")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-nonfrag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-nonfrag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-frag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1",frag=6)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-frag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-icmp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-icmp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vlan-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vlan-post'},
+ # },
+ ],
+}
+
+mac_ipv4_udp_symmetric = {
+ 'sub_casename': 'mac_ipv4_udp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-udp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-udp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-udp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'nvgre-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'nvgre-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'nvgre-post'},
+ # },
+ ],
+}
+
+mac_ipv4_tcp_symmetric = {
+ 'sub_casename': 'mac_ipv4_tcp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss func symmetric_toeplitz types ipv4-tcp end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-tcp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-tcp'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-udp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-tcp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/TCP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},
+ # },
+ ],
+}
+
+mac_ipv4_sctp_symmetric = {
+ 'sub_casename': 'mac_ipv4_sctp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss func symmetric_toeplitz types ipv4-sctp end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-sctp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-sctp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-sctp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-sctp'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-sctp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-sctp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-sctp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv4-sctp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.1", src="192.168.0.2")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IP(dst="192.168.0.2", src="192.168.0.1")/SCTP(sport=23,dport=22)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},
+ # },
+ ],
+}
+
+mac_ipv6_symmetric = {
+ 'sub_casename': 'mac_ipv6_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-nonfrag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-nonfrag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-frag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-frag-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-icmp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-icmp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv6-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv6-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-frag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-icmp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv6'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv6'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-nonfrag'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP(dst="192.168.0.2", src="192.168.0.1")/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-nonfrag'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-nonfrag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-nonfrag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-frag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-frag-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-icmp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/ICMP()/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-icmp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-udp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/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)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv6-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/UDP()/VXLAN()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv6-post'},
+ # },
+ ],
+}
+
+mac_ipv6_udp_symmetric = {
+ 'sub_casename': 'mac_ipv6_udp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss func symmetric_toeplitz types ipv6-udp end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-udp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-udp-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-udp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre-eth-ipv6-udp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'ipv6-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'ipv6-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-tcp'},
+ # },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-udp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-udp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'nvgre-eth-ipv6-udp-post'},
+ # },
+ ],
+}
+
+mac_ipv6_tcp_symmetric = {
+ 'sub_casename': 'mac_ipv6_tcp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss func symmetric_toeplitz types ipv6-tcp end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-tcp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-tcp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-tcp-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-tcp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-tcp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre-eth-ipv6-tcp'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'nvgre-eth-ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'nvgre-eth-ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-tcp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-tcp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/TCP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'nvgre-eth-ipv6-tcp-post'},
+ # },
+ ],
+}
+
+mac_ipv6_sctp_symmetric = {
+ 'sub_casename': 'mac_ipv6_sctp_all',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss func symmetric_toeplitz types ipv6-sctp end key_len 0 queues end / end',
+ 'pre-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-sctp-pre'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-sctp-pre'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-sctp-pre'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-sctp-pre'},
+ # },
+ ],
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-sctp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-sctp'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-sctp'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_hash_same': 'nvgre-eth-ipv6-sctp'},
+ # },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/UDP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-udp'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-sctp-post'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-sctp-post'},
+ },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(src="ABAB:910B:6666:3457:8295:3333:1800:2929",dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'save_hash': 'nvgre-eth-ipv6-sctp-post'},
+ # },
+ # {
+ # 'send_packet': 'Ether(dst="%s", src="68:05:CA:BB:26:E0")/IP()/NVGRE()/Ether()/IPv6(dst="ABAB:910B:6666:3457:8295:3333:1800:2929",src="CDCD:910A:2222:5498:8475:1111:3900:2020")/SCTP(sport=22,dport=23)/("X"*480)' % vf0_mac,
+ # 'action': {'check_no_hash_or_different': 'nvgre-eth-ipv6-sctp-post'},
+ # },
+ ],
+}
+# symmetric related data end
+
+ipv6_64bit_prefix_l3_src_only = {
+ 'sub_casename': 'ipv6_64bit_prefix_l3_src_only',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-pre64 l3-src-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe83:1:a6bf:2ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:ee1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:ee1c::806", dst="fe82:1:a6bf:2ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/UDP(sport=1234, dport=5678)/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-64bit'},
+ },
+ ],
+}
+
+ipv6_64bit_prefix_l3_dst_only = {
+ 'sub_casename': 'ipv6_64bit_prefix_l3_dst_only',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-pre64 l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe83:1:a6bf:2ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:ee1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe83:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:ee1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/UDP(sport=1234, dport=5678)/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-64bit'},
+ },
+ ],
+}
+
+ipv6_64bit_prefix_l3_src_dst_only = {
+ 'sub_casename': 'ipv6_64bit_prefix_l3_src_dst_only',
+ 'port_id': 0,
+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-pre64 l3-src-only l3-dst-only end key_len 0 queues end / end',
+ 'test': [
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'save_hash': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:2ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:2ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:ee1c::806", dst="fe82:1:a6bf:1ff:ee1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/UDP(sport=1234, dport=5678)/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv6-64bit'},
+ },
+ ],
+ 'post-test': [
+ {
+ 'send_packet': 'Ether(dst="%s")/IPv6(src="fe81:1:a6bf:1ff:fe1c::806", dst="fe82:1:a6bf:1ff:fe1c::806")/Raw("x"*64)' % vf0_mac,
+ 'action': {'check_no_hash_or_different': 'ipv6-64bit'},
+ },
+ ],
+}
+
+ipv6_64bit_prefix = [ipv6_64bit_prefix_l3_src_only, ipv6_64bit_prefix_l3_dst_only, ipv6_64bit_prefix_l3_src_dst_only]
class AdvancedIavfRSSTest(TestCase):
def set_up_all(self):
"""
Run at the start of each test suite.
- Generic filter Prerequistites
+ prerequisites.
"""
+ # Based on h/w type, choose how many ports to use
self.dut_ports = self.dut.get_ports(self.nic)
- # Verify that enough ports are available
- self.verify(len(self.dut_ports) >= 1, "Insufficient ports")
- self.dut_session = self.dut.create_session("pf_dut")
- self.pmd_session = self.dut.create_session("vf_pmd_dut")
- self.pmd_output = PmdOutput(self.dut)
- self.pmd_output_vf1 = PmdOutput(self.dut, self.pmd_session)
- localPort = self.tester.get_local_port(self.dut_ports[0])
- self.used_dut_port = self.dut_ports[0]
+ self.verify(len(self.dut_ports) >= 2, "Insufficient ports for testing")
+ # Verify that enough threads are available
+ cores = self.dut.get_core_list("1S/4C/1T")
+ self.verify(cores is not None, "Insufficient cores for speed testing")
self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
- self.tx_iface = self.tester.get_interface(localPort)
+ self.tester_port0 = self.tester.get_local_port(self.dut_ports[0])
+ self.tester_port1 = self.tester.get_local_port(self.dut_ports[1])
+ self.tester_iface0 = self.tester.get_interface(self.tester_port0)
+ self.tester_iface1 = self.tester.get_interface(self.tester_port1)
+
+ self.used_dut_port = self.dut_ports[0]
self.pf_interface = self.dut.ports_info[self.dut_ports[0]]['intf']
- self.pf_mac = self.dut.get_mac_address(0)
- self.pf_pci = self.dut.ports_info[self.dut_ports[0]]['pci']
- self.verify(self.nic in ["columbiaville_25g", "columbiaville_100g"], "%s nic not support ethertype filter" % self.nic)
- self.ddp_fdir = "/lib/firmware/updates/intel/ice/ddp/"
- conf_file = 'conf/cvl_advanced_iavf_rss_package.cfg'
- conf_info = UserConf(conf_file)
- conf_section = conf_info.conf._sections['suite']
- self.os_pkg_name = conf_section['os_default_package_file_location']
- self.comms_pkg_name = conf_section['comms_package_file_location']
self.vf_flag = False
self.create_iavf()
+ self.pass_flag = 'passed'
+ self.fail_flag = 'failed'
+ self.pkt = Packet()
+ self.pmd_output = PmdOutput(self.dut)
+ self.launch_testpmd()
+ self.rxq = 16
+ self.rssprocess = RssProcessing(self, self.pmd_output, [self.tester_iface0, self.tester_iface1], self.rxq)
+ self.logger.info('rssprocess.tester_ifaces: {}'.format(self.rssprocess.tester_ifaces))
+ self.logger.info('rssprocess.test_case: {}'.format(self.rssprocess.test_case))
+
def set_up(self):
"""
Run before each test case.
"""
- self.dut.kill_all()
-
- def tear_down(self):
- """
- Run after each test case.
- """
- self.dut.kill_all()
- if self.running_case == "test_vf_reset":
- self.dut.send_expect("ip link set %s vf 0 trust off" % self.pf_interface, "# ")
- self.dut.send_expect("ip link set %s vf 0 mac %s" % (self.pf_interface, vf0_mac), "# ")
- elif self.running_case == "test_pf_reset":
- self.dut.send_expect("ip link set %s vf 0 mac %s" % (self.pf_interface, vf0_mac), "# ")
-
- def tear_down_all(self):
- """
- Run after each test suite.
- """
- self.dut.kill_all()
- self.destroy_iavf()
+ self.pmd_output.execute_cmd("start")
def create_iavf(self):
if self.vf_flag is False:
self.dut.bind_interfaces_linux('ice')
- self.dut.generate_sriov_vfs_by_port(self.used_dut_port, 2)
+ self.dut.generate_sriov_vfs_by_port(self.used_dut_port, 1)
self.sriov_vfs_port = self.dut.ports_info[self.used_dut_port]['vfs_port']
self.vf_flag = True
@@ -812,10 +5109,8 @@ class AdvancedIavfRSSTest(TestCase):
port.bind_driver(self.drivername)
self.vf0_prop = {'opt_host': self.sriov_vfs_port[0].pci}
- self.vf1_prop = {'opt_host': self.sriov_vfs_port[1].pci}
self.dut.send_expect("ifconfig %s up" % self.pf_interface, "# ")
self.dut.send_expect("ip link set %s vf 0 mac %s" % (self.pf_interface, vf0_mac), "# ")
- self.dut.send_expect("ip link set %s vf 1 mac %s" % (self.pf_interface, vf1_mac), "# ")
except Exception as e:
self.destroy_iavf()
raise Exception(e)
@@ -825,344 +5120,302 @@ class AdvancedIavfRSSTest(TestCase):
self.dut.destroy_sriov_vfs_by_port(self.used_dut_port)
self.vf_flag = False
- def create_testpmd_command(self, port_info, pmd_param=None):
- """
- Create testpmd command for non-pipeline mode
- """
- port_pci = port_info['opt_host']
- param_str = " --rxq=16 --txq=16 --port-topology=loop "
- if pmd_param is not None:
- param_str = param_str + pmd_param
- self.pmd_output.start_testpmd(cores="1S/8C/1T", param=param_str, eal_param="-w %s" % port_pci)
- self.pmd_output.execute_cmd("set fwd rxonly", "testpmd> ", 15)
- self.pmd_output.execute_cmd("set verbose 1", "testpmd> ", 15)
- self.pmd_output.execute_cmd("port config 0 rss-hash-key ipv4 1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd", "testpmd> ", 15)
-
- def create_testpmd2_command(self, port_info, pmd_param=None):
- """
- Create testpmd command for non-pipeline mode
- """
- self.pmd_session.send_expect("cd /root/dpdk/", "# ")
- port_pci = port_info['opt_host']
- param_str = " --rxq=16 --txq=16 --port-topology=loop "
- if pmd_param is not None:
- param_str = param_str + pmd_param
- self.pmd_output_vf1.start_testpmd(cores=list(range(9, 16)), param=param_str, eal_param="-w %s --file-prefix=multi_vfs_pmd" % port_pci)
- self.pmd_output_vf1.execute_cmd("set fwd rxonly", "testpmd> ", 15)
- self.pmd_output_vf1.execute_cmd("set verbose 1", "testpmd> ", 15)
-
- def _rte_flow_validate_pattern(self, test_vectors, rss_match=True):
- check_result = 0
- test_results = []
- log_msg = []
- for tv in test_vectors:
- self.pmd_output.execute_cmd(tv["rte_flow_pattern"]) # create a rule
- time.sleep(1)
- self.pkg_count = tv["send_count"]
- # send packet
- if "match" in tv["name"]:
- for match_pkg in tv["match_str"]:
- out = self._pkg_send(match_pkg, self.pkg_count)
- result, case_msg = tv["check_func"](out, self.pkg_count)
- print(case_msg)
- test_results.append(result)
- for dismatch_pkg in tv["dismatch_str"]:
- out = self._pkg_send(dismatch_pkg, self.pkg_count)
- result, case_msg = tv["check_func"](out, self.pkg_count, rss_match=False)
- print(case_msg)
- test_results.append(result)
- else:
- for scapy_str in tv["scapy_str"]:
- out = self._pkg_send(scapy_str, self.pkg_count)
- result, case_msg = tv["check_func"](out, self.pkg_count, rss_match)
- print(case_msg)
- test_results.append(result)
- self.pmd_output.execute_cmd("flow destroy 0 rule 0")
-
- # check test results
- if False in test_results:
- log_cmd = "%s test failed" % tv["name"]
- check_result = check_result + 1
- else:
- log_cmd = "%s test PASS" % tv["name"]
- log_msg.append(log_cmd)
-
- self.pmd_output.execute_cmd("flow flush 0")
- self.pmd_output.quit()
- print(log_msg)
- self.verify(check_result == 0, "Some test case failed.")
-
- def _check_inputset_pattern(self, test_vectors):
- for tv in test_vectors:
- self.pmd_output.execute_cmd(tv["rte_flow_pattern"]) # create a rule
- self.dut_session.send_expect("ethtool -N %s %s" % (self.pf_interface, tv["pf_rule"]), "# ")
- self.dut_session.send_expect("ethtool -n %s %s" % (self.pf_interface, tv["check_pf_rule_set"]), "# ")
- self._set_pf_queue_num()
- self.pkg_count = tv["send_count"]
- # send vf packet
- for scapy_str in tv["scapy_str"]:
- pf_rx_0 = self._get_pf_rx()
- out = self._pkg_send(scapy_str, self.pkg_count)
- result, case_msg = tv["check_func"](out, self.pkg_count)
- self.verify(result, case_msg)
- # check PF not recieve packets
- pf_rx_1 = self._get_pf_rx()
- pf_rx = (pf_rx_1 - pf_rx_0)
- self.verify(pf_rx == 0, "pf recieve vf packets!")
-
- # send pf packet
- for pf_scapy_str in tv["pf_scapy"]:
- pf_scapy_str = pf_scapy_str % self.pf_mac
- self._pkg_send(pf_scapy_str, self.pkg_count)
- out = self.dut_session.send_expect("ethtool -S %s |grep rx_queue" % self.pf_interface, "# ")
- result = tv["check_pf_rss_func"](out, self.pkg_count)
- self.verify(result, "PF not do hash")
- self.pmd_output.execute_cmd("flow destroy 0 rule 0")
-
- self.pmd_output.execute_cmd("flow flush 0")
- self.pmd_output.quit()
-
- def _pkg_send(self, test_packet, send_count):
- self.pmd_output.execute_cmd("start")
- pkt = Packet()
- for i in range(send_count):
- pkt.append_pkt(test_packet)
- pkt.send_pkt(self.tester, tx_port=self.tx_iface, count=1)
- out = self.pmd_output.execute_cmd("stop", timeout=30)
- return out
-
- def _set_pf_queue_num(self):
- self.dut_session.send_expect("ethtool -L %s rx 10 tx 10" % self.pf_interface, "# ")
- out = self.dut_session.send_expect("ethtool -l %s " % self.pf_interface, "# ")
- out = out.split("Current hardware settings")[1]
- pf_queue_num = re.findall(r'Combined:\s+(\d+)', out)[0]
- self.verify(int(pf_queue_num) == 10, "set rx tx queue fail!")
-
- def _get_pf_rx(self):
- out = self.dut_session.send_expect("ethtool -l %s " % self.pf_interface, "# ")
- out = out.split("Current hardware settings")[1]
- pf_rx = re.findall(r'RX:\s+(\d+)', out)[0]
- return int(pf_rx)
-
- def test_iavf_mac_eth_src_rss(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_eth_src)
-
- def test_iavf_mac_eth_dst_rss(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_eth_dst, rss_match=False)
-
- def test_iavf_rss_ipv4(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4)
-
- def test_iavf_rss_ipv4_ICMP(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_icmp)
-
- def test_iavf_rss_ipv4_NVGRE(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_nvgre)
-
- def test_iavf_rss_ipv4_TCP(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_tcp)
-
- def test_iavf_rss_ipv4_UDP(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_udp)
-
- # def test_iavf_rss_ipv4_SCTP(self):
- # self.create_testpmd_command(self.vf0_prop)
- # self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_sctp)
-
- def test_iavf_rss_ipv6(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6)
-
- def test_iavf_rss_ipv6_UDP(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_udp)
-
- def test_iavf_rss_ipv6_TCP(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_tcp)
-
- def test_iavf_rss_CVLAN(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_cvlan)
-
- def test_iavf_rss_PFCP(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_pfcp)
-
- def test_iavf_ipv4_gtpu_updown(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4)
-
- def test_iavf_ipv4_frag_gtpu_updown(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_frag)
-
- def test_iavf_ipv4_udp_gtpu_updown(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_udp)
-
- def test_iavf_ipv4_tcp_gtpu_updown(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_tcp)
-
- def test_iavf_ipv4_icmp_gtpu_updown(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_icmp)
-
- def test_iavf_rss_ipv4_l2tpv3(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_l2tpv3)
-
- def test_iavf_rss_ipv6_l2tpv3(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_l2tpv3)
-
- def test_iavf_rss_ipv4_esp(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_esp)
-
- def test_iavf_rss_ipv6_esp(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_esp)
-
- def test_iavf_rss_ipv4_ah(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_ah)
-
- def test_iavf_rss_ipv6_ah(self):
- self.create_testpmd_command(self.vf0_prop)
- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_ah)
-
- # def test_iavf_ipv4_sctp_gtpu_updown(self):
- # self.create_testpmd_command(self.vf0_prop)
- # self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_sctp)
-
- def test_iavf_error_handle(self):
- self.create_testpmd_command(self.vf0_prop)
- error_rule = ['flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end',
- 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end']
- for rule in error_rule:
- out = self.pmd_output.execute_cmd(rule)
- self.verify("Failed to create flow" in out, "Rule can be created")
-
- def test_vf_reset(self):
- self.dut_session.send_expect("ip link set %s vf 0 trust on" % self.pf_interface, "# ")
- self.create_testpmd_command(self.vf0_prop, pmd_param="--nb-cores=2")
- flow_rule = "flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end"
- self.pmd_output.execute_cmd(flow_rule)
- self.pmd_output.execute_cmd("show port 0 rss-hash")
-
- # send packets with vf0_mac, check hash work
- pkg = 'Ether(dst="%s")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/("X"*480)' % vf0_mac
- pkg_count = 100
- out = self._pkg_send(pkg, pkg_count)
- result, log_str = rfc.check_iavf_packets_rss_queue(out, pkg_count)
- self.verify(result is True, log_str)
-
- # reset vf
- self.pmd_output.execute_cmd("port stop 0")
- self.pmd_output.execute_cmd("port reset 0")
- self.pmd_output.execute_cmd("port start 0")
- # send packets again with vf0_mac, check not do hash
- out = self._pkg_send(pkg, pkg_count)
- result, log_str = rfc.check_iavf_packets_rss_queue(out, pkg_count)
- self.verify(result is True, log_str)
-
- # reset PF and send packets check hash work
- reset_mac = "00:66:77:88:99:55"
- self.dut_session.send_expect("ip link set %s vf 0 mac %s" % (self.pf_interface, reset_mac), "# ")
- self.pmd_output.execute_cmd("port stop 0")
- self.pmd_output.execute_cmd("port reset 0")
- self.pmd_output.execute_cmd("port start 0")
- pkg = 'Ether(dst="%s")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/("X"*480)' % reset_mac
- out = self._pkg_send(pkg, pkg_count)
- result, log_str = rfc.check_iavf_packets_rss_queue(out, pkg_count)
- self.verify(result is True, log_str)
-
- def test_pf_reset(self):
- param_str = " --rxq=16 --txq=16 --nb-cores=2"
- self.pmd_output.start_testpmd(cores="1S/8C/1T", param=param_str,
- eal_param="-w %s -w %s" % (self.vf0_prop['opt_host'], self.vf1_prop['opt_host']))
- self.pmd_output.execute_cmd("set fwd rxonly", "testpmd> ", 15)
- self.pmd_output.execute_cmd("set verbose 1", "testpmd> ", 15)
- vf0_rule = "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"
- vf1_rule = "flow create 1 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end"
- self.pmd_output.execute_cmd(vf0_rule)
- self.pmd_output.execute_cmd(vf1_rule)
- pkg_count = 100
-
- # send packets with vf0_mac and vf1_mac, check hash work
- pkg_vf0 = 'Ether(dst="%s")/IP(src=RandIP())/UDP(dport=RandShort())/("X"*480)' % vf0_mac
- pkg_vf1 = 'Ether(dst="%s")/IP(dst=RandIP())/UDP(sport=RandShort())/("X"*480)' % vf1_mac
-
- out = self._pkg_send(pkg_vf0, pkg_count)
- result, msg = rfc.check_iavf_packets_rss_queue(out, pkg_count)
- self.verify(result is True, msg)
- out = self._pkg_send(pkg_vf1, pkg_count)
- result, msg = rfc.check_iavf_packets_rss_queue(out, pkg_count)
- self.verify(result is True, msg)
-
- # PF reset and check hash not do hash
- reset_mac = "00:66:77:88:99:55"
- self.dut_session.send_expect("ip link set %s vf 0 mac %s" % (self.pf_interface, reset_mac), "# ")
- reset_vf0 = 'Ether(dst="%s")/IP(src=RandIP())/UDP(dport=RandShort())/("X"*480)' % reset_mac
- out = self._pkg_send(reset_vf0, pkg_count)
- out = out.split("forward statistics for all ports")[1]
- rx_num = re.findall(r'RX-packets:\s?(\d+)', out)[0]
- self.verify(int(rx_num) == 0, "PF reset error")
-
- out = self._pkg_send(pkg_vf1, pkg_count)
- result, msg = rfc.check_iavf_packets_rss_queue(out, pkg_count)
- self.verify(result is True, msg)
-
- def test_mutil_vfs(self):
- self.create_testpmd_command(self.vf0_prop, pmd_param="--nb-cores=2")
- self.create_testpmd2_command(self.vf1_prop, pmd_param="--nb-cores=2")
- pkg_count = 100
-
- flow_rule = "flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end"
- self.pmd_output.execute_cmd(flow_rule)
- self.pmd_output_vf1.execute_cmd(flow_rule)
- # send packets and check vf0 not recieved, vf1 hash do work
- pkg_vf1 = 'Ether(dst="%s")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/("X"*480)' % vf1_mac
- self.pmd_output_vf1.execute_cmd("start")
- self._pkg_send(pkg_vf1, pkg_count)
- vf1_out = self.pmd_output_vf1.execute_cmd("stop")
- result, msg = rfc.check_iavf_packets_rss_queue(vf1_out, pkg_count)
- self.verify(result is True, msg)
-
- def test_check_inputset_with_pf_and_vf(self):
- self.create_testpmd_command(self.vf0_prop)
- self._check_inputset_pattern(tvs_check_pf_vf_inputset)
-
- def test_use_os_default_package(self):
-
- self.replace_pkg(self.os_pkg_name)
- self.create_testpmd_command(self.vf0_prop)
- error_rule = ["flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end ",
- "flow create 0 ingress pattern eth / ipv6 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end ", ]
- try:
- for rule in error_rule:
- out = self.pmd_output.execute_cmd(rule)
- self.verify("Failed to create flow" in out, "Rule can be created")
- except Exception as e:
- raise Exception(e)
- finally:
- self.pmd_output.quit()
- self.replace_pkg(self.comms_pkg_name)
-
- def replace_pkg(self, pkg):
- self.dut_session.send_expect("cd %s" % self.ddp_fdir, "# ")
- self.dut_session.send_expect("rm -f ice.pkg", "# ")
- self.dut_session.send_expect("cp %s ice.pkg" % pkg, "# ")
- self.dut_session.send_expect("rmmod ice", "# ", 15)
- self.dut_session.send_expect("modprobe ice", "# ", 60)
- self.vf_flag = False
- self.create_iavf()
+ def launch_testpmd(self):
+ param = "--rxq=16 --txq=16"
+ self.pmd_output.start_testpmd(cores="1S/4C/1T", param=param,
+ ports=[self.sriov_vfs_port[0].pci], socket=self.ports_socket)
+ self.pmd_output.execute_cmd("port config all rss all")
+ self.pmd_output.execute_cmd("set fwd rxonly")
+ self.pmd_output.execute_cmd("set verbose 1")
+ res = self.pmd_output.wait_link_status_up('all', timeout=15)
+ self.verify(res is True, 'there have port link is down')
+
+ def test_mac_ipv4(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4)
+
+ def test_mac_ipv4_udp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_udp)
+
+ def test_mac_ipv4_tcp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_tcp)
+
+ def test_mac_ipv4_sctp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_sctp)
+
+ def test_mac_ipv6(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6)
+
+ def test_mac_ipv6_udp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_udp)
+
+ def test_mac_ipv6_tcp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_tcp)
+
+ def test_mac_ipv6_sctp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_sctp)
+
+ def test_symmetric_mac_ipv4(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_symmetric)
+
+ def test_symmetric_mac_ipv4_udp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_udp_symmetric)
+
+ def test_symmetric_mac_ipv4_tcp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_tcp_symmetric)
+
+ def test_symmetric_mac_ipv4_sctp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_sctp_symmetric)
+
+ def test_symmetric_mac_ipv6(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_symmetric)
+
+ def test_symmetric_mac_ipv6_udp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_udp_symmetric)
+
+ def test_symmetric_mac_ipv6_tcp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_tcp_symmetric)
+
+ def test_symmetric_mac_ipv6_sctp(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_sctp_symmetric)
+
+ def test_64bit_ipv6_prefix(self):
+ self.rssprocess.handle_rss_distribute_cases(cases_info=ipv6_64bit_prefix)
+
+ def test_negative_case(self):
+ negative_rules = [
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth l3-src-only end key_len 0 queues end / end',
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-udp end key_len 0 queues end / end',
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end',
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end',
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv6 end key_len 0 queues end / end',
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 l3-src-only end key_len 0 queues end / end',
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types eth end key_len 0 queues end / end',
+ ]
+ for i in negative_rules:
+ out = self.pmd_output.execute_cmd(i, timeout=1)
+ self.verify('iavf_flow_create(): Failed to create flow' in out, "rule %s create successfully" % i)
+
+ def test_multirules(self):
+ # Subcase 1: two rules with same pattern but different hash input set, not hit default profile
+ self.logger.info('===================Test sub case: multirules subcase 1 ================')
+ self.rssprocess.error_msgs = []
+ rule_id_0 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.5")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ rule_id_1 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.5")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.7")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)
+ self.rssprocess.check_rule(port_id=0)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.9")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.9")/UDP(dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)
+ self.rssprocess.handle_tests(tests, 0)
+ self.dut.send_command("flow flush 0", timeout=1)
+
+ # Subcase 2: two rules with same pattern but different hash input set, hit default profile
+ self.logger.info('===================Test sub case: multirules subcase 2 ================')
+ rule_id_0 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.5")/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.8")/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ rule_id_1 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.5")/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.7")/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)
+ self.rssprocess.check_rule(port_id=0)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_no_hash': 'ipv4-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)
+ self.dut.send_command("flow flush 0", timeout=1)
+
+ # Subcase 3: two rules, scope smaller created first, and the larger one created later
+ self.logger.info('===================Test sub case: multirules subcase 3 ================')
+ rule_id_0 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)
+ tests_3 = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=25, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.8")/UDP(sport=23, dport=44)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests_3, 0)
+ rule_id_1 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.8")/UDP(sport=25, dport=99)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)
+ self.rssprocess.handle_tests(tests_3, 0)
+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_no_hash': 'ipv4-udp-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ self.dut.send_command("flow flush 0", timeout=1)
+
+ # Subcase 4: two rules, scope larger created first, and the smaller one created later
+ self.logger.info('===================Test sub case: multirules subcase 4 ================')
+ rule_id_0 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)
+ tests_4 = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.8")/UDP(sport=25, dport=99)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests_4, 0)
+ rule_id_1 = self.rssprocess.create_rule(
+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end',
+ check_stats=True)
+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'save_hash': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=25, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_different': 'ipv4-udp-pay'},
+ },
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.7",dst="192.168.0.8")/UDP(sport=23, dport=44)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_hash_same': 'ipv4-udp-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)
+ self.rssprocess.handle_tests(tests_4, 0)
+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)
+ tests = [
+ {
+ 'send_packet': 'Ether(dst="%s")/IP(src="192.168.0.3",dst="192.168.0.5")/UDP(sport=23, dport=45)/Raw("x"*480)' % vf0_mac,
+ 'action': {'check_no_hash': 'ipv4-udp-pay'},
+ },
+ ]
+ self.rssprocess.handle_tests(tests, 0)
+ self.verify(not self.rssprocess.error_msgs, 'some subcases failed')
+
+ def tear_down(self):
+ # destroy all flow rule on port 0
+ self.dut.send_command("flow flush 0", timeout=1)
+ self.dut.send_command("clear port stats all", timeout=1)
+ self.pmd_output.execute_cmd("stop")
+
+ def tear_down_all(self):
+ self.dut.kill_all()
+ self.destroy_iavf()
--
2.17.1
next prev parent reply other threads:[~2020-11-02 9:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-02 9:21 [dts] [PATCH V3 0/8] tests: update or add rss related suites Haiyang Zhao
2020-11-02 9:21 ` [dts] [PATCH V3 1/8] tests/rte_flow_common: add a common module to process rss test Haiyang Zhao
2020-11-02 9:21 ` [dts] [PATCH V3 2/8] tests/TestSuite_cvl_advanced_rss:update script Haiyang Zhao
2020-11-02 9:36 ` Xie, WeiX
2020-11-02 9:21 ` Haiyang Zhao [this message]
2020-11-02 9:37 ` [dts] [PATCH V3 3/8] tests/TestSuite_cvl_advanced_iavf_rss:update script Xie, WeiX
2020-11-02 9:21 ` [dts] [PATCH V3 4/8] tests/cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp Haiyang Zhao
2020-11-02 9:31 ` Sun, QinX
2020-11-02 9:21 ` [dts] [PATCH V3 5/8] conf/cvl_advanced_rss_pppoe Haiyang Zhao
2020-11-02 9:21 ` [dts] [PATCH V3 6/8] tests/cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp add cvl rss iavf test suite Haiyang Zhao
2020-11-02 9:38 ` Sun, QinX
2020-11-02 9:21 ` [dts] [PATCH V3 7/8] tests/cvl_advanced_iavf_rss_gtpu:add iavf rss gtpu suite Haiyang Zhao
2020-11-02 9:49 ` Huang, ZhiminX
2020-11-02 9:21 ` [dts] [PATCH V3 8/8] tests/cvl_advanced_rss_gtpu: add cvl_advanced_rss_gtpu Haiyang Zhao
2020-11-02 9:37 ` Zhao, HaiyangX
2020-11-03 1:42 ` [dts] [PATCH V3 0/8] tests: update or add rss related suites Fu, Qi
2020-11-03 2:54 ` Tu, Lijuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201102092120.9146-4-haiyangx.zhao@intel.com \
--to=haiyangx.zhao@intel.com \
--cc=dts@dpdk.org \
--cc=qi.fu@intel.com \
--cc=weix.xie@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).