get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 97141,
    "url": "https://patches.dpdk.org/api/patches/97141/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20210820111556.1248919-1-qi.fu@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": "<20210820111556.1248919-1-qi.fu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210820111556.1248919-1-qi.fu@intel.com",
    "date": "2021-08-20T11:15:56",
    "name": "[V3] test_plans: add test plan for cvl iavf fdir support GTPoGRE",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "0aab517451d7c4e1d3c3135ecc979c3203deffba",
    "submitter": {
        "id": 1689,
        "url": "https://patches.dpdk.org/api/people/1689/?format=api",
        "name": "Fu, Qi",
        "email": "qi.fu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20210820111556.1248919-1-qi.fu@intel.com/mbox/",
    "series": [
        {
            "id": 18363,
            "url": "https://patches.dpdk.org/api/series/18363/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=18363",
            "date": "2021-08-20T11:15:56",
            "name": "[V3] test_plans: add test plan for cvl iavf fdir support GTPoGRE",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/18363/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/97141/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/97141/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 CD096A0C4D;\n\tFri, 20 Aug 2021 04:40:31 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 98E2E4013F;\n\tFri, 20 Aug 2021 04:40:31 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id AF5544003D\n for <dts@dpdk.org>; Fri, 20 Aug 2021 04:40:29 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Aug 2021 19:40:27 -0700",
            "from dpdk-qifu-cxl.sh.intel.com ([10.67.119.179])\n by FMSMGA003.fm.intel.com with ESMTP; 19 Aug 2021 19:40:25 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10081\"; a=\"214857242\"",
            "E=Sophos;i=\"5.84,336,1620716400\"; d=\"scan'208\";a=\"214857242\"",
            "E=Sophos;i=\"5.84,336,1620716400\"; d=\"scan'208\";a=\"522714637\""
        ],
        "X-ExtLoop1": "1",
        "From": "qifu <qi.fu@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "qifu <qi.fu@intel.com>",
        "Date": "Fri, 20 Aug 2021 07:15:56 -0400",
        "Message-Id": "<20210820111556.1248919-1-qi.fu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "quoted-printable",
        "Subject": "[dts] [PATCH V3]test_plans: add test plan for cvl iavf fdir support\n GTPoGRE",
        "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",
        "Sender": "\"dts\" <dts-bounces@dpdk.org>"
    },
    "content": "the ice_gtp-o-gre pkg support GTPoGRE parsing, \nbased on this ddp pkg, dpdk enable rte_flow for GTPoGRE in CVL IAVF.\nAdd this test plan for GTPoGRE FDIR tests.  \n\nSigned-off-by: qifu <qi.fu@intel.com>\n---\n test_plans/iavf_fdir_gtpogre_testplan.rst | 812 ++++++++++++++++++++++\n 1 file changed, 812 insertions(+)\n create mode 100644 test_plans/iavf_fdir_gtpogre_testplan.rst",
    "diff": "diff --git a/test_plans/iavf_fdir_gtpogre_testplan.rst b/test_plans/iavf_fdir_gtpogre_testplan.rst\nnew file mode 100644\nindex 00000000..2a642cbf\n--- /dev/null\n+++ b/test_plans/iavf_fdir_gtpogre_testplan.rst\n@@ -0,0 +1,812 @@\n+.. Copyright (c) <2021>, Intel Corporation\r\n+   All rights reserved.\r\n+\r\n+   Redistribution and use in source and binary forms, with or without\r\n+   modification, are permitted provided that the following conditions\r\n+   are met:\r\n+\r\n+   - Redistributions of source code must retain the above copyright\r\n+     notice, this list of conditions and the following disclaimer.\r\n+\r\n+   - Redistributions in binary form must reproduce the above copyright\r\n+     notice, this list of conditions and the following disclaimer in\r\n+     the documentation and/or other materials provided with the\r\n+     distribution.\r\n+\r\n+   - Neither the name of Intel Corporation nor the names of its\r\n+     contributors may be used to endorse or promote products derived\r\n+     from this software without specific prior written permission.\r\n+\r\n+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r\n+   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r\n+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\r\n+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r\n+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r\n+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r\n+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r\n+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r\n+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r\n+   OF THE POSSIBILITY OF SUCH DAMAGE.\r\n+\r\n+================================\r\n+CVL IAVF Support GTPoGRE in FDIR\r\n+================================\r\n+\r\n+Description\r\n+===========\r\n+The GTPoGRE pkt structure is shown below:\r\n+.. table::\r\n+\r\n+  +------------+------------+-----------+------------+-----------+-----+------------+----------+--------+\r\n+  | MAC header | Eth header | IP Packet | GRE header | IP packet | UDP | GTP header | IP packet| TCP/UDP|\r\n+  +------------+------------+-----------+------------+-----------+-----+------------+----------+--------+\r\n+\r\n+As previous(dpdk-21.05) DDP limitation, the outer IP layer of an GTP over GRE packet will be mapped to the outer layer of IP/GTPU/IP packet type,\r\n+while customers need the second IP layer.\r\n+A new DDP package is required in dpdk-21.08, the new DDP's parser will be able to generate 3 layer's IP protocol header,\r\n+so it will not allow a GTP over GRE packet to share the same profile with a normal GTP packet.\r\n+And DPDK need to support both RSS and FDIR in CVL IAVF.\r\n+\r\n+This test plan is designed to check the FDIR of GTPoGRE.\r\n+Supported input set: inner most l3/l4 src/dst, outer l3 src/dst, gtpu teid, qfi\r\n+Supported action: queue index, rss queues, passthru, drop, mark rss\r\n+\r\n+\r\n+Prerequisites\r\n+=============\r\n+1. Hardware:\r\n+   columbiaville_25g/columbiaville_100g\r\n+\r\n+2. Software:\r\n+   dpdk: http://dpdk.org/git/dpdk\r\n+   scapy: http://www.secdev.org/projects/scapy/\r\n+\r\n+3. Copy specific gtpogre(ice_gtp-o-gre-1.3.5.0.pkg) package to /lib/firmware/updates/intel/ice/ddp/ice.pkg,\r\n+   then load driver::\r\n+\r\n+    rmmod ice\r\n+    insmod ice.ko\r\n+\r\n+4. Compile DPDK::\r\n+\r\n+    CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc\r\n+    ninja -C x86_64-native-linuxapp-gcc -j 110\r\n+\r\n+5. Get the pci device id of DUT, for example::\r\n+\r\n+    ./usertools/dpdk-devbind.py -s\r\n+\r\n+    0000:18:00.0 'Device 159b' if=ens785f0 drv=ice unused=vfio-pci\r\n+    0000:18:00.1 'Device 159b' if=ens785f1 drv=ice unused=vfio-pci\r\n+\r\n+6. Generate 4 VFs on PF0(not all the VFs are used)::\r\n+\r\n+    echo 4 > /sys/bus/pci/devices/0000:18:00.0/sriov_numvfs\r\n+\r\n+    ./usertools/dpdk-devbind.py -s\r\n+    0000:18:01.0 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v0 drv=iavf unused=vfio-pci\r\n+    0000:18:01.1 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v1 drv=iavf unused=vfio-pci\r\n+    0000:18:01.2 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v2 drv=iavf unused=vfio-pci\r\n+    0000:18:01.3 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v3 drv=iavf unused=vfio-pci\r\n+\r\n+7. Set mac addr for VFs::\r\n+\r\n+    ip link set ens785f0 vf 0 mac 00:11:22:33:44:55\r\n+    ip link set ens785f0 vf 1 mac 00:11:22:33:44:11\r\n+    ip link set ens785f0 vf 2 mac 00:11:22:33:44:22\r\n+    ip link set ens785f0 vf 3 mac 00:11:22:33:44:33\r\n+\r\n+8. Bind VFs to dpdk driver::\r\n+\r\n+    modprobe vfio-pci\r\n+    ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 0000:18:01.1 0000:18:01.2 0000:18:01.3\r\n+\r\n+9. launch testpmd::\r\n+\r\n+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0 -- -i --rxq=16 --txq=16\r\n+    testpmd> set fwd rxonly\r\n+    testpmd> set verbose 1\r\n+    testpmd> start\r\n+\r\n+10. start scapy and configuration GTP profile in tester\r\n+    scapy::\r\n+\r\n+    >>> import sys\r\n+    >>> from scapy.contrib.gtp import *\r\n+\r\n+\r\n+test steps for supported pattern\r\n+================================\r\n+1. validate rules.\r\n+2. create rules and list rules.\r\n+3. send matched packets, check the action is right:\r\n+    queue index: to right queue with mark id\r\n+    rss queues: to right queue group with mark id\r\n+    passthru: distributed by rss with mark id\r\n+    drop: not receive pkt\r\n+    rss+mark: distributed by rss with mark id\r\n+4. send mismatched packets, check the action is not right:\r\n+    queue index: not to right queue without mark id\r\n+    rss queues: not to right queue group without mark id\r\n+    passthru: distributed by rss without mark id\r\n+    drop: receive pkt\r\n+    rss+mark: distributed by rss without mark id\r\n+5. destroy rule, list rules.\r\n+6. send matched packets, check the action is not right.\r\n+\r\n+\r\n+supported pattern and inputset\r\n+==============================\r\n+.. table::\r\n+\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    | combination            | Packet type                      | inputset                                                                                                         |\r\n+    +========================+==================================+==================================================================================================================+\r\n+    | IP*+IP*+IP*            | MAC_IP*_GRE_IP*_GTPU_IP*         | outer l3 src, outer l3 dst, inner most l3 src, inner most l3 dst                                                 |\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_IP*_UDP     | outer l3 src, outer l3 dst, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst           |\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_IP*_TCP     | outer l3 src, outer l3 dst, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst           |\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_EH_IP*      | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst                                      |\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_EH_IP*_UDP  | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst|\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_EH_IP*_TCP  | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst|\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_UL_IP*      | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst                                      |\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_UL_IP*_UDP  | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst|\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_UL_IP*_TCP  | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst|\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_DL_IP*      | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst                                      |\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_DL_IP*_UDP  | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst|\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+    |                        | MAC_IP*_GRE_IP*_GTPU_DL_IP*_TCP  | outer l3 src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner most l4 src, inner most l4 dst|\r\n+    +------------------------+----------------------------------+------------------------------------------------------------------------------------------------------------------+\r\n+\r\n+each combination just need to change the IP* with IPV4 or IPV6, the inputset is same. there are 8 combinations in total:\r\n+1. IPV4+IPV4+IPV4\r\n+2. IPV6+IPV4+IPV4\r\n+3. IPV4+IPV6+IPV4\r\n+4. IPV4+IPV4+IPV6\r\n+5. IPV6+IPV6+IPV4\r\n+6. IPV4+IPV6+IPV6\r\n+7. IPV6+IPV4+IPV6\r\n+8. IPV6+IPV6+IPV6\r\n+\r\n+\r\n+1. IPV4+IPV4+IPV4\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_IPV4\r\n+===========================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/IPv6()],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_IPV4_UDP\r\n+===============================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(dport=33, sport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(dport=13, sport=33)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IPv6()/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_IPV4_TCP\r\n+===============================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(dport=33, sport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(dport=13, sport=33)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IPv6()/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4\r\n+==============================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP\r\n+==================================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(dport=33, sport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(dport=13, sport=33)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP\r\n+==================================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(dport=33, sport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(dport=13, sport=33)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4\r\n+==============================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header(type=1, P=1, QFI=0x34)/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header(type=1, P=1, QFI=0x34)/GTPPDUSessionContainer()/IPv6()],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_UDP\r\n+==================================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(dport=33, sport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/UDP(dport=13, sport=33)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x341)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x341)/IPv6()/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_TCP\r\n+==================================\r\n+matched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+unmatched pkt::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.12\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x341)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.13\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x341)/IP(src=\"1.1.2.14\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x341)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(dport=33, sport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.15\")/TCP(dport=13, sport=33)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x341)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6()/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.2\", dst=\"1.1.2.3\")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/TCP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+queue index\r\n+------------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+\r\n+rss queues\r\n+-----------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end\r\n+\r\n+passthru\r\n+---------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions passthru / mark id 33 / end\r\n+\r\n+drop\r\n+-----\r\n+flow create 0 ingress pattern eth / ipv6 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions drop / end\r\n+\r\n+mark+rss\r\n+--------\r\n+flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions mark / rss / end\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4\r\n+==============================\r\n+packets: change the type value(1->0/0->1) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4\r\n+rule: change the pdu_t value(1->0) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4_UDP\r\n+==================================\r\n+packets: change the type value(1->0/0->1) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_UDP\r\n+rule: change the pdu_t value(1->0) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_UDP\r\n+\r\n+\r\n+MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4_TCP\r\n+==================================\r\n+packets: change the type value(1->0/0->1) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_TCP\r\n+rule: change the pdu_t value(1->0) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_TCP\r\n+\r\n+\r\n+2. IPV6+IPV4+IPV4\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+    rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+\r\n+3. IPV4+IPV6+IPV4\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's inner l3 layer from IP to IPv6(or IPv6 to IP).\r\n+    rule: change the inner ipv4 to ipv6.\r\n+\r\n+4. IPV4+IPV4+IPV6\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's inner most l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+    rule: change the inner most ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+\r\n+5. IPV6+IPV6+IPV4\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+             change the packet's inner l3 layer from IP to IPv6(or IPv6 to IP).\r\n+    rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+          change the inner ipv4 to ipv6.\r\n+\r\n+6. IPV4+IPV6+IPV6\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's inner most l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+             change the packet's inner l3 layer from IP to IPv6(or IPv6 to IP).\r\n+    rule: change the inner most ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+          change the inner ipv4 to ipv6.\r\n+\r\n+7. IPV6+IPV4+IPV6\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+             change the packet's inner most l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+    rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+          change the inner most ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+\r\n+8. IPV6+IPV6+IPV6\r\n+\r\n+reconfig all the cases of IPV4+IPV4+IPV4\r\n+\r\n+    packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+             change the packet's inner l3 layer from IP to IPv6(or IPv6 to IP).\r\n+             change the packet's inner most l3 layer from IP to IPv6(or IPv6 to IP), change the ipv4 address to ipv6 address.\r\n+    rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+          change the inner ipv4 to ipv6.\r\n+          change the inner most ipv4 to ipv6, change the ipv4 address to ipv6 address.\r\n+\r\n+\r\n+negative test case\r\n+==================\r\n+\r\n+1. create rules and check all the rules fail::\r\n+\r\n+    testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp dst is 13 / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 33 / mark id 13 / end\r\n+    iavf_flow_create(): Failed to create flow\r\n+    port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Failed to create parser engine.: Invalid argument\r\n+\r\n+    testpmd> flow create 0 ingress pattern eth / ipv6 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is a/ ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss / end\r\n+    Bad arguments\r\n+\r\n+    testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / gtp_psc pdu_t is 2 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions queue index 3 / mark id 13 / end\r\n+    iavf_fdir_add(): Failed to add rule request due to the hw doesn't support\r\n+    iavf_flow_create(): Failed to create flow\r\n+    port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Failed to create parser engine.: Invalid argument\r\n+\r\n+    testpmd> flow create 0 ingress pattern eth / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / gre / ipv6 / udp / gtpu teid is 0x12 / gtp_psc pdu_t is 1 qfi is 0x100 / end actions rss queues 4 5 end / mark id 23 / end\r\n+    Bad arguments\r\n+\r\n+    testpmd> flow create 0 ingress pattern eth / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / gre / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc pdu_t is 1 qfi is 0x3 / end actions drop / end\r\n+    Bad arguments\r\n+\r\n+\r\n+exclusive test case\r\n+===================\r\n+\r\n+subcase 1: inner rule + outer rule\r\n+----------------------------------\r\n+when the inner rule and outer rule co-exist, always the second rule will work.\r\n+And the first rule will work when the second rule is destroyed.\r\n+\r\n+1. create 1 rule using inner as input set and 1 rule using outer as input set::\r\n+\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 13 / mark id 13 / end\r\n+    flow create 0 ingress pattern eth / ipv4 src is 1.1.2.14 dst is 1.1.2.15 / gre / ipv4 / udp / gtpu teid is 0x12 / gtp_psc qfi is 0x3 / end actions queue index 14 / mark id 14 / end\r\n+\r\n+2. send pkts which hit both 2 rules, check the pkt will hit the outer rule::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"1.1.2.14\", dst=\"1.1.2.15\")/GRE()/IP()/UDP()/GTP_U_Header(teid=0x12)/GTPPDUSessionContainer(QFI=0x3)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    testpmd> port 0/queue 14: received 1 packets\r\n+    src=A4:BF:01:69:38:A2 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x1474171b - RSS queue=0xe - FDIR matched ID=0xe - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xe\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+3. destroy the outer rule, send the pkt in step 2, check the pkt will hit the inner rule::\r\n+\r\n+    flow destroy 0 rule 1\r\n+    Flow rule #1 destroyed\r\n+    testpmd> port 0/queue 13: received 1 packets\r\n+    src=A4:BF:01:69:38:A2 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x1474171b - RSS queue=0xd - FDIR matched ID=0xd - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+4. destroy the inner rule, send the pkt in step 2, check the pkt won't hit any rule::\r\n+\r\n+    flow destroy 0 rule 0\r\n+    Flow rule #0 destroyed\r\n+    testpmd> port 0/queue 11: received 1 packets\r\n+    src=A4:BF:01:69:38:A2 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x1474171b - RSS queue=0xb - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xb\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+subcase 2: without eh rule + with eh rule\r\n+-----------------------------------------\r\n+when the rule with eh and another rule without eh co-exist, 2 rules do not affect each other.\r\n+\r\n+1. create 1 rule with eh and 1 rule without eh::\r\n+\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 13 / mark id 13 / end\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 3 / mark id 3 / end\r\n+\r\n+2. send pkts which hit 2 rules separately, check the pkt will hit the each rule::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+    testpmd> port 0/queue 13: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0xd - FDIR matched ID=0xd - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+    port 0/queue 3: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=102 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x3 - FDIR matched ID=0x3 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x3\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+3. destroy the rule without eh, send the pkt in step 2, check the eh pkt will hit eh rule, and the pkt without eh won't hit any rule::\r\n+\r\n+    flow destroy 0 rule 1\r\n+    Flow rule #1 destroyed\r\n+    testpmd> port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=102 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x2 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+    port 0/queue 13: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0xd - FDIR matched ID=0xd - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+4. destroy the rule with eh, send the pkt in step 2, check the pkts won't hit any rule::\r\n+\r\n+    flow destroy 0 rule 0\r\n+    Flow rule #0 destroyed\r\n+    testpmd> port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x2 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+subcase 3: without l4 rule + with l4 rule\r\n+-----------------------------------------\r\n+the rule without l4 has a larger coverage than the rule with l4. if user need to create these two rule at the same time.\r\n+user should create rule without l4 firstly then create rule with l4.\r\n+when 2 rules exist, each pattern hit each rule. destroy l4 rule, l4 pattern hit l3 rule. destroy l3 rule, l3 pattern will not hit l4 rule.\r\n+\r\n+1. create 1 rule with l4 and 1 rule without l4::\r\n+\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 13 / mark id 13 / end\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue index 3 / mark id 3 / end\r\n+\r\n+2. send pkts which hit 2 rules separately, check the pkt will hit the each rule::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")/UDP(sport=13, dport=23)],iface=\"ens786f0\")\r\n+\r\n+    testpmd> port 0/queue 13: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=102 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0xd - FDIR matched ID=0xd - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+    port 0/queue 3: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x3 - FDIR matched ID=0x3 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x3\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+3. destroy the rule with l4, send the pkt with l4, check it will hit the rule without l4::\r\n+\r\n+    flow destroy 0 rule 1\r\n+    Flow rule #1 destroyed\r\n+    testpmd> port 0/queue 13: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0xd - FDIR matched ID=0xd - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+4. destroy the rule without l4, send the pkts in step 2, check the pkts won't hit any rule::\r\n+\r\n+    flow destroy 0 rule 0\r\n+    Flow rule #0 destroyed\r\n+    testpmd> port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=110 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x2 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+    port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=102 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x2 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+subcase 4: with eh but without ul/dl + ul\r\n+-----------------------------------------\r\n+when 2 rules exist, each pattern hit each rule. destroy ul rule, ul pattern hit eh rule without ul/dl.\r\n+\r\n+1. create 1 rule with ul and 1 rule without ul/dl::\r\n+\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 13 / mark id 13 / end\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 3 / end\r\n+\r\n+2. send ul pkt, check the pkt will hit ul rule::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"1.1.2.4\", dst=\"1.1.2.5\")],iface=\"ens786f0\")\r\n+\r\n+    testpmd> port 0/queue 3: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=106 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x3 - FDIR matched ID=0x3 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x3\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+3. destroy the ul rule, send the pkt in step 2, check the pkt will hit the eh rule without ul/dl::\r\n+\r\n+    flow destroy 0 rule 1\r\n+    Flow rule #1 destroyed\r\n+    testpmd> port 0/queue 13: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=106 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0xd - FDIR matched ID=0xd - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0xd\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+4. destroy the eh rule without ul/dl, send the pkt in step 2, check the pkt won't hit any rules::\r\n+\r\n+    flow destroy 0 rule 0\r\n+    Flow rule #0 destroyed\r\n+    testpmd> port 0/queue 2: received 1 packets\r\n+    src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=106 - nb_segs=1 - RSS hash=0x489dd1c2 - RSS queue=0x2 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP  - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x2\r\n+    ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT_RX_OUTER_L4_CKSUM_UNKNOWN\r\n+\r\n+subcase 5: ipv4/ipv4/ipv4 rule + ipv4/ipv6/ipv4 rule\r\n+----------------------------------------------------\r\n+currently, the inner ip do not make distinction between ipv4 and ipv6, these two patterns use same profile.\r\n+so when create two rules of these two patterns with same input set, the second rule can not be created.\r\n+\r\n+1. create two rules of these two patterns with same input set, check the second rule can not be created::\r\n+\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 13 / mark id 13 / end\r\n+    flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 3 / end\r\n+\r\n+    testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 13 / mark id 13 / end\r\n+    Flow rule #0 created\r\n+    testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 3 / end\r\n+    iavf_fdir_add(): Failed to add rule request due to the rule is already existed\r\n+    iavf_flow_create(): Failed to create flow\r\n+    port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Failed to create parser engine.: Invalid argument\r\n+\r\n",
    "prefixes": [
        "V3"
    ]
}