
On 26/01/2012 00:40, Joe Hershberger wrote:
I have a basic question about your patchset. RFC3927 requires that addresses are continuosly checked to avoid conflicts - this is a strict requirement.
True. It cannot be 100% compliant in every use-case.
It is important that these limitations are well documented
Any time we are processing NetLoop, we will handle conflict correctly.
Yes, but NetLoop is running only when there some activity on the network.
In the case of actually doing something on the network, (generally happens at least some of the time the device is on the network) conflicts are monitored for. In the use case for the devices I use this on, I also run NetConsole, which means the NetLoop is always being run. In that case, it is compliant with the RFC.
Right - I think this is the best case.
I can imagine we can get conflicts, when several targets are running at the same time in u_boot and they are attached to a network where local-link addressing is active. Then we can have two or more system using the same ip address, making the network unreliable.
That is true. I believe there are some cases you could contrive that could allow a device to pick the same address as another device, but it is quite unlikely. Initial address selections are based on MAC-seeded random number, making it hard to get a conflicting address in general.
It depends on the number of devices attached to the network - in a small environment, it is not probable. Anyway, if we document well how this feature should be used and which are the limitations, anybody is warned about its usage and about the best conditions to run the feature.
Which are the limitations of this implementation ? They should also described in your patchset, maybe with a README file. Is is thought to connect the target directly to a PC ?
The most likely use-case is connecting directly to a PC,
I have supposed also this is the best use-case.
but it also works on any generic network. I added documentation to the README.
Ok - please add a separate file doc/README.link-local (or whatever filename you want)
Best regards, Stefano Babic