get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 64475,
    "url": "http://patches.dpdk.org/api/patches/64475/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200113023949.26718-12-xiaolong.ye@intel.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": "<20200113023949.26718-12-xiaolong.ye@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200113023949.26718-12-xiaolong.ye@intel.com",
    "date": "2020-01-13T02:39:23",
    "name": "[v4,11/36] net/i40e/base: add getter for FW LLDP agent status",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "bd5f343c6278217c5469c49f259dba88509161f3",
    "submitter": {
        "id": 1120,
        "url": "http://patches.dpdk.org/api/people/1120/?format=api",
        "name": "Xiaolong Ye",
        "email": "xiaolong.ye@intel.com"
    },
    "delegate": {
        "id": 31221,
        "url": "http://patches.dpdk.org/api/users/31221/?format=api",
        "username": "yexl",
        "first_name": "xiaolong",
        "last_name": "ye",
        "email": "xiaolong.ye@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200113023949.26718-12-xiaolong.ye@intel.com/mbox/",
    "series": [
        {
            "id": 8064,
            "url": "http://patches.dpdk.org/api/series/8064/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8064",
            "date": "2020-01-13T02:39:12",
            "name": "update for i40e base code",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/8064/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/64475/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/64475/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 AB28DA04F0;\n\tMon, 13 Jan 2020 03:48:46 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id F296A1D5C2;\n\tMon, 13 Jan 2020 03:47:32 +0100 (CET)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by dpdk.org (Postfix) with ESMTP id 1E39B1D5A2\n for <dev@dpdk.org>; Mon, 13 Jan 2020 03:47:15 +0100 (CET)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n 12 Jan 2020 18:47:15 -0800",
            "from dpdk_yexl_af_xdp.sh.intel.com ([10.67.119.206])\n by FMSMGA003.fm.intel.com with ESMTP; 12 Jan 2020 18:47:14 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.69,427,1571727600\"; d=\"scan'208\";a=\"272916340\"",
        "From": "Xiaolong Ye <xiaolong.ye@intel.com>",
        "To": "Beilei Xing <beilei.xing@intel.com>,\n\tQi Zhang <qi.z.zhang@intel.com>",
        "Cc": "dev@dpdk.org, Xiaolong Ye <xiaolong.ye@intel.com>,\n Piotr Pietruszewski <piotr.pietruszewski@intel.com>",
        "Date": "Mon, 13 Jan 2020 10:39:23 +0800",
        "Message-Id": "<20200113023949.26718-12-xiaolong.ye@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200113023949.26718-1-xiaolong.ye@intel.com>",
        "References": "<20191202074935.97629-1-xiaolong.ye@intel.com>\n <20200113023949.26718-1-xiaolong.ye@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v4 11/36] net/i40e/base: add getter for FW LLDP\n\tagent status",
        "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": "This change introduces i40e_get_fw_lldp_status() function capable of\nreporting status of FW Link Layer Discovery Protocol (LLDP) agent.\n\nSince reading LLDP configuration from NVM only gives information what\nis the default state of FW LLDP agent after POR, this change introduces\nmore reliable method for checking if agent is enabled.\n\nCurrent state of FW LLDP agent may be different if user disabled the\nagent, so i40e_get_fw_lldp_status() uses LLDP MIB checking to determine\nstatus of the agent.\n\nSigned-off-by: Piotr Pietruszewski <piotr.pietruszewski@intel.com>\nSigned-off-by: Xiaolong Ye <xiaolong.ye@intel.com>\n---\n drivers/net/i40e/base/i40e_dcb.c | 43 ++++++++++++++++++++++++++++++++\n drivers/net/i40e/base/i40e_dcb.h |  9 +++++++\n 2 files changed, 52 insertions(+)",
    "diff": "diff --git a/drivers/net/i40e/base/i40e_dcb.c b/drivers/net/i40e/base/i40e_dcb.c\nindex 7cc8c83dc..f1465daa3 100644\n--- a/drivers/net/i40e/base/i40e_dcb.c\n+++ b/drivers/net/i40e/base/i40e_dcb.c\n@@ -914,6 +914,49 @@ enum i40e_status_code i40e_init_dcb(struct i40e_hw *hw, bool enable_mib_change)\n \treturn ret;\n }\n \n+/**\n+ * i40e_get_fw_lldp_status\n+ * @hw: pointer to the hw struct\n+ * @lldp_status: pointer to the status enum\n+ *\n+ * Get status of FW Link Layer Discovery Protocol (LLDP) Agent.\n+ * Status of agent is reported via @lldp_status parameter.\n+ **/\n+enum i40e_status_code\n+i40e_get_fw_lldp_status(struct i40e_hw *hw,\n+\t\t\tenum i40e_get_fw_lldp_status_resp *lldp_status)\n+{\n+\tenum i40e_status_code ret;\n+\tstruct i40e_virt_mem mem;\n+\tu8 *lldpmib;\n+\n+\tif (!lldp_status)\n+\t\treturn I40E_ERR_PARAM;\n+\n+\t/* Allocate buffer for the LLDPDU */\n+\tret = i40e_allocate_virt_mem(hw, &mem, I40E_LLDPDU_SIZE);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\tlldpmib = (u8 *)mem.va;\n+\tret = i40e_aq_get_lldp_mib(hw, 0, 0, (void *)lldpmib,\n+\t\t\t\t   I40E_LLDPDU_SIZE, NULL, NULL, NULL);\n+\n+\tif (ret == I40E_SUCCESS) {\n+\t\t*lldp_status = I40E_GET_FW_LLDP_STATUS_ENABLED;\n+\t} else if (hw->aq.asq_last_status == I40E_AQ_RC_ENOENT) {\n+\t\t/* MIB is not available yet but the agent is running */\n+\t\t*lldp_status = I40E_GET_FW_LLDP_STATUS_ENABLED;\n+\t\tret = I40E_SUCCESS;\n+\t} else if (hw->aq.asq_last_status == I40E_AQ_RC_EPERM) {\n+\t\t*lldp_status = I40E_GET_FW_LLDP_STATUS_DISABLED;\n+\t\tret = I40E_SUCCESS;\n+\t}\n+\n+\ti40e_free_virt_mem(hw, &mem);\n+\treturn ret;\n+}\n+\n /**\n  * i40e_add_ieee_ets_tlv - Prepare ETS TLV in IEEE format\n  * @tlv: Fill the ETS config data in IEEE format\ndiff --git a/drivers/net/i40e/base/i40e_dcb.h b/drivers/net/i40e/base/i40e_dcb.h\nindex 253943308..88fe405d7 100644\n--- a/drivers/net/i40e/base/i40e_dcb.h\n+++ b/drivers/net/i40e/base/i40e_dcb.h\n@@ -178,6 +178,12 @@ struct i40e_dcbx_variables {\n \tu32 deftsaassignment;\n };\n \n+\n+enum i40e_get_fw_lldp_status_resp {\n+\tI40E_GET_FW_LLDP_STATUS_DISABLED = 0,\n+\tI40E_GET_FW_LLDP_STATUS_ENABLED = 1\n+};\n+\n enum i40e_status_code i40e_get_dcbx_status(struct i40e_hw *hw,\n \t\t\t\t\t   u16 *status);\n enum i40e_status_code i40e_lldp_to_dcb_config(u8 *lldpmib,\n@@ -188,6 +194,9 @@ enum i40e_status_code i40e_aq_get_dcb_config(struct i40e_hw *hw, u8 mib_type,\n enum i40e_status_code i40e_get_dcb_config(struct i40e_hw *hw);\n enum i40e_status_code i40e_init_dcb(struct i40e_hw *hw,\n \t\t\t\t    bool enable_mib_change);\n+enum i40e_status_code\n+i40e_get_fw_lldp_status(struct i40e_hw *hw,\n+\t\t\tenum i40e_get_fw_lldp_status_resp *lldp_status);\n enum i40e_status_code i40e_set_dcb_config(struct i40e_hw *hw);\n enum i40e_status_code i40e_dcb_config_to_lldp(u8 *lldpmib, u16 *miblen,\n \t\t\t\t\t      struct i40e_dcbx_config *dcbcfg);\n",
    "prefixes": [
        "v4",
        "11/36"
    ]
}