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