On Thu, 2009-08-13 at 04:09 -0700, JM wrote:
> Maybe this is a dumb question, but I've been wondering this for
> awhile.  Why does PBUF_POOL_SIZE have to be so large?  It's been
> recommended to set it at 16 or more.  Say I have MSS set to the
> maximum of 1460, TCP_WND is set to 2*MSS, and PBUF_POOL_BUFSIZE is
> about 1520.  In this case, if less than 3KB of data can be in flight
> at a time, and I have no more than one connection at a time, why would
> I need anymore than about 3 or 4 pbufs if they are for Rx only?  
> 

You're assuming that the stack will only receive packets for your
application.  In most networks this is not true - there will be a fair
number of broadcasts, and other stuff that your application will never
see.  These will still be passed to the stack, and each will use (at
least) one PBUF_POOL pbuf.  There may be other things, such as TCP ACKs
for any data you send, that also come in as separate packets and each
use PBUF_POOL pbufs.

Chris's point about using more-but-smaller pbufs in the pool is a good
one.  It will mean you might get away with less memory and fewer dropped
packets, at the cost of a little extra overhead for the chaining.

Kieran



_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to