[U-Boot] [PATCH 00/28] Add link-local addressing support

Joe Hershberger joe.hershberger at gmail.com
Thu Jan 26 00:40:02 CET 2012


Hi Stefano,

On Wed, Jan 25, 2012 at 4:27 AM, Stefano Babic <sbabic at denx.de> wrote:
> On 20/01/2012 01:53, Joe Hershberger wrote:
>> Link-local support allows the bootloader to get a usable network address
>> regardless of network environment.  Given that bootloaders may not always
>> have access to a DHCP server, this functionality makes accessing it in
>> those environments easier.  It is also referred to as zero-configuration IP.
>>
>
> Hi Joe,
>
> 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.

> However, it is clear we cannot comply with this requirement. The
> protocol runs once and there is not a background process to check for
> conflicts.

Any time we are processing NetLoop, we will handle conflict correctly.
 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.

> 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 would have to be a pretty congested 169.254.0.0
network.  In addition, any time both devices run NetLoop at the same
time as each other, the conflict will be detected and handled.

> 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, but it also
works on any generic network.  I added documentation to the README.  I
can add a note about the potential for non-compliance if NetLoop is
not run.

Best regards,
-Joe


More information about the U-Boot mailing list