This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Networking in a ROM build
- To: "Trenton D. Adams" <tadams at theone dot dnsalias dot com>
- Subject: [ECOS] Re: Networking in a ROM build
- From: Fano Ramparany <Fano dot Ramparany at rd dot francetelecom dot fr>
- Date: Thu, 23 Aug 2001 18:00:32 +0200
- CC: eCos Disuss <ecos-discuss at sourceware dot cygnus dot com>
- Organization: France Telecom
- Reply-To: Fano dot Ramparany at rd dot francetelecom dot fr
Trenton,
This is exactly the problem we are currently facing and trying to solve
(see some recent threads). A socket configuration that might
solve your problem is to increase the socket timeout value:
#include <timer.h>
#define SOCK_TIMEOUT 50
...
int sd,len,rc;
sd = socket(AF_INET, SOCK_STREAM, 0);
struct timeval tv;
...
tv.tv_sec = SOCK_TIMEOUT;
tv.tv_usec = 0;
setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
This partially solved our problem, however, by sniffing the network
traffic (using tcpdump)
We have observed some strange behaviour on the ROM version of our
application, which seems to buffer the first packets and at some stage
sends them alltogether over the network.
I've also added some delay between the ethernet driver initialization
and the ip stack initialization, but this didn't solve the problem.
I'll now try to add some tracing (CYGDBG_USE_ASSERT) to go further.
Fano
> When using a ROM version, the following thing happens:
> The transmit and status signal threads connect to my windows machine
> just fine. After they are connected, my windows machine attempts to
> connect back to the embedded system's CommandThread socket. The
> connection attempt times out.