This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: dhcp fails on second ethernet port


On 10/18/07, Emmanuel.Coullien@faiveleytransport.com
<Emmanuel.Coullien@faiveleytransport.com> wrote:
>
> Hello,
>
> I find your mail below in the ecos-discuss and I got the same problem on an
> ecosPRO 2.0.66.

Here is the solution to our problem with DHCP renewals:

Index: net/common/v2_0_51/src/dhcp_support.c
===================================================================
RCS file: /cvs/ecos/ecos-opt/net/net/common/v2_0_51/src/dhcp_support.c,v
retrieving revision 1.2.10036.1
diff -u -5 -p -r1.2.10036.1 dhcp_support.c
--- net/common/v2_0_51/src/dhcp_support.c	9 Nov 2004 10:49:41 -0000	1.2.10036.1
+++ net/common/v2_0_51/src/dhcp_support.c	23 Aug 2007 15:24:33 -0000
@@ -111,15 +111,17 @@ int dhcp_bind( void )
         cyg_semaphore_init( &dhcp_needs_attention, 0 );

     // Run the state machine...
 #ifdef CYGHWR_NET_DRIVER_ETH0
     if (eth0_up
+        && 0 != eth0_dhcpstate
         && DHCPSTATE_FAILED != eth0_dhcpstate )
             eth0_up = do_dhcp(eth0_name, &eth0_bootp_data,
&eth0_dhcpstate, &eth0_lease);
 #endif
 #ifdef CYGHWR_NET_DRIVER_ETH1
     if (eth1_up
+        && 0 != eth1_dhcpstate
         && DHCPSTATE_FAILED != eth1_dhcpstate )
             eth1_up = do_dhcp(eth1_name, &eth1_bootp_data,
&eth1_dhcpstate, &eth1_lease);
 #endif

     // If the interface newly came up, initialize it:




> My purpose is to initialize 2 Ethernet interfaces in a separate thread
> because sometime one of them can be unplugged and then, we want to continue
> the application on the plugged interface and, in the meantime, we want the
> other one to wait until an ethernet link.
> So that, I can't use init_all_network_interface().
>
> Then I notice that :
> - When the Eth0 (with static adress) is initialized before the second one
> (with DHCP configuration), the DISCOVER packet never make it out onto the
> wire.
> - When the Eth0 (with static adress) is initialized after the second one
> (with DHCP configuration), it works fine.
> - When the 2 interfaces are initializes with static adress, it works fine.
>


You should search the eCosCentric bug tracker
(http://bugzilla.ecoscentric.com).  We found another bug with DHCP and
they supplied a huge patch.  If you have eCosPro you should be able to
search for the bug report.  If you don't find the bug report, try
submitting one.

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]