Thread (24 messages) 24 messages, 3 authors, 2022-01-07

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help