[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YdXDVakWSkQyvlqe@lunn.ch>
Date: Wed, 5 Jan 2022 17:12:05 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Dimitris Michailidis <d.michailidis@...gible.com>
Cc: Jakub Kicinski <kuba@...nel.org>, davem@...emloft.net,
netdev@...r.kernel.org
Subject: Re: [PATCH net-next v4 3/8] net/funeth: probing and netdev ops
> > > + if ((notif->link_state | notif->missed_events) & FUN_PORT_FLAG_MAC_DOWN)
> > > + netif_carrier_off(netdev);
> > > + if (notif->link_state & FUN_PORT_FLAG_NH_DOWN)
> > > + netif_dormant_on(netdev);
> > > + if (notif->link_state & FUN_PORT_FLAG_NH_UP)
> > > + netif_dormant_off(netdev);
> >
> > What does this do?
>
> FW may get exclusive access to the ports in some cases and during those times
> host traffic isn't serviced. Changing a port to dormant is its way of
> telling the host
> the port is unavailable though it has link up.
Quoting RFC2863
3.1.12. New states for IfOperStatus
Three new states have been added to ifOperStatus: 'dormant',
'notPresent', and 'lowerLayerDown'.
The dormant state indicates that the relevant interface is not
actually in a condition to pass packets (i.e., it is not 'up') but is
in a "pending" state, waiting for some external event. For "on-
demand" interfaces, this new state identifies the situation where the
interface is waiting for events to place it in the up state.
Examples of such events might be:
(1) having packets to transmit before establishing a connection to
a remote system;
(2) having a remote system establish a connection to the interface
(e.g. dialing up to a slip-server).
I can see this being valid if your FW is doing 802.1X. But i'm not
sure it is valid for other use cases. What exactly is your firmware
doing which stops it from handling frames?
Andrew
Powered by blists - more mailing lists