On Fri, 2006-31-03 at 17:00 -0800, David Daney wrote: > jamal wrote: > > On Fri, 2006-31-03 at 15:26 -0800, David Daney wrote: > >
> > While the patch does seem reasonable - given the link local addresses > > are well defined, I am curious why is this not being done in the user > > space apps you mention? > > The user space apps do broadcast for the portion of the protocol used to > probe and claim an address. The kernel ARP driver is relied on to > satisfy normal arp requests. If everyone using link local is supposed to be making a claim first, then why do you need to worry about already established vertices? i.e a new node coming in will broadcast; a node already claiming the IP will respond and supposedly the new node will pick the next link local and retry with another broadcast. Is this insufficient? > > The only time linux ever sends unicast ARPs is when it is pretty much > > established who owns the IP address i.e neighbor is reachable. > > Broadcasts are always sent at the beginning when it hasnt been > > validated if things are sane. In other words, conflict resolution > > is achievable from user space (ex look at iproute2/ip/ifcfg). > > > > This is the key. RFC 3927 section 2.5 requires broadcast on the > 169.254.0.0/16 network when normally ARP would unicast. > And thats the part i didnt understand. Note my question above. > On a switched network that has been partitioned but then healed, you may > never see an address conflict unless *all* ARP packets are broadcast. > For better or worse the RFC requires broadcast. > This may be true for a lot of OSes - but possibly not for Linux (given Linux actually follows a very robust state transition that will catch. Did you actually run into a problem or was this a pharmacy-cowboy raid to look for bugs/non-conformance? Can you describe the problem you encountered? > The alternative would be to disable ARP on an interface if it were > configured on the 169.254.0.0/16 network and handle the entire (slightly > modified) ARP protocol from a user space daemon. The current daemons do > *not* do it this way. > I am not sure you even need to do that - but lets not digress. > The patch adds 13 bytes (6 machine instructions) to arp.o on on i686, > from an efficiency point of view it make sense to do it in the kernel > driver and not duplicate the entire ARP in user space. > > I suppose one could add a configure option to conditionally include this > code, but I would not go so far as to suggest it. i am just curious as whether it is achievable in user space or not. Clearly if achievable in user space that would be the preference. Otherwise it is such a small patch and i am indifferent. cheers, jamal - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html