Sowmini.Varadhan at Sun.COM writes:
> On (05/01/09 16:16), James Carlson wrote:
> > I'm not quite sure what you meant here, but there's no need for
> > administrative action to recover a DAD-failed interface.  The system
> > runs a timer on all DAD-failed interfaces and periodically tries to
> > bring them back up.  This is the solution to the "closet server"
> > problem described in the design document.
> 
> Yeah, I know. But (while you were on vacation) the argument was made
> that the admin might be too impatient to wait for the restart timer
> thread and would then "need" to restart DAD at will.

The system also retries DAD when the link goes up, which should cover
at least some of the cases where this issue matters.

Yes, if you want to retry _right now_, then the only way to do that is
with some user command, and setting the interface back IFF_UP is one
way to get there.

> > I guess a new function could be added as well, but if nobody uses it
> > on other platforms, why bother?
> 
> I was thinking of some application like quagga that hears about a physical
> interface and an address on a routing socket, and then wants to, say,
> find the netmask of that address.. the "addr_to_lif()" function that
> I proposed would save this application the trouble of marching down
> the addrlist and doing comparisons. 

Currently, you can have multiple logical interfaces with the same
address on a single physical address, so long as no more than one of
them is "up" at any one time.  I'd assume that a function like this
would just ignore "down" addresses.

> It would just be a minor helper function, of course. 

At least with the daemons I've worked on, it's effectively the
opposite that's true: we know about the logical interface name, and we
deal with things that happen on the logical address, and sometimes
need to strip the ":N" to figure out what physical interface that
corresponds to.  (Worse, we need to "guess" at IPMP relationships,
though that's historical now.)

Even in the cases where you do look up an address to figure out what
logical it belongs to, you don't just want the name; you usually want
the internal data structure that represents it.

Going from physical plus address to a logical name via a system
library interface isn't a problem I think I've seen ... at least in
daemons that need to track SIOCGIFCONF and routing sockets.  But,
sure, it could be added.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to