All,
We seem to have discovered a problem that occurs when adding an address (or 
alias) to a DOWNed lagg interface. After adding an address, when you try to 
bring the interface UP it can't reach the desired networks.

Turns out that the problem occurs because the lagg driver silently passes the 
SIOCSIFADDR ioctl to the "ether_ioctl" handler, which in turn always sets the 
IFF_UP flag.

While this is usually ok (since ifconfig <if> <address> implies UP with the 
first assigned address anyway), the lagg driver does not have the proper 
handling to actually change state to UP on the first address, so it ends up in 
an inconsistent state. Then, when the user eventually does an "ifconfig lagg 
up" the default subnet routes are not added (because the "interface up" code 
sees that IFF_UP is already set).

So my first question - is this a known problem, or has it been addressed in 
some other way?

Secondly, I can think of two ways to fix this, and was wondering what are the 
implications. The first way would be for the lagg driver to correctly bring 
itself up when the first address is added to it. The second way would be for 
the lagg driver to preserve the state of IFF_FLAG when handling SIOCSIFADDR. I 
like the second way because it is less of an overall behaviour change from the 
current, but the first way seems more correct.

Rich Newpol
Panasas
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to