get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/117169/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 117169,
    "url": "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"
    ]
}