get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 110883,
    "url": "https://patches.dpdk.org/api/patches/110883/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220508074839.6965-14-ndabilpuram@marvell.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20220508074839.6965-14-ndabilpuram@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220508074839.6965-14-ndabilpuram@marvell.com",
    "date": "2022-05-08T07:48:25",
    "name": "[v5,14/28] net/cnxk: fix roundup size with transport mode",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "81557dccfd6d5fe1708b30610f1cb5e30027afeb",
    "submitter": {
        "id": 1202,
        "url": "https://patches.dpdk.org/api/people/1202/?format=api",
        "name": "Nithin Dabilpuram",
        "email": "ndabilpuram@marvell.com"
    },
    "delegate": {
        "id": 310,
        "url": "https://patches.dpdk.org/api/users/310/?format=api",
        "username": "jerin",
        "first_name": "Jerin",
        "last_name": "Jacob",
        "email": "jerinj@marvell.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220508074839.6965-14-ndabilpuram@marvell.com/mbox/",
    "series": [
        {
            "id": 22839,
            "url": "https://patches.dpdk.org/api/series/22839/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=22839",
            "date": "2022-05-08T07:48:12",
            "name": "[v5,01/28] common/cnxk: add multi channel support for SDP send queues",
            "version": 5,
            "mbox": "https://patches.dpdk.org/series/22839/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/110883/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/110883/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 AD813A050C;\n\tSun,  8 May 2022 09:50:10 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 593264286A;\n\tSun,  8 May 2022 09:49:26 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173])\n by mails.dpdk.org (Postfix) with ESMTP id A47F842872;\n Sun,  8 May 2022 09:49:24 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id\n 2485QDrV023654;\n Sun, 8 May 2022 00:49:23 -0700",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3fwy5j13qw-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Sun, 08 May 2022 00:49:23 -0700",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Sun, 8 May 2022 00:49:21 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend\n Transport; Sun, 8 May 2022 00:49:21 -0700",
            "from hyd1588t430.marvell.com (unknown [10.29.52.204])\n by maili.marvell.com (Postfix) with ESMTP id E58883F7050;\n Sun,  8 May 2022 00:49:18 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-type; s=pfpt0220; bh=ohpbLdJE8dTaeQM8rrEWn7HUf3/Q3N8qybWaVsMNxw8=;\n b=dV8havfdH1Zy2S35sKz+OGzFWtqSfpYiPKo0lE3uDzj0EDDwsHkyT0u/ibJfcLzmnP7U\n O6AWqt4VIXoZn9mHggG8QXN9ZQCtHv4flAaGYfMIJOkDC5/lsopBJhEtDw+AoLYaLH4W\n cimR27rGqXEeNmViGM9Iy2kNpsawTMAIkEEnlZe3xHBJxCQacdEbNCrF1/3UW/+iL5D5\n l52I+0h9pYWkqfUFo5W/j+lM2qt22BFVZHpCqbFllt/PgGAHt5BwoSLhJ3wo2q0yZmsK\n JoMTqhyyaOVlppnVnPTGzRtNnFxtT2FMjAQqpMRILqP/7n2Y3QS2j592h/TEkZ2RqjLD 6g==",
        "From": "Nithin Dabilpuram <ndabilpuram@marvell.com>",
        "To": "<jerinj@marvell.com>, Nithin Dabilpuram <ndabilpuram@marvell.com>, \"Kiran\n Kumar K\" <kirankumark@marvell.com>, Sunil Kumar Kori <skori@marvell.com>,\n Satha Rao <skoteshwar@marvell.com>",
        "CC": "<dev@dpdk.org>, <stable@dpdk.org>",
        "Subject": "[PATCH v5 14/28] net/cnxk: fix roundup size with transport mode",
        "Date": "Sun, 8 May 2022 13:18:25 +0530",
        "Message-ID": "<20220508074839.6965-14-ndabilpuram@marvell.com>",
        "X-Mailer": "git-send-email 2.8.4",
        "In-Reply-To": "<20220508074839.6965-1-ndabilpuram@marvell.com>",
        "References": "<20220419055921.10566-1-ndabilpuram@marvell.com>\n <20220508074839.6965-1-ndabilpuram@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "ZHaJY5wFIHoov2cHTMKR2PqreWoc5bHc",
        "X-Proofpoint-GUID": "ZHaJY5wFIHoov2cHTMKR2PqreWoc5bHc",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514\n definitions=2022-05-08_02,2022-05-06_01,2022-02-23_01",
        "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": "For transport mode, roundup needs to be based on L4 data\nand shouldn't include L3 length.\nBy including l3 length, rlen that is calculated and put in\nsend hdr would cross the final length of the packet in some\nscenarios where padding is necessary.\nAlso when outer and inner checksum offload flags are enabled,\nget the l2_len and l3_len from il3ptr and il4ptr.\n\nFixes: 55bfac717c72 (\"net/cnxk: support Tx security offload on cn10k\")\nCc: stable@dpdk.org\n\nSigned-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>\n---\n drivers/net/cnxk/cn10k_tx.h | 34 ++++++++++++++++++++++++++--------\n 1 file changed, 26 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/net/cnxk/cn10k_tx.h b/drivers/net/cnxk/cn10k_tx.h\nindex feaa41f..ae0573f 100644\n--- a/drivers/net/cnxk/cn10k_tx.h\n+++ b/drivers/net/cnxk/cn10k_tx.h\n@@ -248,23 +248,29 @@ cn10k_nix_prep_sec_vec(struct rte_mbuf *m, uint64x2_t *cmd0, uint64x2_t *cmd1,\n \tuint32_t pkt_len, dlen_adj, rlen;\n \tuint8_t l3l4type, chksum;\n \tuint64x2_t cmd01, cmd23;\n+\tuint8_t l2_len, l3_len;\n \tuintptr_t dptr, nixtx;\n \tuint64_t ucode_cmd[4];\n \tuint64_t *laddr;\n-\tuint8_t l2_len;\n \tuint16_t tag;\n \tuint64_t sa;\n \n \tsess_priv.u64 = *rte_security_dynfield(m);\n \n \tif (flags & NIX_TX_NEED_SEND_HDR_W1) {\n-\t\tl2_len = vgetq_lane_u8(*cmd0, 8);\n \t\t/* Extract l3l4type either from il3il4type or ol3ol4type */\n \t\tif (flags & NIX_TX_OFFLOAD_L3_L4_CSUM_F &&\n-\t\t    flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F)\n+\t\t    flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) {\n+\t\t\tl2_len = vgetq_lane_u8(*cmd0, 10);\n+\t\t\t/* L4 ptr from send hdr includes l2 and l3 len */\n+\t\t\tl3_len = vgetq_lane_u8(*cmd0, 11) - l2_len;\n \t\t\tl3l4type = vgetq_lane_u8(*cmd0, 13);\n-\t\telse\n+\t\t} else {\n+\t\t\tl2_len = vgetq_lane_u8(*cmd0, 8);\n+\t\t\t/* L4 ptr from send hdr includes l2 and l3 len */\n+\t\t\tl3_len = vgetq_lane_u8(*cmd0, 9) - l2_len;\n \t\t\tl3l4type = vgetq_lane_u8(*cmd0, 12);\n+\t\t}\n \n \t\tchksum = (l3l4type & 0x1) << 1 | !!(l3l4type & 0x30);\n \t\tchksum = ~chksum;\n@@ -273,6 +279,7 @@ cn10k_nix_prep_sec_vec(struct rte_mbuf *m, uint64x2_t *cmd0, uint64x2_t *cmd1,\n \t\t*cmd0 = vsetq_lane_u16(0, *cmd0, 6);\n \t} else {\n \t\tl2_len = m->l2_len;\n+\t\tl3_len = m->l3_len;\n \t}\n \n \t/* Retrieve DPTR */\n@@ -281,6 +288,8 @@ cn10k_nix_prep_sec_vec(struct rte_mbuf *m, uint64x2_t *cmd0, uint64x2_t *cmd1,\n \n \t/* Calculate dlen adj */\n \tdlen_adj = pkt_len - l2_len;\n+\t/* Exclude l3 len from roundup for transport mode */\n+\tdlen_adj -= sess_priv.mode ? 0 : l3_len;\n \trlen = (dlen_adj + sess_priv.roundup_len) +\n \t       (sess_priv.roundup_byte - 1);\n \trlen &= ~(uint64_t)(sess_priv.roundup_byte - 1);\n@@ -360,10 +369,10 @@ cn10k_nix_prep_sec(struct rte_mbuf *m, uint64_t *cmd, uintptr_t *nixtx_addr,\n \tuint8_t l3l4type, chksum;\n \tuint64x2_t cmd01, cmd23;\n \tunion nix_send_sg_s *sg;\n+\tuint8_t l2_len, l3_len;\n \tuintptr_t dptr, nixtx;\n \tuint64_t ucode_cmd[4];\n \tuint64_t *laddr;\n-\tuint8_t l2_len;\n \tuint16_t tag;\n \tuint64_t sa;\n \n@@ -376,13 +385,19 @@ cn10k_nix_prep_sec(struct rte_mbuf *m, uint64_t *cmd, uintptr_t *nixtx_addr,\n \t\tsg = (union nix_send_sg_s *)&cmd[2];\n \n \tif (flags & NIX_TX_NEED_SEND_HDR_W1) {\n-\t\tl2_len = cmd[1] & 0xFF;\n \t\t/* Extract l3l4type either from il3il4type or ol3ol4type */\n \t\tif (flags & NIX_TX_OFFLOAD_L3_L4_CSUM_F &&\n-\t\t    flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F)\n+\t\t    flags & NIX_TX_OFFLOAD_OL3_OL4_CSUM_F) {\n+\t\t\tl2_len = (cmd[1] >> 16) & 0xFF;\n+\t\t\t/* L4 ptr from send hdr includes l2 and l3 len */\n+\t\t\tl3_len = ((cmd[1] >> 24) & 0xFF) - l2_len;\n \t\t\tl3l4type = (cmd[1] >> 40) & 0xFF;\n-\t\telse\n+\t\t} else {\n+\t\t\tl2_len = cmd[1] & 0xFF;\n+\t\t\t/* L4 ptr from send hdr includes l2 and l3 len */\n+\t\t\tl3_len = ((cmd[1] >> 8) & 0xFF) - l2_len;\n \t\t\tl3l4type = (cmd[1] >> 32) & 0xFF;\n+\t\t}\n \n \t\tchksum = (l3l4type & 0x1) << 1 | !!(l3l4type & 0x30);\n \t\tchksum = ~chksum;\n@@ -391,6 +406,7 @@ cn10k_nix_prep_sec(struct rte_mbuf *m, uint64_t *cmd, uintptr_t *nixtx_addr,\n \t\tcmd[1] &= ~(0xFFFFUL << 32);\n \t} else {\n \t\tl2_len = m->l2_len;\n+\t\tl3_len = m->l3_len;\n \t}\n \n \t/* Retrieve DPTR */\n@@ -399,6 +415,8 @@ cn10k_nix_prep_sec(struct rte_mbuf *m, uint64_t *cmd, uintptr_t *nixtx_addr,\n \n \t/* Calculate dlen adj */\n \tdlen_adj = pkt_len - l2_len;\n+\t/* Exclude l3 len from roundup for transport mode */\n+\tdlen_adj -= sess_priv.mode ? 0 : l3_len;\n \trlen = (dlen_adj + sess_priv.roundup_len) +\n \t       (sess_priv.roundup_byte - 1);\n \trlen &= ~(uint64_t)(sess_priv.roundup_byte - 1);\n",
    "prefixes": [
        "v5",
        "14/28"
    ]
}