get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 100024,
    "url": "http://patchwork.dpdk.org/api/patches/100024/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20210929205730.775-5-ivan.malov@oktetlabs.ru/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20210929205730.775-5-ivan.malov@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210929205730.775-5-ivan.malov@oktetlabs.ru",
    "date": "2021-09-29T20:57:24",
    "name": "[04/10] common/sfc_efx/base: add RECIRC ID match in action rules API",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "f6160c0e3d157db4029940cfc4729f13863af23b",
    "submitter": {
        "id": 869,
        "url": "http://patchwork.dpdk.org/api/people/869/?format=api",
        "name": "Ivan Malov",
        "email": "Ivan.Malov@oktetlabs.ru"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20210929205730.775-5-ivan.malov@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 19272,
            "url": "http://patchwork.dpdk.org/api/series/19272/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=19272",
            "date": "2021-09-29T20:57:20",
            "name": "net/sfc: add support for tunnel offload",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/19272/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/100024/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/100024/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 8490DA0032;\n\tWed, 29 Sep 2021 22:58:09 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id F02D94111F;\n\tWed, 29 Sep 2021 22:57:49 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id 43301410EF\n for <dev@dpdk.org>; Wed, 29 Sep 2021 22:57:45 +0200 (CEST)",
            "from localhost.localdomain (unknown [5.144.122.192])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 126587F6D1;\n Wed, 29 Sep 2021 23:57:45 +0300 (MSK)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 126587F6D1",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru;\n s=default; t=1632949065;\n bh=I800JZhpt5ExxgD7IIuIgiK0s/59U5wX6PFSkNPo90Y=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References;\n b=sPomJgy+KmF0p3KW0CzE+yUiVLiPI9+JYYMRFnqEbyPrWm1LBRtXW/6RALCnJyZ4V\n 4LMFdFKZELjc9THBLECKS1a5YhYleXiwa6c+VYQ7bk+6lw/VNoj+299ZhkE9neS78U\n we06GB0AC1fNzgKsY9FSSHN8ojk0x7xgpT+znqaA=",
        "From": "Ivan Malov <ivan.malov@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,\n Ray Kinsella <mdr@ashroe.eu>",
        "Date": "Wed, 29 Sep 2021 23:57:24 +0300",
        "Message-Id": "<20210929205730.775-5-ivan.malov@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20210929205730.775-1-ivan.malov@oktetlabs.ru>",
        "References": "<20210929205730.775-1-ivan.malov@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 04/10] common/sfc_efx/base: add RECIRC ID match\n in action rules API",
        "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": "Currently, there is an API for setting recirculation ID in\nouter rules. Add an API to let action rules match on it.\n\nSigned-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>\nReviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\n---\n drivers/common/sfc_efx/base/efx.h     | 13 ++++++++++\n drivers/common/sfc_efx/base/efx_mae.c | 36 ++++++++++++++++++++++++---\n drivers/common/sfc_efx/version.map    |  1 +\n 3 files changed, 46 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h\nindex ca747de7a4..22f5edfedd 100644\n--- a/drivers/common/sfc_efx/base/efx.h\n+++ b/drivers/common/sfc_efx/base/efx.h\n@@ -4177,6 +4177,11 @@ typedef enum efx_mae_field_id_e {\n \tEFX_MAE_FIELD_ENC_HAS_OVLAN,\n \tEFX_MAE_FIELD_ENC_HAS_IVLAN,\n \n+\t/*\n+\t * Fields which can be set by efx_mae_match_spec_field_set()\n+\t * or by using dedicated field-specific helper APIs.\n+\t */\n+\tEFX_MAE_FIELD_RECIRC_ID,\n \tEFX_MAE_FIELD_NIDS\n } efx_mae_field_id_t;\n \n@@ -4251,6 +4256,12 @@ efx_mae_match_spec_mport_set(\n \t__in\t\t\t\tconst efx_mport_sel_t *valuep,\n \t__in_opt\t\t\tconst efx_mport_sel_t *maskp);\n \n+LIBEFX_API\n+extern\t__checkReturn\t\t\tefx_rc_t\n+efx_mae_match_spec_recirc_id_set(\n+\t__in\t\t\t\tefx_mae_match_spec_t *spec,\n+\t__in\t\t\t\tuint8_t recirc_id);\n+\n LIBEFX_API\n extern\t__checkReturn\t\t\tboolean_t\n efx_mae_match_specs_equal(\n@@ -4387,6 +4398,8 @@ typedef struct efx_mae_rule_id_s {\n \n /*\n  * Set the initial recirculation ID. It goes to action rule (AR) lookup.\n+ *\n+ * To match on this ID in an AR, use efx_mae_match_spec_recirc_id_set().\n  */\n LIBEFX_API\n extern\t__checkReturn\t\t\tefx_rc_t\ndiff --git a/drivers/common/sfc_efx/base/efx_mae.c b/drivers/common/sfc_efx/base/efx_mae.c\nindex c37e90831f..80be922e51 100644\n--- a/drivers/common/sfc_efx/base/efx_mae.c\n+++ b/drivers/common/sfc_efx/base/efx_mae.c\n@@ -473,6 +473,7 @@ typedef enum efx_mae_field_cap_id_e {\n \tEFX_MAE_FIELD_ID_HAS_IVLAN = MAE_FIELD_HAS_IVLAN,\n \tEFX_MAE_FIELD_ID_ENC_HAS_OVLAN = MAE_FIELD_ENC_HAS_OVLAN,\n \tEFX_MAE_FIELD_ID_ENC_HAS_IVLAN = MAE_FIELD_ENC_HAS_IVLAN,\n+\tEFX_MAE_FIELD_ID_RECIRC_ID = MAE_FIELD_RECIRC_ID,\n \n \tEFX_MAE_FIELD_CAP_NIDS\n } efx_mae_field_cap_id_t;\n@@ -519,10 +520,10 @@ static const efx_mae_mv_desc_t __efx_mae_action_rule_mv_desc_set[] = {\n \t[EFX_MAE_FIELD_##_name] =\t\t\t\t\t\\\n \t{\t\t\t\t\t\t\t\t\\\n \t\tEFX_MAE_FIELD_ID_##_name,\t\t\t\t\\\n-\t\tMAE_FIELD_MASK_VALUE_PAIRS_##_name##_LEN,\t\t\\\n-\t\tMAE_FIELD_MASK_VALUE_PAIRS_##_name##_OFST,\t\t\\\n-\t\tMAE_FIELD_MASK_VALUE_PAIRS_##_name##_MASK_LEN,\t\t\\\n-\t\tMAE_FIELD_MASK_VALUE_PAIRS_##_name##_MASK_OFST,\t\t\\\n+\t\tMAE_FIELD_MASK_VALUE_PAIRS_V2_##_name##_LEN,\t\t\\\n+\t\tMAE_FIELD_MASK_VALUE_PAIRS_V2_##_name##_OFST,\t\t\\\n+\t\tMAE_FIELD_MASK_VALUE_PAIRS_V2_##_name##_MASK_LEN,\t\\\n+\t\tMAE_FIELD_MASK_VALUE_PAIRS_V2_##_name##_MASK_OFST,\t\\\n \t\t0, 0 /* no alternative field */,\t\t\t\\\n \t\t_endianness\t\t\t\t\t\t\\\n \t}\n@@ -547,6 +548,7 @@ static const efx_mae_mv_desc_t __efx_mae_action_rule_mv_desc_set[] = {\n \tEFX_MAE_MV_DESC(TCP_FLAGS_BE, EFX_MAE_FIELD_BE),\n \tEFX_MAE_MV_DESC(ENC_VNET_ID_BE, EFX_MAE_FIELD_BE),\n \tEFX_MAE_MV_DESC(OUTER_RULE_ID, EFX_MAE_FIELD_LE),\n+\tEFX_MAE_MV_DESC(RECIRC_ID, EFX_MAE_FIELD_LE),\n \n #undef EFX_MAE_MV_DESC\n };\n@@ -961,6 +963,32 @@ efx_mae_match_spec_mport_set(\n \n fail2:\n \tEFSYS_PROBE(fail2);\n+fail1:\n+\tEFSYS_PROBE1(fail1, efx_rc_t, rc);\n+\treturn (rc);\n+}\n+\n+\t__checkReturn\t\t\tefx_rc_t\n+efx_mae_match_spec_recirc_id_set(\n+\t__in\t\t\t\tefx_mae_match_spec_t *spec,\n+\t__in\t\t\t\tuint8_t recirc_id)\n+{\n+\tuint8_t full_mask = UINT8_MAX;\n+\tconst uint8_t *vp;\n+\tconst uint8_t *mp;\n+\tefx_rc_t rc;\n+\n+\tvp = (const uint8_t *)&recirc_id;\n+\tmp = (const uint8_t *)&full_mask;\n+\n+\trc = efx_mae_match_spec_field_set(spec, EFX_MAE_FIELD_RECIRC_ID,\n+\t\t\t\t\t  sizeof (recirc_id), vp,\n+\t\t\t\t\t  sizeof (full_mask), mp);\n+\tif (rc != 0)\n+\t\tgoto fail1;\n+\n+\treturn (0);\n+\n fail1:\n \tEFSYS_PROBE1(fail1, efx_rc_t, rc);\n \treturn (rc);\ndiff --git a/drivers/common/sfc_efx/version.map b/drivers/common/sfc_efx/version.map\nindex d4878dfb9a..f59f2d8de0 100644\n--- a/drivers/common/sfc_efx/version.map\n+++ b/drivers/common/sfc_efx/version.map\n@@ -122,6 +122,7 @@ INTERNAL {\n \tefx_mae_match_spec_is_valid;\n \tefx_mae_match_spec_mport_set;\n \tefx_mae_match_spec_outer_rule_id_set;\n+\tefx_mae_match_spec_recirc_id_set;\n \tefx_mae_match_specs_class_cmp;\n \tefx_mae_match_specs_equal;\n \tefx_mae_mport_by_pcie_function;\n",
    "prefixes": [
        "04/10"
    ]
}