[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-hackers
Subject: Problem with lagg driver?
From: "Newpol, Richard" <rnewpol () panasas ! com>
Date: 2013-08-01 19:18:08
Message-ID: 1A778AD3F807B340B7EB1BD1B9C196773D6560C0 () zenyatta ! int ! panasas ! com
[Download RAW message or body]
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-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic