Subject: auto-negotiation and interface flags
To: None <tech-net@netbsd.org>
From: john heasley <heas@shrubbery.net>
List: tech-net
Date: 07/08/2003 09:23:15
Two flags an interface can have are

#define IFF_UP          0x0001          /* interface is up */
#define IFF_RUNNING     0x0040          /* resources allocated */

IFF_UP appears to mean only that an interface has been configured as
up by ifconfig.

IFF_RUNNING seems to really mean nothing concrete.  eg: for gem and
ex, it just indicates that chip initialization was successful.

If an interface is set for auto-negotiation and ifconfig marks the
interface IFF_UP, the interface is in fact unavailable for tx/rx
until auto-neg completes (which seems to take some time for gem(4)
w/ cisco catalyst), but packets can now be enqueued.

I asuume I have missed something?  I do not see the point in queuing
packets for an unusable interface.  And, if there were a routing daemon
watching for interface state transition, it can not directly tell
if the intf is unusable.