get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 45632,
    "url": "http://patches.dpdk.org/api/patches/45632/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20180929020006.71505-10-ajit.khaparde@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": "<20180929020006.71505-10-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180929020006.71505-10-ajit.khaparde@broadcom.com",
    "date": "2018-09-29T02:00:00",
    "name": "[v3,09/15] net/bnxt: add support for trusted VF",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "0fad0c27e446910bbbb79f0098c54856be337e37",
    "submitter": {
        "id": 501,
        "url": "http://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20180929020006.71505-10-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 1590,
            "url": "http://patches.dpdk.org/api/series/1590/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1590",
            "date": "2018-09-29T01:59:54",
            "name": "bnxt patchset",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/1590/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/45632/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/45632/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id AAE0F1B46A;\n\tSat, 29 Sep 2018 04:00:50 +0200 (CEST)",
            "from rnd-relay.smtp.broadcom.com (rnd-relay.smtp.broadcom.com\n\t[192.19.229.170]) by dpdk.org (Postfix) with ESMTP id 539201B29A\n\tfor <dev@dpdk.org>; Sat, 29 Sep 2018 04:00:19 +0200 (CEST)",
            "from nis-sj1-27.broadcom.com (nis-sj1-27.lvn.broadcom.net\n\t[10.75.144.136])\n\tby rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id 0883230C056;\n\tFri, 28 Sep 2018 19:00:18 -0700 (PDT)",
            "from C02VPB22HTD6.vpn.broadcom.net (unknown [10.10.118.196])\n\tby nis-sj1-27.broadcom.com (Postfix) with ESMTP id CC180AC074A;\n\tFri, 28 Sep 2018 19:00:17 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com 0883230C056",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n\ts=dkimrelay; t=1538186418;\n\tbh=MsyhSwuJYVQU92WujRogDS83MmhniBrhtH/oQg/IUIo=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Hzb+dVoy2G+lT78HrSqLjsLvwXJQsrZsaKaFib+mAEJ8AzXTfc4Zl/5Kr4z2hGzzb\n\tteFZmWKGF0tVVSoB1Qk3jAxGlvJW8eEXYyXZQUVvd4SU/3EGFrRwDN6LeakHPdLf2s\n\tQZkZ6WPjt6CXdRquC7X6Bg5Hau3pdKB51TykWajs=",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com",
        "Date": "Fri, 28 Sep 2018 19:00:00 -0700",
        "Message-Id": "<20180929020006.71505-10-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.17.1 (Apple Git-112)",
        "In-Reply-To": "<20180929020006.71505-1-ajit.khaparde@broadcom.com>",
        "References": "<95301884-14c8-bbfd-ade9-ded04bdb6a95@intel.com>\n\t<20180929020006.71505-1-ajit.khaparde@broadcom.com>",
        "Subject": "[dpdk-dev] [PATCH v3 09/15] net/bnxt: add support for trusted VF",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "In the current model, VFs are not trusted.\nSo it is not allowed to send many HWRM commands.\nNewer firmware has added support to allow VF to be trusted.\nNow the VF queries if it is a trusted entity and based on that\nit can send HWRM commands to the firmware.\n\nSigned-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt.h        | 2 ++\n drivers/net/bnxt/bnxt_cpr.c    | 1 +\n drivers/net/bnxt/bnxt_ethdev.c | 4 ++--\n drivers/net/bnxt/bnxt_hwrm.c   | 8 ++++++++\n 4 files changed, 13 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h\nindex 6a5b4ded6..75b7215ce 100644\n--- a/drivers/net/bnxt/bnxt.h\n+++ b/drivers/net/bnxt/bnxt.h\n@@ -260,6 +260,7 @@ struct bnxt {\n #define BNXT_FLAG_EXT_RX_PORT_STATS\t(1 << 8)\n #define BNXT_FLAG_EXT_TX_PORT_STATS\t(1 << 9)\n #define BNXT_FLAG_KONG_MB_EN\t(1 << 10)\n+#define BNXT_FLAG_TRUSTED_VF_EN\t(1 << 11)\n #define BNXT_FLAG_NEW_RM\t(1 << 30)\n #define BNXT_FLAG_INIT_DONE\t(1 << 31)\n #define BNXT_PF(bp)\t\t(!((bp)->flags & BNXT_FLAG_VF))\n@@ -269,6 +270,7 @@ struct bnxt {\n #define BNXT_SINGLE_PF(bp)      (BNXT_PF(bp) && !BNXT_NPAR(bp) && !BNXT_MH(bp))\n #define BNXT_USE_CHIMP_MB\t0 //For non-CFA commands, everything uses Chimp.\n #define BNXT_USE_KONG(bp)\t((bp)->flags & BNXT_FLAG_KONG_MB_EN)\n+#define BNXT_VF_IS_TRUSTED(bp)\t((bp)->flags & BNXT_FLAG_TRUSTED_VF_EN)\n \n \tunsigned int\t\trx_nr_rings;\n \tunsigned int\t\trx_cp_nr_rings;\ndiff --git a/drivers/net/bnxt/bnxt_cpr.c b/drivers/net/bnxt/bnxt_cpr.c\nindex ff20b6fdf..0fd6e51e5 100644\n--- a/drivers/net/bnxt/bnxt_cpr.c\n+++ b/drivers/net/bnxt/bnxt_cpr.c\n@@ -35,6 +35,7 @@ void bnxt_handle_async_event(struct bnxt *bp,\n \t\tbreak;\n \tcase HWRM_ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE:\n \t\tPMD_DRV_LOG(INFO, \"Async event: VF config changed\\n\");\n+\t\tbnxt_hwrm_func_qcfg(bp);\n \t\tbreak;\n \tcase HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED:\n \t\tPMD_DRV_LOG(INFO, \"Port conn async event\\n\");\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 07f55025b..0bc8c5004 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -755,7 +755,7 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev,\n \tstruct bnxt_vnic_info *vnic = &bp->vnic_info[pool];\n \tstruct bnxt_filter_info *filter;\n \n-\tif (BNXT_VF(bp)) {\n+\tif (BNXT_VF(bp) & !BNXT_VF_IS_TRUSTED(bp)) {\n \t\tPMD_DRV_LOG(ERR, \"Cannot add MAC address to a VF interface\\n\");\n \t\treturn -ENOTSUP;\n \t}\n@@ -1447,7 +1447,7 @@ bnxt_set_default_mac_addr_op(struct rte_eth_dev *dev, struct ether_addr *addr)\n \tstruct bnxt_filter_info *filter;\n \tint rc;\n \n-\tif (BNXT_VF(bp))\n+\tif (BNXT_VF(bp) && !BNXT_VF_IS_TRUSTED(bp))\n \t\treturn -EPERM;\n \n \tmemcpy(bp->mac_addr, addr, sizeof(bp->mac_addr));\ndiff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c\nindex 16f2c2ccc..62da254b9 100644\n--- a/drivers/net/bnxt/bnxt_hwrm.c\n+++ b/drivers/net/bnxt/bnxt_hwrm.c\n@@ -909,6 +909,9 @@ int bnxt_hwrm_ver_get(struct bnxt *bp)\n \t\tbp->flags |= BNXT_FLAG_KONG_MB_EN;\n \t\tPMD_DRV_LOG(DEBUG, \"Kong mailbox channel enabled\\n\");\n \t}\n+\tif (dev_caps_cfg &\n+\t    HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_TRUSTED_VF_SUPPORTED)\n+\t\tPMD_DRV_LOG(DEBUG, \"FW supports Trusted VFs\\n\");\n \n error:\n \tHWRM_UNLOCK();\n@@ -2458,6 +2461,11 @@ int bnxt_hwrm_func_qcfg(struct bnxt *bp)\n \tif (BNXT_PF(bp) && (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_MULTI_HOST))\n \t\tbp->flags |= BNXT_FLAG_MULTI_HOST;\n \n+\tif (BNXT_VF(bp) && (flags & HWRM_FUNC_QCFG_OUTPUT_FLAGS_TRUSTED_VF)) {\n+\t\tbp->flags |= BNXT_FLAG_TRUSTED_VF_EN;\n+\t\tPMD_DRV_LOG(INFO, \"Trusted VF cap enabled\\n\");\n+\t}\n+\n \tswitch (resp->port_partition_type) {\n \tcase HWRM_FUNC_QCFG_OUTPUT_PORT_PARTITION_TYPE_NPAR1_0:\n \tcase HWRM_FUNC_QCFG_OUTPUT_PORT_PARTITION_TYPE_NPAR1_5:\n",
    "prefixes": [
        "v3",
        "09/15"
    ]
}