get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 100221,
    "url": "http://patches.dpdk.org/api/patches/100221/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211001095130.3343083-4-radu.nicolau@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": "<20211001095130.3343083-4-radu.nicolau@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211001095130.3343083-4-radu.nicolau@intel.com",
    "date": "2021-10-01T09:51:27",
    "name": "[v4,3/6] net/iavf: add support for asynchronous virt channel messages",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "540d828c0c000d59bc40ac8850141ba5ea74fa14",
    "submitter": {
        "id": 743,
        "url": "http://patches.dpdk.org/api/people/743/?format=api",
        "name": "Radu Nicolau",
        "email": "radu.nicolau@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patches.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20211001095130.3343083-4-radu.nicolau@intel.com/mbox/",
    "series": [
        {
            "id": 19321,
            "url": "http://patches.dpdk.org/api/series/19321/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=19321",
            "date": "2021-10-01T09:51:24",
            "name": "iavf: add iAVF IPsec inline crypto support",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/19321/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/100221/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/100221/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 DA47CA0547;\n\tFri,  1 Oct 2021 12:02:27 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BD5AA4115C;\n\tFri,  1 Oct 2021 12:01:59 +0200 (CEST)",
            "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n by mails.dpdk.org (Postfix) with ESMTP id 1AFE64116E\n for <dev@dpdk.org>; Fri,  1 Oct 2021 12:01:57 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 01 Oct 2021 03:01:44 -0700",
            "from silpixa00400884.ir.intel.com ([10.243.22.82])\n by FMSMGA003.fm.intel.com with ESMTP; 01 Oct 2021 03:01:41 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10123\"; a=\"310931250\"",
            "E=Sophos;i=\"5.85,337,1624345200\"; d=\"scan'208\";a=\"310931250\"",
            "E=Sophos;i=\"5.85,337,1624345200\"; d=\"scan'208\";a=\"556222496\""
        ],
        "X-ExtLoop1": "1",
        "From": "Radu Nicolau <radu.nicolau@intel.com>",
        "To": "Jingjing Wu <jingjing.wu@intel.com>,\n\tBeilei Xing <beilei.xing@intel.com>",
        "Cc": "dev@dpdk.org, declan.doherty@intel.com, abhijit.sinha@intel.com,\n qi.z.zhang@intel.com, bruce.richardson@intel.com,\n konstantin.ananyev@intel.com, Radu Nicolau <radu.nicolau@intel.com>",
        "Date": "Fri,  1 Oct 2021 10:51:27 +0100",
        "Message-Id": "<20211001095130.3343083-4-radu.nicolau@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211001095130.3343083-1-radu.nicolau@intel.com>",
        "References": "<20210909142428.750634-1-radu.nicolau@intel.com>\n <20211001095130.3343083-1-radu.nicolau@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v4 3/6] net/iavf: add support for asynchronous\n virt channel messages",
        "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": "Add support for asynchronous virtual channel messages, specifically for\ninline IPsec messages.\n\nSigned-off-by: Declan Doherty <declan.doherty@intel.com>\nSigned-off-by: Abhijit Sinha <abhijit.sinha@intel.com>\nSigned-off-by: Radu Nicolau <radu.nicolau@intel.com>\n---\n drivers/net/iavf/iavf.h       |  16 ++++\n drivers/net/iavf/iavf_vchnl.c | 137 +++++++++++++++++++++-------------\n 2 files changed, 101 insertions(+), 52 deletions(-)",
    "diff": "diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h\nindex b3bd078111..8c7f7c0bed 100644\n--- a/drivers/net/iavf/iavf.h\n+++ b/drivers/net/iavf/iavf.h\n@@ -189,6 +189,7 @@ struct iavf_info {\n \tuint64_t supported_rxdid;\n \tuint8_t *proto_xtr; /* proto xtr type for all queues */\n \tvolatile enum virtchnl_ops pend_cmd; /* pending command not finished */\n+\trte_atomic32_t pend_cmd_count;\n \tint cmd_retval; /* return value of the cmd response from PF */\n \tuint8_t *aq_resp; /* buffer to store the adminq response from PF */\n \n@@ -340,9 +341,24 @@ _atomic_set_cmd(struct iavf_info *vf, enum virtchnl_ops ops)\n \tif (!ret)\n \t\tPMD_DRV_LOG(ERR, \"There is incomplete cmd %d\", vf->pend_cmd);\n \n+\trte_atomic32_set(&vf->pend_cmd_count, 1);\n+\n \treturn !ret;\n }\n \n+/* Check there is pending cmd in execution. If none, set new command. */\n+static inline int\n+_atomic_set_async_response_cmd(struct iavf_info *vf, enum virtchnl_ops ops)\n+{\n+\tint ret = rte_atomic32_cmpset(&vf->pend_cmd, VIRTCHNL_OP_UNKNOWN, ops);\n+\n+\tif (!ret)\n+\t\tPMD_DRV_LOG(ERR, \"There is incomplete cmd %d\", vf->pend_cmd);\n+\n+\trte_atomic32_set(&vf->pend_cmd_count, 2);\n+\n+\treturn !ret;\n+}\n int iavf_check_api_version(struct iavf_adapter *adapter);\n int iavf_get_vf_resource(struct iavf_adapter *adapter);\n void iavf_handle_virtchnl_msg(struct rte_eth_dev *dev);\ndiff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c\nindex 7f86050df3..5c62443999 100644\n--- a/drivers/net/iavf/iavf_vchnl.c\n+++ b/drivers/net/iavf/iavf_vchnl.c\n@@ -23,8 +23,8 @@\n #include \"iavf.h\"\n #include \"iavf_rxtx.h\"\n \n-#define MAX_TRY_TIMES 200\n-#define ASQ_DELAY_MS  10\n+#define MAX_TRY_TIMES 2000\n+#define ASQ_DELAY_MS  1\n \n static uint32_t\n iavf_convert_link_speed(enum virtchnl_link_speed virt_link_speed)\n@@ -143,7 +143,8 @@ iavf_read_msg_from_pf(struct iavf_adapter *adapter, uint16_t buf_len,\n }\n \n static int\n-iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)\n+iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args,\n+\tint async)\n {\n \tstruct iavf_hw *hw = IAVF_DEV_PRIVATE_TO_HW(adapter);\n \tstruct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);\n@@ -155,8 +156,14 @@ iavf_execute_vf_cmd(struct iavf_adapter *adapter, struct iavf_cmd_info *args)\n \tif (vf->vf_reset)\n \t\treturn -EIO;\n \n-\tif (_atomic_set_cmd(vf, args->ops))\n-\t\treturn -1;\n+\n+\tif (async) {\n+\t\tif (_atomic_set_async_response_cmd(vf, args->ops))\n+\t\t\treturn -1;\n+\t} else {\n+\t\tif (_atomic_set_cmd(vf, args->ops))\n+\t\t\treturn -1;\n+\t}\n \n \tret = iavf_aq_send_msg_to_pf(hw, args->ops, IAVF_SUCCESS,\n \t\t\t\t    args->in_args, args->in_args_size, NULL);\n@@ -252,9 +259,11 @@ static void\n iavf_handle_pf_event_msg(struct rte_eth_dev *dev, uint8_t *msg,\n \t\t\tuint16_t msglen)\n {\n+\tstruct iavf_adapter *adapter =\n+\t\tIAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);\n+\tstruct iavf_info *vf = &adapter->vf;\n \tstruct virtchnl_pf_event *pf_msg =\n \t\t\t(struct virtchnl_pf_event *)msg;\n-\tstruct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);\n \n \tif (msglen < sizeof(struct virtchnl_pf_event)) {\n \t\tPMD_DRV_LOG(DEBUG, \"Error event\");\n@@ -330,18 +339,40 @@ iavf_handle_virtchnl_msg(struct rte_eth_dev *dev)\n \t\tcase iavf_aqc_opc_send_msg_to_vf:\n \t\t\tif (msg_opc == VIRTCHNL_OP_EVENT) {\n \t\t\t\tiavf_handle_pf_event_msg(dev, info.msg_buf,\n-\t\t\t\t\t\t\tinfo.msg_len);\n+\t\t\t\t\t\tinfo.msg_len);\n \t\t\t} else {\n+\t\t\t\t/* check for inline IPsec events */\n+\t\t\t\tstruct inline_ipsec_msg *imsg =\n+\t\t\t\t\t(struct inline_ipsec_msg *)info.msg_buf;\n+\t\t\t\tstruct rte_eth_event_ipsec_desc desc;\n+\t\t\t\tif (msg_opc == VIRTCHNL_OP_INLINE_IPSEC_CRYPTO\n+\t\t\t\t\t&& imsg->ipsec_opcode ==\n+\t\t\t\t\t\tINLINE_IPSEC_OP_EVENT) {\n+\t\t\t\t\tstruct virtchnl_ipsec_event *ev =\n+\t\t\t\t\t\t\timsg->ipsec_data.event;\n+\t\t\t\t\tdesc.subtype =\n+\t\t\t\t\t\tRTE_ETH_EVENT_IPSEC_UNKNOWN;\n+\t\t\t\t\tdesc.metadata = ev->ipsec_event_data;\n+\t\t\t\t\trte_eth_dev_callback_process(dev,\n+\t\t\t\t\t\t\tRTE_ETH_EVENT_IPSEC,\n+\t\t\t\t\t\t\t&desc);\n+\t\t\t\t\treturn;\n+\t\t\t\t}\n+\n \t\t\t\t/* read message and it's expected one */\n-\t\t\t\tif (msg_opc == vf->pend_cmd)\n-\t\t\t\t\t_notify_cmd(vf, msg_ret);\n-\t\t\t\telse\n-\t\t\t\t\tPMD_DRV_LOG(ERR, \"command mismatch,\"\n-\t\t\t\t\t\t    \"expect %u, get %u\",\n-\t\t\t\t\t\t    vf->pend_cmd, msg_opc);\n+\t\t\t\tif (msg_opc == vf->pend_cmd) {\n+\t\t\t\t\trte_atomic32_dec(&vf->pend_cmd_count);\n+\t\t\t\t\tif (rte_atomic32_read(\n+\t\t\t\t\t\t&vf->pend_cmd_count) == 0)\n+\t\t\t\t\t\t_notify_cmd(vf, msg_ret);\n+\t\t\t\t} else {\n+\t\t\t\t\tPMD_DRV_LOG(ERR,\n+\t\t\t\t\t\"command mismatch, expect %u, get %u\",\n+\t\t\t\t\t\tvf->pend_cmd, msg_opc);\n+\t\t\t\t}\n \t\t\t\tPMD_DRV_LOG(DEBUG,\n-\t\t\t\t\t    \"adminq response is received,\"\n-\t\t\t\t\t    \" opcode = %d\", msg_opc);\n+\t\t\t\t\"adminq response is received, opcode = %d\",\n+\t\t\t\t\t\tmsg_opc);\n \t\t\t}\n \t\t\tbreak;\n \t\tdefault:\n@@ -365,7 +396,7 @@ iavf_enable_vlan_strip(struct iavf_adapter *adapter)\n \targs.in_args_size = 0;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\tret = iavf_execute_vf_cmd(adapter, &args);\n+\tret = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of\"\n \t\t\t    \" OP_ENABLE_VLAN_STRIPPING\");\n@@ -386,7 +417,7 @@ iavf_disable_vlan_strip(struct iavf_adapter *adapter)\n \targs.in_args_size = 0;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\tret = iavf_execute_vf_cmd(adapter, &args);\n+\tret = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of\"\n \t\t\t    \" OP_DISABLE_VLAN_STRIPPING\");\n@@ -415,7 +446,7 @@ iavf_check_api_version(struct iavf_adapter *adapter)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_INIT_LOG(ERR, \"Fail to execute command of OP_VERSION\");\n \t\treturn err;\n@@ -468,12 +499,13 @@ iavf_get_vf_resource(struct iavf_adapter *adapter)\n \t\tVIRTCHNL_VF_OFFLOAD_CRC |\n \t\tVIRTCHNL_VF_OFFLOAD_VLAN_V2 |\n \t\tVIRTCHNL_VF_LARGE_NUM_QPAIRS |\n-\t\tVIRTCHNL_VF_OFFLOAD_QOS;\n+\t\tVIRTCHNL_VF_OFFLOAD_QOS |\n++\t\tVIRTCHNL_VF_OFFLOAD_INLINE_IPSEC_CRYPTO;\n \n \targs.in_args = (uint8_t *)&caps;\n \targs.in_args_size = sizeof(caps);\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \n \tif (err) {\n \t\tPMD_DRV_LOG(ERR,\n@@ -518,7 +550,7 @@ iavf_get_supported_rxdid(struct iavf_adapter *adapter)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\tret = iavf_execute_vf_cmd(adapter, &args);\n+\tret = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (ret) {\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_GET_SUPPORTED_RXDIDS\");\n@@ -562,7 +594,7 @@ iavf_config_vlan_strip_v2(struct iavf_adapter *adapter, bool enable)\n \targs.in_args_size = sizeof(vlan_strip);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\tret = iavf_execute_vf_cmd(adapter, &args);\n+\tret = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n \t\t\t    enable ? \"VIRTCHNL_OP_ENABLE_VLAN_STRIPPING_V2\" :\n@@ -602,7 +634,7 @@ iavf_config_vlan_insert_v2(struct iavf_adapter *adapter, bool enable)\n \targs.in_args_size = sizeof(vlan_insert);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\tret = iavf_execute_vf_cmd(adapter, &args);\n+\tret = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n \t\t\t    enable ? \"VIRTCHNL_OP_ENABLE_VLAN_INSERTION_V2\" :\n@@ -645,7 +677,7 @@ iavf_add_del_vlan_v2(struct iavf_adapter *adapter, uint16_t vlanid, bool add)\n \targs.in_args_size = sizeof(vlan_filter);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n \t\t\t    add ? \"OP_ADD_VLAN_V2\" :  \"OP_DEL_VLAN_V2\");\n@@ -666,7 +698,7 @@ iavf_get_vlan_offload_caps_v2(struct iavf_adapter *adapter)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\tret = iavf_execute_vf_cmd(adapter, &args);\n+\tret = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (ret) {\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of VIRTCHNL_OP_GET_OFFLOAD_VLAN_V2_CAPS\");\n@@ -697,7 +729,7 @@ iavf_enable_queues(struct iavf_adapter *adapter)\n \targs.in_args_size = sizeof(queue_select);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_ENABLE_QUEUES\");\n@@ -725,7 +757,7 @@ iavf_disable_queues(struct iavf_adapter *adapter)\n \targs.in_args_size = sizeof(queue_select);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_DISABLE_QUEUES\");\n@@ -758,7 +790,7 @@ iavf_switch_queue(struct iavf_adapter *adapter, uint16_t qid,\n \targs.in_args_size = sizeof(queue_select);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of %s\",\n \t\t\t    on ? \"OP_ENABLE_QUEUES\" : \"OP_DISABLE_QUEUES\");\n@@ -800,7 +832,7 @@ iavf_enable_queues_lv(struct iavf_adapter *adapter)\n \targs.in_args_size = len;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_ENABLE_QUEUES_V2\");\n@@ -844,7 +876,7 @@ iavf_disable_queues_lv(struct iavf_adapter *adapter)\n \targs.in_args_size = len;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_DISABLE_QUEUES_V2\");\n@@ -890,7 +922,7 @@ iavf_switch_queue_lv(struct iavf_adapter *adapter, uint16_t qid,\n \targs.in_args_size = len;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of %s\",\n \t\t\t    on ? \"OP_ENABLE_QUEUES_V2\" : \"OP_DISABLE_QUEUES_V2\");\n@@ -922,7 +954,7 @@ iavf_configure_rss_lut(struct iavf_adapter *adapter)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_CONFIG_RSS_LUT\");\n@@ -954,7 +986,7 @@ iavf_configure_rss_key(struct iavf_adapter *adapter)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_CONFIG_RSS_KEY\");\n@@ -1046,7 +1078,7 @@ iavf_configure_queues(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of\"\n \t\t\t    \" VIRTCHNL_OP_CONFIG_VSI_QUEUES\");\n@@ -1087,7 +1119,7 @@ iavf_config_irq_map(struct iavf_adapter *adapter)\n \targs.in_args_size = len;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command OP_CONFIG_IRQ_MAP\");\n \n@@ -1128,7 +1160,7 @@ iavf_config_irq_map_lv(struct iavf_adapter *adapter, uint16_t num,\n \targs.in_args_size = len;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command OP_MAP_QUEUE_VECTOR\");\n \n@@ -1188,7 +1220,7 @@ iavf_add_del_all_mac_addr(struct iavf_adapter *adapter, bool add)\n \t\targs.in_args_size = len;\n \t\targs.out_buffer = vf->aq_resp;\n \t\targs.out_size = IAVF_AQ_BUF_SZ;\n-\t\terr = iavf_execute_vf_cmd(adapter, &args);\n+\t\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \t\tif (err)\n \t\t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n \t\t\t\t    add ? \"OP_ADD_ETHER_ADDRESS\" :\n@@ -1215,7 +1247,7 @@ iavf_query_stats(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command OP_GET_STATS\");\n \t\t*pstats = NULL;\n@@ -1250,7 +1282,7 @@ iavf_config_promisc(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \n \tif (err) {\n \t\tPMD_DRV_LOG(ERR,\n@@ -1290,7 +1322,7 @@ iavf_add_del_eth_addr(struct iavf_adapter *adapter, struct rte_ether_addr *addr,\n \targs.in_args_size = sizeof(cmd_buffer);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n \t\t\t    add ? \"OP_ADD_ETH_ADDR\" :  \"OP_DEL_ETH_ADDR\");\n@@ -1317,7 +1349,7 @@ iavf_add_del_vlan(struct iavf_adapter *adapter, uint16_t vlanid, bool add)\n \targs.in_args_size = sizeof(cmd_buffer);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n \t\t\t    add ? \"OP_ADD_VLAN\" :  \"OP_DEL_VLAN\");\n@@ -1344,7 +1376,7 @@ iavf_fdir_add(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command OP_ADD_FDIR_FILTER\");\n \t\treturn err;\n@@ -1404,7 +1436,7 @@ iavf_fdir_del(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command OP_DEL_FDIR_FILTER\");\n \t\treturn err;\n@@ -1451,7 +1483,7 @@ iavf_fdir_check(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"fail to check flow direcotor rule\");\n \t\treturn err;\n@@ -1492,7 +1524,7 @@ iavf_add_del_rss_cfg(struct iavf_adapter *adapter,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of %s\",\n@@ -1515,7 +1547,7 @@ iavf_get_hena_caps(struct iavf_adapter *adapter, uint64_t *caps)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_GET_RSS_HENA_CAPS\");\n@@ -1541,7 +1573,7 @@ iavf_set_hena(struct iavf_adapter *adapter, uint64_t hena)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR,\n \t\t\t    \"Failed to execute command of OP_SET_RSS_HENA\");\n@@ -1562,7 +1594,7 @@ iavf_get_qos_cap(struct iavf_adapter *adapter)\n \targs.in_args_size = 0;\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \n \tif (err) {\n \t\tPMD_DRV_LOG(ERR,\n@@ -1595,7 +1627,7 @@ int iavf_set_q_tc_map(struct rte_eth_dev *dev,\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err)\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of\"\n \t\t\t    \" VIRTCHNL_OP_CONFIG_TC_MAP\");\n@@ -1640,7 +1672,7 @@ iavf_add_del_mc_addr_list(struct iavf_adapter *adapter,\n \t\ti * sizeof(struct virtchnl_ether_addr);\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command %s\",\n@@ -1685,7 +1717,7 @@ iavf_request_queues(struct iavf_adapter *adapter, uint16_t num)\n \t * before iavf_read_msg_from_pf.\n \t */\n \trte_intr_disable(&pci_dev->intr_handle);\n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \trte_intr_enable(&pci_dev->intr_handle);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command OP_REQUEST_QUEUES\");\n@@ -1721,7 +1753,7 @@ iavf_get_max_rss_queue_region(struct iavf_adapter *adapter)\n \targs.out_buffer = vf->aq_resp;\n \targs.out_size = IAVF_AQ_BUF_SZ;\n \n-\terr = iavf_execute_vf_cmd(adapter, &args);\n+\terr = iavf_execute_vf_cmd(adapter, &args, 0);\n \tif (err) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to execute command of VIRTCHNL_OP_GET_MAX_RSS_QREGION\");\n \t\treturn err;\n@@ -1734,3 +1766,4 @@ iavf_get_max_rss_queue_region(struct iavf_adapter *adapter)\n \n \treturn 0;\n }\n+\n",
    "prefixes": [
        "v4",
        "3/6"
    ]
}