On 6/15/2020 10:01 AM, Ivan Dyukov wrote:
> rte_ethdev has declared new NUM_UNKNOWN speed which
> could be used in case when no speed information is available and
> link is up. NUM_NONE should be returned, if link is down.
> 
> Signed-off-by: Ivan Dyukov <i.dyu...@samsung.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c    |  5 ++++-
>  drivers/net/i40e/i40e_ethdev_vf.c | 10 +++++-----
>  2 files changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 749d85f54..d09b77674 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -2889,7 +2889,10 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link 
> *link,
>               link->link_speed = ETH_SPEED_NUM_40G;
>               break;
>       default:
> -             link->link_speed = ETH_SPEED_NUM_NONE;
> +             if (link->link_status)
> +                     link->link_speed = ETH_SPEED_NUM_UNKNOWN;
> +             else
> +                     link->link_speed = ETH_SPEED_NUM_NONE;
>               break;
>       }
>  }
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c 
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index bb5d28a44..1da185485 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -2165,15 +2165,15 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,
>               new_link.link_speed = ETH_SPEED_NUM_40G;
>               break;
>       default:
> -             new_link.link_speed = ETH_SPEED_NUM_NONE;
> +             if (vf->link_up)
> +                     new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
> +             else
> +                     new_link.link_speed = ETH_SPEED_NUM_NONE;
>               break;
>       }
>       /* full duplex only */
>       new_link.link_duplex = ETH_LINK_FULL_DUPLEX;
> -     new_link.link_status = vf->link_up &&
> -                             new_link.link_speed != ETH_SPEED_NUM_NONE
> -                             ? ETH_LINK_UP
> -                             : ETH_LINK_DOWN;
> +     new_link.link_status = vf->link_up ? ETH_LINK_UP : ETH_LINK_DOWN;
>       new_link.link_autoneg =
>               !(dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED);
>  
> 

lgtm

Reply via email to