I totally agree with Simon, at least with RAW API - I can't speak for
NETCONN performance.  My "embedded" system is like yours (667Mhz CPU and
256MB  667Mhz DDR2) and is zero-copy with optimized checksum (aligned
accesses and in assembly).  I can reach 500-600+MbS with TCP.  In my testing
of UDP the PC in some instances was not able to keep pace receiving.  I do
not run lwIP on the PC - we use Win32 sockets so far without issues.

 

It would be nice to see a standard Win32/Linux program to communicate with a
simple lwIP test program (RAW, NETCONN, sockets) to create a list of lwIP
platforms and the results of the tests.

 

From: lwip-users-bounces+bauerbach=arrayonline....@nongnu.org
[mailto:lwip-users-bounces+bauerbach=arrayonline....@nongnu.org] On Behalf
Of Simon Goldschmidt
Sent: Tuesday, February 07, 2012 12:57 AM
To: Mailing list for lwIP users
Subject: Re: [lwip-users] LWIP/WIN32 UDP performance (throughtput)

 

Zayaz Volk <papua...@hotmail.com> wrote:

Obviously, it raise the questions

1. Did anyone try to work with lwip on linux/Win32 and what throughput
you've been able to achieve ?

 

In my opinion, the win32 port is mainly limited by the netif driver: winpcap
doesn't seem to give the best performance, since we have to copy packets
twice on RX (and I don't remember if it's once or twice on TX). Also, lwIP
doesn't really benefit from multiple CPU cores. Instead, you're right that
it is targeted on low resources rather that throughput. 

 

Still, i think lwIP should be able to achieve the performance you want if:

A) your netif driver correctly supports zero copy and

B) you handle the stack "correctly" so that zero copy is possible (I.e. data
passed to a TX function must be left unchanged in memory until the netif
driver has actually sent it out).

 

Simon

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to