Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/100221/?format=api
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 *)∩︀\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" ] }{ "id": 100221, "url": "