Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/117169/?format=api
https://patches.dpdk.org/api/patches/117169/?format=api", "web_url": "https://patches.dpdk.org/project/dts/patch/20220930054647.545932-4-ke1.xu@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": "<20220930054647.545932-4-ke1.xu@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20220930054647.545932-4-ke1.xu@intel.com", "date": "2022-09-30T05:46:46", "name": "[V1,3/4] tests/ice_dcf_switch_filter: update existing TO_VF action cases to cover port representor action from not covered vf original action", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "767131e5f34898bbff5239d70bd083dee9f79cbc", "submitter": { "id": 2810, "url": "https://patches.dpdk.org/api/people/2810/?format=api", "name": "Ke Xu", "email": "ke1.xu@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dts/patch/20220930054647.545932-4-ke1.xu@intel.com/mbox/", "series": [ { "id": 24925, "url": "https://patches.dpdk.org/api/series/24925/?format=api", "web_url": "https://patches.dpdk.org/project/dts/list/?series=24925", "date": "2022-09-30T05:46:43", "name": "update existing cases and add new sub-cases to validate port representor action and represented port action", "version": 1, "mbox": "https://patches.dpdk.org/series/24925/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/117169/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/117169/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 18B1CA034C;\n\tFri, 30 Sep 2022 07:47:49 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0ACED427FF;\n\tFri, 30 Sep 2022 07:47:49 +0200 (CEST)", "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id 2706640E5A\n for <dts@dpdk.org>; Fri, 30 Sep 2022 07:47:47 +0200 (CEST)", "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Sep 2022 22:47:46 -0700", "from bmca4bf0170a856.sh.intel.com (HELO DPDK-XUKE-LAB.sh.intel.com)\n ([10.67.115.115])\n by orsmga004.jf.intel.com with ESMTP; 29 Sep 2022 22:47:44 -0700" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1664516867; x=1696052867;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=ktJH5HA+4Q7cMl1iLZGJKvpjdGaBKFNQCQHdo3aCDaM=;\n b=QsLPALYv/qLaqhHEcIyqA6o1HZtwk5LBuMp1XfPWi5R9NmgiB0JlvKIv\n CykwYALBCN6m1MoZTH9Murqal9LFSqvfxSm05w2mcClHi70z3xWu/7sKY\n QD0IKvVYb7MOmOoqu8K1XX0I6bktXdfhsth9z5+lUB80FZqFWwG+c0x+A\n OIFbsBMSBwSS+HNkkTbZ3hdMyqEgRLF4udC+CZeeF6OJNulNb4NywnlXx\n GLL+xFwvKdfLq9gQDyOTjyi8SWipYV8YX0+VT+3UMI49SAzSNpjaKKg43\n dPBjf8izgUayztR2bIQDfL8c688lmhwbk8e2SMVUYrsMcLE7/+czkF4Sw w==;", "X-IronPort-AV": [ "E=McAfee;i=\"6500,9779,10485\"; a=\"281822366\"", "E=Sophos;i=\"5.93,357,1654585200\"; d=\"scan'208\";a=\"281822366\"", "E=McAfee;i=\"6500,9779,10485\"; a=\"748116391\"", "E=Sophos;i=\"5.93,357,1654585200\"; d=\"scan'208\";a=\"748116391\"" ], "X-ExtLoop1": "1", "From": "Ke Xu <ke1.xu@intel.com>", "To": "dts@dpdk.org", "Cc": "qi.fu@intel.com,\n\tlijuan.tu@intel.com,\n\tKe Xu <ke1.xu@intel.com>", "Subject": "[DTS][PATCH V1 3/4] tests/ice_dcf_switch_filter: update existing\n TO_VF action cases to cover port representor action from not covered vf\n original action", "Date": "Fri, 30 Sep 2022 05:46:46 +0000", "Message-Id": "<20220930054647.545932-4-ke1.xu@intel.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20220930054647.545932-1-ke1.xu@intel.com>", "References": "<20220930054647.545932-1-ke1.xu@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.29", "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" }, "content": "Deprecated TO_VF action contains a 'vf original' action which is not covered in\n previous tests. This commit applys equivilant 'vf original' rule to previous\n cases for 'vf id' action to cover 'vf original' action.\n\nSigned-off-by: Ke Xu <ke1.xu@intel.com>\n---\n tests/TestSuite_ice_dcf_switch_filter.py | 551 ++++++++++++++---------\n 1 file changed, 339 insertions(+), 212 deletions(-)", "diff": "diff --git a/tests/TestSuite_ice_dcf_switch_filter.py b/tests/TestSuite_ice_dcf_switch_filter.py\nindex 6510bf2c..c68ae3f5 100644\n--- a/tests/TestSuite_ice_dcf_switch_filter.py\n+++ b/tests/TestSuite_ice_dcf_switch_filter.py\n@@ -16,16 +16,19 @@ from framework.utils import BLUE, GREEN, RED\n \n tv_mac_pay = {\n \"name\": \"tv_mac_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:55\")/IP()/Raw(\"x\" *80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -35,24 +38,27 @@ tv_mac_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_frag = {\n \"name\": \"tv_mac_ipv4_frag\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2,frag=5)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -64,24 +70,27 @@ tv_mac_ipv4_frag = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_pay = {\n \"name\": \"tv_mac_ipv4_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -94,24 +103,27 @@ tv_mac_ipv4_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_udp_pay = {\n \"name\": \"tv_mac_ipv4_udp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/UDP(sport=25,dport=23)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -125,24 +137,27 @@ tv_mac_ipv4_udp_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_tcp_pay = {\n \"name\": \"tv_mac_ipv4_tcp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP(sport=25,dport=23)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -156,22 +171,25 @@ tv_mac_ipv4_tcp_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_igmp = {\n \"name\": \"tv_mac_ipv4_igmp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/IGMP()/Raw(\"X\"*480)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -180,15 +198,18 @@ tv_mac_ipv4_igmp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_srcip_dstip = {\n \"name\": \"tv_mac_ipv6_srcip_dstip\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)',\n@@ -196,9 +217,9 @@ tv_mac_ipv6_srcip_dstip = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 2},\n+ \"expect_results\": {\"expect_pkts\": [2, 2]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -209,15 +230,18 @@ tv_mac_ipv6_srcip_dstip = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_dstip_tc = {\n \"name\": \"tv_mac_ipv6_dstip_tc\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/(\"X\"*480)',\n@@ -225,9 +249,9 @@ tv_mac_ipv6_dstip_tc = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 2},\n+ \"expect_results\": {\"expect_pkts\": [2, 2]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -240,24 +264,27 @@ tv_mac_ipv6_dstip_tc = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_udp_pay = {\n \"name\": \"tv_mac_ipv6_udp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/UDP(sport=25,dport=23)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -269,24 +296,27 @@ tv_mac_ipv6_udp_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_tcp = {\n \"name\": \"tv_mac_ipv6_tcp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/TCP(sport=25,dport=23)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -298,15 +328,18 @@ tv_mac_ipv6_tcp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nvgre_ipv4_pay = {\n \"name\": \"tv_mac_ipv4_nvgre_ipv4_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)',\n@@ -314,9 +347,9 @@ tv_mac_ipv4_nvgre_ipv4_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 2},\n+ \"expect_results\": {\"expect_pkts\": [2, 2]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -331,24 +364,27 @@ tv_mac_ipv4_nvgre_ipv4_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nvgre_ipv4_udp_pay = {\n \"name\": \"tv_mac_ipv4_nvgre_ipv4_udp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/UDP(sport=50,dport=23)/Raw(\"x\"*80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -361,24 +397,27 @@ tv_mac_ipv4_nvgre_ipv4_udp_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nvgre_ipv4_tcp = {\n \"name\": \"tv_mac_ipv4_nvgre_ipv4_tcp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -391,15 +430,18 @@ tv_mac_ipv4_nvgre_ipv4_tcp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nvgre_mac_ipv4_pay = {\n \"name\": \"tv_mac_ipv4_nvgre_mac_ipv4_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)',\n@@ -407,9 +449,9 @@ tv_mac_ipv4_nvgre_mac_ipv4_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 2},\n+ \"expect_results\": {\"expect_pkts\": [2, 2]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -426,24 +468,27 @@ tv_mac_ipv4_nvgre_mac_ipv4_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nvgre_mac_ipv4_udp_pay = {\n \"name\": \"tv_mac_ipv4_nvgre_mac_ipv4_udp_pay\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -457,24 +502,27 @@ tv_mac_ipv4_nvgre_mac_ipv4_udp_pay = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nvgre_mac_ipv4_tcp = {\n \"name\": \"tv_mac_ipv4_nvgre_mac_ipv4_tcp\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -488,24 +536,27 @@ tv_mac_ipv4_nvgre_mac_ipv4_tcp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id = {\n \"name\": \"tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\\'\\\\x00\\\\x21\\')/IP()/Raw(\"x\" * 80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -516,24 +567,27 @@ tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id = {\n \"name\": \"tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(b\\'\\\\x00\\\\x57\\')/IPv6()/Raw(\"x\" * 80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -544,24 +598,27 @@ tv_mac_vlan_pppoe_ipv6_pay_session_id_proto_id = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_pppoe_ipv4_pay_session_id_proto_id = {\n \"name\": \"tv_mac_pppoe_ipv4_pay_session_id_proto_id\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(b\\'\\\\x00\\\\x21\\')/IP()/Raw(\"x\" * 80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -571,24 +628,27 @@ tv_mac_pppoe_ipv4_pay_session_id_proto_id = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_pppoe_ipv6_pay_session_id_proto_id = {\n \"name\": \"tv_mac_pppoe_ipv6_pay_session_id_proto_id\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(b\\'\\\\x00\\\\x57\\')/IPv6()/Raw(\"x\" * 80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -598,101 +658,116 @@ tv_mac_pppoe_ipv6_pay_session_id_proto_id = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_ip_multicast = {\n \"name\": \"tv_ip_multicast\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": ['Ether()/IP(dst=\"239.0.0.0\")/TCP()/Raw(\"x\"*80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": ['Ether()/IP(dst=\"128.0.0.0\")/TCP()/Raw(\"x\"*80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_l2_multicast = {\n \"name\": \"tv_l2_multicast\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": ['Ether(dst=\"01:00:5e:7f:00:00\")/IP()/TCP()/Raw(\"x\"*80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": ['Ether(dst=\"01:00:5e:ff:00:00\")/IP()/TCP()/Raw(\"x\"*80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_ethertype_filter_pppod = {\n \"name\": \"tv_ethertype_filter_pppod\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth type is 0x8863 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/PPP()/IP()/Raw(\"x\" *80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:55\")/PPPoE()/PPP()/IP()/Raw(\"x\" *80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_ethertype_filter_pppoe = {\n \"name\": \"tv_ethertype_filter_pppoe\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth type is 0x8864 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:55\")/PPPoE()/PPP()/IP()/Raw(\"x\"*80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/PPP()/IP()/Raw(\"x\"*80)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_ethertype_filter_ipv6 = {\n \"name\": \"tv_ethertype_filter_ipv6\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth type is 0x86dd / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", tc=3)/TCP(dport=23)/(\"X\"*480)',\n@@ -700,32 +775,35 @@ tv_ethertype_filter_ipv6 = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 2},\n+ \"expect_results\": {\"expect_pkts\": [2, 2]},\n },\n \"mismatched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/TCP(dport=23)/(\"X\"*480)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_udp_port_filter_dhcp_discovery = {\n \"name\": \"tv_udp_port_filter_dhcp_discovery\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=68,dport=67)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\")/DHCP(options=[(\"message-type\",\"discover\"),\"end\"])/Raw(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -734,24 +812,27 @@ tv_udp_port_filter_dhcp_discovery = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_udp_port_filter_dhcp_offer = {\n \"name\": \"tv_udp_port_filter_dhcp_offer\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=67,dport=68)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\",yiaddr=\"192.168.1.0\")/DHCP(options=[(\"message-type\",\"offer\"),\"end\"])/Raw(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -760,24 +841,27 @@ tv_udp_port_filter_dhcp_offer = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_udp_port_filter_vxlan = {\n \"name\": \"tv_udp_port_filter_vxlan\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether()/IP(dst=\"192.168.0.1\")/UDP()/VXLAN(vni=2)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\",frag=5)/TCP()/Raw(\"x\"*80)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -785,24 +869,27 @@ tv_udp_port_filter_vxlan = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_vlan_filter = {\n \"name\": \"tv_mac_vlan_filter\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -811,24 +898,27 @@ tv_mac_vlan_filter = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_vlan_filter = {\n \"name\": \"tv_vlan_filter\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / vlan tci is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -836,24 +926,27 @@ tv_vlan_filter = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_l2tpv3 = {\n \"name\": \"tv_mac_ipv4_l2tpv3\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n \"Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP(b'\\\\x00\\\\x00\\\\x00\\\\x01')/('X'*480)\"\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -863,24 +956,27 @@ tv_mac_ipv4_l2tpv3 = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_l2tpv3 = {\n \"name\": \"tv_mac_ipv6_l2tpv3\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n \"Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP(b'\\\\x00\\\\x00\\\\x00\\\\x01')/('X'*480)\"\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -890,24 +986,27 @@ tv_mac_ipv6_l2tpv3 = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_esp = {\n \"name\": \"tv_mac_ipv4_esp\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\", proto=50)/ESP(spi=1)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -917,24 +1016,27 @@ tv_mac_ipv4_esp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_esp = {\n \"name\": \"tv_mac_ipv6_esp\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=50)/ESP(spi=1)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -944,24 +1046,27 @@ tv_mac_ipv6_esp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_ah = {\n \"name\": \"tv_mac_ipv4_ah\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\", proto=51)/AH(spi=1)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -971,24 +1076,27 @@ tv_mac_ipv4_ah = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_ah = {\n \"name\": \"tv_mac_ipv6_ah\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=51)/AH(spi=1)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -998,24 +1106,27 @@ tv_mac_ipv6_ah = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_nat_t_esp = {\n \"name\": \"tv_mac_ipv4_nat_t_esp\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -1025,24 +1136,27 @@ tv_mac_ipv4_nat_t_esp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_nat_t_esp = {\n \"name\": \"tv_mac_ipv6_nat_t_esp\",\n- \"rte_flow_pattern\": \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions port_representor port_id 0 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -1052,9 +1166,9 @@ tv_mac_ipv6_nat_t_esp = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n@@ -1078,6 +1192,7 @@ tv_actions_vf_id_0 = {\n tv_add_existing_rules_but_with_different_vfs = {\n \"name\": \"tv_add_existing_rules_but_with_different_vfs\",\n \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 0 / end\",\n \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end\",\n \"flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 2 / end\",\n ],\n@@ -1087,9 +1202,9 @@ tv_add_existing_rules_but_with_different_vfs = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": [3, 4], \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3, 4], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": [1, 1]},\n+ \"expect_results\": {\"expect_pkts\": [1, 1, 1]},\n },\n \"mismatched\": {},\n }\n@@ -1226,14 +1341,17 @@ tv_max_rule_number = {\n \n tv_mac_ipv4_pfcp_node = {\n \"name\": \"tv_mac_ipv4_pfcp_node\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(S=0)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -1243,22 +1361,25 @@ tv_mac_ipv4_pfcp_node = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv4_pfcp_session = {\n \"name\": \"tv_mac_ipv4_pfcp_session\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": ['Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(S=1)'],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -1268,24 +1389,27 @@ tv_mac_ipv4_pfcp_session = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_pfcp_node = {\n \"name\": \"tv_mac_ipv6_pfcp_node\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(S=0)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -1295,24 +1419,27 @@ tv_mac_ipv6_pfcp_node = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n tv_mac_ipv6_pfcp_session = {\n \"name\": \"tv_mac_ipv6_pfcp_session\",\n- \"rte_flow_pattern\": \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"rte_flow_pattern\": [\n+ \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ \"flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\",\n+ ],\n \"matched\": {\n \"scapy_str\": [\n 'Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(S=1)'\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 1},\n+ \"expect_results\": {\"expect_pkts\": [1, 1]},\n },\n \"mismatched\": {\n \"scapy_str\": [\n@@ -1322,9 +1449,9 @@ tv_mac_ipv6_pfcp_session = {\n ],\n \"check_func\": {\n \"func\": rfc.check_vf_rx_packets_number,\n- \"param\": {\"expect_port\": 3, \"expect_queues\": \"null\"},\n+ \"param\": {\"expect_port\": [0, 3], \"expect_queues\": \"null\"},\n },\n- \"expect_results\": {\"expect_pkts\": 0},\n+ \"expect_results\": {\"expect_pkts\": [0, 0]},\n },\n }\n \n", "prefixes": [ "V1", "3/4" ] }{ "id": 117169, "url": "