get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 96945,
    "url": "http://patchwork.dpdk.org/api/patches/96945/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dts/patch/20210816154520.9805-3-qinx.sun@intel.com/",
    "project": {
        "id": 3,
        "url": "http://patchwork.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": "<20210816154520.9805-3-qinx.sun@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20210816154520.9805-3-qinx.sun@intel.com",
    "date": "2021-08-16T15:45:20",
    "name": "[V1,2/2] tests/iavf_fdir: add gre inner fdir cases for iavf",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "8e518d23f02b6965685665ff9a12194ebb7d80e7",
    "submitter": {
        "id": 1956,
        "url": "http://patchwork.dpdk.org/api/people/1956/?format=api",
        "name": "Sun, QinX",
        "email": "qinx.sun@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dts/patch/20210816154520.9805-3-qinx.sun@intel.com/mbox/",
    "series": [
        {
            "id": 18294,
            "url": "http://patchwork.dpdk.org/api/series/18294/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=18294",
            "date": "2021-08-16T15:45:18",
            "name": "add gre inner fdir cases for iavf",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/18294/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/96945/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/96945/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 2DCC0A0C46;\n\tMon, 16 Aug 2021 09:12:53 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 1D4E940143;\n\tMon, 16 Aug 2021 09:12:53 +0200 (CEST)",
            "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by mails.dpdk.org (Postfix) with ESMTP id BCE184003C\n for <dts@dpdk.org>; Mon, 16 Aug 2021 09:12:50 +0200 (CEST)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 16 Aug 2021 00:12:50 -0700",
            "from unknown (HELO cvl_tetser_105.icx.intel.com) ([10.240.183.105])\n by fmsmga002-auth.fm.intel.com with\n ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2021 00:12:48 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10077\"; a=\"279550944\"",
            "E=Sophos;i=\"5.84,324,1620716400\"; d=\"scan'208\";a=\"279550944\"",
            "E=Sophos;i=\"5.84,324,1620716400\"; d=\"scan'208\";a=\"530256060\""
        ],
        "From": "Qin Sun <qinx.sun@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "xueqin.lin@intel.com,\n\tQin Sun <qinx.sun@intel.com>",
        "Date": "Mon, 16 Aug 2021 15:45:20 +0000",
        "Message-Id": "<20210816154520.9805-3-qinx.sun@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20210816154520.9805-1-qinx.sun@intel.com>",
        "References": "<20210816154520.9805-1-qinx.sun@intel.com>",
        "Subject": "[dts] [PATCH V1 2/2] tests/iavf_fdir: add gre inner fdir cases for\n iavf",
        "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": "according to test plan to add 12 new cases related gre inner for iavf fdir\n\nSigned-off-by: Qin Sun <qinx.sun@intel.com>\n---\n tests/TestSuite_iavf_fdir.py | 308 +++++++++++++++++++++++++++++++++++\n 1 file changed, 308 insertions(+)",
    "diff": "diff --git a/tests/TestSuite_iavf_fdir.py b/tests/TestSuite_iavf_fdir.py\nindex 805f35ac..56272c8e 100644\n--- a/tests/TestSuite_iavf_fdir.py\n+++ b/tests/TestSuite_iavf_fdir.py\n@@ -996,6 +996,52 @@ MAC_IPV4_GTPU_EH_UL_IPV6_UDP_WITHOUT_INPUTSET = {\n                  'Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=1)/IP()/UDP()/(\"X\"*480)']\n }\n \n+MAC_IPV4_GRE_IPV4 = {\n+    \"match\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\", tos=4)/Raw(\"x\" * 80)'],\n+    \"mismatch\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.22\",dst=\"192.168.0.21\", tos=4)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.22\", tos=4)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\", tos=8)/Raw(\"x\" * 80)',\n+    ]\n+}\n+\n+MAC_IPV4_GRE_IPV4_TCP = {\n+    \"match\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\", tos=4)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)'],\n+    \"mismatch\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.22\",dst=\"192.168.0.21\", tos=4)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.22\", tos=4)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\", tos=8)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\", tos=4)/TCP(sport=21,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\", tos=4)/TCP(sport=22,dport=24)/Raw(\"x\" * 80)'\n+    ]\n+}\n+\n+MAC_IPV4_GRE_IPV6_TCP = {\n+    \"match\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::2\",tc=1)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)'],\n+    \"mismatch\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\", src=\"2001::2\",tc=1)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::3\",tc=1)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::2\",tc=2)/TCP(sport=22,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::2\",tc=1)/TCP(sport=21,dport=23)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::2\",tc=1)/TCP(sport=22,dport=24)/Raw(\"x\" * 80)'\n+    ]\n+}\n+\n+MAC_IPV6_GRE_IPV4 = eval(str(MAC_IPV4_GRE_IPV4).replace('IP()','IPv6()'))\n+\n+MAC_IPV4_GRE_IPV6 = {\n+    \"match\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::2\",tc=1)/Raw(\"x\" * 80)'],\n+    \"mismatch\": [\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\", src=\"2001::2\",tc=1)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::3\",tc=1)/Raw(\"x\" * 80)',\n+        'Ether(dst=\"00:11:22:33:44:55\")/IP()/GRE()/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"2001::2\",tc=2)/Raw(\"x\" * 80)',\n+    ]\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@@ -6609,6 +6655,175 @@ tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_without_inputset_mark_rss = {\n     \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n }\n \n+#gre tunnel inner fdir\n+tv_mac_ipv4_gre_ipv4_queue_index = {\n+    \"name\": \"test_mac_ipv4_gre_ipv4_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / end actions queue index 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 1}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_rss_queue = {\n+    \"name\": \"mac_ipv4_gre_ipv4_rss_queue\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / end actions rss queues 2 3 end / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [2,3]}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_passthru = {\n+    \"name\": \"mac_ipv4_gre_ipv4_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / end actions passthru / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_drop = {\n+    \"name\": \"mac_ipv4_gre_ipv4_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"drop\":1}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_mark_rss ={\n+    \"name\": \"mac_ipv4_gre_ipv4_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / end actions mark / rss / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_mark = {\n+    \"name\": \"mac_ipv4_gre_ipv4_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / end actions mark id 5 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 5}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_queue_index = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / end actions queue index 15 / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 15, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_drop = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_rss_queue = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_rss_queue\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / end actions rss queues 8 9 10 11 12 13 14 15 end / mark id 2 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [8, 9, 10, 11, 12, 13, 14, 15], \"mark_id\": 2}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_passthru = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / end actions passthru / mark id 3 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 3}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_mark_rss = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / end actions mark id 4 / rss / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 4}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_mark = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / end actions mark id 5 / rss / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 5}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_tcp_queue_index = {\n+    \"name\": \"test_mac_ipv4_gre_ipv4_tcp_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions queue index 1 / mark id 0 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 1, \"mark_id\": 0}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_tcp_rss_queue = {\n+    \"name\": \"mac_ipv4_gre_ipv4_tcp_rss_queue\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions rss queues 1 2 3 4 end / mark id 4294967294 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [1, 2, 3, 4], \"mark_id\": 4294967294 }\n+}\n+\n+tv_mac_ipv4_gre_ipv4_tcp_passthru = {\n+    \"name\": \"mac_ipv4_gre_ipv4_tcp_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions passthru / mark id 1 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1 }\n+}\n+\n+tv_mac_ipv4_gre_ipv4_tcp_drop = {\n+    \"name\": \"mac_ipv4_gre_ipv4_tcp_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1 }\n+}\n+\n+tv_mac_ipv4_gre_ipv4_tcp_mark_rss = {\n+    \"name\": \"mac_ipv4_gre_ipv4_tcp_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions mark id 2 / rss / end \",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 2}\n+}\n+\n+tv_mac_ipv4_gre_ipv4_tcp_mark = {\n+    \"name\": \"mac_ipv4_gre_ipv4_tcp_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 src is 192.168.0.20 dst is 192.168.0.21 tos is 4 / tcp src is 22 dst is 23 / end actions mark id 1 / end \",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV4_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 1}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_tcp_queue_index = {\n+    \"name\": \"test_mac_ipv4_gre_ipv6_tcp_queue_index\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / tcp src is 22 dst is 23 / end actions queue index 6 / mark id 4 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": 6, \"mark_id\": 4}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_tcp_rss_queue = {\n+    \"name\": \"mac_ipv4_gre_ipv6_tcp_rss_queue\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / tcp src is 22 dst is 23 / end actions rss queues 4 5 6 7 end / mark id 4294967294 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"queue\": [4, 5, 6, 7], \"mark_id\": 4294967294}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_tcp_passthru = {\n+    \"name\": \"mac_ipv4_gre_ipv6_tcp_passthru\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / tcp src is 22 dst is 23 / end actions passthru / mark id 7 / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 7}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_tcp_drop = {\n+    \"name\": \"mac_ipv4_gre_ipv6_tcp_drop\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / tcp src is 22 dst is 23 / end actions drop / end\",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"drop\": 1}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_tcp_mark_rss = {\n+    \"name\": \"mac_ipv4_gre_ipv6_tcp_mark_rss\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / tcp src is 22 dst is 23 / end actions mark id 6 / rss / end \",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 6}\n+}\n+\n+tv_mac_ipv4_gre_ipv6_tcp_mark = {\n+    \"name\": \"mac_ipv4_gre_ipv6_tcp_mark\",\n+    \"rule\": \"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 src is 2001::2 tc is 1 / tcp src is 22 dst is 23 / end actions mark id 3 / end \",\n+    \"scapy_str\": MAC_IPV4_GRE_IPV6_TCP,\n+    \"check_param\": {\"port_id\": 0, \"passthru\": 1, \"mark_id\": 3}\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@@ -7099,6 +7314,63 @@ vectors_ipv4_gtpu_eh_ul_ipv6_udp = [tv_mac_ipv4_gtpu_eh_ul_ipv6_udp_inner_srcip_\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+#gre tunnel inner\n+vectors_ipv4_gre_ipv4 = [\n+    tv_mac_ipv4_gre_ipv4_queue_index,\n+    tv_mac_ipv4_gre_ipv4_rss_queue,\n+    tv_mac_ipv4_gre_ipv4_passthru,\n+    tv_mac_ipv4_gre_ipv4_drop,\n+    tv_mac_ipv4_gre_ipv4_mark_rss,\n+    tv_mac_ipv4_gre_ipv4_mark\n+                          ]\n+\n+vectors_ipv6_gre_ipv4 = [eval(str(each).replace('ipv4_gre_ipv4','ipv6_gre_ipv4').replace('IP()','IPv6()')\n+                           .replace('eth / ipv4','eth / ipv6')) for each in vectors_ipv4_gre_ipv4]\n+\n+vectors_ipv4_gre_ipv6 = [\n+    tv_mac_ipv4_gre_ipv6_queue_index,\n+    tv_mac_ipv4_gre_ipv6_rss_queue,\n+    tv_mac_ipv4_gre_ipv6_passthru,\n+    tv_mac_ipv4_gre_ipv6_drop,\n+    tv_mac_ipv4_gre_ipv6_mark_rss,\n+    tv_mac_ipv4_gre_ipv6_mark\n+]\n+\n+vectors_ipv6_gre_ipv6 = [eval(str(each).replace('ipv4_gre_ipv6','ipv6_gre_ipv6').replace('IP()','IPv6()')\n+                           .replace('eth / ipv4','eth / ipv6')) for each in vectors_ipv4_gre_ipv6]\n+\n+vectors_ipv4_gre_ipv4_tcp = [\n+    tv_mac_ipv4_gre_ipv4_tcp_queue_index,\n+    tv_mac_ipv4_gre_ipv4_tcp_rss_queue,\n+    tv_mac_ipv4_gre_ipv4_tcp_passthru,\n+    tv_mac_ipv4_gre_ipv4_tcp_drop,\n+    tv_mac_ipv4_gre_ipv4_tcp_mark_rss,\n+    tv_mac_ipv4_gre_ipv4_tcp_mark\n+]\n+\n+vectors_ipv6_gre_ipv4_tcp = [eval(str(each).replace('ipv4_gre_ipv4','ipv6_gre_ipv4').replace('eth / ipv4','eth / ipv6')\n+                                  .replace('IP()','IPv6()')) for each in vectors_ipv4_gre_ipv4_tcp]\n+\n+vectors_ipv4_gre_ipv6_tcp = [\n+    tv_mac_ipv4_gre_ipv6_tcp_queue_index,\n+    tv_mac_ipv4_gre_ipv6_tcp_rss_queue,\n+    tv_mac_ipv4_gre_ipv6_tcp_passthru,\n+    tv_mac_ipv4_gre_ipv6_tcp_drop,\n+    tv_mac_ipv4_gre_ipv6_tcp_mark_rss,\n+    tv_mac_ipv4_gre_ipv6_tcp_mark\n+    ]\n+\n+vectors_ipv6_gre_ipv6_tcp = [eval(str(each).replace('ipv4_gre_ipv6','ipv6_gre_ipv6').replace('eth / ipv4','eth / ipv6')\n+                                  .replace('IP()','IPv6()'))for each in vectors_ipv4_gre_ipv6_tcp]\n+\n+vectors_ipv4_gre_ipv4_udp = [eval(str(each).replace('tcp','udp').replace('TCP','UDP')) for each in vectors_ipv4_gre_ipv4_tcp]\n+\n+vectors_ipv6_gre_ipv4_udp = [eval(str(each).replace('tcp','udp').replace('TCP','UDP')) for each in vectors_ipv6_gre_ipv4_tcp]\n+\n+vectors_ipv4_gre_ipv6_udp = [eval(str(each).replace('tcp','udp').replace('TCP','UDP')) for each in vectors_ipv4_gre_ipv6_tcp]\n+\n+vectors_ipv6_gre_ipv6_udp = [eval(str(each).replace('tcp','udp').replace('TCP','UDP')) for each in vectors_ipv6_gre_ipv6_tcp]\n+\n class TestIAVFFdir(TestCase):\n \n     def rte_flow_process(self, vectors):\n@@ -9372,6 +9644,42 @@ class TestIAVFFdir(TestCase):\n \n         self._create_check_conflict_rule(rules, pkts)\n \n+    def test_mac_ipv4_gre_ipv4(self):\n+        self.rte_flow_process(vectors_ipv4_gre_ipv4)\n+\n+    def test_mac_ipv6_gre_ipv4(self):\n+        self.rte_flow_process(vectors_ipv6_gre_ipv4)\n+\n+    def test_mac_ipv4_gre_ipv6(self):\n+        self.rte_flow_process(vectors_ipv4_gre_ipv6)\n+\n+    def test_mac_ipv6_gre_ipv6(self):\n+        self.rte_flow_process(vectors_ipv6_gre_ipv6)\n+\n+    def test_mac_ipv4_gre_ipv4_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gre_ipv4_tcp)\n+\n+    def test_mac_ipv6_gre_ipv4_tcp(self):\n+        self.rte_flow_process(vectors_ipv6_gre_ipv4_tcp)\n+\n+    def test_mac_ipv4_gre_ipv6_tcp(self):\n+        self.rte_flow_process(vectors_ipv4_gre_ipv6_tcp)\n+\n+    def test_mac_ipv6_gre_ipv6_tcp(self):\n+        self.rte_flow_process(vectors_ipv6_gre_ipv6_tcp)\n+\n+    def test_mac_ipv4_gre_ipv4_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gre_ipv4_udp)\n+\n+    def test_mac_ipv6_gre_ipv4_udp(self):\n+        self.rte_flow_process(vectors_ipv6_gre_ipv4_udp)\n+\n+    def test_mac_ipv4_gre_ipv6_udp(self):\n+        self.rte_flow_process(vectors_ipv4_gre_ipv6_udp)\n+\n+    def test_mac_ipv6_gre_ipv6_udp(self):\n+        self.rte_flow_process(vectors_ipv6_gre_ipv6_udp)\n+        \n     def tear_down(self):\n         # destroy all flow rule on port 0\n         self.dut.kill_all()\n",
    "prefixes": [
        "V1",
        "2/2"
    ]
}