get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 135217,
    "url": "http://patches.dpdk.org/api/patches/135217/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231214221012.9598-9-jspewock@iol.unh.edu/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231214221012.9598-9-jspewock@iol.unh.edu>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231214221012.9598-9-jspewock@iol.unh.edu",
    "date": "2023-12-14T22:10:13",
    "name": "[v4,7/7] dts: add scatter test suite",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "aac20d5ffd5c87e95c9fd44e35c68d98739288b9",
    "submitter": {
        "id": 2772,
        "url": "http://patches.dpdk.org/api/people/2772/?format=api",
        "name": "Jeremy Spewock",
        "email": "jspewock@iol.unh.edu"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231214221012.9598-9-jspewock@iol.unh.edu/mbox/",
    "series": [
        {
            "id": 30569,
            "url": "http://patches.dpdk.org/api/series/30569/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30569",
            "date": "2023-12-14T22:10:13",
            "name": null,
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/30569/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/135217/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/135217/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-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 94947436F4;\n\tThu, 14 Dec 2023 23:12:04 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9DDB143385;\n\tThu, 14 Dec 2023 23:11:31 +0100 (CET)",
            "from mail-pf1-f227.google.com (mail-pf1-f227.google.com\n [209.85.210.227])\n by mails.dpdk.org (Postfix) with ESMTP id EA4D74337B\n for <dev@dpdk.org>; Thu, 14 Dec 2023 23:11:27 +0100 (CET)",
            "by mail-pf1-f227.google.com with SMTP id\n d2e1a72fcca58-6cebcf8a48aso7432678b3a.3\n for <dev@dpdk.org>; Thu, 14 Dec 2023 14:11:27 -0800 (PST)",
            "from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84])\n by smtp-relay.gmail.com with ESMTPS id\n a189-20020a624dc6000000b006ce4fe5858csm1733201pfb.20.2023.12.14.14.11.27\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Thu, 14 Dec 2023 14:11:27 -0800 (PST)",
            "from iol.unh.edu (unknown\n [IPv6:2606:4100:3880:1271:90f9:1b64:f6e6:867f])\n by postal.iol.unh.edu (Postfix) with ESMTP id 5374A605C311;\n Thu, 14 Dec 2023 17:11:26 -0500 (EST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1702591887; x=1703196687; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=pevtUiibpYkj+q7d6fx0I7sMOIG/sZC5tn+zdVPUPY8=;\n b=GUmSvVaCT6Nk4dHHPA0yh0z/nz2wH6yCRwD/eGWss3SYU+MMQcC6kPt/RGDntBnjHg\n MZlaw6iO+6SQJnS5ADSrlHRdJq0pQ8q/TQ7x2CQ03apOtVzNyZqwGf9600pLliH4LJeh\n cE1PIK5JNLIRWC0PlfrWDJVs75bFE7nFWakZg=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1702591887; x=1703196687;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=pevtUiibpYkj+q7d6fx0I7sMOIG/sZC5tn+zdVPUPY8=;\n b=Wb0W/+qhY8a142FG8O68JBGu8DuWN4LtFmRrnGThObebVsDRkw2cibRbvZmNzJKTP1\n bBjIexuaCJWGae7YDJ1o1D5UWrZW/bBQbXo9iKIaHwCn9af31yQJ4IOKhuKxr13mfzB2\n t9X1/xMfSlQmwxmxKvKgABNNpQMaMVL8TKLlPJ90vQHylp5/yvR7CzeF/6V1iOxRGbOy\n fNdaxJR+k3+cTvPLwyXWuk/HLnGv+BFKKUD8EN1LDRk6/kYFpWm0dt+TqHkrm+8YQukN\n LXURJ9R/YOYB8vHXrNFMnXU49WaDt8+DT2ZbVPoHOaWVL7+iR6y/Y8fSjjia2LbxpS5p\n +jDw==",
        "X-Gm-Message-State": "AOJu0YwL1Obcy1JUMpJNUm0aDb0ehl2GuZCHQxYfAPSCufHtOVcXtQlN\n 5LKFSs9BBIxdhGQRuy5DZUr9cd5prBixKAzrn5+4E0sSEFkmeg==",
        "X-Google-Smtp-Source": "\n AGHT+IHYyKaRmzrqo3QF1aybcO5dVpGLFX6MlsMZ6ZJVF7JhFTmBnBDcUbJFaVpFwcM9uZq4EMinWz/3rcHj",
        "X-Received": "by 2002:a05:6a00:2301:b0:6ce:f81c:a436 with SMTP id\n h1-20020a056a00230100b006cef81ca436mr11614491pfh.21.1702591887184;\n Thu, 14 Dec 2023 14:11:27 -0800 (PST)",
        "X-Relaying-Domain": "iol.unh.edu",
        "From": "jspewock@iol.unh.edu",
        "To": "Honnappa.Nagarahalli@arm.com, juraj.linkes@pantheon.tech,\n thomas@monjalon.net, wathsala.vithanage@arm.com, probb@iol.unh.edu,\n paul.szczepanek@arm.com, yoan.picchi@foss.arm.com, ferruh.yigit@amd.com,\n andrew.rybchenko@oktetlabs.ru",
        "Cc": "dev@dpdk.org,\n\tJeremy Spewock <jspewock@iol.unh.edu>",
        "Subject": "[PATCH v4 7/7] dts: add scatter test suite",
        "Date": "Thu, 14 Dec 2023 17:10:13 -0500",
        "Message-ID": "<20231214221012.9598-9-jspewock@iol.unh.edu>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20231113202833.12900-1-jspewock@iol.unh.edu>",
        "References": "<20231113202833.12900-1-jspewock@iol.unh.edu>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "From: Jeremy Spewock <jspewock@iol.unh.edu>\n\nThis test suite provides testing the support of scattered packets by\nPoll Mode Drivers using testpmd. It incorporates 5 different test cases\nwhich test the sending and receiving of packets with lengths that are\nless than the mbuf data buffer size, the same as the mbuf data buffer\nsize, and the mbuf data buffer size plus 1, 4, and 5. The goal of this\ntest suite is to align with the existing dts test plan for scattered\npackets within DTS.\n\nSigned-off-by: Jeremy Spewock <jspewock@iol.unh.edu>\n---\n dts/tests/TestSuite_pmd_buffer_scatter.py | 105 ++++++++++++++++++++++\n 1 file changed, 105 insertions(+)\n create mode 100644 dts/tests/TestSuite_pmd_buffer_scatter.py",
    "diff": "diff --git a/dts/tests/TestSuite_pmd_buffer_scatter.py b/dts/tests/TestSuite_pmd_buffer_scatter.py\nnew file mode 100644\nindex 0000000000..8e2a32a1aa\n--- /dev/null\n+++ b/dts/tests/TestSuite_pmd_buffer_scatter.py\n@@ -0,0 +1,105 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2023 University of New Hampshire\n+\n+\"\"\"Multi-segment packet scattering testing suite.\n+\n+Configure the Rx queues to have mbuf data buffers whose sizes are smaller than the maximum packet\n+size (currently set to 2048 to fit a full 1512-byte ethernet frame) and send a total of 5 packets\n+with lengths less than, equal to, and greater than the mbuf size (CRC included).\n+\"\"\"\n+import struct\n+\n+from scapy.layers.inet import IP  # type: ignore[import]\n+from scapy.layers.l2 import Ether  # type: ignore[import]\n+from scapy.packet import Raw  # type: ignore[import]\n+from scapy.utils import hexstr  # type: ignore[import]\n+\n+from framework.remote_session.remote.testpmd_shell import (\n+    TestPmdForwardingModes,\n+    TestPmdShell,\n+)\n+from framework.test_suite import TestSuite\n+\n+\n+class PmdBufferScatter(TestSuite):\n+    \"\"\"DPDK packet scattering test suite.\n+\n+    Attributes:\n+        mbsize: The size to se the mbuf to be.\n+    \"\"\"\n+\n+    mbsize: int\n+\n+    def set_up_suite(self) -> None:\n+        self.verify(\n+            len(self._port_links) > 1,\n+            \"Must have at least two port links to run scatter\",\n+        )\n+\n+        self.tg_node.main_session.configure_port_mtu(9000, self._tg_port_egress)\n+        self.tg_node.main_session.configure_port_mtu(9000, self._tg_port_ingress)\n+\n+    def scatter_pktgen_send_packet(self, pktsize: int) -> str:\n+        \"\"\"Generate and send packet to the SUT.\n+\n+        Functional test for scatter packets.\n+\n+        Args:\n+            pktsize: Size of the packet to generate and send.\n+        \"\"\"\n+        packet = Ether() / IP() / Raw()\n+        packet.getlayer(2).load = \"\"\n+        payload_len = pktsize - len(packet) - 4\n+        payload = [\"58\"] * payload_len\n+        # pack the payload\n+        for X_in_hex in payload:\n+            packet.load += struct.pack(\"=B\", int(\"%s%s\" % (X_in_hex[0], X_in_hex[1]), 16))\n+        load = hexstr(packet.getlayer(2), onlyhex=1)\n+        received_packets = self.send_packet_and_capture(packet)\n+        self.verify(len(received_packets) > 0, \"Did not receive any packets.\")\n+        load = hexstr(received_packets[0].getlayer(2), onlyhex=1)\n+\n+        return load\n+\n+    def pmd_scatter(self) -> None:\n+        \"\"\"Testpmd support of receiving and sending scattered multi-segment packets.\n+\n+        Support for scattered packets is shown by sending 5 packets of differing length\n+        where the length of the packet is calculated by taking mbuf-size + an offset. The\n+        offsets used in the test case are -1, 0, 1, 4, 5 respectively.\n+\n+        Test:\n+            Start testpmd and run functional test with preset mbsize.\n+        \"\"\"\n+        testpmd = self.sut_node.create_interactive_shell(\n+            TestPmdShell,\n+            app_parameters=(\n+                \"--mbcache=200 \"\n+                f\"--mbuf-size={self.mbsize} \"\n+                \"--max-pkt-len=9000 \"\n+                \"--port-topology=paired \"\n+                \"--tx-offloads=0x00008000\"\n+            ),\n+            privileged=True,\n+        )\n+        testpmd.set_forward_mode(TestPmdForwardingModes.mac)\n+        testpmd.start()\n+        link_is_up = testpmd.wait_link_status_up(0) and testpmd.wait_link_status_up(1)\n+        self.verify(link_is_up, \"Links never came up in TestPMD.\")\n+\n+        for offset in [-1, 0, 1, 4, 5]:\n+            recv_payload = self.scatter_pktgen_send_packet(self.mbsize + offset)\n+            self.verify(\n+                (\"58 \" * 8).strip() in recv_payload,\n+                \"Received packet had incorrect payload\",\n+            )\n+        testpmd.stop()\n+\n+    def test_scatter_mbuf_2048(self) -> None:\n+        \"\"\"Run :func:`~PmdBufferScatter.pmd_scatter` function after setting the `mbsize` to 2048.\"\"\"\n+        self.mbsize = 2048\n+        self.pmd_scatter()\n+\n+    def tear_down_suite(self) -> None:\n+        self.tg_node.main_session.configure_port_mtu(1500, self._tg_port_egress)\n+        self.tg_node.main_session.configure_port_mtu(1500, self._tg_port_ingress)\n",
    "prefixes": [
        "v4",
        "7/7"
    ]
}