Re: [PATCH net-next v4 3/8] net/funeth: probing and netdev ops
From: Dimitris Michailidis <hidden>
Date: 2022-01-07 00:53:26
On Wed, Jan 5, 2022 at 8:12 AM Andrew Lunn [off-list ref] wrote:
quoted
quoted
quoted
+ 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?
The downtime happens occasionally after link up while the internal control processor is configuring the network units. So internal setup delays. I am told that "in the near future" the need for this will be removed. Trusting that near will be reasonable I'll remove this now.
Andrew