[dpdk-dev] [RFT] net/netvsc: initialize link state
Mohammed Gamal
mgamal at redhat.com
Fri Feb 7 14:22:23 CET 2020
On Thu, 2020-02-06 at 16:10 -0800, Stephen Hemminger wrote:
> If application is using link state interrupt, the correct link state
> needs to be filled in when device is started. This is similar to
> how virtio updates link information.
>
> Reported-by: Mohammed Gamal <mgamal at redhat.com>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> This version marked RFT because am in airport without access to a
> machine to test it.
>
> drivers/net/netvsc/hn_ethdev.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/netvsc/hn_ethdev.c
> b/drivers/net/netvsc/hn_ethdev.c
> index c79f924379fe..564620748daf 100644
> --- a/drivers/net/netvsc/hn_ethdev.c
> +++ b/drivers/net/netvsc/hn_ethdev.c
> @@ -823,6 +823,10 @@ hn_dev_start(struct rte_eth_dev *dev)
> if (error)
> hn_rndis_set_rxfilter(hv, 0);
>
> + /* Initialize Link state */
> + if (error == 0)
> + hn_dev_link_update(dev, 0);
> +
> return error;
> }
>
I tested this and I always get the link status as UP, regardless of
whether I start the interface on the guest in UP or DOWN state. Looking
at hn_dev_link_update() code, I see that the link status depends on the
NDIS status that the driver gets from the host if my understanding is
correct.
The question is whether if I use 'ip li set dev $IF_NAME down' on the
guest affects the status the host sees, or would the host set the state
to NDIS_MEDIA_STATE_CONNECTED of the device is physcially connected
regardless of what the guest tries to do?
More information about the dev
mailing list