Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/97015/?format=api
https://patches.dpdk.org/api/patches/97015/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210818023216.12020-1-alvinx.zhang@intel.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": "<20210818023216.12020-1-alvinx.zhang@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20210818023216.12020-1-alvinx.zhang@intel.com", "date": "2021-08-18T02:32:16", "name": "[v5] ethdev: add IPv4 and L4 checksum RSS offload types", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "eb802293957ac2ecb603f16b0b7de449fdaeae9d", "submitter": { "id": 1398, "url": "https://patches.dpdk.org/api/people/1398/?format=api", "name": "Alvin Zhang", "email": "alvinx.zhang@intel.com" }, "delegate": { "id": 319, "url": "https://patches.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210818023216.12020-1-alvinx.zhang@intel.com/mbox/", "series": [ { "id": 18317, "url": "https://patches.dpdk.org/api/series/18317/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=18317", "date": "2021-08-18T02:32:16", "name": "[v5] ethdev: add IPv4 and L4 checksum RSS offload types", "version": 5, "mbox": "https://patches.dpdk.org/series/18317/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/97015/comments/", "check": "warning", "checks": "https://patches.dpdk.org/api/patches/97015/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 842C1A0C53;\n\tWed, 18 Aug 2021 04:32:27 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 009924014D;\n\tWed, 18 Aug 2021 04:32:27 +0200 (CEST)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by mails.dpdk.org (Postfix) with ESMTP id ECD3240042\n for <dev@dpdk.org>; Wed, 18 Aug 2021 04:32:24 +0200 (CEST)", "from orsmga002.jf.intel.com ([10.7.209.21])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Aug 2021 19:32:23 -0700", "from shwdenpg235.ccr.corp.intel.com ([10.253.106.22])\n by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Aug 2021 19:32:21 -0700" ], "X-IronPort-AV": [ "E=McAfee;i=\"6200,9189,10079\"; a=\"216273383\"", "E=Sophos;i=\"5.84,330,1620716400\"; d=\"scan'208\";a=\"216273383\"", "E=Sophos;i=\"5.84,330,1620716400\"; d=\"scan'208\";a=\"441701503\"" ], "From": "Alvin Zhang <alvinx.zhang@intel.com>", "To": "qi.z.zhang@intel.com,\n\tjunfeng.guo@intel.com", "Cc": "dev@dpdk.org, Alvin Zhang <alvinx.zhang@intel.com>,\n Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Aman Deep Singh <aman.deep.singh@intel.com>", "Date": "Wed, 18 Aug 2021 10:32:16 +0800", "Message-Id": "<20210818023216.12020-1-alvinx.zhang@intel.com>", "X-Mailer": "git-send-email 2.21.0.windows.1", "In-Reply-To": "<20210713011342.19688-1-alvinx.zhang@intel.com>", "References": "<20210713011342.19688-1-alvinx.zhang@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v5] ethdev: add IPv4 and L4 checksum RSS offload\n types", "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", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "This patch defines new RSS offload types for IPv4 and\nL4(TCP/UDP/SCTP) checksum, which are required when users want\nto distribute packets based on the IPv4 or L4 checksum field.\n\nFor example \"flow create 0 ingress pattern eth / ipv4 / end\nactions rss types ipv4-chksum end queues end / end\", this flow\ncauses all matching packets to be distributed to queues on\nbasis of IPv4 checksum.\n\nSigned-off-by: Alvin Zhang <alvinx.zhang@intel.com>\nAcked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\nAcked-by: Aman Deep Singh <aman.deep.singh@intel.com>\n---\n\nv5: Add release note and code commands.\n---\n app/test-pmd/cmdline.c | 4 ++-\n app/test-pmd/config.c | 2 ++\n doc/guides/rel_notes/release_21_11.rst | 61 ++++++++++++++++++++++++++++++++++\n lib/ethdev/rte_ethdev.h | 23 +++++++++++++\n 4 files changed, 89 insertions(+), 1 deletion(-)\n create mode 100644 doc/guides/rel_notes/release_21_11.rst", "diff": "diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c\nindex 82253bc..656a311 100644\n--- a/app/test-pmd/cmdline.c\n+++ b/app/test-pmd/cmdline.c\n@@ -2252,6 +2252,8 @@ struct cmd_config_rss {\n \t\trss_conf.rss_hf = ETH_RSS_ECPRI;\n \telse if (!strcmp(res->value, \"mpls\"))\n \t\trss_conf.rss_hf = ETH_RSS_MPLS;\n+\telse if (!strcmp(res->value, \"ipv4-chksum\"))\n+\t\trss_conf.rss_hf = ETH_RSS_IPV4_CHKSUM;\n \telse if (!strcmp(res->value, \"none\"))\n \t\trss_conf.rss_hf = 0;\n \telse if (!strcmp(res->value, \"level-default\")) {\n@@ -2323,7 +2325,7 @@ struct cmd_config_rss {\n \t.help_str = \"port config all rss \"\n \t\t\"all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|\"\n \t\t\"nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|none|level-default|\"\n-\t\t\"level-outer|level-inner|<flowtype_id>\",\n+\t\t\"level-outer|level-inner|ipv4-chksum|<flowtype_id>\",\n \t.tokens = {\n \t\t(void *)&cmd_config_rss_port,\n \t\t(void *)&cmd_config_rss_keyword,\ndiff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\nindex 31d8ba1..ece78f2 100644\n--- a/app/test-pmd/config.c\n+++ b/app/test-pmd/config.c\n@@ -140,6 +140,8 @@\n \t{ \"gtpu\", ETH_RSS_GTPU },\n \t{ \"ecpri\", ETH_RSS_ECPRI },\n \t{ \"mpls\", ETH_RSS_MPLS },\n+\t{ \"ipv4-chksum\", ETH_RSS_IPV4_CHKSUM },\n+\t{ \"l4-chksum\", ETH_RSS_L4_CHKSUM },\n \t{ NULL, 0 },\n };\n \ndiff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst\nnew file mode 100644\nindex 0000000..1017550\n--- /dev/null\n+++ b/doc/guides/rel_notes/release_21_11.rst\n@@ -0,0 +1,61 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\n+ Copyright 2021 The DPDK contributors\n+\n+.. include:: <isonum.txt>\n+\n+DPDK Release 21.11\n+==================\n+\n+.. **Read this first.**\n+\n+ The text in the sections below explains how to update the release notes.\n+\n+ Use proper spelling, capitalization and punctuation in all sections.\n+\n+ Variable and config names should be quoted as fixed width text:\n+ ``LIKE_THIS``.\n+\n+ Build the docs and view the output file to ensure the changes are correct::\n+\n+ make doc-guides-html\n+ xdg-open build/doc/html/guides/rel_notes/release_21_11.html\n+\n+\n+New Features\n+------------\n+\n+.. This section should contain new features added in this release.\n+ Sample format:\n+\n+ * **Add a title in the past tense with a full stop.**\n+\n+ Add a short 1-2 sentence description in the past tense.\n+ The description should be enough to allow someone scanning\n+ the release notes to understand the new feature.\n+\n+ If the feature adds a lot of sub-features you can use a bullet list\n+ like this:\n+\n+ * Added feature foo to do something.\n+ * Enhanced feature bar to do something else.\n+\n+ Refer to the previous release notes for examples.\n+\n+ Suggested order in release notes items:\n+ * Core libs (EAL, mempool, ring, mbuf, buses)\n+ * Device abstraction libs and PMDs (ordered alphabetically by vendor name)\n+ - ethdev (lib, PMDs)\n+ - cryptodev (lib, PMDs)\n+ - eventdev (lib, PMDs)\n+ - etc\n+ * Other libs\n+ * Apps, Examples, Tools (if significant)\n+\n+ This section is a comment. Do not overwrite or remove it.\n+ Also, make sure to start the actual text at the margin.\n+ =======================================================\n+\n+* **Add new RSS offload types for IPv4/L4 checksum in RSS flow.**\n+\n+ Add macros ETH_RSS_IPV4_CHKSUM and ETH_RSS_L4_CHKSUM, now IPv4 and\n+ TCP/UDP/SCTP header checksum field can be used as input set for RSS.\ndiff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h\nindex d2b27c3..9a59e7b 100644\n--- a/lib/ethdev/rte_ethdev.h\n+++ b/lib/ethdev/rte_ethdev.h\n@@ -537,6 +537,29 @@ struct rte_eth_rss_conf {\n #define ETH_RSS_PPPOE\t\t (1ULL << 31)\n #define ETH_RSS_ECPRI\t\t (1ULL << 32)\n #define ETH_RSS_MPLS\t\t (1ULL << 33)\n+#define ETH_RSS_IPV4_CHKSUM\t (1ULL << 34)\n+\n+/**\n+ * The ETH_RSS_L4_CHKSUM generally refers to a type of checksum field for\n+ * any L4 header, such as TCP, UDP and SCTP. It is similar to ETH_RSS_PORT,\n+ * it does not specify the type of L4 header.\n+ * We use this macro to replace below macro for constricting the use of RSS\n+ * offload bits:\n+ * ETH_RSS_IPV4_TCP_CHKSUM\n+ * ETH_RSS_IPV4_UDP_CHKSUM\n+ * ETH_RSS_IPV4_SCTP_CHKSUM\n+ * ETH_RSS_IPV6_TCP_CHKSUM\n+ * ETH_RSS_IPV6_UDP_CHKSUM\n+ * ETH_RSS_IPV6_SCTP_CHKSUM\n+ *\n+ * Then how to use this macro? We can use it in RSS flow where the pattern\n+ * type will specify the L4 header type, for example \"flow create 0 ingress \\\n+ * pattern eth / ipv4 / tcp / end actions rss types l4-chksum end queues end \\\n+ * / end\"\n+ * For UDP, the checksum is not required, if the checksum is 0, it will be\n+ * treated as a regular checksum with value equal to 0.\n+ */\n+#define ETH_RSS_L4_CHKSUM\t (1ULL << 35)\n \n /*\n * We use the following macros to combine with above ETH_RSS_* for\n", "prefixes": [ "v5" ] }{ "id": 97015, "url": "