get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 65192,
    "url": "http://patches.dpdk.org/api/patches/65192/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200128072923.9912-4-somnath.kotur@broadcom.com/",
    "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": "<20200128072923.9912-4-somnath.kotur@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200128072923.9912-4-somnath.kotur@broadcom.com",
    "date": "2020-01-28T07:29:17",
    "name": "[3/9] net/bnxt: fix to allow group ID 0 for RSS action",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a8cb986f5935a668e8e63cdc547cd4ccf92b0994",
    "submitter": {
        "id": 908,
        "url": "http://patches.dpdk.org/api/people/908/?format=api",
        "name": "Somnath Kotur",
        "email": "somnath.kotur@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200128072923.9912-4-somnath.kotur@broadcom.com/mbox/",
    "series": [
        {
            "id": 8314,
            "url": "http://patches.dpdk.org/api/series/8314/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8314",
            "date": "2020-01-28T07:29:14",
            "name": "bnxt patchset",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/8314/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/65192/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/65192/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id A6F61A04B3;\n\tTue, 28 Jan 2020 08:31:19 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 4BA831C112;\n\tTue, 28 Jan 2020 08:30:55 +0100 (CET)",
            "from relay.smtp.broadcom.com (relay.smtp.broadcom.com\n [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 5FC111C0C8\n for <dev@dpdk.org>; Tue, 28 Jan 2020 08:30:48 +0100 (CET)",
            "from dhcp-10-123-153-55.dhcp.broadcom.net\n (bgccx-dev-host-lnx35.bec.broadcom.net [10.123.153.55])\n by relay.smtp.broadcom.com (Postfix) with ESMTP id 9C840290517;\n Mon, 27 Jan 2020 23:30:47 -0800 (PST)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 9C840290517",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n s=dkimrelay; t=1580196647;\n bh=J4rjrnz6Kq76M4hjMXJjLTnyoTgSIT/IUoqWg0i13wA=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=tIc0wTwv2/n7oOaFvSsD5oPCQFyybJ3LeRSZUTz8OIxRSdSccevNRwcMQTJUmPK9N\n +6Y0ZHgBvIKj7es6Xc0wO2Njpmh0cVXeEu0F2OoI8CTswfMUXJGkU4TfD64PsJh1hm\n 6KE+k/CSK6AtIMWNR8Yr7XAXiI+xwAL/8MndHLvk=",
        "From": "Somnath Kotur <somnath.kotur@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com",
        "Date": "Tue, 28 Jan 2020 12:59:17 +0530",
        "Message-Id": "<20200128072923.9912-4-somnath.kotur@broadcom.com>",
        "X-Mailer": "git-send-email 2.10.1.613.g2cc2e70",
        "In-Reply-To": "<20200128072923.9912-1-somnath.kotur@broadcom.com>",
        "References": "<20200128072923.9912-1-somnath.kotur@broadcom.com>",
        "Subject": "[dpdk-dev] [PATCH 3/9] net/bnxt: fix to allow group ID 0 for RSS\n\taction",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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": "Allow RSS action with group ID 0. The RSS match check will ensure if\nrequested RSS action configuration parameters should be allowed as per\nthe VNIC's RSS configuration or not and if it does match as it is\nby design in OVS-DPDK use case, the default vnic can be used to create\nthe filter. As part of this ensure that rx_queue_cnt for the default\nvnic is setup during init as this field was being set only for non-zero\nvnics while handling RSS action for flow create.\nCheck for outofboundds erorr while accessing the vnic array.\n\nFixes: adc0f81c6552d (\"net/bnxt: support RSS action\")\n\nReviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>\nSigned-off-by: Somnath Kotur <somnath.kotur@broadcom.com>\n---\n drivers/net/bnxt/bnxt.h        | 14 +++++++++++++-\n drivers/net/bnxt/bnxt_ethdev.c |  4 ++++\n drivers/net/bnxt/bnxt_flow.c   | 33 ++++-----------------------------\n 3 files changed, 21 insertions(+), 30 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h\nindex ddb2681..bca9ad4 100644\n--- a/drivers/net/bnxt/bnxt.h\n+++ b/drivers/net/bnxt/bnxt.h\n@@ -696,11 +696,23 @@ int bnxt_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete,\n #define bnxt_release_flow_lock(bp) \\\n \tpthread_mutex_unlock(&(bp)->flow_lock)\n \n+#define BNXT_VALID_VNIC_OR_RET(bp, vnic_id) do { \\\n+\tif ((vnic_id) >= (bp)->max_vnics) { \\\n+\t\trte_flow_error_set(error, \\\n+\t\t\t\tEINVAL, \\\n+\t\t\t\tRTE_FLOW_ERROR_TYPE_ATTR_GROUP, \\\n+\t\t\t\tNULL, \\\n+\t\t\t\t\"Group id is invalid!\"); \\\n+\t\trc = -rte_errno; \\\n+\t\tgoto ret; \\\n+\t} \\\n+} while (0)\n+\n extern int bnxt_logtype_driver;\n #define PMD_DRV_LOG_RAW(level, fmt, args...) \\\n \trte_log(RTE_LOG_ ## level, bnxt_logtype_driver, \"%s(): \" fmt, \\\n \t\t__func__, ## args)\n \n #define PMD_DRV_LOG(level, fmt, args...) \\\n-\tPMD_DRV_LOG_RAW(level, fmt, ## args)\n+\t  PMD_DRV_LOG_RAW(level, fmt, ## args)\n #endif\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 2ef1169..fc3f1a8 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -295,8 +295,12 @@ static int bnxt_setup_one_vnic(struct bnxt *bp, uint16_t vnic_id)\n \n \t\tif (BNXT_HAS_RING_GRPS(bp) && rxq->rx_deferred_start)\n \t\t\trxq->vnic->fw_grp_ids[j] = INVALID_HW_RING_ID;\n+\t\telse\n+\t\t\tvnic->rx_queue_cnt++;\n \t}\n \n+\tPMD_DRV_LOG(DEBUG, \"vnic->rx_queue_cnt = %d\\n\", vnic->rx_queue_cnt);\n+\n \trc = bnxt_vnic_rss_configure(bp, vnic);\n \tif (rc)\n \t\tgoto err_out;\ndiff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c\nindex 4b3b597..bd6c726 100644\n--- a/drivers/net/bnxt/bnxt_flow.c\n+++ b/drivers/net/bnxt/bnxt_flow.c\n@@ -1059,16 +1059,9 @@ static int match_vnic_rss_cfg(struct bnxt *bp,\n \t\t\tvnic_id = act_q->index;\n \t\t}\n \n+\t\tBNXT_VALID_VNIC_OR_RET(bp, vnic_id);\n+\n \t\tvnic = &bp->vnic_info[vnic_id];\n-\t\tif (vnic == NULL) {\n-\t\t\trte_flow_error_set(error,\n-\t\t\t\t\t   EINVAL,\n-\t\t\t\t\t   RTE_FLOW_ERROR_TYPE_ACTION,\n-\t\t\t\t\t   act,\n-\t\t\t\t\t   \"No matching VNIC found.\");\n-\t\t\trc = -rte_errno;\n-\t\t\tgoto ret;\n-\t\t}\n \t\tif (vnic->rx_queue_cnt) {\n \t\t\tif (vnic->start_grp_id != act_q->index) {\n \t\t\t\tPMD_DRV_LOG(ERR,\n@@ -1268,28 +1261,10 @@ static int match_vnic_rss_cfg(struct bnxt *bp,\n \t\trss = (const struct rte_flow_action_rss *)act->conf;\n \n \t\tvnic_id = attr->group;\n-\t\tif (!vnic_id) {\n-\t\t\tPMD_DRV_LOG(ERR, \"Group id cannot be 0\\n\");\n-\t\t\trte_flow_error_set(error,\n-\t\t\t\t\t   EINVAL,\n-\t\t\t\t\t   RTE_FLOW_ERROR_TYPE_ATTR,\n-\t\t\t\t\t   NULL,\n-\t\t\t\t\t   \"Group id cannot be 0\");\n-\t\t\trc = -rte_errno;\n-\t\t\tgoto ret;\n-\t\t}\n+\n+\t\tBNXT_VALID_VNIC_OR_RET(bp, vnic_id);\n \n \t\tvnic = &bp->vnic_info[vnic_id];\n-\t\tif (vnic == NULL) {\n-\t\t\trte_flow_error_set(error,\n-\t\t\t\t\t   EINVAL,\n-\t\t\t\t\t   RTE_FLOW_ERROR_TYPE_ACTION,\n-\t\t\t\t\t   act,\n-\t\t\t\t\t   \"No matching VNIC for RSS group.\");\n-\t\t\trc = -rte_errno;\n-\t\t\tgoto ret;\n-\t\t}\n-\t\tPMD_DRV_LOG(DEBUG, \"VNIC found\\n\");\n \n \t\t/* Check if requested RSS config matches RSS config of VNIC\n \t\t * only if it is not a fresh VNIC configuration.\n",
    "prefixes": [
        "3/9"
    ]
}