Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/94795/?format=api
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" ] }{ "id": 94795, "url": "