On Tue, 2011-10-11 at 17:13 +0200, Mason wrote: > > In this UDP test did you use lwIP to process the UDP traffic, or was > it > > just a test that interfaced directly to your driver? > > In the UDP test, any frame larger than 1500 bytes was > not passed to lwip. The bogus ACK was sent directly > from the RX context instead.
OK, I'm not at all surprised that there is a big difference between the performance of that test, and the TCP performance you first measured. In the TCP case using the sockets API, you have: 1) 2 copies in each direction (app to/from lwIP, lwIP to/from your driver's buffer descriptors) 2) all the TCP protocol processing (which is probably not a big deal) 3) 2 context switches in each direction (driver to/from lwIP, lwIP to/from app) This is going to put a big dent in the throughput. You can avoid a lot of that by using the raw lwIP API. If you have to stick with the sockets API you may be stuck with relatively low throughput. Kieran _______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
