get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 93507,
    "url": "http://patches.dpdk.org/api/patches/93507/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210527152510.1551026-9-andrew.rybchenko@oktetlabs.ru/",
    "project": {
        "id": 1,
        "url": "http://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": "<20210527152510.1551026-9-andrew.rybchenko@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210527152510.1551026-9-andrew.rybchenko@oktetlabs.ru",
    "date": "2021-05-27T15:24:58",
    "name": "[08/20] common/sfc_efx/base: add user mark RxQ flag",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "87de2d208e974046999542e24ca80c8f7d1f6cef",
    "submitter": {
        "id": 2013,
        "url": "http://patches.dpdk.org/api/people/2013/?format=api",
        "name": "Andrew Rybchenko",
        "email": "Andrew.Rybchenko@oktetlabs.ru"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210527152510.1551026-9-andrew.rybchenko@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 17144,
            "url": "http://patches.dpdk.org/api/series/17144/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=17144",
            "date": "2021-05-27T15:24:50",
            "name": "net/sfc: support flow API COUNT action",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/17144/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/93507/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/93507/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 A270AA0546;\n\tThu, 27 May 2021 17:26:46 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BDA0241127;\n\tThu, 27 May 2021 17:26:03 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id DB01641111\n for <dev@dpdk.org>; Thu, 27 May 2021 17:26:00 +0200 (CEST)",
            "by shelob.oktetlabs.ru (Postfix, from userid 122)\n id AA2227F5FC; Thu, 27 May 2021 18:26:00 +0300 (MSK)",
            "from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17])\n by shelob.oktetlabs.ru (Postfix) with ESMTP id 7260A7F601;\n Thu, 27 May 2021 18:25:42 +0300 (MSK)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=0.8 required=5.0 tests=ALL_TRUSTED,\n DKIM_ADSP_DISCARD,\n URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2",
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 7260A7F601",
        "Authentication-Results": "shelob.oktetlabs.ru/7260A7F601; dkim=none;\n dkim-atps=neutral",
        "From": "Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Igor Romanov <igor.romanov@oktetlabs.ru>,\n Andy Moreton <amoreton@xilinx.com>, Ivan Malov <ivan.malov@oktetlabs.ru>",
        "Date": "Thu, 27 May 2021 18:24:58 +0300",
        "Message-Id": "<20210527152510.1551026-9-andrew.rybchenko@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru>",
        "References": "<20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 08/20] common/sfc_efx/base: add user mark RxQ flag",
        "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": "From: Igor Romanov <igor.romanov@oktetlabs.ru>\n\nAdd a flag to request support for user mark field on an RxQ.\nThe field is required to retrieve generation count value from\ncounter RxQ.\n\nImplement it only for Riverhead and EF10 ESSB since they support\nthe field in the Rx prefix.\n\nSigned-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>\nSigned-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\nReviewed-by: Andy Moreton <amoreton@xilinx.com>\nReviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>\n---\n drivers/common/sfc_efx/base/ef10_rx.c  | 52 ++++++++++++++++----------\n drivers/common/sfc_efx/base/efx.h      |  4 ++\n drivers/common/sfc_efx/base/rhead_rx.c |  3 ++\n 3 files changed, 39 insertions(+), 20 deletions(-)",
    "diff": "diff --git a/drivers/common/sfc_efx/base/ef10_rx.c b/drivers/common/sfc_efx/base/ef10_rx.c\nindex 0e140645a5..0c3f9413cf 100644\n--- a/drivers/common/sfc_efx/base/ef10_rx.c\n+++ b/drivers/common/sfc_efx/base/ef10_rx.c\n@@ -926,6 +926,10 @@ ef10_rx_qcreate(\n \t\t\tgoto fail1;\n \t\t}\n \t\terp->er_buf_size = type_data->ertd_default.ed_buf_size;\n+\t\tif (flags & EFX_RXQ_FLAG_USER_MARK) {\n+\t\t\trc = ENOTSUP;\n+\t\t\tgoto fail2;\n+\t\t}\n \t\t/*\n \t\t * Ignore EFX_RXQ_FLAG_RSS_HASH since if RSS hash is calculated\n \t\t * it is always delivered from HW in the pseudo-header.\n@@ -936,7 +940,7 @@ ef10_rx_qcreate(\n \t\terpl = &ef10_packed_stream_rx_prefix_layout;\n \t\tif (type_data == NULL) {\n \t\t\trc = EINVAL;\n-\t\t\tgoto fail2;\n+\t\t\tgoto fail3;\n \t\t}\n \t\tswitch (type_data->ertd_packed_stream.eps_buf_size) {\n \t\tcase EFX_RXQ_PACKED_STREAM_BUF_SIZE_1M:\n@@ -956,13 +960,17 @@ ef10_rx_qcreate(\n \t\t\tbreak;\n \t\tdefault:\n \t\t\trc = ENOTSUP;\n-\t\t\tgoto fail3;\n+\t\t\tgoto fail4;\n \t\t}\n \t\terp->er_buf_size = type_data->ertd_packed_stream.eps_buf_size;\n \t\t/* Packed stream pseudo header does not have RSS hash value */\n \t\tif (flags & EFX_RXQ_FLAG_RSS_HASH) {\n \t\t\trc = ENOTSUP;\n-\t\t\tgoto fail4;\n+\t\t\tgoto fail5;\n+\t\t}\n+\t\tif (flags & EFX_RXQ_FLAG_USER_MARK) {\n+\t\t\trc = ENOTSUP;\n+\t\t\tgoto fail6;\n \t\t}\n \t\tbreak;\n #endif /* EFSYS_OPT_RX_PACKED_STREAM */\n@@ -971,7 +979,7 @@ ef10_rx_qcreate(\n \t\terpl = &ef10_essb_rx_prefix_layout;\n \t\tif (type_data == NULL) {\n \t\t\trc = EINVAL;\n-\t\t\tgoto fail5;\n+\t\t\tgoto fail7;\n \t\t}\n \t\tparams.es_bufs_per_desc =\n \t\t    type_data->ertd_es_super_buffer.eessb_bufs_per_desc;\n@@ -989,7 +997,7 @@ ef10_rx_qcreate(\n #endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */\n \tdefault:\n \t\trc = ENOTSUP;\n-\t\tgoto fail6;\n+\t\tgoto fail8;\n \t}\n \n #if EFSYS_OPT_RX_PACKED_STREAM\n@@ -997,13 +1005,13 @@ ef10_rx_qcreate(\n \t\t/* Check if datapath firmware supports packed stream mode */\n \t\tif (encp->enc_rx_packed_stream_supported == B_FALSE) {\n \t\t\trc = ENOTSUP;\n-\t\t\tgoto fail7;\n+\t\t\tgoto fail9;\n \t\t}\n \t\t/* Check if packed stream allows configurable buffer sizes */\n \t\tif ((params.ps_buf_size != MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_1M) &&\n \t\t    (encp->enc_rx_var_packed_stream_supported == B_FALSE)) {\n \t\t\trc = ENOTSUP;\n-\t\t\tgoto fail8;\n+\t\t\tgoto fail10;\n \t\t}\n \t}\n #else /* EFSYS_OPT_RX_PACKED_STREAM */\n@@ -1014,17 +1022,17 @@ ef10_rx_qcreate(\n \tif (params.es_bufs_per_desc > 0) {\n \t\tif (encp->enc_rx_es_super_buffer_supported == B_FALSE) {\n \t\t\trc = ENOTSUP;\n-\t\t\tgoto fail9;\n+\t\t\tgoto fail11;\n \t\t}\n \t\tif (!EFX_IS_P2ALIGNED(uint32_t, params.es_max_dma_len,\n \t\t\t    EFX_RX_ES_SUPER_BUFFER_BUF_ALIGNMENT)) {\n \t\t\trc = EINVAL;\n-\t\t\tgoto fail10;\n+\t\t\tgoto fail12;\n \t\t}\n \t\tif (!EFX_IS_P2ALIGNED(uint32_t, params.es_buf_stride,\n \t\t\t    EFX_RX_ES_SUPER_BUFFER_BUF_ALIGNMENT)) {\n \t\t\trc = EINVAL;\n-\t\t\tgoto fail11;\n+\t\t\tgoto fail13;\n \t\t}\n \t}\n #else /* EFSYS_OPT_RX_ES_SUPER_BUFFER */\n@@ -1033,7 +1041,7 @@ ef10_rx_qcreate(\n \n \tif (flags & EFX_RXQ_FLAG_INGRESS_MPORT) {\n \t\trc = ENOTSUP;\n-\t\tgoto fail12;\n+\t\tgoto fail14;\n \t}\n \n \t/* Scatter can only be disabled if the firmware supports doing so */\n@@ -1049,7 +1057,7 @@ ef10_rx_qcreate(\n \n \tif ((rc = efx_mcdi_init_rxq(enp, ndescs, eep, label, index,\n \t\t    esmp, &params)) != 0)\n-\t\tgoto fail13;\n+\t\tgoto fail15;\n \n \terp->er_eep = eep;\n \terp->er_label = label;\n@@ -1062,38 +1070,42 @@ ef10_rx_qcreate(\n \n \treturn (0);\n \n+fail15:\n+\tEFSYS_PROBE(fail15);\n+fail14:\n+\tEFSYS_PROBE(fail14);\n+#if EFSYS_OPT_RX_ES_SUPER_BUFFER\n fail13:\n \tEFSYS_PROBE(fail13);\n fail12:\n \tEFSYS_PROBE(fail12);\n-#if EFSYS_OPT_RX_ES_SUPER_BUFFER\n fail11:\n \tEFSYS_PROBE(fail11);\n+#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */\n+#if EFSYS_OPT_RX_PACKED_STREAM\n fail10:\n \tEFSYS_PROBE(fail10);\n fail9:\n \tEFSYS_PROBE(fail9);\n-#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */\n-#if EFSYS_OPT_RX_PACKED_STREAM\n+#endif /* EFSYS_OPT_RX_PACKED_STREAM */\n fail8:\n \tEFSYS_PROBE(fail8);\n+#if EFSYS_OPT_RX_ES_SUPER_BUFFER\n fail7:\n \tEFSYS_PROBE(fail7);\n-#endif /* EFSYS_OPT_RX_PACKED_STREAM */\n+#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */\n+#if EFSYS_OPT_RX_PACKED_STREAM\n fail6:\n \tEFSYS_PROBE(fail6);\n-#if EFSYS_OPT_RX_ES_SUPER_BUFFER\n fail5:\n \tEFSYS_PROBE(fail5);\n-#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */\n-#if EFSYS_OPT_RX_PACKED_STREAM\n fail4:\n \tEFSYS_PROBE(fail4);\n fail3:\n \tEFSYS_PROBE(fail3);\n+#endif /* EFSYS_OPT_RX_PACKED_STREAM */\n fail2:\n \tEFSYS_PROBE(fail2);\n-#endif /* EFSYS_OPT_RX_PACKED_STREAM */\n fail1:\n \tEFSYS_PROBE1(fail1, efx_rc_t, rc);\n \ndiff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h\nindex 72ab4af01c..9bbd7cae55 100644\n--- a/drivers/common/sfc_efx/base/efx.h\n+++ b/drivers/common/sfc_efx/base/efx.h\n@@ -3003,6 +3003,10 @@ typedef enum efx_rxq_type_e {\n  * Request ingress mport field in the Rx prefix of a queue.\n  */\n #define\tEFX_RXQ_FLAG_INGRESS_MPORT\t0x8\n+/*\n+ * Request user mark field in the Rx prefix of a queue.\n+ */\n+#define\tEFX_RXQ_FLAG_USER_MARK\t\t0x10\n \n LIBEFX_API\n extern\t__checkReturn\tefx_rc_t\ndiff --git a/drivers/common/sfc_efx/base/rhead_rx.c b/drivers/common/sfc_efx/base/rhead_rx.c\nindex f1d46f7c70..76b8ce302a 100644\n--- a/drivers/common/sfc_efx/base/rhead_rx.c\n+++ b/drivers/common/sfc_efx/base/rhead_rx.c\n@@ -632,6 +632,9 @@ rhead_rx_qcreate(\n \tif (flags & EFX_RXQ_FLAG_INGRESS_MPORT)\n \t\tfields_mask |= 1U << EFX_RX_PREFIX_FIELD_INGRESS_MPORT;\n \n+\tif (flags & EFX_RXQ_FLAG_USER_MARK)\n+\t\tfields_mask |= 1U << EFX_RX_PREFIX_FIELD_USER_MARK;\n+\n \t/*\n \t * LENGTH is required in EF100 host interface, as receive events\n \t * do not include the packet length.\n",
    "prefixes": [
        "08/20"
    ]
}