[dpdk-dev] [PATCH 2/3 v7] i40e: Add floating VEB support in i40e

Wu, Jingjing jingjing.wu at intel.com
Wed Apr 20 09:31:03 CEST 2016


> @@ -3830,12 +3844,22 @@ i40e_vsi_release(struct i40e_vsi *vsi)
>  		i40e_veb_release(vsi->veb);
>  	}
> 
> +	if (vsi->floating_veb) {
> +		TAILQ_FOREACH(vsi_list, &vsi->floating_veb->head, list) {
> +			if (i40e_vsi_release(vsi_list->vsi) != I40E_SUCCESS)
> +				return -1;
It will be better to continue but not return error.

> +			TAILQ_REMOVE(&vsi->floating_veb->head, vsi_list,
> list);
> +		}
> +		i40e_veb_release(vsi->floating_veb);
> +	}
> +



> diff --git a/drivers/net/i40e/i40e_ethdev.h
> b/drivers/net/i40e/i40e_ethdev.h index 7dc6936..09fb6e2 100644
> --- a/drivers/net/i40e/i40e_ethdev.h
> +++ b/drivers/net/i40e/i40e_ethdev.h
> @@ -224,6 +224,7 @@ struct i40e_bw_info {  struct i40e_veb {
>  	struct i40e_vsi_list_head head;
>  	struct i40e_vsi *associate_vsi; /* Associate VSI who owns the VEB */
> +	struct i40e_pf *associate_pf; /* Associate PF who owns the VEB */
>  	uint16_t seid; /* The seid of VEB itself */
>  	uint16_t uplink_seid; /* The uplink seid of this VEB */
>  	uint16_t stats_idx;
> @@ -264,6 +265,7 @@ struct i40e_vsi {
>  	struct i40e_vsi_list sib_vsi_list; /* sibling vsi list */
>  	struct i40e_vsi *parent_vsi;
>  	struct i40e_veb *veb;    /* Associated veb, could be null */
> +	struct i40e_veb *floating_veb; /* Associated floating veb */

For vsi->veb, the VEB associated with uplink vsi, but as I know, floating_veb
Has no uplink vsis. Can I understand the floating_veb in vsi indicates floating veb
Of the device/pf, and only main vsi will have it? If so, why not put in in the pf structure?




More information about the dev mailing list