[ECOS] Re: connect ethernet cable at run-time
Fri Sep 25 01:23:00 GMT 2009
On 25/09/2009, at 10:11 AM, Jonathan Larmour <email@example.com> wrote:
> Grant Edwards wrote:
>> On 2009-09-24, Jonathan Larmour <firstname.lastname@example.org> wrote:
>>> Grant Edwards wrote:
>>>> On 2009-09-24, Lars Dahlin <email@example.com> wrote:
>>>>> I want to be able to connect the ethernet cable and it
>>>>> shouldn't be necesary to restart ecos.
>>>> Again, I've never seen that. We connect/disconnect Ethernet
>>>> cables all the time, and never have to restart anything.
>>>> We do have code in our Ethernet drivers that makes sure that
>>>> the Ethernet MAC duplex setting is changed to match the PHY's
>>>> negotiation results when a cable is plugged in, but I don't
>>>> think that has anything to do with what you're talking about.
>>> I think the issue may be that if you start the device with it
>>> disconnected, nothing _automatically_ will bring the interface
>>> up using BOOTP/DHCP.
>> If one calls init_all_network_interfaces() before the Ethernet
>> link is up does the DHCP code give up and terminate? IOW,
>> doesn't the DHCP client code retry if it doesn't get a
>> response? That seems a bit odd.
> I don't believe it does retry at present.
> See for example in dhcp_prot.c that do_dhcp() calls no_lease(),
> whicih disables and deletes the alarm. Without that the
> needs_attention semaphore is not posted and the dhcp management
> thread gets stuck waiting on it. That's my belief anyway.
> --["No sense being pessimistic, it wouldn't work anyway"]--
> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-
With my project I found some interesting things with DHCP and network
cables. If the network cable was unplugged at startup then there is no
IP address. I found that I could run out of file handles and that
DHCPinit call would never return even if the cable was later inserted.
I had to work around that and then regularly call
init_all_network_interfaces in the main TCP listening task just after
it also fed the watchdog if the IP address was 0.0.0.0.
Switching in and out of DHCP or static addressing was also coded.
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss