get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 120144,
    "url": "https://patches.dpdk.org/api/patches/120144/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20221125091226.383666-2-ke1.xu@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": "<20221125091226.383666-2-ke1.xu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20221125091226.383666-2-ke1.xu@intel.com",
    "date": "2022-11-25T09:12:25",
    "name": "[V2,1/2] test_plans/vf_offload: add test cases for tunneling packets",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "11d8b71db0ab93ea15f9cca51df9f47b20f703a3",
    "submitter": {
        "id": 2810,
        "url": "https://patches.dpdk.org/api/people/2810/?format=api",
        "name": "Ke Xu",
        "email": "ke1.xu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20221125091226.383666-2-ke1.xu@intel.com/mbox/",
    "series": [
        {
            "id": 25891,
            "url": "https://patches.dpdk.org/api/series/25891/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=25891",
            "date": "2022-11-25T09:12:24",
            "name": "update existing cases and add new cases to validate vf tunneling packets",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/25891/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/120144/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/120144/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 E28BBA0093;\n\tFri, 25 Nov 2022 10:14:01 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DBD1A410EA;\n\tFri, 25 Nov 2022 10:14:01 +0100 (CET)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id 031DD40150\n for <dts@dpdk.org>; Fri, 25 Nov 2022 10:13:59 +0100 (CET)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 25 Nov 2022 01:13:59 -0800",
            "from dpdk-xuke-lab.sh.intel.com ([10.67.114.198])\n by orsmga003.jf.intel.com with ESMTP; 25 Nov 2022 01:13:57 -0800"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1669367640; x=1700903640;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=9Y/0fhpl5cR9yZTKwizS1VcudfenuYEFn0OFHNej9yo=;\n b=gyN2+HX//c2MR60BQODPqwfk59azMzX6r4xhWGpx9SJbQtmCbf/rvSBL\n UuxV0ygo0GEUYSCFXc6MVVRieL32GMWQpi0fa5+uZWfJaj3BuR57s7+f8\n usa1nGhTKh4wIMYX7rT4J1zhymmY1tBqZsf7yc7tVxU5Sr4wHKJ+pfuf0\n 4HptACC37jjRz+SVTcV0AGIh7Ldgj5puBxqmdcArNapqPyX7vHgzNjPZ2\n NANg0T16ouF0YqumAxoO1Addlk8pinFhNfsJ9UYzOCptGTJGPWltOXHJo\n ughwJT5y4oiATUZ/6y1qBQASkdO2I1g4SohgJLs/9GSRH9xpCnVUHcygy Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10541\"; a=\"341348006\"",
            "E=Sophos;i=\"5.96,193,1665471600\"; d=\"scan'208\";a=\"341348006\"",
            "E=McAfee;i=\"6500,9779,10541\"; a=\"593169064\"",
            "E=Sophos;i=\"5.96,193,1665471600\"; d=\"scan'208\";a=\"593169064\""
        ],
        "X-ExtLoop1": "1",
        "From": "Ke Xu <ke1.xu@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "qi.fu@intel.com,\n\tlijuan.tu@intel.com,\n\tke1.xu@intel.com",
        "Subject": "[DTS][PATCH V2 1/2] test_plans/vf_offload: add test cases for\n tunneling packets",
        "Date": "Fri, 25 Nov 2022 17:12:25 +0800",
        "Message-Id": "<20221125091226.383666-2-ke1.xu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20221125091226.383666-1-ke1.xu@intel.com>",
        "References": "<20221125091226.383666-1-ke1.xu@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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"
    },
    "content": "DPDK will support outer checksum offload and tunneling TSO in release\n 22.11, this commit is intended to cover the new scenario of test these\n features.\n\nAdded new case HW tunneling checksum offload check, covering tunnel\n packets for HW checksum offload.\n\nAdded new packets to TSO prerequisites and added new case csum fwd\n engine, use tunnel TSO, covering tunnel packets for HW TSO.\n\nSigned-off-by: Ke Xu <ke1.xu@intel.com>\n---\n test_plans/vf_offload_test_plan.rst | 225 ++++++++++++++++++++++++++++\n 1 file changed, 225 insertions(+)",
    "diff": "diff --git a/test_plans/vf_offload_test_plan.rst b/test_plans/vf_offload_test_plan.rst\nindex c5e720f2..8a5e36af 100644\n--- a/test_plans/vf_offload_test_plan.rst\n+++ b/test_plans/vf_offload_test_plan.rst\n@@ -113,6 +113,96 @@ be validated as pass by the tester.\n The IPv4 source address will not be changed by testpmd.\n \n \n+Test Case: HW tunneling checksum offload check\n+==============================================\n+Start testpmd and enable checksum offload on rx port.\n+\n+Setup the ``csum`` forwarding mode::\n+\n+  testpmd> set fwd csum\n+  Set csum packet forwarding mode\n+\n+Enable the IPv4/UDP/TCP/SCTP HW checksum offload on port 0::\n+\n+  testpmd> port stop all\n+  testpmd> csum set ip hw 0\n+  testpmd> csum set tcp hw 0\n+  testpmd> csum set udp hw 0\n+  testpmd> csum set sctp hw 0\n+  testpmd> csum set outer-ip hw 0\n+  testpmd> csum set outer-udp hw 0\n+  testpmd> csum parse-tunnel on 0\n+  testpmd> port start all\n+  testpmd> set promisc 0 on\n+  testpmd> start\n+    csum packet forwarding - CRC stripping disabled - packets/burst=32\n+    nb forwarding cores=1 - nb forwarding ports=10\n+    RX queues=1 - RX desc=128 - RX free threshold=64\n+    RX threshold registers: pthresh=8 hthresh=8 wthresh=4\n+    TX queues=1 - TX desc=512 - TX free threshold=0\n+    TX threshold registers: pthresh=32 hthresh=8 wthresh=8\n+\n+Configure the traffic generator to send the multiple packets for the following\n+combination with inner package of:\n+\n+  +----------------+----------------------------------------+\n+  | packet type    | packet organization                    |\n+  +================+========================================+\n+  |                | IPv4 / UDP / payload                   |\n+  |                +----------------------------------------+\n+  |                | IPv4 / TCP / payload                   |\n+  |                +----------------------------------------+\n+  | inner packets  | IPv4 / SCTP / payload                  |\n+  | for checksum   +----------------------------------------+\n+  | offload test   | IPv6 / UDP / payload                   |\n+  |                +----------------------------------------+\n+  |                | IPv6 / TCP / payload                   |\n+  |                +----------------------------------------+\n+  |                | IPv6 / SCTP / payload                  |\n+  +----------------+----------------------------------------+\n+\n+And outer or tunneling package of :\n+\n+  +----------------+----------------------------------------+\n+  | packet type    | packet organization                    |\n+  +================+========================================+\n+  |                | Ether / IPv4 / UDP / VXLAN / Ether     |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / UDP / VXLAN / Ether     |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / GRE                     |\n+  | outer and      +----------------------------------------+\n+  | tunneling      | Ether / IPv4 / GRE / Ether             |\n+  | packets        +----------------------------------------+\n+  | for checksum   | Ether / IPv6 / GRE                     |\n+  | offload test   +----------------------------------------+\n+  |                | Ether / IPv6 / GRE / Ether             |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / NVGRE                   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / NVGRE / Ether           |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / NVGRE                   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / NVGRE / Ether           |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / UDP / GTPU              |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / UDP / GTPU              |\n+  +----------------+----------------------------------------+\n+  \n+Notice that VxLAN needs DCF to configure, so testing of VxLAN may need to perform\n+on DCF.\n+\n+Send packets with incorrect checksum on outer IPv4, outer UDP (if exists), inner\n+IP, inner L4, verify dpdk can rx it and report the checksum error,\n+verify that the same number of packet are correctly received on the traffic\n+generator side. And IPv4 checksum, TCP checksum, UDP checksum, SCTP checksum need\n+be validated as pass by the tester.\n+\n+The IPv4 source address will not be changed by testpmd.\n+\n+\n Test Case: SW checksum offload check\n ====================================\n \n@@ -183,6 +273,91 @@ and checksum on rx port. The test commands is below::\n   # Enable TSO on tx port\n   testpmd> tso set 800 1\n \n+For tunneling cases, add tunneling support on csum and enable tunnel tso as\n+below::\n+\n+  # Enable hw checksum for tunneling on rx port\n+  testpmd> port stop all\n+  testpmd> csum set outer-ip hw 0\n+  testpmd> csum set outer-udp hw 0\n+  testpmd> csum parse-tunnel on 0\n+  testpmd> port start all\n+  testpmd> tunnel_tso set 800 1\n+\n+Configure the traffic generator to send the multiple packets for the following\n+combination:\n+\n+  +----------------+----------------------------------------+\n+  | packet type    | packet organization                    |\n+  +================+========================================+\n+  |                | Ether / IPv4 / TCP / payload len 128   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / TCP / payload len 800   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / TCP / payload len 801   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / TCP / payload len 1700  |\n+  | non-tunneling  +----------------------------------------+\n+  | packets for    | Ether / IPv4 / TCP / payload len 2500  |\n+  | TSO test       +----------------------------------------+\n+  |                | Ether / IPv6 / TCP / payload len 128   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / TCP / payload len 800   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / TCP / payload len 801   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / TCP / payload len 1700  |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / TCP / payload len 2500  |\n+  +----------------+----------------------------------------+\n+  |                | Ether / IPv4 / UDP / VXLAN / Ether     |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / UDP / VXLAN / Ether     |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / GRE                     |\n+  | outer and      +----------------------------------------+\n+  | tunneling      | Ether / IPv4 / GRE / Ether             |\n+  | packets        +----------------------------------------+\n+  | for tso test   | Ether / IPv6 / GRE                     |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / GRE / Ether             |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / NVGRE                   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / NVGRE / Ether           |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / NVGRE                   |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / NVGRE / Ether           |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv4 / UDP / GTPU              |\n+  |                +----------------------------------------+\n+  |                | Ether / IPv6 / UDP / GTPU              |\n+  +----------------+----------------------------------------+\n+  |                | IPv4 / TCP / payload len 128           |\n+  |                +----------------------------------------+\n+  |                | IPv4 / TCP / payload len 800           |\n+  |                +----------------------------------------+\n+  |                | IPv4 / TCP / payload len 801           |\n+  |                +----------------------------------------+\n+  |                | IPv4 / TCP / payload len 1700          |\n+  |                +----------------------------------------+\n+  | inner packets  | IPv4 / TCP / payload len 2500          |\n+  | for TSO test   +----------------------------------------+\n+  |                | IPv6 / TCP / payload len 128           |\n+  |                +----------------------------------------+\n+  |                | IPv6 / TCP / payload len 800           |\n+  |                +----------------------------------------+\n+  |                | IPv6 / TCP / payload len 801           |\n+  |                +----------------------------------------+\n+  |                | IPv6 / TCP / payload len 1700          |\n+  |                +----------------------------------------+\n+  |                | IPv6 / TCP / payload len 2500          |\n+  +----------------+----------------------------------------+\n+  \n+Notice that VxLAN needs DCF to configure, so testing of VxLAN may need to perform\n+on DCF.\n+\n \n Test case: csum fwd engine, use TSO\n ===================================\n@@ -226,3 +401,53 @@ Test IPv4() in scapy::\n Test IPv6() in scapy::\n \n     sendp([Ether(dst=\"%s\", src=\"52:00:00:00:00:00\")/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1021,dport=1021)/Raw(load=\"\\x50\"*%s)], iface=\"%s\")\n+\n+\n+Test case: csum fwd engine, use tunnel TSO\n+==========================================\n+\n+This test uses ``Scapy`` to send out one large tunneled TCP package. The dut\n+forwards package with tunnel TSO enable on tx port while rx port turns checksum\n+on. After package send out by TSO on tx port, the tester receives multiple small\n+TCP package.\n+\n+Turn off tx port by ethtool on tester::\n+\n+  ethtool -K <tx port> rx off tx off tso off gso off gro off lro off\n+  ip l set <tx port> up\n+\n+Capture package rx port on tester::\n+\n+  tcpdump -n -e -i <rx port> -s 0 -w /tmp/cap\n+\n+Launch the userland ``testpmd`` application on DUT as follows::\n+\n+  testpmd> set verbose 1\n+  # Enable hw checksum on rx port\n+  testpmd> port stop all\n+  testpmd> csum set ip hw 0\n+  testpmd> csum set tcp hw 0\n+  testpmd> csum set udp hw 0\n+  testpmd> csum set sctp hw 0\n+  testpmd> csum set outer-ip hw 0\n+  testpmd> csum set outer-udp hw 0\n+  testpmd> csum parse-tunnel on 0\n+  testpmd> set promisc 0 on\n+  testpmd> port start all\n+\n+  # Enable TSO on tx port\n+  testpmd> tunnel_tso set 800 1\n+  # Set fwd engine and start\n+\n+  testpmd> set fwd csum\n+  testpmd> start\n+\n+Test IPv4() in scapy::\n+\n+  for one_outer_packet in outer_packet_list:\n+    sendp([Ether(dst=\"%s\", src=\"52:00:00:00:00:00\")/one_outer_packet/IP(src=\"192.168.1.1\",dst=\"192.168.1.2\")/UDP(sport=1021,dport=1021)/Raw(load=\"\\x50\"*%s)], iface=\"%s\")\n+\n+Test IPv6() in scapy::\n+\n+  for one_outer_packet in outer_packet_list:\n+    sendp([Ether(dst=\"%s\", src=\"52:00:00:00:00:00\")/one_outer_packet/IPv6(src=\"FE80:0:0:0:200:1FF:FE00:200\", dst=\"3555:5555:6666:6666:7777:7777:8888:8888\")/UDP(sport=1021,dport=1021)/Raw(load=\"\\x50\"*%s)], iface=\"%s\")\n",
    "prefixes": [
        "V2",
        "1/2"
    ]
}