[dpdk-dev] [PATCH] net/i40e: force promiscuous state after VF reset

Eelco Chaudron echaudro at redhat.com
Tue Oct 15 12:31:59 CEST 2019


Any update on this patch?

Thanks,

Eelco


On 17 Sep 2019, at 9:40, Eelco Chaudron wrote:

> Even though the device reset is successful, disabling promiscuous mode
> might not always succeed, causing enabling it after reset to
> fail. This would happen when the kernel driver requires a reset of the
> VF.
>
> This patch resets the internal state, so next time promiscuous mode is
> configured it will be enabled.
>
> Signed-off-by: Eelco Chaudron <echaudro at redhat.com>
> ---
>  drivers/net/i40e/i40e_ethdev_vf.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c 
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index 551f6fa..e0f99a4 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -2276,11 +2276,21 @@ static int eth_i40evf_pci_remove(struct 
> rte_pci_device *pci_dev)
>  i40evf_dev_reset(struct rte_eth_dev *dev)
>  {
>  	int ret;
> +	struct i40e_vf *vf = 
> I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>
>  	ret = i40evf_dev_uninit(dev);
>  	if (ret)
>  		return ret;
>
> +	/*
> +	 * Even though the device reset is successful disabling promiscuous
> +	 * mode might not always succeed, causing enabling it after reset to
> +	 * fail. This would happen when the kernel driver requires a reset
> +	 * of the VF.
> +	 */
> +	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
> +		vf->promisc_unicast_enabled = FALSE;
> +
>  	ret = i40evf_dev_init(dev);
>
>  	return ret;
> -- 
> 1.8.3.1


More information about the dev mailing list