Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/83511/?format=api
https://patches.dpdk.org/api/patches/83511/?format=api", "web_url": "https://patches.dpdk.org/project/dts/patch/20201103083656.16541-4-haiyangx.zhao@intel.com/", "project": { "id": 3, "url": "https://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20201103083656.16541-4-haiyangx.zhao@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20201103083656.16541-4-haiyangx.zhao@intel.com", "date": "2020-11-03T08:36:51", "name": "[V4,3/8] tests/TestSuite_cvl_advanced_iavf_rss:update script", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "9dd0183eb2064cb1c1e51019ce3a58c4ec52aea8", "submitter": { "id": 1978, "url": "https://patches.dpdk.org/api/people/1978/?format=api", "name": "Zhao, HaiyangX", "email": "haiyangx.zhao@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dts/patch/20201103083656.16541-4-haiyangx.zhao@intel.com/mbox/", "series": [ { "id": 13608, "url": "https://patches.dpdk.org/api/series/13608/?format=api", "web_url": "https://patches.dpdk.org/project/dts/list/?series=13608", "date": "2020-11-03T08:36:48", "name": "tests: update or add rss related suites", "version": 4, "mbox": "https://patches.dpdk.org/series/13608/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/83511/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/83511/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dts-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4DE58A0521;\n\tTue, 3 Nov 2020 09:38:51 +0100 (CET)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 240ADC83E;\n\tTue, 3 Nov 2020 09:38:43 +0100 (CET)", "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n by dpdk.org (Postfix) with ESMTP id 284F2C828\n for <dts@dpdk.org>; Tue, 3 Nov 2020 09:38:33 +0100 (CET)", "from fmsmga008.fm.intel.com ([10.253.24.58])\n by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 03 Nov 2020 00:38:30 -0800", "from unknown (HELO localhost.localdomain) ([10.240.183.55])\n by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 03 Nov 2020 00:38:24 -0800" ], "IronPort-SDR": [ "\n g86GPWBAhZiyvG6lWw13jXALHLxdBOKz9TuWJYxMaCCO9LV9Jq/ZWOUQGKrxHfj9ENxErC30rQ\n wDKnAyBYu6oQ==", "\n whPljIWlnFX2vVw18ZmdFLm0/WdeQKv1k9XcCQ+7nlDVw4g7ZJGsCbePvt0xY1vrdnOFEz/Cna\n rCm8e8mdEa7A==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9793\"; a=\"156798018\"", "E=Sophos;i=\"5.77,447,1596524400\"; d=\"scan'208\";a=\"156798018\"", "E=Sophos;i=\"5.77,447,1596524400\"; d=\"scan'208\";a=\"305734283\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "From": "Haiyang Zhao <haiyangx.zhao@intel.com>", "To": "dts@dpdk.org,\n\tqi.fu@intel.com", "Cc": "Xie wei <weix.xie@intel.com>", "Date": "Tue, 3 Nov 2020 16:36:51 +0800", "Message-Id": "<20201103083656.16541-4-haiyangx.zhao@intel.com>", "X-Mailer": "git-send-email 2.17.1", "In-Reply-To": "<20201103083656.16541-1-haiyangx.zhao@intel.com>", "References": "<20201103083656.16541-1-haiyangx.zhao@intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[dts] [PATCH V4 3/8] tests/TestSuite_cvl_advanced_iavf_rss:update\n\tscript", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "test suite reviews and discussions <dts.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dts/>", "List-Post": "<mailto:dts@dpdk.org>", "List-Help": "<mailto:dts-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>", "Errors-To": "dts-bounces@dpdk.org", "Sender": "\"dts\" <dts-bounces@dpdk.org>" }, "content": "From: Xie wei <weix.xie@intel.com>\n\n* according to test plan, update cvl_advanced_iavf_rss script.\n\nSigned-off-by: Xie wei <weix.xie@intel.com>\n---\n tests/TestSuite_cvl_advanced_iavf_rss.py | 6305 ++++++++++++++++++----\n 1 file changed, 5279 insertions(+), 1026 deletions(-)", "diff": "diff --git a/tests/TestSuite_cvl_advanced_iavf_rss.py b/tests/TestSuite_cvl_advanced_iavf_rss.py\nindex 5c7da2b..7513a80 100644\n--- a/tests/TestSuite_cvl_advanced_iavf_rss.py\n+++ b/tests/TestSuite_cvl_advanced_iavf_rss.py\n@@ -29,781 +29,5078 @@\n # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n \n-import re\n-import time\n \n+import re\n+import random\n from packet import Packet\n from pmd_output import PmdOutput\n from test_case import TestCase\n-from config import UserConf\n-import rte_flow_common as rfc\n-\n-vf0_mac = \"00:01:23:45:67:89\"\n-vf1_mac = \"00:11:22:33:44:55\"\n+from rte_flow_common import RssProcessing\n+\n+vf0_mac = \"00:11:22:33:44:55\"\n+\n+# toeplitz related data start\n+mac_ipv4_toeplitz_basic_pkt = {\n+ 'ipv4-nonfrag': [\n+ '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,\n+ ],\n+ 'ipv4-frag': [\n+ '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,\n+ ],\n+ 'ipv4-icmp': [\n+ '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,\n+ ],\n+ 'ipv4-tcp': [\n+ '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,\n+ ],\n+ # 'ipv4-udp-vxlan': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv4_udp_toeplitz_basic_pkt = {\n+ 'ipv4-udp': [\n+ '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,\n+ ],\n+ # 'nvgre': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv4_tcp_toeplitz_basic_pkt = {\n+ 'ipv4-tcp': [\n+ '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,\n+ ],\n+ # 'nvgre': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv4_sctp_toeplitz_basic_pkt = {\n+ 'ipv4-sctp': [\n+ '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,\n+ ],\n+ # 'nvgre': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv6_toeplitz_basic_pkt = {\n+ 'ipv6-nonfrag': [\n+ '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,\n+ ],\n+ 'ipv6-frag': [\n+ '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,\n+ ],\n+ 'ipv6-icmp': [\n+ '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,\n+ ],\n+ 'ipv6-udp': [\n+ '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,\n+ ],\n+ # 'nvgre': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv6_udp_toeplitz_basic_pkt = {\n+ 'ipv6-udp': [\n+ '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,\n+ ],\n+ # 'ipv4_udp_vxlan_ipv6_udp': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv6_tcp_toeplitz_basic_pkt = {\n+ 'ipv6-tcp': [\n+ '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,\n+ ],\n+ # 'ipv4_tcp_vxlan_ipv6_tcp': [\n+ # '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,\n+ # ],\n+}\n+\n+mac_ipv6_sctp_toeplitz_basic_pkt = {\n+ 'ipv6-sctp': [\n+ '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,\n+ ],\n+ # 'ipv4_sctp_vxlan_ipv6_sctp': [\n+ # '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,\n+ # ],\n+}\n+\n+#mac_ipv4\n+mac_ipv4_l2_src = {\n+ 'sub_casename': 'mac_ipv4_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv4_l2_dst = {\n+ 'sub_casename': 'mac_ipv4_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv4_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv4_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv4_l3_src = {\n+ 'sub_casename': 'mac_ipv4_l3_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'],\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'][0],\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv4_l3_dst = {\n+ 'sub_casename': 'mac_ipv4_l3_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'],\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'][0],\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv4_all = {\n+ 'sub_casename': 'mac_ipv4_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'],\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'],\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'],\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'],\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-frag'][0],\n+ 'action': {'check_hash_different': 'ipv4-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv4-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-tcp'][0],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_toeplitz_basic_pkt['ipv4-udp-vxlan'][0],\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan'},\n+ # },\n+ ],\n+}\n \n-tv_iavf_mac_eth_src_only = {\n- \"name\": \"iavf_mac_eth_src_only\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l2-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(src=RandMAC())/IP()/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+# mac ipv4_udp\n+mac_ipv4_udp_l2_src = {\n+ 'sub_casename': 'mac_ipv4_udp_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ],\n }\n \n-tv_iavf_mac_eth_dst_only = {\n- \"name\": \"iavf_mac_eth_dst_only\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l2-dst-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_udp_l2_dst = {\n+ 'sub_casename': 'mac_ipv4_udp_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ],\n }\n \n-tv_iavf_mac_ipv4_l3_src = {\n- \"name\": \"iavf_mac_ipv4_l3_src\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_src_frag = {\n- \"name\": \"iavf_mac_ipv4_l3_src_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),frag=5)/SCTP(sport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(), dst=\"192.168.0.8\", frag=5)/SCTP(sport=RandShort())/(\"X\" * 80)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_dst = {\n- \"name\": \"iavf_mac_ipv4_l3_dst\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(dst=RandIP())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=\"192.168.0.8\",dst=RandIP())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_dst_frag = {\n- \"name\": \"iavf_mac_ipv4_l3_dst_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_src_frag_icmp = {\n- \"name\": \"iavf_mac_ipv4_l3_dst_frag_icmp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(), frag=5)/ICMP()/(\"X\" *480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_dst_frag_icmp = {\n- \"name\": \"iavf_mac_ipv4_l3_dst_frag_icmp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(dst=RandIP(), frag=5)/ICMP()/(\"X\" *480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(dst=RandIP(), src=\"192.168.0.5\",frag=5)/ICMP()/(\"X\" * 80)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_pay = {\n- \"name\": \"iavf_mac_ipv4_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/(\"X\" *480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_pay_frag_icmp = {\n- \"name\": \"iavf_mac_ipv4_pay_frag_icmp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_src_nvgre = {\n- \"name\": \"iavf_mac_ipv4_l3_src_nvgre\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP()/NVGRE()/Ether()/IP(src=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l3_dst_nvgre = {\n- \"name\": \"iavf_mac_ipv4_l3_dst_nvgre\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP()/NVGRE()/Ether()/IP(dst=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_nvgre_udp_frag = {\n- \"name\": \"iavf_mac_ipv4_nvgre_udp_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_nvgre_sctp = {\n- \"name\": \"iavf_mac_ipv4_nvgre_sctp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP()/NVGRE()/Ether()/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_tcp_pay = {\n- \"name\": \"iavf_mac_ipv4_tcp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP()/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/TCP()/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP(),frag=4)/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- ],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_tcp_frag = {\n- \"name\": \"iavf_mac_ipv4_tcp_frag\",\n- \"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\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP()) / TCP(dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=\"192.168.0.2\")/TCP(sport=22,dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- ],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_udp = {\n- \"name\": \"iavf_mac_ipv4_udp\",\n- \"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\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP())/UDP(dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=\"192.168.0.2\")/UDP(sport=33,dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_udp_frag = {\n- \"name\": \"iavf_mac_ipv4_udp_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP()/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_sctp = {\n- \"name\": \"iavf_mac_ipv4_sctp\",\n- \"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\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP())/SCTP(dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(dst=RandIP())/SCTP(sport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_sctp_frag = {\n- \"name\": \"iavf_mac_ipv4_sctp_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP()/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_l3_src = {\n- \"name\": \"iavf_mac_ipv6_l3_src\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / end actions rss types l3-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_l3_src_frag = {\n- \"name\": \"iavf_mac_ipv6_l3_src_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / end actions rss types l3-src-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/IPv6ExtHdrFragment()/(\"X\" * 480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_l3_dst = {\n- \"name\": \"iavf_mac_ipv6_l3_dst\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / end actions rss types l3-dst-only end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(dst=RandIP6())/IPv6ExtHdrFragment()/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",dst=RandIP6())/IPv6ExtHdrFragment()/(\"X\" * 480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_pay = {\n- \"name\": \"iavf_mac_ipv6_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/IPv6ExtHdrFragment()/ICMP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_sctp_pay = {\n- \"name\": \"iavf_mac_ipv6_sctp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6())/SCTP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/SCTP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-tv_iavf_mac_ipv6_udp = {\n- \"name\": \"iavf_mac_ipv6_udp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6()) / UDP(sport=RandShort(), dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_udp_frag = {\n- \"name\": \"iavf_mac_ipv6_udp_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_tcp = {\n- \"name\": \"iavf_mac_ipv6_tcp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_tcp_frag = {\n- \"name\": \"iavf_mac_ipv6_tcp_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6())/IPv6ExtHdrFragment()/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_udp_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv4_udp_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ],\n }\n \n-tv_iavf_mac_cvlan_rss = {\n- \"name\": \"iavf_mac_cvlan_rss\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / vlan / ipv4 / end actions rss types c-vlan end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether()/Dot1Q(vlan=RandShort())/IP(src=RandIP())/UDP()/(\"X\"*480)',\n- 'Ether(type=0x9100)/Dot1Q(vlan=RandShort())/Dot1Q(vlan=56)/IP(src=RandIP())/UDP()/(\"X\"*480)',\n- ],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_udp_l3_src = {\n+ 'sub_casename': 'mac_ipv4_udp_l3_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_mac_ipv4_pfcp_session = {\n- \"name\": \"iavf_mac_ipv4_pfcp_session\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end\",\n- \"scapy_str\": [\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/Raw(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=0)/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/(\"X\"*480)' % vf0_mac,\n+mac_ipv4_udp_l3_dst = {\n+ 'sub_casename': 'mac_ipv4_udp_l3_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n ],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n }\n \n-tv_iavf_mac_ipv6_pfcp_session = {\n- \"name\": \"iavf_mac_ipv6_pfcp_session\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IPv6()/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=0)/(\"X\"*480)' % vf0_mac,\n- 'Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/PFCP(Sfield=1, SEID=12)/'\n- '(\"X\"*480)' % vf0_mac,\n- ],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_udp_l3src_l4src = {\n+ 'sub_casename': 'mac_ipv4_udp_l3src_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_up_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_up_match_dismatch\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / \"\n- \"end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\",\n+mac_ipv4_udp_l3src_l4dst = {\n+ 'sub_casename': 'mac_ipv4_udp_l3src_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\",dst=\"%s\")/IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255,teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34) / IP(src=RandIP()) /(\"X\"*480)' % vf0_mac],\n+mac_ipv4_udp_l3dst_l4src = {\n+ 'sub_casename': 'mac_ipv4_udp_l3dst_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\",dst=\"%s\")/IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255,teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) / IP(dst=RandIP()) /(\"X\"*480)' % vf0_mac,\n- 'Ether(src=\"00:00:00:00:01:01\",dst=\"%s\")/IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255,teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) / IP(dst=RandIP()) / UDP() /(\"X\"*480)' % vf0_mac,\n- ],\n+mac_ipv4_udp_l3dst_l4dst = {\n+ 'sub_casename': 'mac_ipv4_udp_l3dst_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_udp_l4_src = {\n+ 'sub_casename': 'mac_ipv4_udp_l4_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_down_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_down_match_dismatch\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / \"\n- \"end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\",\n+mac_ipv4_udp_l4_dst = {\n+ 'sub_casename': 'mac_ipv4_udp_l4_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\",dst=\"%s\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=RandIP())/(\"X\"*480)' % vf0_mac],\n+mac_ipv4_udp_all = {\n+ 'sub_casename': 'mac_ipv4_udp_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['ipv4-udp'],\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_udp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\",dst=\"%s\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=RandIP())/(\"X\"*480)' % vf0_mac,\n- ],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+# mac ipv4_tcp\n+mac_ipv4_tcp_l2_src = {\n+ 'sub_casename': 'mac_ipv4_tcp_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_frag_up_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_frag_up_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end \",\n+mac_ipv4_tcp_l2_dst = {\n+ 'sub_casename': 'mac_ipv4_tcp_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=RandIP(),frag=6)/(\"X\"*480)' % vf0_mac],\n+mac_ipv4_tcp_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv4_tcp_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=RandIP(),frag=6)/(\"X\"*480)' % vf0_mac],\n+mac_ipv4_tcp_l3_src = {\n+ 'sub_casename': 'mac_ipv4_tcp_l3_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_tcp_l3_dst = {\n+ 'sub_casename': 'mac_ipv4_tcp_l3_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_frag_down_match_dismatch = {\n+mac_ipv4_tcp_l3src_l4src = {\n+ 'sub_casename': 'mac_ipv4_tcp_l3src_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"name\": \"iavf_gtpu_ipv4_frag_down_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end \",\n+mac_ipv4_tcp_l3src_l4dst = {\n+ 'sub_casename': 'mac_ipv4_tcp_l3src_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) / IP(dst=RandIP(), frag=6) /(\"X\"*480)' % vf0_mac],\n+mac_ipv4_tcp_l3dst_l4src = {\n+ 'sub_casename': 'mac_ipv4_tcp_l3dst_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34) / IP(src=RandIP(), frag=6) /(\"X\"*480)' % vf0_mac],\n+mac_ipv4_tcp_l3dst_l4dst = {\n+ 'sub_casename': 'mac_ipv4_tcp_l3dst_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_tcp_l4_src = {\n+ 'sub_casename': 'mac_ipv4_tcp_l4_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_udp_up_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_udp_up_match_dismatch\",\n- \"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 \"\n- \"l3-src-only end key_len 0 queues end / end\",\n+mac_ipv4_tcp_l4_dst = {\n+ 'sub_casename': 'mac_ipv4_tcp_l4_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=RandIP()) / UDP(dport=RandShort())/(\"X\"*480)' % vf0_mac],\n+mac_ipv4_tcp_all = {\n+ 'sub_casename': 'mac_ipv4_tcp_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['ipv4-tcp'],\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_tcp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=RandIP()) / UDP(dport=RandShort())/(\"X\"*480)' % vf0_mac],\n+# mac ipv4_sctp\n+mac_ipv4_sctp_l2_src = {\n+ 'sub_casename': 'mac_ipv4_sctp_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ ],\n+}\n \n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_sctp_l2_dst = {\n+ 'sub_casename': 'mac_ipv4_sctp_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_udp_down_match_dismatch = {\n+mac_ipv4_sctp_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv4_sctp_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ ],\n+}\n \n- \"name\": \"iavf_gtpu_ipv4_udp_down_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end \",\n+mac_ipv4_sctp_l3_src = {\n+ 'sub_casename': 'mac_ipv4_sctp_l3_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) / IP(dst=RandIP(), frag=6) /(\"X\"*480)' % vf0_mac],\n+mac_ipv4_sctp_l3_dst = {\n+ 'sub_casename': 'mac_ipv4_sctp_l3_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34) / IP(src=RandIP(), frag=6) /(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_sctp_l3src_l4src = {\n+ 'sub_casename': 'mac_ipv4_sctp_l3src_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_tcp_up_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_tcp_up_match_dismatch\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp /\"\n- \" end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end\",\n+mac_ipv4_sctp_l3src_l4dst = {\n+ 'sub_casename': 'mac_ipv4_sctp_l3src_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=RandIP())/TCP(dport=RandShort())/(\"X\"*480)' % vf0_mac],\n+mac_ipv4_sctp_l3dst_l4src = {\n+ 'sub_casename': 'mac_ipv4_sctp_l3dst_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / TCP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=RandIP())/TCP(dport=RandShort())/(\"X\"*480)' % vf0_mac],\n+mac_ipv4_sctp_l3dst_l4dst = {\n+ 'sub_casename': 'mac_ipv4_sctp_l3dst_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv4_sctp_l4_src = {\n+ 'sub_casename': 'mac_ipv4_sctp_l4_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_tcp_down_match_dismatch = {\n+mac_ipv4_sctp_l4_dst = {\n+ 'sub_casename': 'mac_ipv4_sctp_l4_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"name\": \"iavf_gtpu_ipv4_tcp_down_match_dismatch\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp /\"\n- \" end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end\",\n+mac_ipv4_sctp_all = {\n+ 'sub_casename': 'mac_ipv4_sctp_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / sctp / end actions rss types ipv4-sctp end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['ipv4-sctp'],\n+ 'action': {'check_hash_different': 'ipv4-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv4_sctp_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=RandIP())/TCP(dport=RandShort())/(\"X\"*480)' % vf0_mac],\n+# mac_ipv6\n+mac_ipv6_l2_src = {\n+ 'sub_casename': 'mac_ipv6_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / TCP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(src=RandIP())/TCP(dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv6_l2_dst = {\n+ 'sub_casename': 'mac_ipv6_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_icmp_up_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_icmp_up_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end\",\n+mac_ipv6_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv6_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n+mac_ipv6_l3_src = {\n+ 'sub_casename': 'mac_ipv6_l3_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'][0],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n+mac_ipv6_l3_dst = {\n+ 'sub_casename': 'mac_ipv6_l3_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 l3-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'][0],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n \n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv6_all = {\n+ 'sub_casename': 'mac_ipv6_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss types ipv6 end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'],\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'],\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'],\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'],\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-nonfrag'][0],\n+ 'action': {'check_hash_different': 'ipv6-nonfrag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-frag'][0],\n+ 'action': {'check_hash_different': 'ipv6-frag'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-icmp'][0],\n+ 'action': {'check_hash_different': 'ipv6-icmp'},\n+ },\n+ {\n+ 'send_packet': mac_ipv6_toeplitz_basic_pkt['ipv6-udp'][0],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_toeplitz_basic_pkt['nvgre'][0],\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+}\n+# mac_ipv6_udp\n+mac_ipv6_udp_l2_src = {\n+ 'sub_casename': 'mac_ipv6_udp_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_icmp_down_match_dismatch = {\n+mac_ipv6_udp_l2_dst = {\n+ 'sub_casename': 'mac_ipv6_udp_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n+}\n \n- \"name\": \"iavf_gtpu_ipv4_icmp_down_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end\",\n+mac_ipv6_udp_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv6_udp_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n+}\n \n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n+mac_ipv6_udp_l3_src = {\n+ 'sub_casename': 'mac_ipv6_udp_l3_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n \n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34) /IP(src=RandIP())/ICMP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n+mac_ipv6_udp_l3_dst = {\n+ 'sub_casename': 'mac_ipv6_udp_l3_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n }\n \n-tv_iavf_gtpu_ipv4_sctp_up_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_sctp_up_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end\",\n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=RandIP())/SCTP()/(\"X\"*480)' % vf0_mac],\n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152) / GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=RandIP())/SCTP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n+mac_ipv6_udp_l3src_l4src = {\n+ 'sub_casename': 'mac_ipv6_udp_l3src_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n \n-tv_iavf_gtpu_ipv4_sctp_down_match_dismatch = {\n- \"name\": \"iavf_gtpu_ipv4_sctp_down_match_dismatch\",\n- \"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 \"\n- \"key_len 0 queues end / end\",\n- \"match_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(dst=RandIP())/SCTP()/(\"X\"*480)' % vf0_mac],\n- \"dismatch_str\": ['Ether(src=\"00:00:00:00:01:01\", dst=\"%s\") / IP() / UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/'\n- 'GTPPDUSessionContainer(type=0, P=1, QFI=0x34) /IP(src=RandIP())/SCTP()/(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_mac_ipv4_tcp_inputset = {\n- \"name\": \"iavf_mac_ipv4_tcp_inputset\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\",\n- \"pf_rule\": \"rx-flow-hash tcp4 sdfn\",\n- \"check_pf_rule_set\": \"rx-flow-hash tcp4\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"pf_scapy\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue,\n- \"check_pf_rss_func\": rfc.check_pf_rss_queue\n-}\n-\n-tv_mac_ipv4_udp_inputset = {\n- \"name\": \"iavf_mac_ipv4_udp_inputset\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\",\n- \"pf_rule\": \"rx-flow-hash udp4 sdfn\",\n- \"check_pf_rule_set\": \"rx-flow-hash udp4\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"pf_scapy\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue,\n- \"check_pf_rss_func\": rfc.check_pf_rss_queue\n-}\n-\n-tv_mac_ipv4_sctp_inputset = {\n- \"name\": \"iavf_mac_ipv4_sctp_inputset\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-sctp4 end key_len 0 queues end / end\",\n- \"pf_rule\": \"rx-flow-hash sctp4 sdfn\",\n- \"check_pf_rule_set\": \"rx-flow-hash sctp4\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/SCTP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"pf_scapy\": ['Ether(dst=\"%s\")/IP(src=RandIP(),dst=RandIP())/SCTP()/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue,\n- \"check_pf_rss_func\": rfc.check_pf_rss_queue\n-}\n-\n-tv_mac_ipv6_tcp_inputset = {\n- \"name\": \"iavf_mac_ipv6_tcp_inputset\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\",\n- \"pf_rule\": \"rx-flow-hash tcp6 sdfn\",\n- \"check_pf_rule_set\": \"rx-flow-hash tcp6\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"pf_scapy\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/TCP(sport=RandShort(),dport=RandShort())/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue,\n- \"check_pf_rss_func\": rfc.check_pf_rss_queue\n-}\n-\n-tv_mac_ipv6_udp_inputset = {\n- \"name\": \"iavf_mac_ipv6_udp_inputset\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\",\n- \"pf_rule\": \"rrx-flow-hash udp6 sdfn\",\n- \"check_pf_rule_set\": \"rx-flow-hash udp6\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"pf_scapy\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/UDP(sport=RandShort(),dport=RandShort())/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue,\n- \"check_pf_rss_func\": rfc.check_pf_rss_queue\n-}\n-\n-tv_mac_ipv6_sctp_inputset = {\n- \"name\": \"iavf_mac_ipv6_sctp_inputset\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end\",\n- \"pf_rule\": \"rx-flow-hash sctp6 sdfn\",\n- \"check_pf_rule_set\": \"rx-flow-hash sctp6\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/SCTP(sport=RandShort(),dport=RandShort())/(\"X\"*480)' % vf0_mac],\n- \"pf_scapy\": ['Ether(dst=\"%s\")/IPv6(src=RandIP6(),dst=RandIP6())/SCTP()/(\"X\"*480)'],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue,\n- \"check_pf_rss_func\": rfc.check_pf_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_l2tpv3 = {\n- \"name\": \"iavf_mac_ipv4_l2tpv3\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / l2tpv3oip / end actions rss types l2tpv3 end key_len 0 queues end / end\",\n- \"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],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_l2tpv3 = {\n- \"name\": \"iavf_mac_ipv6_l2tpv3\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / l2tpv3oip / end actions rss types l2tpv3 end key_len 0 queues end / end\",\n- \"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],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_esp = {\n- \"name\": \"iavf_mac_ipv4_esp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / esp / end actions rss types esp end key_len 0 queues end / end\",\n- \"scapy_str\": ['Ether(dst=\"%s\")/IP(src=\"192.168.0.3\", proto=50)/ESP(spi=RandShort())/Raw(\"X\"*480)' % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_esp = {\n- \"name\": \"iavf_mac_ipv6_esp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / esp / end actions rss types esp end key_len 0 queues end / end\",\n- \"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],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv4_ah = {\n- \"name\": \"iavf_mac_ipv4_ah\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / ah / end actions rss types ah end key_len 0 queues end / end\",\n- \"scapy_str\": [\"Ether(dst='%s')/IP(src='192.168.0.3', proto=51)/AH(spi=RandShort())/Raw('X'*480)\" % vf0_mac],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tv_iavf_mac_ipv6_ah = {\n- \"name\": \"iavf_mac_ipv6_ah\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / ah / end actions rss types ah end key_len 0 queues end / end\",\n- \"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],\n- \"send_count\": 100,\n- \"check_func\": rfc.check_iavf_packets_rss_queue\n-}\n-\n-tvs_iavf_mac_eth_src = [\n- tv_iavf_mac_eth_src_only,\n-]\n-\n-tvs_iavf_mac_eth_dst = [\n- tv_iavf_mac_eth_dst_only,\n-]\n-tvs_iavf_mac_rss_ipv4 = [\n- tv_iavf_mac_ipv4_l3_src,\n- tv_iavf_mac_ipv4_l3_src_frag,\n- tv_iavf_mac_ipv4_l3_dst,\n- tv_iavf_mac_ipv4_l3_dst_frag,\n- tv_iavf_mac_ipv4_pay,\n-]\n-\n-tvs_iavf_mac_rss_ipv4_icmp = [\n- tv_iavf_mac_ipv4_l3_src_frag_icmp,\n- tv_iavf_mac_ipv4_l3_dst_frag_icmp,\n- tv_iavf_mac_ipv4_pay_frag_icmp\n-]\n-\n-tvs_iavf_mac_rss_ipv4_nvgre = [\n- tv_iavf_mac_ipv4_l3_src_nvgre,\n- tv_iavf_mac_ipv4_l3_dst_nvgre,\n- tv_iavf_mac_ipv4_nvgre_udp_frag,\n- tv_iavf_mac_ipv4_nvgre_sctp,\n-]\n-\n-tvs_iavf_mac_rss_ipv4_tcp = [\n- tv_iavf_mac_ipv4_tcp_pay,\n- tv_iavf_mac_ipv4_tcp_frag,\n-]\n-\n-tvs_iavf_mac_rss_ipv4_udp = [\n- tv_iavf_mac_ipv4_udp,\n- tv_iavf_mac_ipv4_udp_frag,\n-]\n-\n-tvs_iavf_mac_rss_ipv4_sctp = [\n- tv_iavf_mac_ipv4_sctp,\n- tv_iavf_mac_ipv4_sctp_frag,\n-]\n-\n-tvs_iavf_mac_rss_ipv6 = [\n- tv_iavf_mac_ipv6_l3_src,\n- tv_iavf_mac_ipv6_l3_src_frag,\n- tv_iavf_mac_ipv6_l3_dst,\n- tv_iavf_mac_ipv6_pay,\n- # tv_iavf_mac_ipv6_sctp_pay,\n-]\n-\n-tvs_iavf_mac_rss_ipv6_udp = [\n- tv_iavf_mac_ipv6_udp,\n- tv_iavf_mac_ipv6_udp_frag,\n-]\n-\n-tvs_iavf_mac_rss_ipv6_tcp = [\n- tv_iavf_mac_ipv6_tcp,\n- tv_iavf_mac_ipv6_tcp_frag,\n-]\n-\n-tvs_iavf_mac_rss_cvlan = [\n- tv_iavf_mac_cvlan_rss,\n-]\n-\n-tvs_iavf_mac_rss_pfcp = [\n- tv_iavf_mac_ipv4_pfcp_session,\n- tv_iavf_mac_ipv6_pfcp_session,\n-]\n-\n-tvs_iavf_gtpu_ipv4 = [\n- tv_iavf_gtpu_ipv4_up_match_dismatch,\n- tv_iavf_gtpu_ipv4_down_match_dismatch,\n-]\n-\n-tvs_iavf_gtpu_ipv4_frag = [\n- tv_iavf_gtpu_ipv4_frag_up_match_dismatch,\n- tv_iavf_gtpu_ipv4_frag_down_match_dismatch,\n-]\n-\n-tvs_iavf_gtpu_ipv4_udp = [\n- tv_iavf_gtpu_ipv4_udp_up_match_dismatch,\n- tv_iavf_gtpu_ipv4_udp_down_match_dismatch,\n-]\n-\n-tvs_iavf_gtpu_ipv4_tcp = [\n- tv_iavf_gtpu_ipv4_tcp_up_match_dismatch,\n- tv_iavf_gtpu_ipv4_tcp_down_match_dismatch,\n-]\n-\n-tvs_iavf_gtpu_ipv4_icmp = [\n- tv_iavf_gtpu_ipv4_icmp_up_match_dismatch,\n- tv_iavf_gtpu_ipv4_icmp_down_match_dismatch,\n-]\n-\n-tvs_iavf_gtpu_ipv4_sctp = [\n- tv_iavf_gtpu_ipv4_sctp_up_match_dismatch,\n- tv_iavf_gtpu_ipv4_sctp_down_match_dismatch,\n-]\n-\n-tvs_check_pf_vf_inputset = [\n- tv_mac_ipv4_tcp_inputset,\n- tv_mac_ipv4_udp_inputset,\n- tv_mac_ipv4_sctp_inputset,\n- tv_mac_ipv6_tcp_inputset,\n- tv_mac_ipv6_udp_inputset,\n- tv_mac_ipv6_sctp_inputset,\n-]\n-\n-tvs_iavf_mac_rss_ipv4_l2tpv3 = [tv_iavf_mac_ipv4_l2tpv3]\n-\n-tvs_iavf_mac_rss_ipv6_l2tpv3 = [tv_iavf_mac_ipv6_l2tpv3]\n-\n-tvs_iavf_mac_rss_ipv4_esp = [tv_iavf_mac_ipv4_esp]\n-\n-tvs_iavf_mac_rss_ipv6_esp = [tv_iavf_mac_ipv6_esp]\n-\n-tvs_iavf_mac_rss_ipv4_ah = [tv_iavf_mac_ipv4_ah]\n-\n-tvs_iavf_mac_rss_ipv6_ah = [tv_iavf_mac_ipv6_ah]\n+mac_ipv6_udp_l3src_l4dst = {\n+ 'sub_casename': 'mac_ipv6_udp_l3src_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n \n+mac_ipv6_udp_l3dst_l4src = {\n+ 'sub_casename': 'mac_ipv6_udp_l3dst_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_udp_l3dst_l4dst = {\n+ 'sub_casename': 'mac_ipv6_udp_l3dst_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_udp_l4_src = {\n+ 'sub_casename': 'mac_ipv6_udp_l4_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_udp_l4_dst = {\n+ 'sub_casename': 'mac_ipv6_udp_l4_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_udp_all = {\n+ 'sub_casename': 'mac_ipv6_udp_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'save_hash': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv6-udp'],\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_udp_toeplitz_basic_pkt['ipv4_udp_vxlan_ipv6_udp'],\n+ # 'action': {'check_hash_different': 'ipv4_udp_vxlan_ipv6_udp'},\n+ # },\n+ ],\n+}\n+# mac_ipv6_tcp\n+mac_ipv6_tcp_l2_src = {\n+ 'sub_casename': 'mac_ipv6_tcp_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l2_dst = {\n+ 'sub_casename': 'mac_ipv6_tcp_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv6_tcp_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l3_src = {\n+ 'sub_casename': 'mac_ipv6_tcp_l3_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l3_dst = {\n+ 'sub_casename': 'mac_ipv6_tcp_l3_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l3src_l4src = {\n+ 'sub_casename': 'mac_ipv6_tcp_l3src_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l3src_l4dst = {\n+ 'sub_casename': 'mac_ipv6_tcp_l3src_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l3dst_l4src = {\n+ 'sub_casename': 'mac_ipv6_tcp_l3dst_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l3dst_l4dst = {\n+ 'sub_casename': 'mac_ipv6_tcp_l3dst_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l4_src = {\n+ 'sub_casename': 'mac_ipv6_tcp_l4_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_l4_dst = {\n+ 'sub_casename': 'mac_ipv6_tcp_l4_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_all = {\n+ 'sub_casename': 'mac_ipv6_tcp_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'save_hash': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv6-tcp'],\n+ 'action': {'check_hash_different': 'ipv6-tcp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_tcp_toeplitz_basic_pkt['ipv4_tcp_vxlan_ipv6_tcp'],\n+ # 'action': {'check_hash_different': 'ipv4_tcp_vxlan_ipv6_tcp'},\n+ # },\n+ ],\n+}\n+# mac_ipv6_sctp\n+mac_ipv6_sctp_l2_src = {\n+ 'sub_casename': 'mac_ipv6_sctp_l2_src',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types eth l2-src-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l2_dst = {\n+ 'sub_casename': 'mac_ipv6_sctp_l2_dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types eth l2-dst-only end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l2src_l2dst = {\n+ 'sub_casename': 'mac_ipv6_sctp_l2src_l2dst',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types eth end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l3_src = {\n+ 'sub_casename': 'mac_ipv6_sctp_l3_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l3_dst = {\n+ 'sub_casename': 'mac_ipv6_sctp_l3_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l3src_l4src = {\n+ 'sub_casename': 'mac_ipv6_sctp_l3src_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l3src_l4dst = {\n+ 'sub_casename': 'mac_ipv6_sctp_l3src_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l3dst_l4src = {\n+ 'sub_casename': 'mac_ipv6_sctp_l3dst_l4src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l3dst_l4dst = {\n+ 'sub_casename': 'mac_ipv6_sctp_l3dst_l4dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l4_src = {\n+ 'sub_casename': 'mac_ipv6_sctp_l4_src',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_l4_dst = {\n+ 'sub_casename': 'mac_ipv6_sctp_l4_dst',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_all = {\n+ 'sub_casename': 'mac_ipv6_sctp_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / sctp / end actions rss types ipv6-sctp end key_len 0 queues end / end',\n+ 'test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'save_hash': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv6-sctp'],\n+ 'action': {'check_hash_different': 'ipv6-sctp'},\n+ },\n+ # {\n+ # 'send_packet': mac_ipv6_sctp_toeplitz_basic_pkt['ipv4_sctp_vxlan_ipv6_sctp'],\n+ # 'action': {'check_hash_different': 'ipv4_sctp_vxlan_ipv6_sctp'},\n+ # },\n+ ],\n+}\n+# toeplitz related data end\n+\n+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]\n+\n+mac_ipv4_udp = [mac_ipv4_udp_l2_src, mac_ipv4_udp_l2_dst, mac_ipv4_udp_l2src_l2dst,\n+ mac_ipv4_udp_l3_src, mac_ipv4_udp_l3_dst, mac_ipv4_udp_l3src_l4src,\n+ mac_ipv4_udp_l3src_l4dst, mac_ipv4_udp_l3dst_l4src, mac_ipv4_udp_l3dst_l4dst,\n+ mac_ipv4_udp_l4_src, mac_ipv4_udp_l4_dst, mac_ipv4_udp_all]\n+\n+mac_ipv4_tcp = [mac_ipv4_tcp_l2_src, mac_ipv4_tcp_l2_dst, mac_ipv4_tcp_l2src_l2dst,\n+ mac_ipv4_tcp_l3_src, mac_ipv4_tcp_l3_dst, mac_ipv4_tcp_l3src_l4src,\n+ mac_ipv4_tcp_l3src_l4dst, mac_ipv4_tcp_l3dst_l4src, mac_ipv4_tcp_l3dst_l4dst,\n+ mac_ipv4_tcp_l4_src, mac_ipv4_tcp_l4_dst, mac_ipv4_tcp_all]\n+\n+mac_ipv4_sctp = [mac_ipv4_sctp_l2_src, mac_ipv4_sctp_l2_dst, mac_ipv4_sctp_l2src_l2dst,\n+ mac_ipv4_sctp_l3_src, mac_ipv4_sctp_l3_dst, mac_ipv4_sctp_l3src_l4src,\n+ mac_ipv4_sctp_l3src_l4dst, mac_ipv4_sctp_l3dst_l4src, mac_ipv4_sctp_l3dst_l4dst,\n+ mac_ipv4_sctp_l4_src, mac_ipv4_sctp_l4_dst, mac_ipv4_sctp_all]\n+\n+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]\n+\n+mac_ipv6_udp = [mac_ipv6_udp_l2_src, mac_ipv6_udp_l2_dst, mac_ipv6_udp_l2src_l2dst,\n+ mac_ipv6_udp_l3_src, mac_ipv6_udp_l3_dst, mac_ipv6_udp_l3src_l4src,\n+ mac_ipv6_udp_l3src_l4dst, mac_ipv6_udp_l3dst_l4src, mac_ipv6_udp_l3dst_l4dst,\n+ mac_ipv6_udp_l4_src, mac_ipv6_udp_l4_dst, mac_ipv6_udp_all]\n+\n+mac_ipv6_tcp = [mac_ipv6_tcp_l2_src, mac_ipv6_tcp_l2_dst, mac_ipv6_tcp_l2src_l2dst,\n+ mac_ipv6_tcp_l3_src, mac_ipv6_tcp_l3_dst, mac_ipv6_tcp_l3src_l4src,\n+ mac_ipv6_tcp_l3src_l4dst, mac_ipv6_tcp_l3dst_l4src, mac_ipv6_tcp_l3dst_l4dst,\n+ mac_ipv6_tcp_l4_src, mac_ipv6_tcp_l4_dst, mac_ipv6_tcp_all]\n+\n+mac_ipv6_sctp = [mac_ipv6_sctp_l2_src, mac_ipv6_sctp_l2_dst, mac_ipv6_sctp_l2src_l2dst,\n+ mac_ipv6_sctp_l3_src, mac_ipv6_sctp_l3_dst, mac_ipv6_sctp_l3src_l4src,\n+ mac_ipv6_sctp_l3src_l4dst, mac_ipv6_sctp_l3dst_l4src, mac_ipv6_sctp_l3dst_l4dst,\n+ mac_ipv6_sctp_l4_src, mac_ipv6_sctp_l4_dst, mac_ipv6_sctp_all]\n+\n+# symmetric related data start\n+mac_ipv4_symmetric = {\n+ 'sub_casename': 'mac_ipv4_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-nonfrag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-frag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-frag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-icmp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-icmp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vlan-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vlan-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vlan'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vlan'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-nonfrag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-nonfrag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-frag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-frag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-icmp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-icmp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vlan-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vlan-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv4_udp_symmetric = {\n+ 'sub_casename': 'mac_ipv4_udp_all',\n+ 'port_id': 0,\n+ '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',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-udp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-udp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-udp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'nvgre-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'nvgre-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'nvgre-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv4_tcp_symmetric = {\n+ 'sub_casename': 'mac_ipv4_tcp_all',\n+ 'port_id': 0,\n+ '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',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-tcp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-tcp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-tcp'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-udp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-tcp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-tcp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-tcp-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv4_sctp_symmetric = {\n+ 'sub_casename': 'mac_ipv4_sctp_all',\n+ 'port_id': 0,\n+ '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',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-sctp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-sctp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-sctp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv4-sctp'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-sctp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-sctp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-sctp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv4-sctp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv4-sctp-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_symmetric = {\n+ 'sub_casename': 'mac_ipv6_all',\n+ 'port_id': 0,\n+ 'rule': 'flow create 0 ingress pattern eth / ipv6 / end actions rss func symmetric_toeplitz types ipv6 end key_len 0 queues end / end',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-nonfrag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-nonfrag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-frag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-frag-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-icmp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-icmp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv6-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv4-udp-vxlan-eth-ipv6-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-frag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-icmp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv6'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'ipv4-udp-vxlan-eth-ipv6'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-nonfrag'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-nonfrag'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-nonfrag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-nonfrag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-frag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-frag-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-icmp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-icmp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-udp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv4-udp-vxlan-eth-ipv6-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'ipv4-udp-vxlan-eth-ipv6-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_udp_symmetric = {\n+ 'sub_casename': 'mac_ipv6_udp_all',\n+ 'port_id': 0,\n+ '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',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-udp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-udp-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-udp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre-eth-ipv6-udp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'ipv6-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'ipv6-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-tcp'},\n+ # },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-udp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-udp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'nvgre-eth-ipv6-udp-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_tcp_symmetric = {\n+ 'sub_casename': 'mac_ipv6_tcp_all',\n+ 'port_id': 0,\n+ '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',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-tcp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-tcp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-tcp-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-tcp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-tcp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre-eth-ipv6-tcp'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'nvgre-eth-ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'nvgre-eth-ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-tcp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-tcp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-tcp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'nvgre-eth-ipv6-tcp-post'},\n+ # },\n+ ],\n+}\n+\n+mac_ipv6_sctp_symmetric = {\n+ 'sub_casename': 'mac_ipv6_sctp_all',\n+ 'port_id': 0,\n+ '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',\n+ 'pre-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-sctp-pre'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-sctp-pre'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-sctp-pre'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_different': 'nvgre-eth-ipv6-sctp-pre'},\n+ # },\n+ ],\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-sctp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-sctp'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-sctp'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_hash_same': 'nvgre-eth-ipv6-sctp'},\n+ # },\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-udp'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-udp'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-sctp-post'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-sctp-post'},\n+ },\n+ # {\n+ # '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,\n+ # 'action': {'save_hash': 'nvgre-eth-ipv6-sctp-post'},\n+ # },\n+ # {\n+ # '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,\n+ # 'action': {'check_no_hash_or_different': 'nvgre-eth-ipv6-sctp-post'},\n+ # },\n+ ],\n+}\n+# symmetric related data end\n+\n+ipv6_64bit_prefix_l3_src_only = {\n+ 'sub_casename': 'ipv6_64bit_prefix_l3_src_only',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-64bit'},\n+ },\n+ ],\n+}\n+\n+ipv6_64bit_prefix_l3_dst_only = {\n+ 'sub_casename': 'ipv6_64bit_prefix_l3_dst_only',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-64bit'},\n+ },\n+ ],\n+}\n+\n+ipv6_64bit_prefix_l3_src_dst_only = {\n+ 'sub_casename': 'ipv6_64bit_prefix_l3_src_dst_only',\n+ 'port_id': 0,\n+ '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',\n+ 'test': [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv6-64bit'},\n+ },\n+ ],\n+ 'post-test': [\n+ {\n+ '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,\n+ 'action': {'check_no_hash_or_different': 'ipv6-64bit'},\n+ },\n+ ],\n+}\n+\n+ipv6_64bit_prefix = [ipv6_64bit_prefix_l3_src_only, ipv6_64bit_prefix_l3_dst_only, ipv6_64bit_prefix_l3_src_dst_only]\n \n class AdvancedIavfRSSTest(TestCase):\n \n def set_up_all(self):\n \"\"\"\n Run at the start of each test suite.\n- Generic filter Prerequistites\n+ prerequisites.\n \"\"\"\n+ # Based on h/w type, choose how many ports to use\n self.dut_ports = self.dut.get_ports(self.nic)\n- # Verify that enough ports are available\n- self.verify(len(self.dut_ports) >= 1, \"Insufficient ports\")\n- self.dut_session = self.dut.create_session(\"pf_dut\")\n- self.pmd_session = self.dut.create_session(\"vf_pmd_dut\")\n- self.pmd_output = PmdOutput(self.dut)\n- self.pmd_output_vf1 = PmdOutput(self.dut, self.pmd_session)\n- localPort = self.tester.get_local_port(self.dut_ports[0])\n- self.used_dut_port = self.dut_ports[0]\n+ self.verify(len(self.dut_ports) >= 2, \"Insufficient ports for testing\")\n+ # Verify that enough threads are available\n+ cores = self.dut.get_core_list(\"1S/4C/1T\")\n+ self.verify(cores is not None, \"Insufficient cores for speed testing\")\n self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])\n- self.tx_iface = self.tester.get_interface(localPort)\n+ self.tester_port0 = self.tester.get_local_port(self.dut_ports[0])\n+ self.tester_port1 = self.tester.get_local_port(self.dut_ports[1])\n+ self.tester_iface0 = self.tester.get_interface(self.tester_port0)\n+ self.tester_iface1 = self.tester.get_interface(self.tester_port1)\n+\n+ self.used_dut_port = self.dut_ports[0]\n self.pf_interface = self.dut.ports_info[self.dut_ports[0]]['intf']\n- self.pf_mac = self.dut.get_mac_address(0)\n- self.pf_pci = self.dut.ports_info[self.dut_ports[0]]['pci']\n- self.verify(self.nic in [\"columbiaville_25g\", \"columbiaville_100g\"], \"%s nic not support ethertype filter\" % self.nic)\n- self.ddp_fdir = \"/lib/firmware/updates/intel/ice/ddp/\"\n- conf_file = 'conf/cvl_advanced_iavf_rss_package.cfg'\n- conf_info = UserConf(conf_file)\n- conf_section = conf_info.conf._sections['suite']\n- self.os_pkg_name = conf_section['os_default_package_file_location']\n- self.comms_pkg_name = conf_section['comms_package_file_location']\n self.vf_flag = False\n self.create_iavf()\n \n+ self.pass_flag = 'passed'\n+ self.fail_flag = 'failed'\n+ self.pkt = Packet()\n+ self.pmd_output = PmdOutput(self.dut)\n+ self.launch_testpmd()\n+ self.rxq = 16\n+ self.rssprocess = RssProcessing(self, self.pmd_output, [self.tester_iface0, self.tester_iface1], self.rxq)\n+ self.logger.info('rssprocess.tester_ifaces: {}'.format(self.rssprocess.tester_ifaces))\n+ self.logger.info('rssprocess.test_case: {}'.format(self.rssprocess.test_case))\n+\n def set_up(self):\n \"\"\"\n Run before each test case.\n \"\"\"\n- self.dut.kill_all()\n-\n- def tear_down(self):\n- \"\"\"\n- Run after each test case.\n- \"\"\"\n- self.dut.kill_all()\n- if self.running_case == \"test_vf_reset\":\n- self.dut.send_expect(\"ip link set %s vf 0 trust off\" % self.pf_interface, \"# \")\n- self.dut.send_expect(\"ip link set %s vf 0 mac %s\" % (self.pf_interface, vf0_mac), \"# \")\n- elif self.running_case == \"test_pf_reset\":\n- self.dut.send_expect(\"ip link set %s vf 0 mac %s\" % (self.pf_interface, vf0_mac), \"# \")\n-\n- def tear_down_all(self):\n- \"\"\"\n- Run after each test suite.\n- \"\"\"\n- self.dut.kill_all()\n- self.destroy_iavf()\n+ self.pmd_output.execute_cmd(\"start\")\n \n def create_iavf(self):\n \n if self.vf_flag is False:\n self.dut.bind_interfaces_linux('ice')\n- self.dut.generate_sriov_vfs_by_port(self.used_dut_port, 2)\n+ self.dut.generate_sriov_vfs_by_port(self.used_dut_port, 1)\n self.sriov_vfs_port = self.dut.ports_info[self.used_dut_port]['vfs_port']\n self.vf_flag = True\n \n@@ -812,10 +5109,8 @@ class AdvancedIavfRSSTest(TestCase):\n port.bind_driver(self.drivername)\n \n self.vf0_prop = {'opt_host': self.sriov_vfs_port[0].pci}\n- self.vf1_prop = {'opt_host': self.sriov_vfs_port[1].pci}\n self.dut.send_expect(\"ifconfig %s up\" % self.pf_interface, \"# \")\n self.dut.send_expect(\"ip link set %s vf 0 mac %s\" % (self.pf_interface, vf0_mac), \"# \")\n- self.dut.send_expect(\"ip link set %s vf 1 mac %s\" % (self.pf_interface, vf1_mac), \"# \")\n except Exception as e:\n self.destroy_iavf()\n raise Exception(e)\n@@ -825,344 +5120,302 @@ class AdvancedIavfRSSTest(TestCase):\n self.dut.destroy_sriov_vfs_by_port(self.used_dut_port)\n self.vf_flag = False\n \n- def create_testpmd_command(self, port_info, pmd_param=None):\n- \"\"\"\n- Create testpmd command for non-pipeline mode\n- \"\"\"\n- port_pci = port_info['opt_host']\n- param_str = \" --rxq=16 --txq=16 --port-topology=loop \"\n- if pmd_param is not None:\n- param_str = param_str + pmd_param\n- self.pmd_output.start_testpmd(cores=\"1S/8C/1T\", param=param_str, eal_param=\"-w %s\" % port_pci)\n- self.pmd_output.execute_cmd(\"set fwd rxonly\", \"testpmd> \", 15)\n- self.pmd_output.execute_cmd(\"set verbose 1\", \"testpmd> \", 15)\n- self.pmd_output.execute_cmd(\"port config 0 rss-hash-key ipv4 1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd\", \"testpmd> \", 15)\n-\n- def create_testpmd2_command(self, port_info, pmd_param=None):\n- \"\"\"\n- Create testpmd command for non-pipeline mode\n- \"\"\"\n- self.pmd_session.send_expect(\"cd /root/dpdk/\", \"# \")\n- port_pci = port_info['opt_host']\n- param_str = \" --rxq=16 --txq=16 --port-topology=loop \"\n- if pmd_param is not None:\n- param_str = param_str + pmd_param\n- 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)\n- self.pmd_output_vf1.execute_cmd(\"set fwd rxonly\", \"testpmd> \", 15)\n- self.pmd_output_vf1.execute_cmd(\"set verbose 1\", \"testpmd> \", 15)\n-\n- def _rte_flow_validate_pattern(self, test_vectors, rss_match=True):\n- check_result = 0\n- test_results = []\n- log_msg = []\n- for tv in test_vectors:\n- self.pmd_output.execute_cmd(tv[\"rte_flow_pattern\"]) # create a rule\n- time.sleep(1)\n- self.pkg_count = tv[\"send_count\"]\n- # send packet\n- if \"match\" in tv[\"name\"]:\n- for match_pkg in tv[\"match_str\"]:\n- out = self._pkg_send(match_pkg, self.pkg_count)\n- result, case_msg = tv[\"check_func\"](out, self.pkg_count)\n- print(case_msg)\n- test_results.append(result)\n- for dismatch_pkg in tv[\"dismatch_str\"]:\n- out = self._pkg_send(dismatch_pkg, self.pkg_count)\n- result, case_msg = tv[\"check_func\"](out, self.pkg_count, rss_match=False)\n- print(case_msg)\n- test_results.append(result)\n- else:\n- for scapy_str in tv[\"scapy_str\"]:\n- out = self._pkg_send(scapy_str, self.pkg_count)\n- result, case_msg = tv[\"check_func\"](out, self.pkg_count, rss_match)\n- print(case_msg)\n- test_results.append(result)\n- self.pmd_output.execute_cmd(\"flow destroy 0 rule 0\")\n-\n- # check test results\n- if False in test_results:\n- log_cmd = \"%s test failed\" % tv[\"name\"]\n- check_result = check_result + 1\n- else:\n- log_cmd = \"%s test PASS\" % tv[\"name\"]\n- log_msg.append(log_cmd)\n-\n- self.pmd_output.execute_cmd(\"flow flush 0\")\n- self.pmd_output.quit()\n- print(log_msg)\n- self.verify(check_result == 0, \"Some test case failed.\")\n-\n- def _check_inputset_pattern(self, test_vectors):\n- for tv in test_vectors:\n- self.pmd_output.execute_cmd(tv[\"rte_flow_pattern\"]) # create a rule\n- self.dut_session.send_expect(\"ethtool -N %s %s\" % (self.pf_interface, tv[\"pf_rule\"]), \"# \")\n- self.dut_session.send_expect(\"ethtool -n %s %s\" % (self.pf_interface, tv[\"check_pf_rule_set\"]), \"# \")\n- self._set_pf_queue_num()\n- self.pkg_count = tv[\"send_count\"]\n- # send vf packet\n- for scapy_str in tv[\"scapy_str\"]:\n- pf_rx_0 = self._get_pf_rx()\n- out = self._pkg_send(scapy_str, self.pkg_count)\n- result, case_msg = tv[\"check_func\"](out, self.pkg_count)\n- self.verify(result, case_msg)\n- # check PF not recieve packets\n- pf_rx_1 = self._get_pf_rx()\n- pf_rx = (pf_rx_1 - pf_rx_0)\n- self.verify(pf_rx == 0, \"pf recieve vf packets!\")\n-\n- # send pf packet\n- for pf_scapy_str in tv[\"pf_scapy\"]:\n- pf_scapy_str = pf_scapy_str % self.pf_mac\n- self._pkg_send(pf_scapy_str, self.pkg_count)\n- out = self.dut_session.send_expect(\"ethtool -S %s |grep rx_queue\" % self.pf_interface, \"# \")\n- result = tv[\"check_pf_rss_func\"](out, self.pkg_count)\n- self.verify(result, \"PF not do hash\")\n- self.pmd_output.execute_cmd(\"flow destroy 0 rule 0\")\n-\n- self.pmd_output.execute_cmd(\"flow flush 0\")\n- self.pmd_output.quit()\n-\n- def _pkg_send(self, test_packet, send_count):\n- self.pmd_output.execute_cmd(\"start\")\n- pkt = Packet()\n- for i in range(send_count):\n- pkt.append_pkt(test_packet)\n- pkt.send_pkt(self.tester, tx_port=self.tx_iface, count=1)\n- out = self.pmd_output.execute_cmd(\"stop\", timeout=30)\n- return out\n-\n- def _set_pf_queue_num(self):\n- self.dut_session.send_expect(\"ethtool -L %s rx 10 tx 10\" % self.pf_interface, \"# \")\n- out = self.dut_session.send_expect(\"ethtool -l %s \" % self.pf_interface, \"# \")\n- out = out.split(\"Current hardware settings\")[1]\n- pf_queue_num = re.findall(r'Combined:\\s+(\\d+)', out)[0]\n- self.verify(int(pf_queue_num) == 10, \"set rx tx queue fail!\")\n-\n- def _get_pf_rx(self):\n- out = self.dut_session.send_expect(\"ethtool -l %s \" % self.pf_interface, \"# \")\n- out = out.split(\"Current hardware settings\")[1]\n- pf_rx = re.findall(r'RX:\\s+(\\d+)', out)[0]\n- return int(pf_rx)\n-\n- def test_iavf_mac_eth_src_rss(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_eth_src)\n-\n- def test_iavf_mac_eth_dst_rss(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_eth_dst, rss_match=False)\n-\n- def test_iavf_rss_ipv4(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4)\n-\n- def test_iavf_rss_ipv4_ICMP(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_icmp)\n-\n- def test_iavf_rss_ipv4_NVGRE(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_nvgre)\n-\n- def test_iavf_rss_ipv4_TCP(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_tcp)\n-\n- def test_iavf_rss_ipv4_UDP(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_udp)\n-\n- # def test_iavf_rss_ipv4_SCTP(self):\n- # self.create_testpmd_command(self.vf0_prop)\n- # self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_sctp)\n-\n- def test_iavf_rss_ipv6(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6)\n-\n- def test_iavf_rss_ipv6_UDP(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_udp)\n-\n- def test_iavf_rss_ipv6_TCP(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_tcp)\n-\n- def test_iavf_rss_CVLAN(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_cvlan)\n-\n- def test_iavf_rss_PFCP(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_pfcp)\n-\n- def test_iavf_ipv4_gtpu_updown(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4)\n-\n- def test_iavf_ipv4_frag_gtpu_updown(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_frag)\n-\n- def test_iavf_ipv4_udp_gtpu_updown(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_udp)\n-\n- def test_iavf_ipv4_tcp_gtpu_updown(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_tcp)\n-\n- def test_iavf_ipv4_icmp_gtpu_updown(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_icmp)\n-\n- def test_iavf_rss_ipv4_l2tpv3(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_l2tpv3)\n-\n- def test_iavf_rss_ipv6_l2tpv3(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_l2tpv3)\n-\n- def test_iavf_rss_ipv4_esp(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_esp)\n-\n- def test_iavf_rss_ipv6_esp(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_esp)\n-\n- def test_iavf_rss_ipv4_ah(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv4_ah)\n-\n- def test_iavf_rss_ipv6_ah(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._rte_flow_validate_pattern(tvs_iavf_mac_rss_ipv6_ah)\n-\n- # def test_iavf_ipv4_sctp_gtpu_updown(self):\n- # self.create_testpmd_command(self.vf0_prop)\n- # self._rte_flow_validate_pattern(tvs_iavf_gtpu_ipv4_sctp)\n-\n- def test_iavf_error_handle(self):\n- self.create_testpmd_command(self.vf0_prop)\n- 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',\n- 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end']\n- for rule in error_rule:\n- out = self.pmd_output.execute_cmd(rule)\n- self.verify(\"Failed to create flow\" in out, \"Rule can be created\")\n-\n- def test_vf_reset(self):\n- self.dut_session.send_expect(\"ip link set %s vf 0 trust on\" % self.pf_interface, \"# \")\n- self.create_testpmd_command(self.vf0_prop, pmd_param=\"--nb-cores=2\")\n- flow_rule = \"flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\"\n- self.pmd_output.execute_cmd(flow_rule)\n- self.pmd_output.execute_cmd(\"show port 0 rss-hash\")\n-\n- # send packets with vf0_mac, check hash work\n- pkg = 'Ether(dst=\"%s\")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/(\"X\"*480)' % vf0_mac\n- pkg_count = 100\n- out = self._pkg_send(pkg, pkg_count)\n- result, log_str = rfc.check_iavf_packets_rss_queue(out, pkg_count)\n- self.verify(result is True, log_str)\n-\n- # reset vf\n- self.pmd_output.execute_cmd(\"port stop 0\")\n- self.pmd_output.execute_cmd(\"port reset 0\")\n- self.pmd_output.execute_cmd(\"port start 0\")\n- # send packets again with vf0_mac, check not do hash\n- out = self._pkg_send(pkg, pkg_count)\n- result, log_str = rfc.check_iavf_packets_rss_queue(out, pkg_count)\n- self.verify(result is True, log_str)\n-\n- # reset PF and send packets check hash work\n- reset_mac = \"00:66:77:88:99:55\"\n- self.dut_session.send_expect(\"ip link set %s vf 0 mac %s\" % (self.pf_interface, reset_mac), \"# \")\n- self.pmd_output.execute_cmd(\"port stop 0\")\n- self.pmd_output.execute_cmd(\"port reset 0\")\n- self.pmd_output.execute_cmd(\"port start 0\")\n- pkg = 'Ether(dst=\"%s\")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/(\"X\"*480)' % reset_mac\n- out = self._pkg_send(pkg, pkg_count)\n- result, log_str = rfc.check_iavf_packets_rss_queue(out, pkg_count)\n- self.verify(result is True, log_str)\n-\n- def test_pf_reset(self):\n- param_str = \" --rxq=16 --txq=16 --nb-cores=2\"\n- self.pmd_output.start_testpmd(cores=\"1S/8C/1T\", param=param_str,\n- eal_param=\"-w %s -w %s\" % (self.vf0_prop['opt_host'], self.vf1_prop['opt_host']))\n- self.pmd_output.execute_cmd(\"set fwd rxonly\", \"testpmd> \", 15)\n- self.pmd_output.execute_cmd(\"set verbose 1\", \"testpmd> \", 15)\n- 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\"\n- 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\"\n- self.pmd_output.execute_cmd(vf0_rule)\n- self.pmd_output.execute_cmd(vf1_rule)\n- pkg_count = 100\n-\n- # send packets with vf0_mac and vf1_mac, check hash work\n- pkg_vf0 = 'Ether(dst=\"%s\")/IP(src=RandIP())/UDP(dport=RandShort())/(\"X\"*480)' % vf0_mac\n- pkg_vf1 = 'Ether(dst=\"%s\")/IP(dst=RandIP())/UDP(sport=RandShort())/(\"X\"*480)' % vf1_mac\n-\n- out = self._pkg_send(pkg_vf0, pkg_count)\n- result, msg = rfc.check_iavf_packets_rss_queue(out, pkg_count)\n- self.verify(result is True, msg)\n- out = self._pkg_send(pkg_vf1, pkg_count)\n- result, msg = rfc.check_iavf_packets_rss_queue(out, pkg_count)\n- self.verify(result is True, msg)\n-\n- # PF reset and check hash not do hash\n- reset_mac = \"00:66:77:88:99:55\"\n- self.dut_session.send_expect(\"ip link set %s vf 0 mac %s\" % (self.pf_interface, reset_mac), \"# \")\n- reset_vf0 = 'Ether(dst=\"%s\")/IP(src=RandIP())/UDP(dport=RandShort())/(\"X\"*480)' % reset_mac\n- out = self._pkg_send(reset_vf0, pkg_count)\n- out = out.split(\"forward statistics for all ports\")[1]\n- rx_num = re.findall(r'RX-packets:\\s?(\\d+)', out)[0]\n- self.verify(int(rx_num) == 0, \"PF reset error\")\n-\n- out = self._pkg_send(pkg_vf1, pkg_count)\n- result, msg = rfc.check_iavf_packets_rss_queue(out, pkg_count)\n- self.verify(result is True, msg)\n-\n- def test_mutil_vfs(self):\n- self.create_testpmd_command(self.vf0_prop, pmd_param=\"--nb-cores=2\")\n- self.create_testpmd2_command(self.vf1_prop, pmd_param=\"--nb-cores=2\")\n- pkg_count = 100\n-\n- flow_rule = \"flow create 0 ingress pattern eth / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end / end\"\n- self.pmd_output.execute_cmd(flow_rule)\n- self.pmd_output_vf1.execute_cmd(flow_rule)\n- # send packets and check vf0 not recieved, vf1 hash do work\n- pkg_vf1 = 'Ether(dst=\"%s\")/IP(dst=RandIP(), frag=5)/SCTP(sport=RandShort())/(\"X\"*480)' % vf1_mac\n- self.pmd_output_vf1.execute_cmd(\"start\")\n- self._pkg_send(pkg_vf1, pkg_count)\n- vf1_out = self.pmd_output_vf1.execute_cmd(\"stop\")\n- result, msg = rfc.check_iavf_packets_rss_queue(vf1_out, pkg_count)\n- self.verify(result is True, msg)\n-\n- def test_check_inputset_with_pf_and_vf(self):\n- self.create_testpmd_command(self.vf0_prop)\n- self._check_inputset_pattern(tvs_check_pf_vf_inputset)\n-\n- def test_use_os_default_package(self):\n-\n- self.replace_pkg(self.os_pkg_name)\n- self.create_testpmd_command(self.vf0_prop)\n- error_rule = [\"flow create 0 ingress pattern eth / ipv4 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end \",\n- \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp / end actions rss types pfcp end key_len 0 queues end / end \", ]\n- try:\n- for rule in error_rule:\n- out = self.pmd_output.execute_cmd(rule)\n- self.verify(\"Failed to create flow\" in out, \"Rule can be created\")\n- except Exception as e:\n- raise Exception(e)\n- finally:\n- self.pmd_output.quit()\n- self.replace_pkg(self.comms_pkg_name)\n-\n- def replace_pkg(self, pkg):\n- self.dut_session.send_expect(\"cd %s\" % self.ddp_fdir, \"# \")\n- self.dut_session.send_expect(\"rm -f ice.pkg\", \"# \")\n- self.dut_session.send_expect(\"cp %s ice.pkg\" % pkg, \"# \")\n- self.dut_session.send_expect(\"rmmod ice\", \"# \", 15)\n- self.dut_session.send_expect(\"modprobe ice\", \"# \", 60)\n- self.vf_flag = False\n- self.create_iavf()\n+ def launch_testpmd(self):\n+ param = \"--rxq=16 --txq=16\"\n+ self.pmd_output.start_testpmd(cores=\"1S/4C/1T\", param=param,\n+ ports=[self.sriov_vfs_port[0].pci], socket=self.ports_socket)\n+ self.pmd_output.execute_cmd(\"port config all rss all\")\n+ self.pmd_output.execute_cmd(\"set fwd rxonly\")\n+ self.pmd_output.execute_cmd(\"set verbose 1\")\n+ res = self.pmd_output.wait_link_status_up('all', timeout=15)\n+ self.verify(res is True, 'there have port link is down')\n+\n+ def test_mac_ipv4(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4)\n+\n+ def test_mac_ipv4_udp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_udp)\n+\n+ def test_mac_ipv4_tcp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_tcp)\n+\n+ def test_mac_ipv4_sctp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_sctp)\n+\n+ def test_mac_ipv6(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6)\n+\n+ def test_mac_ipv6_udp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_udp)\n+\n+ def test_mac_ipv6_tcp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_tcp)\n+\n+ def test_mac_ipv6_sctp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_sctp)\n+\n+ def test_symmetric_mac_ipv4(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_symmetric)\n+\n+ def test_symmetric_mac_ipv4_udp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_udp_symmetric)\n+\n+ def test_symmetric_mac_ipv4_tcp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_tcp_symmetric)\n+\n+ def test_symmetric_mac_ipv4_sctp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv4_sctp_symmetric)\n+\n+ def test_symmetric_mac_ipv6(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_symmetric)\n+\n+ def test_symmetric_mac_ipv6_udp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_udp_symmetric)\n+\n+ def test_symmetric_mac_ipv6_tcp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_tcp_symmetric)\n+\n+ def test_symmetric_mac_ipv6_sctp(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=mac_ipv6_sctp_symmetric)\n+\n+ def test_64bit_ipv6_prefix(self):\n+ self.rssprocess.handle_rss_distribute_cases(cases_info=ipv6_64bit_prefix)\n+\n+ def test_negative_case(self):\n+ negative_rules = [\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types eth l3-src-only end key_len 0 queues end / end',\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4-udp end key_len 0 queues end / end',\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end',\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-tcp end key_len 0 queues end / end',\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv6 end key_len 0 queues end / end',\n+ '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',\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss func symmetric_toeplitz types eth end key_len 0 queues end / end',\n+ ]\n+ for i in negative_rules:\n+ out = self.pmd_output.execute_cmd(i, timeout=1)\n+ self.verify('iavf_flow_create(): Failed to create flow' in out, \"rule %s create successfully\" % i)\n+\n+ def test_multirules(self):\n+ # Subcase 1: two rules with same pattern but different hash input set, not hit default profile\n+ self.logger.info('===================Test sub case: multirules subcase 1 ================')\n+ self.rssprocess.error_msgs = []\n+ rule_id_0 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)\n+ tests = [\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.5\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.7\",dst=\"192.168.0.5\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ rule_id_1 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)\n+ tests = [\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.5\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.7\",dst=\"192.168.0.5\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_same': 'ipv4-udp'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.7\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)\n+ self.rssprocess.check_rule(port_id=0)\n+ tests = [\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.5\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'save_hash': 'ipv4-udp'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.9\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.7\",dst=\"192.168.0.9\")/UDP(dport=45)/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_different': 'ipv4-udp'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.dut.send_command(\"flow flush 0\", timeout=1)\n+\n+ # Subcase 2: two rules with same pattern but different hash input set, hit default profile\n+ self.logger.info('===================Test sub case: multirules subcase 2 ================')\n+ rule_id_0 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)\n+ tests = [\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.5\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'save_hash': 'ipv4-pay'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.7\",dst=\"192.168.0.5\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_different': 'ipv4-pay'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.8\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_same': 'ipv4-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ rule_id_1 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)\n+ tests = [\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.5\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'save_hash': 'ipv4-pay'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.7\",dst=\"192.168.0.5\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_same': 'ipv4-pay'},\n+ },\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.7\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_hash_different': 'ipv4-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)\n+ self.rssprocess.check_rule(port_id=0)\n+ tests = [\n+ {\n+ 'send_packet': 'Ether(dst=\"%s\")/IP(src=\"192.168.0.3\",dst=\"192.168.0.5\")/Raw(\"x\"*480)' % vf0_mac,\n+ 'action': {'check_no_hash': 'ipv4-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)\n+ self.dut.send_command(\"flow flush 0\", timeout=1)\n+\n+ # Subcase 3: two rules, scope smaller created first, and the larger one created later\n+ self.logger.info('===================Test sub case: multirules subcase 3 ================')\n+ rule_id_0 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)\n+ tests_3 = [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests_3, 0)\n+ rule_id_1 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)\n+ tests = [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)\n+ self.rssprocess.handle_tests(tests_3, 0)\n+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)\n+ tests = [\n+ {\n+ '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,\n+ 'action': {'check_no_hash': 'ipv4-udp-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.dut.send_command(\"flow flush 0\", timeout=1)\n+\n+ # Subcase 4: two rules, scope larger created first, and the smaller one created later\n+ self.logger.info('===================Test sub case: multirules subcase 4 ================')\n+ rule_id_0 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_0)\n+ tests_4 = [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests_4, 0)\n+ rule_id_1 = self.rssprocess.create_rule(\n+ 'flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end',\n+ check_stats=True)\n+ self.rssprocess.check_rule(port_id=0, rule_list=rule_id_1)\n+ tests = [\n+ {\n+ '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,\n+ 'action': {'save_hash': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_different': 'ipv4-udp-pay'},\n+ },\n+ {\n+ '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,\n+ 'action': {'check_hash_same': 'ipv4-udp-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_1)\n+ self.rssprocess.handle_tests(tests_4, 0)\n+ #self.rssprocess.destroy_rule(port_id=0, rule_id=rule_id_0)\n+ tests = [\n+ {\n+ '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,\n+ 'action': {'check_no_hash': 'ipv4-udp-pay'},\n+ },\n+ ]\n+ self.rssprocess.handle_tests(tests, 0)\n+ self.verify(not self.rssprocess.error_msgs, 'some subcases failed')\n+\n+ def tear_down(self):\n+ # destroy all flow rule on port 0\n+ self.dut.send_command(\"flow flush 0\", timeout=1)\n+ self.dut.send_command(\"clear port stats all\", timeout=1)\n+ self.pmd_output.execute_cmd(\"stop\")\n+\n+ def tear_down_all(self):\n+ self.dut.kill_all()\n+ self.destroy_iavf()\n", "prefixes": [ "V4", "3/8" ] }{ "id": 83511, "url": "