Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/110721/?format=api
https://patches.dpdk.org/api/patches/110721/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220505125557.8828-20-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": "<20220505125557.8828-20-ndabilpuram@marvell.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20220505125557.8828-20-ndabilpuram@marvell.com", "date": "2022-05-05T12:55:49", "name": "[v3,20/28] net/cnxk: update olflags with L3/L4 csum offload", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": true, "hash": "d0e0a35ad019ae79ff408fea1bd6d6339bf4c016", "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/20220505125557.8828-20-ndabilpuram@marvell.com/mbox/", "series": [ { "id": 22796, "url": "https://patches.dpdk.org/api/series/22796/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=22796", "date": "2022-05-05T12:55:30", "name": "[v3,01/28] common/cnxk: add multi channel support for SDP send queues", "version": 3, "mbox": "https://patches.dpdk.org/series/22796/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/110721/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/110721/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 9FBA2A04FF;\n\tThu, 5 May 2022 14:58:00 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 806434281A;\n\tThu, 5 May 2022 14:57:02 +0200 (CEST)", "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174])\n by mails.dpdk.org (Postfix) with ESMTP id 088AE4281F\n for <dev@dpdk.org>; Thu, 5 May 2022 14:56:59 +0200 (CEST)", "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.17.1.5/8.16.1.2) with ESMTP id\n 24582H75012559\n for <dev@dpdk.org>; Thu, 5 May 2022 05:56:58 -0700", "from dc5-exch02.marvell.com ([199.233.59.182])\n by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3fuscx4ya6-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)\n for <dev@dpdk.org>; Thu, 05 May 2022 05:56:58 -0700", "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Thu, 5 May 2022 05:56:57 -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; Thu, 5 May 2022 05:56:57 -0700", "from hyd1588t430.marvell.com (unknown [10.29.52.204])\n by maili.marvell.com (Postfix) with ESMTP id D4CAA3F704C;\n Thu, 5 May 2022 05:56:54 -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=C/PHgs2NLXWE2k/8dn5hVKTSy3pYVhlcHJ2QrQ4/G5k=;\n b=CtJkDr7lxuxxHt3hPwO6gZdEX4fBmipava6LeXvbLgWxN+zgApfK+S/r0dh+Ue0p7RfU\n YhGXVbOaWlPyUT8TqW/HYiSj8Omou70QGSEUr6B+g74oDAEAqzz2v1DIkfBWVGz/XhNv\n 5/KcrXpbuQ55bmoCdXL/zX07ufnQzRRaNuKUILab/Mk2XDAazOZ/Rh4OIogVVqsKrWSk\n /+/8JjToOoWKaaBKqHWAeFv+iu1zjGuAQB9OaKyfp3eHEHnRMrwQflWhYWATnQmuRXsT\n VlfQpZ0oEehAt34FLOqRH2H/rlNPsuRSdiy3RK2RBNZXUeYwP9oRL5bMYMkgQI7kdbo/ vA==", "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>, Akhil Goyal <gakhil@marvell.com>", "Subject": "[PATCH v3 20/28] net/cnxk: update olflags with L3/L4 csum offload", "Date": "Thu, 5 May 2022 18:25:49 +0530", "Message-ID": "<20220505125557.8828-20-ndabilpuram@marvell.com>", "X-Mailer": "git-send-email 2.8.4", "In-Reply-To": "<20220505125557.8828-1-ndabilpuram@marvell.com>", "References": "<20220419055921.10566-1-ndabilpuram@marvell.com>\n <20220505125557.8828-1-ndabilpuram@marvell.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Proofpoint-GUID": "UWxZVxMgC1-NNt3J9smZfGnMRKf_hvSV", "X-Proofpoint-ORIG-GUID": "UWxZVxMgC1-NNt3J9smZfGnMRKf_hvSV", "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-05_05,2022-05-05_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": "From: Akhil Goyal <gakhil@marvell.com>\n\nWhen the packet is processed with inline IPsec offload,\nthe ol_flags were updated only with RTE_MBUF_F_RX_SEC_OFFLOAD.\nBut the hardware can also update the L3/L4 csum offload flags.\nHence, ol_flags are updated with RTE_MBUF_F_RX_IP_CKSUM_GOOD,\nRTE_MBUF_F_RX_L4_CKSUM_GOOD, etc based on the microcode completion\ncodes.\n\nSigned-off-by: Akhil Goyal <gakhil@marvell.com>\nSigned-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>\n---\n drivers/net/cnxk/cn10k_rx.h | 51 ++++++++++++++++++++++++++++++++++++++++++++-\n 1 file changed, 50 insertions(+), 1 deletion(-)", "diff": "diff --git a/drivers/net/cnxk/cn10k_rx.h b/drivers/net/cnxk/cn10k_rx.h\nindex 14b634e..00bec01 100644\n--- a/drivers/net/cnxk/cn10k_rx.h\n+++ b/drivers/net/cnxk/cn10k_rx.h\n@@ -42,6 +42,18 @@\n \t\t (uint64_t *)(((uintptr_t)((uint64_t *)(b))[i]) - (o)) : \\\n \t\t (uint64_t *)(((uintptr_t)(b)) + CQE_SZ(i) - (o)))\n \n+#define NIX_RX_SEC_UCC_CONST \\\n+\t((RTE_MBUF_F_RX_IP_CKSUM_BAD >> 1) << 8 | \\\n+\t ((RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_GOOD) >> 1) \\\n+\t\t << 24 | \\\n+\t ((RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_BAD) >> 1) \\\n+\t\t << 32 | \\\n+\t ((RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_GOOD) >> 1) \\\n+\t\t << 40 | \\\n+\t ((RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_GOOD) >> 1) \\\n+\t\t << 48 | \\\n+\t (RTE_MBUF_F_RX_IP_CKSUM_GOOD >> 1) << 56)\n+\n #ifdef RTE_LIBRTE_MEMPOOL_DEBUG\n static inline void\n nix_mbuf_validate_next(struct rte_mbuf *m)\n@@ -467,6 +479,11 @@ nix_sec_meta_to_mbuf_sc(uint64_t cq_w1, uint64_t cq_w5, const uint64_t sa_base,\n \t\t\t\t\t RTE_MBUF_F_RX_SEC_OFFLOAD :\n \t\t\t\t\t (RTE_MBUF_F_RX_SEC_OFFLOAD |\n \t\t\t\t\t RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED));\n+\n+\t\t\tucc = hdr->w3.uc_ccode;\n+\t\t\tinner->ol_flags |= ((ucc & 0xF0) == 0xF0) ?\n+\t\t\t\t((NIX_RX_SEC_UCC_CONST >> ((ucc & 0xF) << 3))\n+\t\t\t\t & 0xFF) << 1 : 0;\n \t\t} else if (!(hdr->w0.err_sum) && !(hdr->w0.reas_sts)) {\n \t\t\t/* Reassembly success */\n \t\t\tinner = nix_sec_reassemble_frags(hdr, cq_w1, cq_w5,\n@@ -529,6 +546,11 @@ nix_sec_meta_to_mbuf_sc(uint64_t cq_w1, uint64_t cq_w5, const uint64_t sa_base,\n \t\t\t\t (RTE_MBUF_F_RX_SEC_OFFLOAD |\n \t\t\t\t RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED));\n \n+\t\tucc = hdr->w3.uc_ccode;\n+\t\tinner->ol_flags |= ((ucc & 0xF0) == 0xF0) ?\n+\t\t\t((NIX_RX_SEC_UCC_CONST >> ((ucc & 0xF) << 3))\n+\t\t\t & 0xFF) << 1 : 0;\n+\n \t\t/* Store meta in lmtline to free\n \t\t * Assume all meta's from same aura.\n \t\t */\n@@ -1313,7 +1335,26 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,\n \t\t\tsa23 = vaddq_u64(sa23, vdupq_n_u64(sa_base));\n \n \t\t\tconst uint8x16_t tbl = {\n-\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_SA_SOFTEXP_FIRST */\n+\t\t\t\t0,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_PKT_IP_BADCSUM */\n+\t\t\t\tRTE_MBUF_F_RX_IP_CKSUM_BAD >> 1,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_SA_SOFTEXP_AGAIN */\n+\t\t\t\t0,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_PKT_L4_GOODCSUM */\n+\t\t\t\t(RTE_MBUF_F_RX_IP_CKSUM_GOOD |\n+\t\t\t\t RTE_MBUF_F_RX_L4_CKSUM_GOOD) >> 1,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_PKT_L4_BADCSUM */\n+\t\t\t\t(RTE_MBUF_F_RX_IP_CKSUM_GOOD |\n+\t\t\t\t RTE_MBUF_F_RX_L4_CKSUM_BAD) >> 1,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_PKT_UDPESP_NZCSUM */\n+\t\t\t\t(RTE_MBUF_F_RX_IP_CKSUM_GOOD |\n+\t\t\t\t RTE_MBUF_F_RX_L4_CKSUM_GOOD) >> 1,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_PKT_UDP_ZEROCSUM */\n+\t\t\t\t(RTE_MBUF_F_RX_IP_CKSUM_GOOD |\n+\t\t\t\t RTE_MBUF_F_RX_L4_CKSUM_GOOD) >> 1,\n+\t\t\t\t/* ROC_IE_OT_UCC_SUCCESS_PKT_IP_GOODCSUM */\n+\t\t\t\tRTE_MBUF_F_RX_IP_CKSUM_GOOD >> 1,\n \t\t\t\t/* HW_CCODE -> RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED */\n \t\t\t\t1, 0, 1, 1, 1, 1, 0, 1,\n \t\t\t};\n@@ -1419,6 +1460,8 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,\n \t\t\t\tnix_sec_meta_to_mbuf(cq0_w1, cq0_w5, sa, cpth0,\n \t\t\t\t\t\t mbuf0, &f0, &ol_flags0,\n \t\t\t\t\t\t flags, &rearm0);\n+\t\t\t\tol_flags0 |= ((uint64_t)vget_lane_u8(ucc, 0))\n+\t\t\t\t\t << 1;\n \t\t\t\tol_flags0 |= (RTE_MBUF_F_RX_SEC_OFFLOAD |\n \t\t\t\t\t(uint64_t)vget_lane_u8(ucc, 1) << 19);\n \t\t\t}\n@@ -1441,6 +1484,8 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,\n \t\t\t\tnix_sec_meta_to_mbuf(cq1_w1, cq1_w5, sa, cpth1,\n \t\t\t\t\t\t mbuf1, &f1, &ol_flags1,\n \t\t\t\t\t\t flags, &rearm1);\n+\t\t\t\tol_flags1 |= ((uint64_t)vget_lane_u8(ucc, 2))\n+\t\t\t\t\t << 1;\n \t\t\t\tol_flags1 |= (RTE_MBUF_F_RX_SEC_OFFLOAD |\n \t\t\t\t\t(uint64_t)vget_lane_u8(ucc, 3) << 19);\n \t\t\t}\n@@ -1463,6 +1508,8 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,\n \t\t\t\tnix_sec_meta_to_mbuf(cq2_w1, cq2_w5, sa, cpth2,\n \t\t\t\t\t\t mbuf2, &f2, &ol_flags2,\n \t\t\t\t\t\t flags, &rearm2);\n+\t\t\t\tol_flags2 |= ((uint64_t)vget_lane_u8(ucc, 4))\n+\t\t\t\t\t << 1;\n \t\t\t\tol_flags2 |= (RTE_MBUF_F_RX_SEC_OFFLOAD |\n \t\t\t\t\t(uint64_t)vget_lane_u8(ucc, 5) << 19);\n \t\t\t}\n@@ -1485,6 +1532,8 @@ cn10k_nix_recv_pkts_vector(void *args, struct rte_mbuf **mbufs, uint16_t pkts,\n \t\t\t\tnix_sec_meta_to_mbuf(cq3_w1, cq3_w5, sa, cpth3,\n \t\t\t\t\t\t mbuf3, &f3, &ol_flags3,\n \t\t\t\t\t\t flags, &rearm3);\n+\t\t\t\tol_flags3 |= ((uint64_t)vget_lane_u8(ucc, 6))\n+\t\t\t\t\t << 1;\n \t\t\t\tol_flags3 |= (RTE_MBUF_F_RX_SEC_OFFLOAD |\n \t\t\t\t\t(uint64_t)vget_lane_u8(ucc, 7) << 19);\n \t\t\t}\n", "prefixes": [ "v3", "20/28" ] }{ "id": 110721, "url": "