[dpdk-dev] [PATCH v4 2/6] ixgbe: Negotiate VF API version
Vlad Zolotarov
vladz at cloudius-systems.com
Sun Jan 4 09:30:27 CET 2015
On 01/04/15 10:26, Vlad Zolotarov wrote:
>
> On 01/04/15 09:18, Ouyang Changchun wrote:
>> Negotiate API version with VF when receiving the
>> IXGBE_VF_API_NEGOTIATE message.
>>
>> Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com>
>
> Reviewed-by: Vlad Zolotarov <vladz at cloudius-systems.com>
One small remark below.
>
>> ---
>> lib/librte_pmd_ixgbe/ixgbe_ethdev.h | 1 +
>> lib/librte_pmd_ixgbe/ixgbe_pf.c | 25 +++++++++++++++++++++++++
>> 2 files changed, 26 insertions(+)
>>
>> diff --git a/lib/librte_pmd_ixgbe/ixgbe_ethdev.h
>> b/lib/librte_pmd_ixgbe/ixgbe_ethdev.h
>> index ca99170..730098d 100644
>> --- a/lib/librte_pmd_ixgbe/ixgbe_ethdev.h
>> +++ b/lib/librte_pmd_ixgbe/ixgbe_ethdev.h
>> @@ -159,6 +159,7 @@ struct ixgbe_vf_info {
>> uint16_t tx_rate[IXGBE_MAX_QUEUE_NUM_PER_VF];
>> uint16_t vlan_count;
>> uint8_t spoofchk_enabled;
>> + uint8_t api_version;
>> };
>> /*
>> diff --git a/lib/librte_pmd_ixgbe/ixgbe_pf.c
>> b/lib/librte_pmd_ixgbe/ixgbe_pf.c
>> index 51da1fd..495aff5 100644
>> --- a/lib/librte_pmd_ixgbe/ixgbe_pf.c
>> +++ b/lib/librte_pmd_ixgbe/ixgbe_pf.c
>> @@ -469,6 +469,28 @@ ixgbe_set_vf_lpe(struct rte_eth_dev *dev,
>> __rte_unused uint32_t vf, uint32_t *ms
>> }
>> static int
>> +ixgbe_negotiate_vf_api(struct rte_eth_dev *dev, uint32_t vf,
>> uint32_t *msgbuf)
>> +{
>> + uint32_t api_version = msgbuf[1];
>> + struct ixgbe_vf_info *vfinfo =
>> + *IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
>> +
>> + switch (api_version) {
>> + case ixgbe_mbox_api_10:
>> + case ixgbe_mbox_api_11:
Why version 2.0 is not negotiated?
>> + vfinfo[vf].api_version = (uint8_t)api_version;
>> + return 0;
>> + default:
>> + break;
>> + }
>> +
>> + RTE_LOG(ERR, PMD, "Negotiate invalid api version %u from VF %d\n",
>> + api_version, vf);
>> +
>> + return -1;
>> +}
>> +
>> +static int
>> ixgbe_rcv_msg_from_vf(struct rte_eth_dev *dev, uint16_t vf)
>> {
>> uint16_t mbx_size = IXGBE_VFMAILBOX_SIZE;
>> @@ -512,6 +534,9 @@ ixgbe_rcv_msg_from_vf(struct rte_eth_dev *dev,
>> uint16_t vf)
>> case IXGBE_VF_SET_VLAN:
>> retval = ixgbe_vf_set_vlan(dev, vf, msgbuf);
>> break;
>> + case IXGBE_VF_API_NEGOTIATE:
>> + retval = ixgbe_negotiate_vf_api(dev, vf, msgbuf);
>> + break;
>> default:
>> PMD_DRV_LOG(DEBUG, "Unhandled Msg %8.8x",
>> (unsigned)msgbuf[0]);
>> retval = IXGBE_ERR_MBX;
>
More information about the dev
mailing list