get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 94795,
    "url": "https://patches.dpdk.org/api/patches/94795/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20210624194210.10882-1-zhiminx.huang@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": "<20210624194210.10882-1-zhiminx.huang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210624194210.10882-1-zhiminx.huang@intel.com",
    "date": "2021-06-24T19:42:10",
    "name": "[V3] tests/iavf_fdir: add new test cases",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "fafdc07ff6fad75c254a17b63111936606477165",
    "submitter": {
        "id": 1685,
        "url": "https://patches.dpdk.org/api/people/1685/?format=api",
        "name": "Huang, ZhiminX",
        "email": "zhiminx.huang@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20210624194210.10882-1-zhiminx.huang@intel.com/mbox/",
    "series": [
        {
            "id": 17473,
            "url": "https://patches.dpdk.org/api/series/17473/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=17473",
            "date": "2021-06-24T19:42:10",
            "name": "[V3] tests/iavf_fdir: add new test cases",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/17473/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/94795/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/94795/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 A3B84A0547;\n\tThu, 24 Jun 2021 13:13:52 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6B61440040;\n\tThu, 24 Jun 2021 13:13:52 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id 13C7D4003C\n for <dts@dpdk.org>; Thu, 24 Jun 2021 13:13:48 +0200 (CEST)",
            "from fmsmga005.fm.intel.com ([10.253.24.32])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Jun 2021 04:13:47 -0700",
            "from unknown (HELO localhost.localdomain) ([10.240.183.103])\n by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Jun 2021 04:13:44 -0700"
        ],
        "IronPort-SDR": [
            "\n MWYUup92yijmFGAtl6viHJQiSMUgQEbBkeqTg6EOghnLQ7c2OpjhrQ2451PO01L/SFOwhPvFEm\n QKfvYd+zyRQQ==",
            "\n kin7qJQan1c6xQ8QDw7ONCixMVkG1OlLlNe9/z8lfjFMJZwE9mtzDWeKXNJvF5oTqNvE9UR1UW\n zD1ndstP5hbQ=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10024\"; a=\"207265495\"",
            "E=Sophos;i=\"5.83,296,1616482800\"; d=\"scan'208\";a=\"207265495\"",
            "E=Sophos;i=\"5.83,296,1616482800\"; d=\"scan'208\";a=\"642280540\""
        ],
        "From": "Zhimin Huang <zhiminx.huang@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Zhimin Huang <zhiminx.huang@intel.com>",
        "Date": "Fri, 25 Jun 2021 03:42:10 +0800",
        "Message-Id": "<20210624194210.10882-1-zhiminx.huang@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "Subject": "[dts] [PATCH V3] tests/iavf_fdir: add new test cases",
        "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": "Add fdir with gtpu inner l3/l4 test cases.\n\nSigned-off-by: Zhimin Huang <zhiminx.huang@intel.com>\n---\n tests/TestSuite_iavf_fdir.py | 5508 +++++++++++++++++++++++++++++++++-\n 1 file changed, 5348 insertions(+), 160 deletions(-)",
    "diff": "diff --git a/tests/TestSuite_iavf_fdir.py b/tests/TestSuite_iavf_fdir.py\nindex 27f92f80..805f35ac 100644\n--- a/tests/TestSuite_iavf_fdir.py\n+++ b/tests/TestSuite_iavf_fdir.py\n@@ -607,6 +607,395 @@ MAC_IPV6_UDP_WITHOUT = {\n                  'Ether(dst=\"00:11:22:33:44:55\")/IPv6()/SCTP(sport=RandShort(),dport=RandShort())']\n }\n \n+# inner L3/L4 packets\n+MAC_IPV4_GTPU_IPV4 = {\n+    \"match\" : ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+               'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\", frag=1)/Raw(\"x\"*20)',\n+               'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP()/Raw(\"x\"*20)',\n+               'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+               'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_IPV4_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/TCP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_IPV4_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_IPV4_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/UDP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6()/UDP(sport=22, dport=23)/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_IPV4_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV4 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\", frag=1)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV4_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/TCP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV4_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV4_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/UDP(sport=25, dport=24)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP(sport=22, dport=23)/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV4_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\", frag=1)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/TCP(sport=25, dport=24)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP()/(\"X\"*480)',],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/UDP(sport=25, dport=24)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\", frag=1)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/TCP(sport=25, dport=24)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.22\", dst=\"192.168.0.23\")/UDP(sport=25, dport=24)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_IPV6 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_IPV6_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/TCP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_IPV6_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_IPV6_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/UDP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_IPV6_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/IP()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV6 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV6_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/TCP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV6_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV6_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/UDP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_IPV6_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/ICMP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/TCP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/UDP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP()/(\"X\"*480)',\n+              'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP()/UDP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV6 = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP()/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+              'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/ICMP()/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV6_TCP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/TCP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV6_TCP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/TCP()/(\"X\"*480)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV6_UDP = {\n+    \"match\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)'],\n+    \"mismatch\": ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::4\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2024\")/UDP(sport=24, dport=25)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                 'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/Raw(\"x\"*20)']\n+}\n+\n+MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET = {\n+    \"match\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/UDP()/(\"X\"*480)'],\n+    \"mismatch\": ['Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/TCP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6()/ICMP()/(\"X\"*480)',\n+                 'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP()/(\"X\"*480)']\n+}\n+\n tv_mac_ipv4_pay_queue_index = {\n     \"name\": \"test_mac_ipv4_pay_queue_index\",\n     \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end\",\n@@ -1759,242 +2148,4467 @@ tv_mac_ipv6_ah_queue_index = {\n     \"check_param\": {\"port_id\": 0, \"queue\": 13, \"mark_id\": 7}\n }\n \n-tv_mac_ipv6_ah_queue_group = {\n-    \"name\": \"test_mac_ipv6_ah_queue_group\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / ah spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end\",\n-    \"scapy_str\": MAC_IPV6_AH,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 6}\n+tv_mac_ipv6_ah_queue_group = {\n+    \"name\": \"test_mac_ipv6_ah_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / ah spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end\",\n+    \"scapy_str\": MAC_IPV6_AH,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 6}\n+}\n+\n+tv_mac_ipv6_ah_mark = {\n+    \"name\": \"test_mac_ipv6_ah_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / ah spi is 7 / end actions mark id 15 / end\",\n+    \"scapy_str\": MAC_IPV6_AH,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 15}\n+}\n+\n+tv_mac_ipv4_nat_t_esp_queue_index = {\n+    \"name\": \"test_mac_ipv4_nat_t_esp_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end\",\n+    \"scapy_str\": MAC_IPV4_NAT_T_ESP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 13, \"mark_id\": 7}\n+}\n+\n+tv_mac_ipv4_nat_t_esp_queue_group = {\n+    \"name\": \"test_mac_ipv4_nat_t_esp_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end\",\n+    \"scapy_str\": MAC_IPV4_NAT_T_ESP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 6}\n+}\n+\n+tv_mac_ipv4_nat_t_esp_mark = {\n+    \"name\": \"test_mac_ipv4_nat_t_esp_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions mark id 15 / end\",\n+    \"scapy_str\": MAC_IPV4_NAT_T_ESP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 15}\n+}\n+\n+tv_mac_ipv6_nat_t_esp_queue_index = {\n+    \"name\": \"test_mac_ipv6_nat_t_esp_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end\",\n+    \"scapy_str\": MAC_IPV6_NAT_T_ESP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 13, \"mark_id\": 7}\n+}\n+\n+tv_mac_ipv6_nat_t_esp_queue_group = {\n+    \"name\": \"test_mac_ipv6_nat_t_esp_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end\",\n+    \"scapy_str\": MAC_IPV6_NAT_T_ESP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 6}\n+}\n+\n+tv_mac_ipv6_nat_t_esp_mark = {\n+    \"name\": \"test_mac_ipv6_nat_t_esp_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions mark id 15 / end\",\n+    \"scapy_str\": MAC_IPV6_NAT_T_ESP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 15}\n+}\n+\n+# mac_ipv4_tcp_without_input_set\n+tv_mac_ipv4_tcp_without_input_set_queue_index = {\n+    \"name\": \"test_mac_ipv4_tcp_without_input_set_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions queue index 1 / end\",\n+    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_tcp_without_input_set_queue_group = {\n+    \"name\": \"test_mac_ipv4_tcp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss queues 0 1 2 3 end / end\",\n+    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_tcp_without_input_set_passthru = {\n+    \"name\": \"test_mac_ipv4_tcp_without_input_set_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_tcp_without_input_set_drop = {\n+    \"name\": \"test_mac_ipv4_tcp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_tcp_without_input_set_mark_rss = {\n+    \"name\": \"test_mac_ipv4_tcp_without_input_set_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions mark id 2 / rss / end\",\n+    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+}\n+\n+tv_mac_ipv4_tcp_without_input_set_mark = {\n+    \"name\": \"test_mac_ipv4_tcp_without_input_set_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+# mac_ipv4_udp_without_input_set\n+tv_mac_ipv4_udp_without_input_set_queue_index = {\n+    \"name\": \"test_mac_ipv4_udp_without_input_set_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions queue index 1 / end\",\n+    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_udp_without_input_set_queue_group = {\n+    \"name\": \"test_mac_ipv4_udp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss queues 0 1 2 3 end / end\",\n+    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_udp_without_input_set_passthru = {\n+    \"name\": \"test_mac_ipv4_udp_without_input_set_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_udp_without_input_set_drop = {\n+    \"name\": \"test_mac_ipv4_udp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_udp_without_input_set_mark_rss = {\n+    \"name\": \"test_mac_ipv4_udp_without_input_set_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions mark id 2 / rss / end\",\n+    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+}\n+\n+tv_mac_ipv4_udp_without_input_set_mark = {\n+    \"name\": \"test_mac_ipv4_udp_without_input_set_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+# mac_ipv6_tcp_without_input_set\n+tv_mac_ipv6_tcp_without_input_set_queue_index = {\n+    \"name\": \"test_mac_ipv6_tcp_without_input_set_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions queue index 1 / end\",\n+    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+}\n+\n+tv_mac_ipv6_tcp_without_input_set_queue_group = {\n+    \"name\": \"test_mac_ipv6_tcp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss queues 0 1 2 3 end / end\",\n+    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv6_tcp_without_input_set_passthru = {\n+    \"name\": \"test_mac_ipv6_tcp_without_input_set_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv6_tcp_without_input_set_drop = {\n+    \"name\": \"test_mac_ipv6_tcp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv6_tcp_without_input_set_mark_rss = {\n+    \"name\": \"test_mac_ipv6_tcp_without_input_set_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions mark id 2 / rss / end\",\n+    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+}\n+\n+tv_mac_ipv6_tcp_without_input_set_mark = {\n+    \"name\": \"test_mac_ipv6_tcp_without_input_set_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+# mac_ipv6_udp_without_input_set\n+tv_mac_ipv6_udp_without_input_set_queue_index = {\n+    \"name\": \"test_mac_ipv6_udp_without_input_set_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions queue index 1 / end\",\n+    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+}\n+\n+tv_mac_ipv6_udp_without_input_set_queue_group = {\n+    \"name\": \"test_mac_ipv6_udp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions rss queues 0 1 2 3 end / end\",\n+    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+    \"count\": 10,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv6_udp_without_input_set_passthru = {\n+    \"name\": \"test_mac_ipv6_udp_without_input_set_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv6_udp_without_input_set_drop = {\n+    \"name\": \"test_mac_ipv6_udp_without_input_set_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv6_udp_without_input_set_mark_rss = {\n+    \"name\": \"test_mac_ipv6_udp_without_input_set_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions mark id 2 / rss / end\",\n+    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+}\n+\n+tv_mac_ipv6_udp_without_input_set_mark = {\n+    \"name\": \"test_mac_ipv6_udp_without_input_set_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+#inner L3/L4 cases\n+# mac_ipv4_gtpu_ipv4 test case\n+tv_mac_ipv4_gtpu_ipv4_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv4_tcp test case\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / ipv4 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv4_udp test case\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 dst is 192.168.0.21 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / ipv4 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv4_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_eh_ipv4 test case\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_eh_ipv4_tcp test case\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_eh_ipv4_udp test case\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 dst is 192.168.0.21 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# MAC_IPV4_GTPU_EH_DL_ipv4 test case\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv4_tcp test case\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv4_udp test case\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 dst is 192.168.0.21 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# MAC_IPV4_GTPU_EH_UL_ipv4 test case\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv4_tcp test case\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv4_udp test case\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 dst is 192.168.0.21 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV4_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv6 test case\n+tv_mac_ipv4_gtpu_ipv6_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv6_tcp test case\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / ipv6 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv6_udp test case\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / ipv6 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_ipv6_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_eh_ipv4 test case\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_eh_ipv6_tcp test case\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc / ipv6 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_eh_ipv6_udp test case\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc / ipv6 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_GTPU_EH_DL_ipv4 test case\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv6_tcp test case\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv6_udp test case\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_DL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_GTPU_EH_UL_ipv4 test case\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+# mac_ipv4_gtpu_ipv6_tcp test case\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-tv_mac_ipv6_ah_mark = {\n-    \"name\": \"test_mac_ipv6_ah_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / ah spi is 7 / end actions mark id 15 / end\",\n-    \"scapy_str\": MAC_IPV6_AH,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 15}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv4_nat_t_esp_queue_index = {\n-    \"name\": \"test_mac_ipv4_nat_t_esp_queue_index\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end\",\n-    \"scapy_str\": MAC_IPV4_NAT_T_ESP,\n-    \"check_param\": {\"port_id\": 0, \"queue\": 13, \"mark_id\": 7}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv4_nat_t_esp_queue_group = {\n-    \"name\": \"test_mac_ipv4_nat_t_esp_queue_group\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end\",\n-    \"scapy_str\": MAC_IPV4_NAT_T_ESP,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 6}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n }\n \n-tv_mac_ipv4_nat_t_esp_mark = {\n-    \"name\": \"test_mac_ipv4_nat_t_esp_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions mark id 15 / end\",\n-    \"scapy_str\": MAC_IPV4_NAT_T_ESP,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 15}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n }\n \n-tv_mac_ipv6_nat_t_esp_queue_index = {\n-    \"name\": \"test_mac_ipv6_nat_t_esp_queue_index\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end\",\n-    \"scapy_str\": MAC_IPV6_NAT_T_ESP,\n-    \"check_param\": {\"port_id\": 0, \"queue\": 13, \"mark_id\": 7}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-tv_mac_ipv6_nat_t_esp_queue_group = {\n-    \"name\": \"test_mac_ipv6_nat_t_esp_queue_group\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end\",\n-    \"scapy_str\": MAC_IPV6_NAT_T_ESP,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 6}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv6_nat_t_esp_mark = {\n-    \"name\": \"test_mac_ipv6_nat_t_esp_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions mark id 15 / end\",\n-    \"scapy_str\": MAC_IPV6_NAT_T_ESP,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 15}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-# mac_ipv4_tcp_without_input_set\n-tv_mac_ipv4_tcp_without_input_set_queue_index = {\n-    \"name\": \"test_mac_ipv4_tcp_without_input_set_queue_index\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions queue index 1 / end\",\n-    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n }\n \n-tv_mac_ipv4_tcp_without_input_set_queue_group = {\n-    \"name\": \"test_mac_ipv4_tcp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss queues 0 1 2 3 end / end\",\n-    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n }\n \n-tv_mac_ipv4_tcp_without_input_set_passthru = {\n-    \"name\": \"test_mac_ipv4_tcp_without_input_set_passthru\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions passthru / mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-tv_mac_ipv4_tcp_without_input_set_drop = {\n-    \"name\": \"test_mac_ipv4_tcp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions drop / end\",\n-    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n     \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv4_tcp_without_input_set_mark_rss = {\n-    \"name\": \"test_mac_ipv4_tcp_without_input_set_mark_rss\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions mark id 2 / rss / end\",\n-    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv4_tcp_without_input_set_mark = {\n-    \"name\": \"test_mac_ipv4_tcp_without_input_set_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / tcp / end actions mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV4_TCP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP_WITHOUT_INPUTSET,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-# mac_ipv4_udp_without_input_set\n-tv_mac_ipv4_udp_without_input_set_queue_index = {\n-    \"name\": \"test_mac_ipv4_udp_without_input_set_queue_index\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions queue index 1 / end\",\n-    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv4_udp_without_input_set_queue_group = {\n-    \"name\": \"test_mac_ipv4_udp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions rss queues 0 1 2 3 end / end\",\n-    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_TCP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv4_udp_without_input_set_passthru = {\n-    \"name\": \"test_mac_ipv4_udp_without_input_set_passthru\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions passthru / mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+# mac_ipv4_gtpu_ipv6_udp test case\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-tv_mac_ipv4_udp_without_input_set_drop = {\n-    \"name\": \"test_mac_ipv4_udp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions drop / end\",\n-    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv4_udp_without_input_set_mark_rss = {\n-    \"name\": \"test_mac_ipv4_udp_without_input_set_mark_rss\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions mark id 2 / rss / end\",\n-    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv4_udp_without_input_set_mark = {\n-    \"name\": \"test_mac_ipv4_udp_without_input_set_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / end actions mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV4_UDP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss queues 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-# mac_ipv6_tcp_without_input_set\n-tv_mac_ipv6_tcp_without_input_set_queue_index = {\n-    \"name\": \"test_mac_ipv6_tcp_without_input_set_queue_index\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions queue index 1 / end\",\n-    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv6_tcp_without_input_set_queue_group = {\n-    \"name\": \"test_mac_ipv6_tcp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions rss queues 0 1 2 3 end / end\",\n-    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv6_tcp_without_input_set_passthru = {\n-    \"name\": \"test_mac_ipv6_tcp_without_input_set_passthru\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions passthru / mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_passthru = {\n+    \"name\": \"tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-tv_mac_ipv6_tcp_without_input_set_drop = {\n-    \"name\": \"test_mac_ipv6_tcp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions drop / end\",\n-    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv6_tcp_without_input_set_mark_rss = {\n-    \"name\": \"test_mac_ipv6_tcp_without_input_set_mark_rss\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions mark id 2 / rss / end\",\n-    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv6_tcp_without_input_set_mark = {\n-    \"name\": \"test_mac_ipv6_tcp_without_input_set_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / tcp / end actions mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV6_TCP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp src is 22 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp src is 22 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp src is 22 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-# mac_ipv6_udp_without_input_set\n-tv_mac_ipv6_udp_without_input_set_queue_index = {\n-    \"name\": \"test_mac_ipv6_udp_without_input_set_queue_index\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions queue index 1 / end\",\n-    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp src is 22 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv6_udp_without_input_set_queue_group = {\n-    \"name\": \"test_mac_ipv6_udp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions rss queues 0 1 2 3 end / end\",\n-    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n-    \"count\": 10,\n-    \"check_param\": {\"port_id\": 0, \"queue\": [0, 1, 2, 3]}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp src is 22 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv6_udp_without_input_set_passthru = {\n-    \"name\": \"test_mac_ipv6_udp_without_input_set_passthru\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions passthru / mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp dst is 23 / end actions queue index 1 / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 3, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp dst is 23 / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n-tv_mac_ipv6_udp_without_input_set_drop = {\n-    \"name\": \"test_mac_ipv6_udp_without_input_set_drop\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions drop / end\",\n-    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n     \"check_param\": {\"port_id\": 0, \"drop\": 1}\n }\n \n-tv_mac_ipv6_udp_without_input_set_mark_rss = {\n-    \"name\": \"test_mac_ipv6_udp_without_input_set_mark_rss\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions mark id 2 / rss / end\",\n-    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n-    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp dst is 23 / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n-tv_mac_ipv6_udp_without_input_set_mark = {\n-    \"name\": \"test_mac_ipv6_udp_without_input_set_mark\",\n-    \"rule\": \"flow create 0 ingress pattern eth / ipv6 / udp / end actions mark id 1 / end\",\n-    \"scapy_str\": MAC_IPV6_UDP_WITHOUT,\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_queue_index = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp / end actions queue index 1 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_queue_group = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_queue_group\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4  / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp / end actions rss queues 0 1 2 3 end / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"mark_id\": 1, \"queue\": [0, 1, 2, 3]}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_passthru = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET,\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n }\n \n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_drop = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp / end actions rss / mark / end\",\n+    \"scapy_str\": MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n vectors_ipv4_pay = [tv_mac_ipv4_pay_queue_index, tv_mac_ipv4_pay_mark_rss,tv_mac_ipv4_pay_passthru,\n                          tv_mac_ipv4_pay_drop, tv_mac_ipv4_pay_queue_group, tv_mac_ipv4_pay_mark]\n \n@@ -2101,6 +6715,390 @@ vectors_ipv6_udp_without_input_set = [tv_mac_ipv6_udp_without_input_set_queue_in\n                                       tv_mac_ipv6_udp_without_input_set_mark_rss, tv_mac_ipv6_udp_without_input_set_passthru,\n                                       tv_mac_ipv6_udp_without_input_set_drop, tv_mac_ipv6_udp_without_input_set_mark]\n \n+vectors_ipv4_gtpu_ipv4 = [tv_mac_ipv4_gtpu_ipv4_inner_srcip_queue_index, tv_mac_ipv4_gtpu_ipv4_inner_srcip_queue_group,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_srcip_passthru, tv_mac_ipv4_gtpu_ipv4_inner_srcip_drop,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_srcip_mark_rss,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_dstip_queue_index, tv_mac_ipv4_gtpu_ipv4_inner_dstip_queue_group,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_dstip_passthru, tv_mac_ipv4_gtpu_ipv4_inner_dstip_drop,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_dstip_mark_rss,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_tuple_queue_index, tv_mac_ipv4_gtpu_ipv4_inner_tuple_queue_group,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_tuple_passthru, tv_mac_ipv4_gtpu_ipv4_inner_tuple_drop,\n+                          tv_mac_ipv4_gtpu_ipv4_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_ipv4_tcp = [tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_ipv4_udp = [tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_ipv4_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ipv4 = [tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_eh_ipv4_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ipv4_tcp = [tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ipv4_udp = [tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv4_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_dl_ipv4 = [tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv4_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_dl_ipv4_tcp = [tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_dl_ipv4_udp = [tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv4_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ul_ipv4 = [tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv4_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ul_ipv4_tcp = [tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ul_ipv4_udp = [tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv4_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_ipv6 = [tv_mac_ipv4_gtpu_ipv6_inner_srcip_queue_index, tv_mac_ipv4_gtpu_ipv6_inner_srcip_queue_group,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_srcip_passthru, tv_mac_ipv4_gtpu_ipv6_inner_srcip_drop,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_srcip_mark_rss,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_dstip_queue_index, tv_mac_ipv4_gtpu_ipv6_inner_dstip_queue_group,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_dstip_passthru, tv_mac_ipv4_gtpu_ipv6_inner_dstip_drop,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_dstip_mark_rss,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_tuple_queue_index, tv_mac_ipv4_gtpu_ipv6_inner_tuple_queue_group,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_tuple_passthru, tv_mac_ipv4_gtpu_ipv6_inner_tuple_drop,\n+                         tv_mac_ipv4_gtpu_ipv6_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_ipv6_tcp = [tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_tuple_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_srcport_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_inner_dstport_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_ipv6_udp = [tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_tuple_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_srcport_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_inner_dstport_mark_rss,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_queue_group,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_drop,\n+                             tv_mac_ipv4_gtpu_ipv6_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ipv6 = [tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_eh_ipv6_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ipv6_tcp = [tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ipv6_udp = [tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ipv6_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_dl_ipv6 = [tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_eh_dl_ipv6_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_dl_ipv6_tcp = [tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_dl_ipv6_udp = [tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_dl_ipv6_udp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ul_ipv6 = [tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_srcip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_drop,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_dstip_mark_rss,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_queue_group,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_drop,\n+                             tv_mac_ipv4_gtpu_eh_ul_ipv6_inner_tuple_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ul_ipv6_tcp = [tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_tcp_without_inputset_mark_rss]\n+\n+vectors_ipv4_gtpu_eh_ul_ipv6_udp = [tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstip_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_tuple_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_dstport_mark_rss,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_queue_index, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_queue_group,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_passthru, tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_drop,\n+                                 tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_mark_rss]\n+\n class TestIAVFFdir(TestCase):\n \n     def rte_flow_process(self, vectors):\n@@ -4184,6 +9182,196 @@ class TestIAVFFdir(TestCase):\n         out = self.send_pkts_getouput(pkt_ipv4_pay_ipv6_pay)\n         rfc.verify_iavf_fdir_directed_by_rss(out, stats=True)\n \n+    def test_mac_ipv4_gtpu_ipv4(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_ipv4)\n+\n+    def test_mac_ipv4_gtpu_ipv4_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_ipv4_tcp)\n+\n+    def test_mac_ipv4_gtpu_ipv4_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_ipv4_udp)\n+\n+    def test_mac_ipv4_gtpu_eh_ipv4(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ipv4)\n+\n+    def test_mac_ipv4_gtpu_eh_ipv4_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ipv4_tcp)\n+\n+    def test_mac_ipv4_gtpu_eh_ipv4_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ipv4_udp)\n+\n+    def test_mac_ipv4_gtpu_eh_dl_ipv4(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_dl_ipv4)\n+\n+    def test_mac_ipv4_gtpu_eh_dl_ipv4_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_dl_ipv4_tcp)\n+\n+    def test_mac_ipv4_gtpu_eh_dl_ipv4_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_dl_ipv4_udp)\n+\n+    def test_mac_ipv4_gtpu_eh_ul_ipv4(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ul_ipv4)\n+\n+    def test_mac_ipv4_gtpu_eh_ul_ipv4_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ul_ipv4_tcp)\n+\n+    def test_mac_ipv4_gtpu_eh_ul_ipv4_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ul_ipv4_udp)\n+\n+    def test_mac_ipv4_gtpu_ipv6(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_ipv6)\n+\n+    def test_mac_ipv4_gtpu_ipv6_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_ipv6_tcp)\n+\n+    def test_mac_ipv4_gtpu_ipv6_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_ipv6_udp)\n+\n+    def test_mac_ipv4_gtpu_eh_ipv6(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ipv6)\n+\n+    def test_mac_ipv4_gtpu_eh_ipv6_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ipv6_tcp)\n+\n+    def test_mac_ipv4_gtpu_eh_ipv6_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ipv6_udp)\n+\n+    def test_mac_ipv4_gtpu_eh_dl_ipv6(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_dl_ipv6)\n+\n+    def test_mac_ipv4_gtpu_eh_dl_ipv6_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_dl_ipv6_tcp)\n+\n+    def test_mac_ipv4_gtpu_eh_dl_ipv6_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_dl_ipv6_udp)\n+\n+    def test_mac_ipv4_gtpu_eh_ul_ipv6(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ul_ipv6)\n+\n+    def test_mac_ipv4_gtpu_eh_ul_ipv6_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ul_ipv6_tcp)\n+\n+    def test_mac_ipv4_gtpu_eh_ul_ipv6_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gtpu_eh_ul_ipv6_udp)\n+\n+    def _rte_conflict_rule(self, conflict_rule, rule, match_pkt, stats=True):\n+        check_param = {\"port_id\": 0, \"mark_id\": 1, \"queue\": 10}\n+\n+        self.create_fdir_rule(conflict_rule, check_stats=False)\n+        rule_id = self.create_fdir_rule(rule, check_stats=True)\n+        out = self.send_pkts_getouput(pkts=match_pkt)\n+        pkt_num = len(match_pkt)\n+        rfc.check_iavf_fdir_mark(out, pkt_num=pkt_num, check_param=check_param)\n+        if int(rule_id[0]) > 1:\n+            rule_id = int(rule_id[0]) - 1\n+        else:\n+            rule_id = 0\n+        if stats:\n+            self.destroy_fdir_rule(rule_id)\n+\n+    def _create_check_conflict_rule(self, rules, pkts):\n+        self.create_fdir_rule(rules[0], check_stats=True)\n+        pkt_list = [pkts[0], pkts[3]]\n+        self._rte_conflict_rule(rules[1:3], rules[3], pkt_list)\n+\n+        pkt_list = [pkts[1], pkts[3]]\n+        self._rte_conflict_rule(rules[5:], rules[1], pkt_list)\n+\n+        pkt_list = [pkts[1], pkts[4]]\n+        self._rte_conflict_rule(rules[0], rules[4], pkt_list)\n+\n+        c_rules = [rules[3], rules[4], rules[7], rules[9], rules[10]]\n+        pkt_list = [pkts[4], pkts[5]]\n+        self._rte_conflict_rule(c_rules, rules[5], pkt_list)\n+\n+        c_rules = [rules[3], rules[6], rules[8], rules[9], rules[11]]\n+        pkt_list = [pkts[5], pkts[7]]\n+        self._rte_conflict_rule(c_rules, rules[7], pkt_list)\n+\n+        c_rules = [rules[3], rules[4], rules[6]]\n+        pkt_list = [pkts[7], pkts[8]]\n+        self._rte_conflict_rule(c_rules, rules[8], pkt_list)\n+\n+        c_rules = [rules[3], rules[5], rules[6]]\n+        pkt_list = [pkts[8], pkts[9]]\n+        self._rte_conflict_rule(c_rules, rules[9], pkt_list)\n+\n+        c_rules = [rules[3], rules[4], rules[5], rules[9], rules[10], rules[11]]\n+        pkt_list = [pkts[6], pkts[9]]\n+        self._rte_conflict_rule(c_rules, rules[6], pkt_list)\n+\n+        c_rules = [rules[3], rules[4], rules[5], rules[7], rules[8]]\n+        pkt_list = [pkts[6], pkts[10]]\n+        self._rte_conflict_rule(c_rules, rules[10], pkt_list, stats=False)\n+\n+        c_rules = [rules[3], rules[4], rules[5], rules[7], rules[8], rules[9]]\n+        pkt_list = [pkts[6], pkts[10], pkts[11]]\n+        self._rte_conflict_rule(c_rules, rules[11], pkt_list, stats=False)\n+\n+        c_rules = [rules[3], rules[4], rules[5], rules[7], rules[8], rules[9]]\n+        pkt_list = [pkts[2], pkts[6], pkts[10], pkts[11]]\n+        self._rte_conflict_rule(c_rules, rules[2], pkt_list, stats=False)\n+\n+    def test_mac_inner_ipv4_gtpu_conflict_rule(self):\n+        rules = [\"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+                 \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\"]\n+\n+        pkts = ['Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+                'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)']\n+\n+        self._create_check_conflict_rule(rules, pkts)\n+\n+    def test_mac_inner_ipv6_gtpu_conflict_rule(self):\n+        rules = [\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / tcp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\",\n+            \"flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 src is 2001::2 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / udp src is 22 dst is 23 / end actions queue index 10 / mark id 1 / end\"]\n+\n+        pkts = [\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=0)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22, dport=23)/Raw(\"x\"*20)',\n+            'Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP()/UDP(dport=2152)/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IPv6(src=\"2001::2\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/Raw(\"x\"*20)']\n+\n+        self._create_check_conflict_rule(rules, pkts)\n+\n     def tear_down(self):\n         # destroy all flow rule on port 0\n         self.dut.kill_all()\n",
    "prefixes": [
        "V3"
    ]
}