Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/84358/?format=api
https://patches.dpdk.org/api/patches/84358/?format=api", "web_url": "https://patches.dpdk.org/project/dts/patch/20201119175811.14035-1-xueqin.lin@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": "<20201119175811.14035-1-xueqin.lin@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20201119175811.14035-1-xueqin.lin@intel.com", "date": "2020-11-19T17:58:11", "name": "test_plan/iavf_fdir: add fdir case for layer3 co-exist GTPU", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "48e4cbb3fa5e93336e09d0f5d77f0bb7be86e764", "submitter": { "id": 498, "url": "https://patches.dpdk.org/api/people/498/?format=api", "name": "Lin, Xueqin", "email": "xueqin.lin@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dts/patch/20201119175811.14035-1-xueqin.lin@intel.com/mbox/", "series": [ { "id": 13973, "url": "https://patches.dpdk.org/api/series/13973/?format=api", "web_url": "https://patches.dpdk.org/project/dts/list/?series=13973", "date": "2020-11-19T17:58:11", "name": "test_plan/iavf_fdir: add fdir case for layer3 co-exist GTPU", "version": 1, "mbox": "https://patches.dpdk.org/series/13973/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/84358/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/84358/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 202D7A04DD;\n\tThu, 19 Nov 2020 11:03:37 +0100 (CET)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DA7DCF3E;\n\tThu, 19 Nov 2020 11:03:35 +0100 (CET)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by dpdk.org (Postfix) with ESMTP id 0C8FF3B5\n for <dts@dpdk.org>; Thu, 19 Nov 2020 11:03:33 +0100 (CET)", "from fmsmga005.fm.intel.com ([10.253.24.32])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 19 Nov 2020 02:03:31 -0800", "from unknown (HELO xlin-dpdk50.sh.intel.com) ([10.67.118.237])\n by fmsmga005.fm.intel.com with ESMTP; 19 Nov 2020 02:03:30 -0800" ], "IronPort-SDR": [ "\n pjLEHMIhCGh4fhrgPGpyw81oYl2Bm/JdPFJZqBcnKFnkXvrGpeUmHCaBvtnVuFine2qO6wHYU7\n 8hB0SvlCBKaA==", "\n vQF2MJgnZmrZLbgc6qD8+S+lsEsVXK8TcWiygAUx0ZEya30K0DuRIqOwBjJDgDOUKYKm+TbKVb\n z4fAWF9QsdkA==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9809\"; a=\"171362250\"", "E=Sophos;i=\"5.77,490,1596524400\"; d=\"scan'208\";a=\"171362250\"", "E=Sophos;i=\"5.77,490,1596524400\"; d=\"scan'208\";a=\"534704710\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "From": "Xueqin Lin <xueqin.lin@intel.com>", "To": "dts@dpdk.org", "Cc": "Xueqin Lin <xueqin.lin@intel.com>", "Date": "Thu, 19 Nov 2020 12:58:11 -0500", "Message-Id": "<20201119175811.14035-1-xueqin.lin@intel.com>", "X-Mailer": "git-send-email 2.17.1", "Subject": "[dts] [PATCH] test_plan/iavf_fdir: add fdir case for layer3\n\tco-exist GTPU", "X-BeenThere": "dts@dpdk.org", "X-Mailman-Version": "2.1.15", "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": "Signed-off-by: Lin Xueqin <xueqin.lin@intel.com>\n\n---\n test_plans/iavf_fdir_test_plan.rst | 225 +++++++++++++++++++++++++++++\n 1 file changed, 225 insertions(+)", "diff": "diff --git a/test_plans/iavf_fdir_test_plan.rst b/test_plans/iavf_fdir_test_plan.rst\nindex ed71d58..80429cc 100644\n--- a/test_plans/iavf_fdir_test_plan.rst\n+++ b/test_plans/iavf_fdir_test_plan.rst\n@@ -2424,6 +2424,231 @@ Subcase 15: MAC_IPV6_GTPU outer src ipv6 mark/rss\n 4. verify matched packets are distributed by RSS without FDIR matched ID.\n check there is no rule listed.\n \n+Test case: Layer3 co-exist GTPU\n+===============================\n+\n+Subcase 1: Layer3 co-exist GTP EH fdir + dst\n+--------------------------------------------\n+\n+Rules::\n+ #1 flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.31 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end\n+ #2 flow create 0 ingress pattern eth / ipv6 dst is ::32 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end\n+ #3 flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.33 / udp / gtpu / gtp_psc / end actions queue index 7 / mark id 3 / end\n+ #4 flow create 0 ingress pattern eth / ipv6 dst is ::14 / udp / gtpu / gtp_psc / end actions queue index 8 / mark id 4 / end\n+ #5 flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.35 / udp / gtpu / gtp_psc / end actions passthru / mark id 5 / end\n+ #6 flow create 0 ingress pattern eth / ipv6 dst is ::36 / udp / gtpu / gtp_psc / end actions passthru / mark id 6 / end\n+ #7 flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.37 / udp / gtpu / gtp_psc / end actions drop / end\n+ #8 flow create 0 ingress pattern eth / ipv6 dst is ::38 / udp / gtpu / gtp_psc / end actions drop / end\n+\n+Matched packets::\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Mismatched packets::\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.34\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::15\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::39\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+1. Create above filter rules.\n+\n+2. Send matched packets.\n+\n+3. Check result::\n+\n+ Check p_gtpu1 is distributed to queue 1 or 2 with FDIR matched ID=0x1.\n+ Check p_gtpu2 is distributed to queue 3 or 4 or 5 or 6 with FDIR matched ID=0x2.\n+ Check p_gtpu3 is distributed to queue 7 with FDIR matched ID=0x3.\n+ Check p_gtpu4 is distributed to queue 8 with FDIR matched ID=0x4.\n+ Check p_gtpu5 is distributed by RSS with FDIR matched ID=0x5.\n+ Check p_gtpu6 is distributed by RSS with FDIR matched ID=0x6.\n+ Check p_gtpu7 is dropped.\n+ Check p_gtpu8 is dropped.\n+\n+4. Send mismatched packets.\n+\n+5. Check result::\n+\n+ Check p_gtpu1 is distributed by RSS without FDIR matched ID=0x1.\n+ Check p_gtpu2 is distributed by RSS without FDIR matched ID=0x2.\n+ Check p_gtpu3 is distributed by RSS without FDIR matched ID=0x3.\n+ Check p_gtpu4 is distributed by RSS without FDIR matched ID=0x4.\n+ Check p_gtpu5 is distributed by RSS without FDIR matched ID=0x5.\n+ Check p_gtpu6 is distributed by RSS without FDIR matched ID=0x6.\n+ Check p_gtpu7 is not dropped, distributed by RSS.\n+ Check p_gtpu8 is not dropped, distributed by RSS.\n+\n+6. Verify rules can be listed and destroyed::\n+\n+ testpmd> flow list 0\n+\n+7. Flush the rule, check there is no rule listed::\n+\n+ testpmd> flow flush 0\n+\n+8. Send matched packets.\n+\n+9. Verify matched packets are distributed by RSS without FDIR matched ID.\n+\n+10. Repeate above steps.\n+\n+Subcase 2: Layer3 co-exist GTP fdir + dst\n+-----------------------------------------\n+\n+Rules::\n+ #1 flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.31 / udp / gtpu / end actions rss queues 1 2 end / mark id 1 / end\n+ #2\tflow create 0 ingress pattern eth / ipv6 dst is ::32 / udp / gtpu / end actions rss queues 3 4 5 6 end / mark id 2 / end\n+ #3\tflow create 0 ingress pattern eth / ipv4 dst is 192.168.0.33 / udp / gtpu / end actions queue index 7 / mark id 3 / end\n+ #4\tflow create 0 ingress pattern eth / ipv6 dst is ::14 / udp / gtpu / end actions queue index 8 / mark id 4 / end\n+ #5\tflow create 0 ingress pattern eth / ipv4 dst is 192.168.0.35 / udp / gtpu / end actions passthru / mark id 5 / end\n+ #6\tflow create 0 ingress pattern eth / ipv6 dst is ::36 / udp / gtpu / end actions passthru / mark id 6 / end\n+ #7\tflow create 0 ingress pattern eth / ipv4 dst is 192.168.0.37 / udp / gtpu / end actions drop / end\n+ #8\tflow create 0 ingress pattern eth / ipv6 dst is ::38 / udp / gtpu / end actions drop / end\n+\n+Matched packets::\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Mismatched packets::\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.34\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::15\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::39\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Test steps as subcase 1.\n+\n+Subcase 3: Layer3 co-exist GTP EH fdir + src\n+--------------------------------------------\n+\n+Rules::\n+ #1 flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end\n+ #2\tflow create 0 ingress pattern eth / ipv6 src is ::12 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end\n+ #3\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.23 / udp / gtpu / gtp_psc / end actions queue index 7 / mark id 3 / end\n+ #4\tflow create 0 ingress pattern eth / ipv6 src is 2001::4 / udp / gtpu / gtp_psc / end actions queue index 8 / mark id 4 / end\n+ #5\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.25 / udp / gtpu / gtp_psc / end actions passthru / mark id 5 / end\n+ #6\tflow create 0 ingress pattern eth / ipv6 src is ::16 / udp / gtpu / gtp_psc / end actions passthru / mark id 6 / end\n+ #7\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.27 / udp / gtpu / gtp_psc / end actions drop / end\n+ #8\tflow create 0 ingress pattern eth / ipv6 src is 2001::8 / udp / gtpu / gtp_psc / end actions drop / end\n+\n+Matched packets::\n+\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Mismatched packets::\n+\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.22\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::13\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.24\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::5\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.26\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::17\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.28\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::9\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Test steps as subcase 1.\n+\n+Subcase 4: Layer3 co-exist GTP fdir + src\n+-----------------------------------------\n+\n+Rules::\n+\n+ #1 flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 / udp / gtpu / end actions rss queues 1 2 end / mark id 1 / end\n+ #2\tflow create 0 ingress pattern eth / ipv6 src is ::12 / udp / gtpu / end actions rss queues 3 4 5 6 end / mark id 2 / end\n+ #3\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.23 / udp / gtpu / end actions queue index 7 / mark id 3 / end\n+ #4\tflow create 0 ingress pattern eth / ipv6 src is 2001::4 / udp / gtpu / end actions queue index 8 / mark id 4 / end\n+ #5\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.25 / udp / gtpu / end actions passthru / mark id 5 / end\n+ #6\tflow create 0 ingress pattern eth / ipv6 src is ::16 / udp / gtpu / end actions passthru / mark id 6 / end\n+ #7\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.27 / udp / gtpu / end actions drop / end\n+ #8\tflow create 0 ingress pattern eth / ipv6 src is 2001::8 / udp / gtpu / end actions drop / end\n+Matched packets::\n+\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Mismatched packets::\n+\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.22\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::13\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.24\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::5\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.26\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::17\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.28\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::9\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Test steps as subcase 1.\n+\n+Subcase 5: Layer3 co-exist GTP with/without EH fdir + src/dst\n+-------------------------------------------------------------\n+\n+Rules::\n+\n+ #1 flow create 0 ingress pattern eth / ipv4 src is 192.168.0.21 dst is 192.168.0.31 / udp / gtpu / gtp_psc / end actions rss queues 1 2 end / mark id 1 / end\n+ #2\tflow create 0 ingress pattern eth / ipv6 src is ::12 dst is ::32 / udp / gtpu / gtp_psc / end actions rss queues 3 4 5 6 end / mark id 2 / end\n+ #3\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.23 dst is 192.168.0.33 / udp / gtpu / gtp_psc / end actions queue index 7 / mark id 3 / end\n+ #4\tflow create 0 ingress pattern eth / ipv6 src is 2001::4 dst is ::14 / udp / gtpu / gtp_psc / end actions queue index 8 / mark id 4 / end\n+ #5\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.25 dst is 192.168.0.35 / udp / gtpu / end actions passthru / mark id 5 / end\n+ #6\tflow create 0 ingress pattern eth / ipv6 src is ::16 dst is ::36 / udp / gtpu / end actions passthru / mark id 6 / end\n+ #7\tflow create 0 ingress pattern eth / ipv4 src is 192.168.0.27 dst is 192.168.0.37 / udp / gtpu / end actions drop / end\n+ #8\tflow create 0 ingress pattern eth / ipv6 src is 2001::8 dst is ::38 / udp / gtpu / end actions drop / end\n+\n+Matched packets::\n+\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.21\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::12\", dst=\"::32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.23\", dst=\"192.168.0.33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::4\", dst=\"::14\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.25\", dst=\"192.168.0.35\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::16\", dst=\"::36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.27\", dst=\"192.168.0.37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::8\", dst=\"::38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Mismatched packets::\n+\n+ p_gtpu1 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.22\", dst=\"192.168.0.32\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IPv6()/UDP()/Raw('x'*20)\n+ p_gtpu2 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::13\", dst=\"::33\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/TCP()/Raw('x'*20)\n+ p_gtpu3 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.24\", dst=\"192.168.0.34\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=1, qos_flow=0x33)/IPv6()/Raw('x'*20)\n+ p_gtpu4 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::5\", dst=\"::15\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/GTP_PDUSession_ExtensionHeader(pdu_type=0, qos_flow=0x33)/IP()/TCP()/Raw('x'*20)\n+ p_gtpu5 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.26\", dst=\"192.168.0.36\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/Raw('x'*20)\n+ p_gtpu6 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"::17\", dst=\"::37\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IP()/ICMP()/Raw('x'*20)\n+ p_gtpu7 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.28\", dst=\"192.168.0.38\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+ p_gtpu8 = Ether(src=\"a4:bf:01:51:27:ca\", dst=\"00:11:22:33:44:55\")/IPv6(src=\"2001::9\", dst=\"::39\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12)/IPv6()/IPv6ExtHdrFragment()/Raw('x'*20)\n+\n+Test steps as subcase 1.\n+\n \n Test case: L2 Ethertype pattern\n ===============================\n", "prefixes": [] }{ "id": 84358, "url": "