From patchwork Wed Dec 28 12:32:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jiale, SongX" X-Patchwork-Id: 121422 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A1F6BA04FD; Wed, 28 Dec 2022 05:34:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6EC6F410D0; Wed, 28 Dec 2022 05:34:46 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 9E3CD40FDF for ; Wed, 28 Dec 2022 05:34:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672202083; x=1703738083; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=MCMI79gKy4N/bf7udjshT+R74LzA0aJinQXTEtf0IR4=; b=K0X/xxiL0PM11yNFCW0vsjRCGzdD7oqXuWVyg0AGDkEa+GPZWEi38iYE dWQjuZyTmi4h3Y4lo754C/1OM45RE5EpsQtq9zH2+iankT6LoNpcFCtdV F4r+xLAtBa62ECCvkBhZudr9EcqqUFikOquFvdPWv3DMavlsPA8v7C0Mt NFgon1cu0tULdMBWF6EYxOfH5xiUw7+rIG0bnWk8Z0LYjXE7ZoctrhFvs t7KueXCc3CCYvdB6KizFUHN8QwOPORezN8ovfHIFYMsSDYYKwiUw4MeTA pOHND820iUnFUjZps3VUYD3gyHu1rQSziwe8lxCjOXtwvhXOxgdX8av46 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10573"; a="322040108" X-IronPort-AV: E=Sophos;i="5.96,280,1665471600"; d="scan'208";a="322040108" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Dec 2022 20:34:42 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10573"; a="655200517" X-IronPort-AV: E=Sophos;i="5.96,280,1665471600"; d="scan'208";a="655200517" Received: from unknown (HELO localhost.localdomain) ([10.239.252.20]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Dec 2022 20:34:40 -0800 From: Song Jiale To: dts@dpdk.org Cc: Song Jiale Subject: [dts] [PATCH V1 1/2] tests/ice_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp: add new cases according to testplan Date: Wed, 28 Dec 2022 12:32:33 +0000 Message-Id: <20221228123234.628532-1-songx.jiale@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org add 9 subcases according to testplan. Signed-off-by: Song Jiale --- ...advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py | 781 +++++++++++++++--- 1 file changed, 683 insertions(+), 98 deletions(-) diff --git a/tests/TestSuite_ice_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py b/tests/TestSuite_ice_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py index 0c24188a..cf2e9cc6 100644 --- a/tests/TestSuite_ice_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py +++ b/tests/TestSuite_ice_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py @@ -523,9 +523,9 @@ mac_ipv6_ah = { ], } -mac_vlan_ipv4_pay_packets = { +mac_vlan_ipv4_vlan_packets = { "match": { - "mac_vlan_ipv4_pay": [ + "mac_vlan_ipv4_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'.format( vf0_mac ), @@ -544,37 +544,94 @@ mac_vlan_ipv4_pay_packets = { ], } -mac_vlan_ipv4_pay = { - "sub_casename": "mac_vlan_ipv4_pay", +mac_vlan_ipv4_vlan = { + "sub_casename": "mac_vlan_ipv4_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv4_pay_packets["match"]["mac_vlan_ipv4_pay"][0], + "send_packet": mac_vlan_ipv4_vlan_packets["match"]["mac_vlan_ipv4_vlan"][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv4_pay_packets["match"]["mac_vlan_ipv4_pay"][1], + "send_packet": mac_vlan_ipv4_vlan_packets["match"]["mac_vlan_ipv4_vlan"][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv4_pay_packets["match"]["mac_vlan_ipv4_pay"][2], + "send_packet": mac_vlan_ipv4_vlan_packets["match"]["mac_vlan_ipv4_vlan"][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv4_pay_packets['mismatch'][0], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv4_vlan_packets["mismatch"][0], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv4_pay_packets["match"]["mac_vlan_ipv4_pay"] + for pkt in mac_vlan_ipv4_vlan_packets["match"]["mac_vlan_ipv4_vlan"] ], } -mac_vlan_ipv4_udp_pay_packets = { +mac_vlan_ipv4_l3dst_packets = { "match": { - "mac_vlan_ipv4_udp_pay": [ + "mac_vlan_ipv4_l3dst": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.3")/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src="192.168.1.3", dst="192.168.1.2")/Raw("x" * 80)'.format( + vf0_mac + ), + ], + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'.format( + vf0_mac + ) + ], +} + +mac_vlan_ipv4_l3dst = { + "sub_casename": "mac_vlan_ipv4_l3dst", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv4_l3dst_packets["match"]["mac_vlan_ipv4_l3dst"][ + 0 + ], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv4_l3dst_packets["match"]["mac_vlan_ipv4_l3dst"][ + 1 + ], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_l3dst_packets["match"]["mac_vlan_ipv4_l3dst"][ + 2 + ], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv4_l3dst_packets["mismatch"][0], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv4_l3dst_packets["match"]["mac_vlan_ipv4_l3dst"] + ], +} + +mac_vlan_ipv4_pay = [mac_vlan_ipv4_vlan, mac_vlan_ipv4_l3dst] + +mac_vlan_ipv4_udp_vlan_packets = { + "match": { + "mac_vlan_ipv4_udp_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( vf0_mac ), @@ -596,43 +653,165 @@ mac_vlan_ipv4_udp_pay_packets = { ], } -mac_vlan_ipv4_udp_pay = { - "sub_casename": "mac_vlan_ipv4_udp_pay", +mac_vlan_ipv4_udp_vlan = { + "sub_casename": "mac_vlan_ipv4_udp_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / udp / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv4_udp_pay_packets["match"][ - "mac_vlan_ipv4_udp_pay" + "send_packet": mac_vlan_ipv4_udp_vlan_packets["match"][ + "mac_vlan_ipv4_udp_vlan" ][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv4_udp_pay_packets["match"][ - "mac_vlan_ipv4_udp_pay" + "send_packet": mac_vlan_ipv4_udp_vlan_packets["match"][ + "mac_vlan_ipv4_udp_vlan" ][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv4_udp_pay_packets["match"][ - "mac_vlan_ipv4_udp_pay" + "send_packet": mac_vlan_ipv4_udp_vlan_packets["match"][ + "mac_vlan_ipv4_udp_vlan" ][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv4_udp_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv4_udp_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv4_udp_vlan_packets["match"]["mac_vlan_ipv4_udp_vlan"] + ], +} + +mac_vlan_ipv4_udp_l3src_packets = { + "match": { + "mac_vlan_ipv4_udp_l3src": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.3", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.4")/UDP(sport=19,dport=99)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ], +} + +mac_vlan_ipv4_udp_l3src = { + "sub_casename": "mac_vlan_ipv4_udp_l3src", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / udp / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv4_udp_l3src_packets["match"][ + "mac_vlan_ipv4_udp_l3src" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv4_udp_l3src_packets["match"][ + "mac_vlan_ipv4_udp_l3src" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_udp_l3src_packets["match"][ + "mac_vlan_ipv4_udp_l3src" + ][2], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv4_udp_l3src_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv4_udp_l3src_packets["match"]["mac_vlan_ipv4_udp_l3src"] + ], +} + +mac_vlan_ipv4_udp_l4dst_packets = { + "match": { + "mac_vlan_ipv4_udp_l4dst": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=24)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src="192.168.1.3", dst="192.168.1.4")/UDP(sport=19,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ], +} + +mac_vlan_ipv4_udp_l4dst = { + "sub_casename": "mac_vlan_ipv4_udp_l4dst", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv4_udp_l4dst_packets["match"][ + "mac_vlan_ipv4_udp_l4dst" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv4_udp_l4dst_packets["match"][ + "mac_vlan_ipv4_udp_l4dst" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_udp_l4dst_packets["match"][ + "mac_vlan_ipv4_udp_l4dst" + ][2], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv4_udp_l4dst_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv4_udp_pay_packets["match"]["mac_vlan_ipv4_udp_pay"] + for pkt in mac_vlan_ipv4_udp_l4dst_packets["match"]["mac_vlan_ipv4_udp_l4dst"] ], } -mac_vlan_ipv4_tcp_pay_packets = { +mac_vlan_ipv4_udp_pay = [ + mac_vlan_ipv4_udp_vlan, + mac_vlan_ipv4_udp_l3src, + mac_vlan_ipv4_udp_l4dst, +] + +mac_vlan_ipv4_tcp_vlan_packets = { "match": { - "mac_vlan_ipv4_tcp_pay": [ + "mac_vlan_ipv4_tcp_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( vf0_mac ), @@ -654,43 +833,114 @@ mac_vlan_ipv4_tcp_pay_packets = { ], } -mac_vlan_ipv4_tcp_pay = { - "sub_casename": "mac_vlan_ipv4_tcp_pay", +mac_vlan_ipv4_tcp_vlan = { + "sub_casename": "mac_vlan_ipv4_tcp_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / tcp / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv4_tcp_pay_packets["match"][ - "mac_vlan_ipv4_tcp_pay" + "send_packet": mac_vlan_ipv4_tcp_vlan_packets["match"][ + "mac_vlan_ipv4_tcp_vlan" ][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv4_tcp_pay_packets["match"][ - "mac_vlan_ipv4_tcp_pay" + "send_packet": mac_vlan_ipv4_tcp_vlan_packets["match"][ + "mac_vlan_ipv4_tcp_vlan" ][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv4_tcp_pay_packets["match"][ - "mac_vlan_ipv4_tcp_pay" + "send_packet": mac_vlan_ipv4_tcp_vlan_packets["match"][ + "mac_vlan_ipv4_tcp_vlan" ][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv4_tcp_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv4_tcp_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv4_tcp_vlan_packets["match"]["mac_vlan_ipv4_tcp_vlan"] + ], +} + +mac_vlan_ipv4_tcp_l3src_l4src_packets = { + "match": { + "mac_vlan_ipv4_tcp_l3src_l4src": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.3", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=22,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.4")/TCP(sport=25,dport=99)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ], +} + +mac_vlan_ipv4_tcp_l3src_l4src = { + "sub_casename": "mac_vlan_ipv4_tcp_l3src_l4src", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / 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_vlan_ipv4_tcp_l3src_l4src_packets["match"][ + "mac_vlan_ipv4_tcp_l3src_l4src" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv4_tcp_l3src_l4src_packets["match"][ + "mac_vlan_ipv4_tcp_l3src_l4src" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_tcp_l3src_l4src_packets["match"][ + "mac_vlan_ipv4_tcp_l3src_l4src" + ][2], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_tcp_l3src_l4src_packets["match"][ + "mac_vlan_ipv4_tcp_l3src_l4src" + ][3], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv4_tcp_l3src_l4src_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv4_tcp_pay_packets["match"]["mac_vlan_ipv4_tcp_pay"] + for pkt in mac_vlan_ipv4_tcp_l3src_l4src_packets["match"][ + "mac_vlan_ipv4_tcp_l3src_l4src" + ] ], } -mac_vlan_ipv4_sctp_pay_packets = { +mac_vlan_ipv4_tcp_pay = [mac_vlan_ipv4_tcp_vlan, mac_vlan_ipv4_tcp_l3src_l4src] + +mac_vlan_ipv4_sctp_vlan_packets = { "match": { - "mac_vlan_ipv4_sctp_pay": [ + "mac_vlan_ipv4_sctp_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( vf0_mac ), @@ -712,43 +962,130 @@ mac_vlan_ipv4_sctp_pay_packets = { ], } -mac_vlan_ipv4_sctp_pay = { - "sub_casename": "mac_vlan_ipv4_sctp_pay", +mac_vlan_ipv4_sctp_vlan = { + "sub_casename": "mac_vlan_ipv4_sctp_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / sctp / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv4_sctp_pay_packets["match"][ - "mac_vlan_ipv4_sctp_pay" + "send_packet": mac_vlan_ipv4_sctp_vlan_packets["match"][ + "mac_vlan_ipv4_sctp_vlan" ][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv4_sctp_pay_packets["match"][ - "mac_vlan_ipv4_sctp_pay" + "send_packet": mac_vlan_ipv4_sctp_vlan_packets["match"][ + "mac_vlan_ipv4_sctp_vlan" ][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv4_sctp_pay_packets["match"][ - "mac_vlan_ipv4_sctp_pay" + "send_packet": mac_vlan_ipv4_sctp_vlan_packets["match"][ + "mac_vlan_ipv4_sctp_vlan" ][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv4_sctp_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv4_sctp_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv4_sctp_vlan_packets["match"]["mac_vlan_ipv4_sctp_vlan"] + ], +} + +mac_vlan_ipv4_sctp_all_packets = { + "match": { + "mac_vlan_ipv4_sctp_all": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.3", dst="192.168.1.2")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.4")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/SCTP(sport=19,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/SCTP(sport=25,dport=99)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ], +} + +mac_vlan_ipv4_sctp_all = { + "sub_casename": "mac_vlan_ipv4_sctp_all", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv4_sctp_all_packets["match"][ + "mac_vlan_ipv4_sctp_all" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv4_sctp_all_packets["match"][ + "mac_vlan_ipv4_sctp_all" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_sctp_all_packets["match"][ + "mac_vlan_ipv4_sctp_all" + ][2], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_sctp_all_packets["match"][ + "mac_vlan_ipv4_sctp_all" + ][3], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_sctp_all_packets["match"][ + "mac_vlan_ipv4_sctp_all" + ][4], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv4_sctp_all_packets["match"][ + "mac_vlan_ipv4_sctp_all" + ][5], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv4_sctp_all_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv4_sctp_pay_packets["match"]["mac_vlan_ipv4_sctp_pay"] + for pkt in mac_vlan_ipv4_sctp_all_packets["match"]["mac_vlan_ipv4_sctp_all"] ], } -mac_vlan_ipv6_pay_packets = { +mac_vlan_ipv4_sctp_pay = [mac_vlan_ipv4_sctp_vlan, mac_vlan_ipv4_sctp_all] + +mac_vlan_ipv6_vlan_packets = { "match": { - "mac_vlan_ipv6_pay": [ + "mac_vlan_ipv6_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'.format( vf0_mac ), @@ -767,37 +1104,94 @@ mac_vlan_ipv6_pay_packets = { ], } -mac_vlan_ipv6_pay = { - "sub_casename": "mac_vlan_ipv6_pay", +mac_vlan_ipv6_vlan = { + "sub_casename": "mac_vlan_ipv6_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv6_pay_packets["match"]["mac_vlan_ipv6_pay"][0], + "send_packet": mac_vlan_ipv6_vlan_packets["match"]["mac_vlan_ipv6_vlan"][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv6_pay_packets["match"]["mac_vlan_ipv6_pay"][1], + "send_packet": mac_vlan_ipv6_vlan_packets["match"]["mac_vlan_ipv6_vlan"][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv6_pay_packets["match"]["mac_vlan_ipv6_pay"][2], + "send_packet": mac_vlan_ipv6_vlan_packets["match"]["mac_vlan_ipv6_vlan"][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv6_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv6_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv6_vlan_packets["match"]["mac_vlan_ipv6_vlan"] + ], +} + +mac_vlan_ipv6_l3src_packets = { + "match": { + "mac_vlan_ipv6_l3src": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/Raw("y" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/Raw("x" * 80)'.format( + vf0_mac + ) + ], +} + +mac_vlan_ipv6_l3src = { + "sub_casename": "mac_vlan_ipv6_l3src", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv6_l3src_packets["match"]["mac_vlan_ipv6_l3src"][ + 0 + ], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv6_l3src_packets["match"]["mac_vlan_ipv6_l3src"][ + 1 + ], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv6_l3src_packets["match"]["mac_vlan_ipv6_l3src"][ + 2 + ], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv6_l3src_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv6_pay_packets["match"]["mac_vlan_ipv6_pay"] + for pkt in mac_vlan_ipv6_l3src_packets["match"]["mac_vlan_ipv6_l3src"] ], } -mac_vlan_ipv6_udp_pay_packets = { +mac_vlan_ipv6_pay = [mac_vlan_ipv6_vlan, mac_vlan_ipv6_l3src] + +mac_vlan_ipv6_udp_vlan_packets = { "match": { - "mac_vlan_ipv6_udp_pay": [ + "mac_vlan_ipv6_udp_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( vf0_mac ), @@ -819,43 +1213,103 @@ mac_vlan_ipv6_udp_pay_packets = { ], } -mac_vlan_ipv6_udp_pay = { - "sub_casename": "mac_vlan_ipv6_udp_pay", +mac_vlan_ipv6_udp_vlan = { + "sub_casename": "mac_vlan_ipv6_udp_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / udp / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv6_udp_pay_packets["match"][ - "mac_vlan_ipv6_udp_pay" + "send_packet": mac_vlan_ipv6_udp_vlan_packets["match"][ + "mac_vlan_ipv6_udp_vlan" ][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv6_udp_pay_packets["match"][ - "mac_vlan_ipv6_udp_pay" + "send_packet": mac_vlan_ipv6_udp_vlan_packets["match"][ + "mac_vlan_ipv6_udp_vlan" ][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv6_udp_pay_packets["match"][ - "mac_vlan_ipv6_udp_pay" + "send_packet": mac_vlan_ipv6_udp_vlan_packets["match"][ + "mac_vlan_ipv6_udp_vlan" ][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv6_udp_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv6_udp_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv6_udp_vlan_packets["match"]["mac_vlan_ipv6_udp_vlan"] + ], +} + +mac_vlan_ipv6_udp_l4src_packets = { + "match": { + "mac_vlan_ipv6_udp_l4src": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=19,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/UDP(sport=25,dport=99)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ], +} + +mac_vlan_ipv6_udp_l4src = { + "sub_casename": "mac_vlan_ipv6_udp_l4src", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / udp / end actions rss types ipv6-udp l4-src-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv6_udp_l4src_packets["match"][ + "mac_vlan_ipv6_udp_l4src" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv6_udp_l4src_packets["match"][ + "mac_vlan_ipv6_udp_l4src" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv6_udp_l4src_packets["match"][ + "mac_vlan_ipv6_udp_l4src" + ][2], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv6_udp_l4src_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv6_udp_pay_packets["match"]["mac_vlan_ipv6_udp_pay"] + for pkt in mac_vlan_ipv6_udp_l4src_packets["match"]["mac_vlan_ipv6_udp_l4src"] ], } -mac_vlan_ipv6_tcp_pay_packets = { +mac_vlan_ipv6_udp_pay = [mac_vlan_ipv6_udp_vlan, mac_vlan_ipv6_udp_l4src] + +mac_vlan_ipv6_tcp_vlan_packets = { "match": { - "mac_vlan_ipv6_tcp_pay": [ + "mac_vlan_ipv6_tcp_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( vf0_mac ), @@ -877,43 +1331,103 @@ mac_vlan_ipv6_tcp_pay_packets = { ], } -mac_vlan_ipv6_tcp_pay = { - "sub_casename": "mac_vlan_ipv6_tcp_pay", +mac_vlan_ipv6_tcp_vlan = { + "sub_casename": "mac_vlan_ipv6_tcp_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / tcp / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv6_tcp_pay_packets["match"][ - "mac_vlan_ipv6_tcp_pay" + "send_packet": mac_vlan_ipv6_tcp_vlan_packets["match"][ + "mac_vlan_ipv6_tcp_vlan" ][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv6_tcp_pay_packets["match"][ - "mac_vlan_ipv6_tcp_pay" + "send_packet": mac_vlan_ipv6_tcp_vlan_packets["match"][ + "mac_vlan_ipv6_tcp_vlan" ][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv6_tcp_pay_packets["match"][ - "mac_vlan_ipv6_tcp_pay" + "send_packet": mac_vlan_ipv6_tcp_vlan_packets["match"][ + "mac_vlan_ipv6_tcp_vlan" ][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv6_tcp_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv6_tcp_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv6_tcp_vlan_packets["match"]["mac_vlan_ipv6_tcp_vlan"] + ], +} + +mac_vlan_ipv6_tcp_l3dst_packets = { + "match": { + "mac_vlan_ipv6_tcp_l3dst": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/TCP(sport=19,dport=99)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/TCP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ], +} + +mac_vlan_ipv6_tcp_l3dst = { + "sub_casename": "mac_vlan_ipv6_tcp_l3dst", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / tcp / end actions rss types ipv6-tcp l3-dst-only end key_len 0 queues end / end", + "test": [ + { + "send_packet": mac_vlan_ipv6_tcp_l3dst_packets["match"][ + "mac_vlan_ipv6_tcp_l3dst" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv6_tcp_l3dst_packets["match"][ + "mac_vlan_ipv6_tcp_l3dst" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv6_tcp_l3dst_packets["match"][ + "mac_vlan_ipv6_tcp_l3dst" + ][2], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv6_tcp_l3dst_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv6_tcp_pay_packets["match"]["mac_vlan_ipv6_tcp_pay"] + for pkt in mac_vlan_ipv6_tcp_l3dst_packets["match"]["mac_vlan_ipv6_tcp_l3dst"] ], } -mac_vlan_ipv6_sctp_pay_packets = { +mac_vlan_ipv6_tcp_pay = [mac_vlan_ipv6_tcp_vlan, mac_vlan_ipv6_tcp_l3dst] + +mac_vlan_ipv6_sctp_vlan_packets = { "match": { - "mac_vlan_ipv6_sctp_pay": [ + "mac_vlan_ipv6_sctp_vlan": [ 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( vf0_mac ), @@ -935,40 +1449,111 @@ mac_vlan_ipv6_sctp_pay_packets = { ], } -mac_vlan_ipv6_sctp_pay = { - "sub_casename": "mac_vlan_ipv6_sctp_pay", +mac_vlan_ipv6_sctp_vlan = { + "sub_casename": "mac_vlan_ipv6_sctp_vlan", "port_id": 0, "rule": "flow create 0 ingress pattern eth / vlan / ipv6 / sctp / end actions rss types c-vlan end key_len 0 queues end / end", "test": [ { - "send_packet": mac_vlan_ipv6_sctp_pay_packets["match"][ - "mac_vlan_ipv6_sctp_pay" + "send_packet": mac_vlan_ipv6_sctp_vlan_packets["match"][ + "mac_vlan_ipv6_sctp_vlan" ][0], "action": "save_hash", }, { - "send_packet": mac_vlan_ipv6_sctp_pay_packets["match"][ - "mac_vlan_ipv6_sctp_pay" + "send_packet": mac_vlan_ipv6_sctp_vlan_packets["match"][ + "mac_vlan_ipv6_sctp_vlan" ][1], "action": "check_hash_different", }, { - "send_packet": mac_vlan_ipv6_sctp_pay_packets["match"][ - "mac_vlan_ipv6_sctp_pay" + "send_packet": mac_vlan_ipv6_sctp_vlan_packets["match"][ + "mac_vlan_ipv6_sctp_vlan" ][2], "action": "check_hash_same", }, # { - # 'send_packet': mac_vlan_ipv6_sctp_pay_packets['mismatch'], - # 'action': 'check_no_hash_or_different', + # "send_packet": mac_vlan_ipv6_sctp_vlan_packets["mismatch"], + # "action": "check_no_hash_or_different", # }, ], "post-test": [ {"send_packet": pkt, "action": "check_no_hash_or_different"} - for pkt in mac_vlan_ipv6_sctp_pay_packets["match"]["mac_vlan_ipv6_sctp_pay"] + for pkt in mac_vlan_ipv6_sctp_vlan_packets["match"]["mac_vlan_ipv6_sctp_vlan"] + ], +} + +mac_vlan_ipv6_sctp_l3dst_l4dst_packets = { + "match": { + "mac_vlan_ipv6_sctp_l3dst_l4dst": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=25,dport=99)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:99", dst="{}",type=0x8100)/Dot1Q(vlan=2,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/SCTP(sport=19,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + ] + }, + "mismatch": [ + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x0800)/IP(src="192.168.1.1", dst="192.168.1.2")/SCTP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), + 'Ether(src="10:22:33:44:55:66", dst="{}",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2022")/UDP(sport=25,dport=23)/Raw("x" * 80)'.format( + vf0_mac + ), ], } +mac_vlan_ipv6_sctp_l3dst_l4dst = { + "sub_casename": "mac_vlan_ipv6_sctp_l3dst_l4dst", + "port_id": 0, + "rule": "flow create 0 ingress pattern eth / vlan / 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_vlan_ipv6_sctp_l3dst_l4dst_packets["match"][ + "mac_vlan_ipv6_sctp_l3dst_l4dst" + ][0], + "action": "save_hash", + }, + { + "send_packet": mac_vlan_ipv6_sctp_l3dst_l4dst_packets["match"][ + "mac_vlan_ipv6_sctp_l3dst_l4dst" + ][1], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv6_sctp_l3dst_l4dst_packets["match"][ + "mac_vlan_ipv6_sctp_l3dst_l4dst" + ][2], + "action": "check_hash_different", + }, + { + "send_packet": mac_vlan_ipv6_sctp_l3dst_l4dst_packets["match"][ + "mac_vlan_ipv6_sctp_l3dst_l4dst" + ][3], + "action": "check_hash_same", + }, + # { + # "send_packet": mac_vlan_ipv6_sctp_l3dst_l4dst_packets["mismatch"], + # "action": "check_no_hash_or_different", + # }, + ], + "post-test": [ + {"send_packet": pkt, "action": "check_no_hash_or_different"} + for pkt in mac_vlan_ipv6_sctp_l3dst_l4dst_packets["match"][ + "mac_vlan_ipv6_sctp_l3dst_l4dst" + ] + ], +} + +mac_vlan_ipv6_sctp_pay = [mac_vlan_ipv6_sctp_vlan, mac_vlan_ipv6_sctp_l3dst_l4dst] + class ICE_advance_iavf_rss_vlan_ah_l2tp_pfcp(TestCase): def set_up_all(self):