get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 97600,
    "url": "https://patches.dpdk.org/api/patches/97600/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210831095255.21156-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": "<20210831095255.21156-1-alvinx.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210831095255.21156-1-alvinx.zhang@intel.com",
    "date": "2021-08-31T09:52:55",
    "name": "[v7] ethdev: add IPv4 and L4 checksum RSS offload types",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "2b3c2f3bf507117626777bac2607f8f41d9ba45c",
    "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/20210831095255.21156-1-alvinx.zhang@intel.com/mbox/",
    "series": [
        {
            "id": 18560,
            "url": "https://patches.dpdk.org/api/series/18560/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=18560",
            "date": "2021-08-31T09:52:55",
            "name": "[v7] ethdev: add IPv4 and L4 checksum RSS offload types",
            "version": 7,
            "mbox": "https://patches.dpdk.org/series/18560/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/97600/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/97600/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 DF727A0547;\n\tTue, 31 Aug 2021 11:53:08 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6CA7D40141;\n\tTue, 31 Aug 2021 11:53:08 +0200 (CEST)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id BC4B840041\n for <dev@dpdk.org>; Tue, 31 Aug 2021 11:53:06 +0200 (CEST)",
            "from fmsmga004.fm.intel.com ([10.253.24.48])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 31 Aug 2021 02:53:01 -0700",
            "from shwdenpg235.ccr.corp.intel.com ([10.253.106.22])\n by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 31 Aug 2021 02:52:59 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10092\"; a=\"218158910\"",
            "E=Sophos;i=\"5.84,366,1620716400\"; d=\"scan'208\";a=\"218158910\"",
            "E=Sophos;i=\"5.84,366,1620716400\"; d=\"scan'208\";a=\"519567453\""
        ],
        "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": "Tue, 31 Aug 2021 17:52:55 +0800",
        "Message-Id": "<20210831095255.21156-1-alvinx.zhang@intel.com>",
        "X-Mailer": "git-send-email 2.21.0.windows.1",
        "In-Reply-To": "<20210831094459.7840-1-alvinx.zhang@intel.com>",
        "References": "<20210831094459.7840-1-alvinx.zhang@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v7] 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\nv6: rebase to eeedef70, update some note\nv7: fix code style issues\n---\n app/test-pmd/cmdline.c                 |  4 +++-\n app/test-pmd/config.c                  |  2 ++\n doc/guides/rel_notes/release_21_11.rst |  5 +++++\n lib/ethdev/rte_ethdev.h                | 24 ++++++++++++++++++++++++\n 4 files changed, 34 insertions(+), 1 deletion(-)",
    "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\nindex d707a55..fa29b13 100644\n--- a/doc/guides/rel_notes/release_21_11.rst\n+++ b/doc/guides/rel_notes/release_21_11.rst\n@@ -55,6 +55,11 @@ New Features\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.\n+\n \n Removed Items\n -------------\ndiff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h\nindex d2b27c3..e6734df 100644\n--- a/lib/ethdev/rte_ethdev.h\n+++ b/lib/ethdev/rte_ethdev.h\n@@ -537,6 +537,30 @@ 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+ *\n+ * For the case that checksum is not used in a UDP header, it takes the\n+ * reserved value 0 as input for the hash function.\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": [
        "v7"
    ]
}