lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [lwip-users] LwIP port on Blackfin, some questions and 1.3.0


From: Stéphane Lesage
Subject: RE: [lwip-users] LwIP port on Blackfin, some questions and 1.3.0
Date: Sat, 24 Nov 2007 21:09:53 +0100

Salut Frédéric,

> >3. The old version I'm currently using is stable with the socket API.
> >But I needed of lot of basic features which were not implemented 
> >(MSG_PEEK, receive time-out) Unfortunately, the corresponding macros 
> >are defined, letting the user think they are implemented !!!
> 
> I think it's normal for "options": like this, you got source 
> code compatibility, and using these options should return 
> ENOPROTOOPT. About flags like MSG_PEEK, you're right.

My PoV is that it should not compile.
This may be a bit extremist, and this opinion is likely to be highly
unpopular here ;-)

Maybe get/setsockopt() should issue a warning using LWIP_DEBUGF() ?
(not compiled in release-build, of course)

> >4. I have a big problem for handling TCP connection loss.
> >When I unplug my device, or shut-down the peer, no error is reported 
> >and I can't know the connection is lost.
> >Is this bug corrected ?
> 
> Simon is right, the problem is mainly the default lwIP 
> values. To reduce that, you can reduce your 
> TCP_SLOW_INTERVAL, and reduce TCP_MAXRTX. It's a kind of 
> "send timeout", but global, and not "per socket".

Sorry, I was not clear. I meant loss of IDLE connections.

IIRC, when testing LwIP with a TCP echo application,
(server on my platform, and Windows XP telnet client)
I noticed that the telnet client reports a connection loss very fast
(when unplugging my PC or shutting down my device),
but the contrary was not true.

So I though that TCP had a keep-alive system, but that there was a bug in my
old LwIP.

After googling around, I found out that this mechanism exists,
but default UNIX time-out is 2 hours, 8 retries at 75 seconds interval !!!

TCP_KEEPALIVE (activated by default)
TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT are meant to control this.
and I'm happy to see they are implemented.

But I can't use them right now on my old Analog-Device version.
So I guess I'll definitely have to port 1.3.0.

> >5. About 1.3.0 required features:
> >-> backlog for listening sockets.
> >I think this is a very basic feature,
> >and I actually accidentally learned it was not implemented 
> in this list !
> 
> We have talk about that in 
> http://savannah.nongnu.org/task/?7421 (task #7421
> : Implement SO_RCVBUF)

Yes, I've read you wanted to have it in 1.3.0,
and I agree with you, it's a must-have.

What about TCP_KEEPINIT and/or SO_CONTIMEO

I've also read that you wanted to write a new socket layer which would not
rely on netconn.
What is the status of this ? on the 1.4.0 roadmap ?
What about implementing shutdown() and poll() ?

Best regards.

-- 
Stéphane Lesage
ATEIS International 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]