[BusyBox] dhcpc: broadcast flag

Brenda Butler bbutler at symbium.com
Fri Nov 26 03:36:50 UTC 2004



We've been having some flaky networking happening.

We are using Busybox 1.00-pre3 but I see the code for
creating the DISCOVER packets (init_header) is pretty
much the same for busybox 1.00.

The flaky networking consists of:

software sends out DHCP DISCOVER
   - sometimes it doesn't get to the network (observed
        from another machine on hub)
   - sometimes it gets to the network (observed from
        another machine on hub) and isn't answered
        until the 5th or 6th or later try
   - sometimes it gets to the server and a reply (DHCPOFFER)
        is sent first try, and networking proceeds normally.


Usually when it fails, it consistently fails.  But another
card in the same slot (same environment) will succeed.
The same card in other environment usually succeeds.
But same card back in same slot still fails.

The suggestions we've had so far are:

- make sure the broadcast bit is set
- Set the htype field in the dhcp packet to 6 (ARPHRD_IEEE802)
- Make sure the xid field is really random (it seems to be 0 always)

I'm looking for comments, advice and stories of similar cases,
thanks!  Advice of the sort "upgrade to busybox 1.00" would have
to be accompanied with specific info about what changed, as
I don't see that these specific fields are any different in
1.00 from 1.00-pre3.  I'd love to have an excuse to force
the upgrade now, so if I missed something please do let me
know.

I'll be trying out the above suggestions but I'm interested in
any gotchas that you'd know about.  I really know nothing
about the htype field...  

It is being suggested to change that from 1 to 6 because the
link negotiation is being held at 10 MB (rather than going to
100 MB where it should be) and someone noticed that field is
called 10MB.  Personally, I would have thought that link
negotiation would have been done by the time dhcp starts,
but I'm a newb.

cheerio,
bjb









More information about the busybox mailing list