lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] Re: [lwip] Gigabit Ethernet and LWIP


From: Adam Dunkels
Subject: [lwip-users] Re: [lwip] Gigabit Ethernet and LWIP
Date: Wed, 08 Jan 2003 23:16:29 -0000

Hi!

On Saturday 04 May 2002 13.02, Kieran Mansley wrote:
> > Have you thought about Gigabit Ethernet and LWIP.  Will the timer
> > interval have to be decreased due to the increased volume of packets?
> >
> > Do you have an idea of performance of LWIP, and if it will be able to
> > keep up with Gigabit speeds?
>
> I'm working on something similar.  Not Gigabit Ethernet, but a gigabit
> rate network.  lwIP in it's current form isn't targetted at this, and so
> is unlikely to give the performance you require.  This will be especially
> true if you use the sockets interface as the amount of thread switching
> and message passing is just too great an overhead.  I'm creating a
> somewhat different version for which the path for normal data delivery and
> transmission is in a single thread, and which isn't so concerned about low
> memory usage.  This should improve things.

I don't fully agree with this - when using the raw API (which is single 
threaded), the performance of lwIP in terms of CPU cycles is really good 
because no copying or thread switching is being made. As you point out, the 
socket API is really bad, however. Also, the checksum computation should be 
rewritten in assembler for speed.

I would say that the main problem with running lwIP with gigabit speeds isn't 
CPU performance, but rather throughput issues. With gigabit speeds, the 
bandwidth*delay product becomes so large that the standard TCP mechanisms 
that lwIP implements cannot "fill the pipe". The TCP extensions defined in 
RFC1323, "TCP Extensions for High Performance", should really be implemented 
if high throughput is desired.

Still, interfacing lwIP with gigabit Ethernet is doable, but it will not be 
able to take full advantage of the gigabit speeds.

Kieran, since you are writing a new API, you might be interested in looking at 
the new event based API for 0.6, by the way.

/adam
-- 
Adam Dunkels <address@hidden>
http://www.sics.se/~adam

[This message was sent through the lwip discussion list.]




reply via email to

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