get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1160,
    "url": "https://patches.dpdk.org/api/patches/1160/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1415278430-17920-4-git-send-email-helin.zhang@intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1415278430-17920-4-git-send-email-helin.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1415278430-17920-4-git-send-email-helin.zhang@intel.com",
    "date": "2014-11-06T12:53:48",
    "name": "[dpdk-dev,v3,3/5] i40e: renaming and code style fix",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "53f5f0b84f576e6f87379760aebf71f5dde04271",
    "submitter": {
        "id": 14,
        "url": "https://patches.dpdk.org/api/people/14/?format=api",
        "name": "Zhang, Helin",
        "email": "helin.zhang@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1415278430-17920-4-git-send-email-helin.zhang@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/1160/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/1160/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id AD9167EC4;\n\tThu,  6 Nov 2014 13:44:45 +0100 (CET)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n\tby dpdk.org (Postfix) with ESMTP id 6CAFB7F35\n\tfor <dev@dpdk.org>; Thu,  6 Nov 2014 13:44:41 +0100 (CET)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby fmsmga102.fm.intel.com with ESMTP; 06 Nov 2014 04:54:07 -0800",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby fmsmga002.fm.intel.com with ESMTP; 06 Nov 2014 04:54:06 -0800",
            "from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com\n\t[10.239.29.89])\n\tby shvmail01.sh.intel.com with ESMTP id sA6Cs4s6010862;\n\tThu, 6 Nov 2014 20:54:04 +0800",
            "from shecgisg004.sh.intel.com (localhost [127.0.0.1])\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP\n\tid sA6Cs2gP017975; Thu, 6 Nov 2014 20:54:04 +0800",
            "(from hzhan75@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id sA6Cs2Xh017971; \n\tThu, 6 Nov 2014 20:54:02 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.07,325,1413270000\"; d=\"scan'208\";a=\"627625072\"",
        "From": "Helin Zhang <helin.zhang@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Thu,  6 Nov 2014 20:53:48 +0800",
        "Message-Id": "<1415278430-17920-4-git-send-email-helin.zhang@intel.com>",
        "X-Mailer": "git-send-email 1.7.4.1",
        "In-Reply-To": "<1415278430-17920-1-git-send-email-helin.zhang@intel.com>",
        "References": "<1410706109-30448-1-git-send-email-helin.zhang@intel.com>\n\t<1415278430-17920-1-git-send-email-helin.zhang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v3 3/5] i40e: renaming and code style fix",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Rename some local variables to express more accurately\nand briefly. Fix several code style issues reported by\ncheckpatch.pl. Line warpping for some source lines which\nhas more than 80 characters, and merge lines together for\nthose source lines which does not need any line wrapping\nactually. Add macros for numeric or calculating memory\nsizes.\n\nSigned-off-by: Helin Zhang <helin.zhang@intel.com>\n---\n lib/librte_pmd_i40e/i40e_ethdev_vf.c | 86 ++++++++++++++++++------------------\n lib/librte_pmd_i40e/i40e_pf.c        | 46 +++++++++----------\n lib/librte_pmd_i40e/i40e_pf.h        | 29 +++++++++---\n 3 files changed, 84 insertions(+), 77 deletions(-)\n\nv2 changes:\n* Put all the renaming and code style fixes into a patch.\n* Added several more code style fixes for i40e_pf.c.\n\nv3 changes:\n* Added a macro of calculating memory size for configuring\n  vsi queues.\n* Used array of memory in stack to replace the memory\n  allocated by rte_zmalloc().",
    "diff": "diff --git a/lib/librte_pmd_i40e/i40e_ethdev_vf.c b/lib/librte_pmd_i40e/i40e_ethdev_vf.c\nindex 966f02f..9a8cdc8 100644\n--- a/lib/librte_pmd_i40e/i40e_ethdev_vf.c\n+++ b/lib/librte_pmd_i40e/i40e_ethdev_vf.c\n@@ -537,78 +537,76 @@ static int\n i40evf_configure_queues(struct rte_eth_dev *dev)\n {\n \tstruct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);\n-\tstruct i40e_virtchnl_vsi_queue_config_info *queue_info;\n-\tstruct i40e_virtchnl_queue_pair_info *queue_cfg;\n \tstruct i40e_rx_queue **rxq =\n \t\t(struct i40e_rx_queue **)dev->data->rx_queues;\n \tstruct i40e_tx_queue **txq =\n \t\t(struct i40e_tx_queue **)dev->data->tx_queues;\n-\tint i, len, nb_qpairs, num_rxq, num_txq;\n-\tint err;\n+\tstruct i40e_virtchnl_vsi_queue_config_info *vc_vqci;\n+\tstruct i40e_virtchnl_queue_pair_info *vc_qpi;\n \tstruct vf_cmd_info args;\n-\tstruct rte_pktmbuf_pool_private *mbp_priv;\n+\tuint16_t i, nb_qp = vf->num_queue_pairs;\n+\tconst uint32_t size =\n+\t\tI40E_VIRTCHNL_CONFIG_VSI_QUEUES_SIZE(vc_vqci, nb_qp);\n+\tuint8_t buff[size];\n+\tint ret;\n \n-\tnb_qpairs = vf->num_queue_pairs;\n-\tlen = sizeof(*queue_info) + sizeof(*queue_cfg) * nb_qpairs;\n-\tqueue_info = rte_zmalloc(\"queue_info\", len, 0);\n-\tif (queue_info == NULL) {\n-\t\tPMD_INIT_LOG(ERR, \"failed alloc memory for queue_info\");\n-\t\treturn -1;\n-\t}\n-\tqueue_info->vsi_id = vf->vsi_res->vsi_id;\n-\tqueue_info->num_queue_pairs = nb_qpairs;\n-\tqueue_cfg = queue_info->qpair;\n+\tmemset(buff, 0, sizeof(buff));\n+\tvc_vqci = (struct i40e_virtchnl_vsi_queue_config_info *)buff;\n+\tvc_vqci->vsi_id = vf->vsi_res->vsi_id;\n+\tvc_vqci->num_queue_pairs = nb_qp;\n+\tvc_qpi = vc_vqci->qpair;\n \n-\tnum_rxq = dev->data->nb_rx_queues;\n-\tnum_txq = dev->data->nb_tx_queues;\n \t/*\n \t * PF host driver required to configure queues in pairs, which means\n \t * rxq_num should equals to txq_num. The actual usage won't always\n \t * work that way. The solution is fills 0 with HW ring option in case\n \t * they are not equal.\n \t */\n-\tfor (i = 0; i < nb_qpairs; i++) {\n+\tfor (i = 0; i < nb_qp; i++) {\n \t\t/*Fill TX info */\n-\t\tqueue_cfg->txq.vsi_id = queue_info->vsi_id;\n-\t\tqueue_cfg->txq.queue_id = i;\n-\t\tif (i < num_txq) {\n-\t\t\tqueue_cfg->txq.ring_len = txq[i]->nb_tx_desc;\n-\t\t\tqueue_cfg->txq.dma_ring_addr = txq[i]->tx_ring_phys_addr;\n+\t\tvc_qpi->txq.vsi_id = vc_vqci->vsi_id;\n+\t\tvc_qpi->txq.queue_id = i;\n+\t\tif (i < dev->data->nb_tx_queues) {\n+\t\t\tvc_qpi->txq.ring_len = txq[i]->nb_tx_desc;\n+\t\t\tvc_qpi->txq.dma_ring_addr = txq[i]->tx_ring_phys_addr;\n \t\t} else {\n-\t\t\tqueue_cfg->txq.ring_len = 0;\n-\t\t\tqueue_cfg->txq.dma_ring_addr = 0;\n+\t\t\tvc_qpi->txq.ring_len = 0;\n+\t\t\tvc_qpi->txq.dma_ring_addr = 0;\n \t\t}\n \n \t\t/* Fill RX info */\n-\t\tqueue_cfg->rxq.vsi_id = queue_info->vsi_id;\n-\t\tqueue_cfg->rxq.queue_id = i;\n-\t\tqueue_cfg->rxq.max_pkt_size = vf->max_pkt_len;\n-\t\tif (i < num_rxq) {\n-\t\t\tmbp_priv = rte_mempool_get_priv(rxq[i]->mp);\n-\t\t\tqueue_cfg->rxq.databuffer_size = mbp_priv->mbuf_data_room_size -\n-\t\t\t\t\t\t   RTE_PKTMBUF_HEADROOM;;\n-\t\t\tqueue_cfg->rxq.ring_len = rxq[i]->nb_rx_desc;\n-\t\t\tqueue_cfg->rxq.dma_ring_addr = rxq[i]->rx_ring_phys_addr;;\n+\t\tvc_qpi->rxq.vsi_id = vc_vqci->vsi_id;\n+\t\tvc_qpi->rxq.queue_id = i;\n+\t\tvc_qpi->rxq.max_pkt_size = vf->max_pkt_len;\n+\t\tif (i < dev->data->nb_rx_queues) {\n+\t\t\tstruct rte_pktmbuf_pool_private *mbp_priv =\n+\t\t\t\trte_mempool_get_priv(rxq[i]->mp);\n+\n+\t\t\tvc_qpi->rxq.databuffer_size =\n+\t\t\t\tmbp_priv->mbuf_data_room_size -\n+\t\t\t\t\tRTE_PKTMBUF_HEADROOM;\n+\t\t\tvc_qpi->rxq.ring_len = rxq[i]->nb_rx_desc;\n+\t\t\tvc_qpi->rxq.dma_ring_addr = rxq[i]->rx_ring_phys_addr;\n \t\t} else {\n-\t\t\tqueue_cfg->rxq.ring_len = 0;\n-\t\t\tqueue_cfg->rxq.dma_ring_addr = 0;\n-\t\t\tqueue_cfg->rxq.databuffer_size = 0;\n+\t\t\tvc_qpi->rxq.ring_len = 0;\n+\t\t\tvc_qpi->rxq.dma_ring_addr = 0;\n+\t\t\tvc_qpi->rxq.databuffer_size = 0;\n \t\t}\n-\t\tqueue_cfg++;\n+\t\tvc_qpi++;\n \t}\n \n+\tmemset(&args, 0, sizeof(args));\n \targs.ops = I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES;\n-\targs.in_args = (u8 *)queue_info;\n-\targs.in_args_size = len;\n+\targs.in_args = (uint8_t *)vc_vqci;\n+\targs.in_args_size = size;\n \targs.out_buffer = cmd_result_buffer;\n \targs.out_size = I40E_AQ_BUF_SZ;\n-\terr = i40evf_execute_vf_cmd(dev, &args);\n-\tif (err)\n+\tret = i40evf_execute_vf_cmd(dev, &args);\n+\tif (ret)\n \t\tPMD_DRV_LOG(ERR, \"fail to execute command \"\n \t\t\t    \"OP_CONFIG_VSI_QUEUES\");\n-\trte_free(queue_info);\n \n-\treturn err;\n+\treturn ret;\n }\n \n static int\ndiff --git a/lib/librte_pmd_i40e/i40e_pf.c b/lib/librte_pmd_i40e/i40e_pf.c\nindex f9049e1..f4b4f2d 100644\n--- a/lib/librte_pmd_i40e/i40e_pf.c\n+++ b/lib/librte_pmd_i40e/i40e_pf.c\n@@ -413,29 +413,28 @@ i40e_pf_host_process_cmd_config_vsi_queues(struct i40e_pf_vf *vf,\n {\n \tstruct i40e_hw *hw = I40E_PF_TO_HW(vf->pf);\n \tstruct i40e_vsi *vsi = vf->vsi;\n-\tint ret = I40E_SUCCESS;\n-\tstruct i40e_virtchnl_vsi_queue_config_info *qconfig =\n-\t    (struct i40e_virtchnl_vsi_queue_config_info *)msg;\n-\tint i;\n-\tstruct i40e_virtchnl_queue_pair_info *qpair;\n+\tstruct i40e_virtchnl_vsi_queue_config_info *vc_vqci =\n+\t\t(struct i40e_virtchnl_vsi_queue_config_info *)msg;\n+\tstruct i40e_virtchnl_queue_pair_info *vc_qpi;\n+\tint i, ret = I40E_SUCCESS;\n \n-\tif (msg == NULL || msglen <= sizeof(*qconfig) ||\n-\t\tqconfig->num_queue_pairs > vsi->nb_qps) {\n+\tif (msg == NULL || msglen <= sizeof(*vc_vqci) ||\n+\t\tvc_vqci->num_queue_pairs > vsi->nb_qps) {\n \t\tPMD_DRV_LOG(ERR, \"vsi_queue_config_info argument wrong\");\n \t\tret = I40E_ERR_PARAM;\n \t\tgoto send_msg;\n \t}\n \n-\tqpair = qconfig->qpair;\n-\tfor (i = 0; i < qconfig->num_queue_pairs; i++) {\n-\t\tif (qpair[i].rxq.queue_id > vsi->nb_qps - 1 ||\n-\t\t\tqpair[i].txq.queue_id > vsi->nb_qps - 1) {\n+\tvc_qpi = vc_vqci->qpair;\n+\tfor (i = 0; i < vc_vqci->num_queue_pairs; i++) {\n+\t\tif (vc_qpi[i].rxq.queue_id > vsi->nb_qps - 1 ||\n+\t\t\tvc_qpi[i].txq.queue_id > vsi->nb_qps - 1) {\n \t\t\tret = I40E_ERR_PARAM;\n \t\t\tgoto send_msg;\n \t\t}\n \n \t\t/* Apply VF RX queue setting to HMC */\n-\t\tif (i40e_pf_host_hmc_config_rxq(hw, vf, &qpair[i].rxq)\n+\t\tif (i40e_pf_host_hmc_config_rxq(hw, vf, &vc_qpi[i].rxq)\n \t\t\t!= I40E_SUCCESS) {\n \t\t\tPMD_DRV_LOG(ERR, \"Configure RX queue HMC failed\");\n \t\t\tret = I40E_ERR_PARAM;\n@@ -443,7 +442,7 @@ i40e_pf_host_process_cmd_config_vsi_queues(struct i40e_pf_vf *vf,\n \t\t}\n \n \t\t/* Apply VF TX queue setting to HMC */\n-\t\tif (i40e_pf_host_hmc_config_txq(hw, vf, &qpair[i].txq)\n+\t\tif (i40e_pf_host_hmc_config_txq(hw, vf, &vc_qpi[i].txq)\n \t\t\t!= I40E_SUCCESS) {\n \t\t\tPMD_DRV_LOG(ERR, \"Configure TX queue HMC failed\");\n \t\t\tret = I40E_ERR_PARAM;\n@@ -454,6 +453,7 @@ i40e_pf_host_process_cmd_config_vsi_queues(struct i40e_pf_vf *vf,\n send_msg:\n \ti40e_pf_host_send_msg_to_vf(vf, I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES,\n \t\t\t\t\t\t\tret, NULL, 0);\n+\n \treturn ret;\n }\n \n@@ -660,7 +660,6 @@ send_msg:\n \treturn ret;\n }\n \n-\n static int\n i40e_pf_host_process_cmd_add_vlan(struct i40e_pf_vf *vf,\n \t\t\t\tuint8_t *msg, uint16_t msglen)\n@@ -874,8 +873,7 @@ i40e_pf_host_handle_vf_msg(struct rte_eth_dev *dev,\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES:\n \t\tPMD_DRV_LOG(INFO, \"OP_CONFIG_VSI_QUEUES received\");\n-\t\ti40e_pf_host_process_cmd_config_vsi_queues(vf,\n-\t\t\t\t\t\tmsg, msglen);\n+\t\ti40e_pf_host_process_cmd_config_vsi_queues(vf, msg, msglen);\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP:\n \t\tPMD_DRV_LOG(INFO, \"OP_CONFIG_IRQ_MAP received\");\n@@ -883,23 +881,19 @@ i40e_pf_host_handle_vf_msg(struct rte_eth_dev *dev,\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_ENABLE_QUEUES:\n \t\tPMD_DRV_LOG(INFO, \"OP_ENABLE_QUEUES received\");\n-\t\ti40e_pf_host_process_cmd_enable_queues(vf,\n-\t\t\t\t\t\tmsg, msglen);\n+\t\ti40e_pf_host_process_cmd_enable_queues(vf, msg, msglen);\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_DISABLE_QUEUES:\n \t\tPMD_DRV_LOG(INFO, \"OP_DISABLE_QUEUE received\");\n-\t\ti40e_pf_host_process_cmd_disable_queues(vf,\n-\t\t\t\t\t\tmsg, msglen);\n+\t\ti40e_pf_host_process_cmd_disable_queues(vf, msg, msglen);\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS:\n \t\tPMD_DRV_LOG(INFO, \"OP_ADD_ETHER_ADDRESS received\");\n-\t\ti40e_pf_host_process_cmd_add_ether_address(vf,\n-\t\t\t\t\t\tmsg, msglen);\n+\t\ti40e_pf_host_process_cmd_add_ether_address(vf, msg, msglen);\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS:\n \t\tPMD_DRV_LOG(INFO, \"OP_DEL_ETHER_ADDRESS received\");\n-\t\ti40e_pf_host_process_cmd_del_ether_address(vf,\n-\t\t\t\t\t\tmsg, msglen);\n+\t\ti40e_pf_host_process_cmd_del_ether_address(vf, msg, msglen);\n \t\tbreak;\n \tcase I40E_VIRTCHNL_OP_ADD_VLAN:\n \t\tPMD_DRV_LOG(INFO, \"OP_ADD_VLAN received\");\n@@ -936,8 +930,8 @@ i40e_pf_host_handle_vf_msg(struct rte_eth_dev *dev,\n \t\tPMD_DRV_LOG(ERR, \"OP_FCOE received, not supported\");\n \tdefault:\n \t\tPMD_DRV_LOG(ERR, \"%u received, not supported\", opcode);\n-\t\ti40e_pf_host_send_msg_to_vf(vf, opcode,\n-\t\t\t\tI40E_ERR_PARAM, NULL, 0);\n+\t\ti40e_pf_host_send_msg_to_vf(vf, opcode, I40E_ERR_PARAM,\n+\t\t\t\t\t\t\t\tNULL, 0);\n \t\tbreak;\n \t}\n }\ndiff --git a/lib/librte_pmd_i40e/i40e_pf.h b/lib/librte_pmd_i40e/i40e_pf.h\nindex 41b6826..ce5a978 100644\n--- a/lib/librte_pmd_i40e/i40e_pf.h\n+++ b/lib/librte_pmd_i40e/i40e_pf.h\n@@ -46,28 +46,43 @@\n /* Default setting on number of VSIs that VF can contain */\n #define I40E_DEFAULT_VF_VSI_NUM 1\n \n+#define I40E_DPDK_OFFSET  0x100\n+\n enum i40e_pf_vfr_state {\n \tI40E_PF_VFR_INPROGRESS = 0,\n \tI40E_PF_VFR_COMPLETED = 1,\n };\n \n /* DPDK pf driver specific command to VF */\n-enum i40e_virtchnl_ops_DPDK {\n-\t/* Keep some gap between Linu PF commands and DPDK PF specific commands */\n-\tI40E_VIRTCHNL_OP_GET_LINK_STAT = I40E_VIRTCHNL_OP_EVENT + 0x100,\n+enum i40e_virtchnl_ops_dpdk {\n+\t/*\n+\t * Keep some gap between Linux PF commands and\n+\t * DPDK PF extended commands.\n+\t */\n+\tI40E_VIRTCHNL_OP_GET_LINK_STAT = I40E_VIRTCHNL_OP_VERSION +\n+\t\t\t\t\t\tI40E_DPDK_OFFSET,\n \tI40E_VIRTCHNL_OP_CFG_VLAN_OFFLOAD,\n \tI40E_VIRTCHNL_OP_CFG_VLAN_PVID,\n };\n+\n struct i40e_virtchnl_vlan_offload_info {\n \tuint16_t vsi_id;\n \tuint8_t enable_vlan_strip;\n \tuint8_t reserved;\n };\n \n-/* I40E_VIRTCHNL_OP_CFG_VLAN_PVID\n- * VF sends this message to enable/disable pvid. If it's enable op, needs to specify the\n- * pvid.\n- * PF returns status code in retval.\n+/*\n+ * Macro to calculate the memory size for configuring VSI queues\n+ * via virtual channel.\n+ */\n+#define I40E_VIRTCHNL_CONFIG_VSI_QUEUES_SIZE(x, n) \\\n+\t(sizeof(*(x)) + sizeof((x)->qpair[0]) * (n))\n+\n+/*\n+ * I40E_VIRTCHNL_OP_CFG_VLAN_PVID\n+ * VF sends this message to enable/disable pvid. If it's\n+ * enable op, needs to specify the pvid. PF returns status\n+ * code in retval.\n  */\n struct i40e_virtchnl_pvid_info {\n \tuint16_t vsi_id;\n",
    "prefixes": [
        "dpdk-dev",
        "v3",
        "3/5"
    ]
}