i40e: generate MAC address for VF

Generate a MAC address for each VF during PF host
initialization.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Zhe Tao <zhe.tao@intel.com>
This commit is contained in:
Helin Zhang 2016-03-08 14:42:08 +08:00 committed by Thomas Monjalon
parent 330aa31938
commit 488ecf6271
3 changed files with 9 additions and 0 deletions

View File

@ -219,6 +219,11 @@ Drivers
The driver now set the MDIO clock speed prior to initializing PHY ops and The driver now set the MDIO clock speed prior to initializing PHY ops and
again after the MAC reset. again after the MAC reset.
* **i40e: Generated MAC address for each VFs.**
It generates a MAC address for each VFs during PF host initialization,
and keeps the VF MAC address the same among different VF launch.
* **aesni_mb: Fixed wrong return value when creating a device.** * **aesni_mb: Fixed wrong return value when creating a device.**
cryptodev_aesni_mb_init() was returning the device id of the device created, cryptodev_aesni_mb_init() was returning the device id of the device created,

View File

@ -312,6 +312,7 @@ struct i40e_pf_vf {
uint16_t vf_idx; /* VF index in pf->vfs */ uint16_t vf_idx; /* VF index in pf->vfs */
uint16_t lan_nb_qps; /* Actual queues allocated */ uint16_t lan_nb_qps; /* Actual queues allocated */
uint16_t reset_cnt; /* Total vf reset times */ uint16_t reset_cnt; /* Total vf reset times */
struct ether_addr mac_addr; /* Default MAC address */
}; };
/* /*

View File

@ -315,6 +315,8 @@ i40e_pf_host_process_cmd_get_vf_resource(struct i40e_pf_vf *vf)
/* As assume Vf only has single VSI now, always return 0 */ /* As assume Vf only has single VSI now, always return 0 */
vf_res->vsi_res[0].vsi_id = 0; vf_res->vsi_res[0].vsi_id = 0;
vf_res->vsi_res[0].num_queue_pairs = vf->vsi->nb_qps; vf_res->vsi_res[0].num_queue_pairs = vf->vsi->nb_qps;
ether_addr_copy(&vf->mac_addr,
(struct ether_addr *)vf_res->vsi_res[0].default_mac_addr);
send_msg: send_msg:
i40e_pf_host_send_msg_to_vf(vf, I40E_VIRTCHNL_OP_GET_VF_RESOURCES, i40e_pf_host_send_msg_to_vf(vf, I40E_VIRTCHNL_OP_GET_VF_RESOURCES,
@ -1045,6 +1047,7 @@ i40e_pf_host_init(struct rte_eth_dev *dev)
ret = i40e_pf_host_vf_reset(&pf->vfs[i], 0); ret = i40e_pf_host_vf_reset(&pf->vfs[i], 0);
if (ret != I40E_SUCCESS) if (ret != I40E_SUCCESS)
goto fail; goto fail;
eth_random_addr(pf->vfs[i].mac_addr.addr_bytes);
} }
/* restore irq0 */ /* restore irq0 */