lwip-users
[Top][All Lists]
Advanced

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

RE: [lwip-users] Sizes


From: Grubb, Jared
Subject: RE: [lwip-users] Sizes
Date: Wed, 27 May 2009 13:14:43 -0700

Was there a place you tried to look for this information and didn’t see it? If 
there's a more obvious place that we can place directions like this, it would 
be good to do it... makes it more intuitive for future users.

Jared

> -----Original Message-----
> From: address@hidden [mailto:lwip-
> address@hidden On Behalf Of John Kennedy
> Sent: Wednesday, May 27, 2009 13:12
> To: Mailing list for lwIP users
> Subject: RE: [lwip-users] Sizes
> 
> Jeff,
> Thanks for the info.  As it turns out there is more info about this
> issue in the archives, but it takes a little searching to dig it out.
> I searched on TCP_MSS and got quite a bit of stuff... still looking.
> Like you I came up with an TCP_MSS of 1460, a MEM_SIZE of 0x10000,
> TCP_SND_BUFF of 8 * TCP_MSS. But I set my TCP_SEND_QUEUELEN to 32 and
> my TCP_WND to 16384.  I learned from the archive that TCP_WND affects
> the TCP receive throughput.
> 
> The archives also seem to indicate that a certain amount of port
> specific tuning for TCP is necessary.  So it would be helpful if
> someone could suggest some standard LWIP test scenarios along with some
> guidelines of what to tweak to determine the best configuration for
> one's particular needs.  Otherwise it's a lot of trial and error.
> 
> So far Lwip has worked well for me (no bugs or problems except those of
> my own making) but I'm still fooling around with the configuration to
> maximize performance, and like you my port is very young.
> 
> John
> 
> 
> 
> ________________________________________
> John Kennedy
> 
> 
> Idaho Technology Inc.
> 390 Wakara Way
> Salt Lake City, UT 84108, USA
> 
> USA: 1-800-735-6544
> Bus:+1 (801)736-6354 x448
> Fax:+1 (801)588-0507
> 
> http://www.idahotech.com/
> -----Original Message-----
> From: Jeff Barber [mailto:address@hidden
> Sent: Wednesday, May 27, 2009 1:39 PM
> To: Mailing list for lwIP users
> Subject: Re: [lwip-users] Sizes
> 
> On Wed, May 27, 2009 at 9:47 AM, John Kennedy
> <address@hidden> wrote:
> > I'm using Lwip with sockets on MicroBlaze.  I have an MTU of 1500.  I
> want
> > to maximize the Ethernet TX/RX data rates (bits/sec) in my embedded
> system.
> > Memory is not an issue (512Mbytes avail).
> >
> > How does one determine the values for:
> >
> > *         MEM_SIZE
> >
> > *         PBUF_POOL_SIZE
> >
> > *         PBUF_POOL_BUFSIZE
> >
> > *         TCP_MSS
> >
> > *         TCP_SND_BUF
> >
> > *         TCP_SND_QUEUELEN
> >
> >  to maximize the Ethernet TX/RX data rates?
> 
> I wish there were a better source of information on this as well.  I
> spent quite a while trolling through the source trying to understand
> what all the different settings are for.  Some I figured out, others
> I'm still not sure of.
> 
> Like you, my environment is not memory-constrained.  Furthermore, I am
> using my own malloc implementation rather than the lwip built-in
> mem_malloc and memp_malloc (this is partially because I trust my own
> allocation functions and partially because I had a hard time
> understanding how to configure the lwIP implementation :-).  As best I
> can tell, when using one's own allocation routines, several of the
> memory-related defines are "don't care".  So MEM_SIZE and all the
> MEMP_* and PBUF_POOL_SIZE are (I think) not actually used -- beyond
> the sanity tests in lwip/src/core/init.c.
> 
> Caveat: my port is very young -- my driver came up for the first time
> a couple of days ago, and it hasn't yet done much more than answer
> ping packets and ARP (no TCP yet).  FWIW, though, here's my lwipopts.h
> (for everything else, I accept the default values from <lwip/opt.h>):
> 
> #define NO_SYS                      1
> #define MEM_LIBC_MALLOC             1
> #define MEMP_MEM_MALLOC             1
> #define MEM_ALIGNMENT               4
> #define MEM_SIZE                    (4 * 1024 * 1024)
> #define MEMP_NUM_PBUF               1024
> #define MEMP_NUM_UDP_PCB            20
> #define MEMP_NUM_TCP_PCB            20
> #define MEMP_NUM_TCP_PCB_LISTEN     16
> #define MEMP_NUM_TCP_SEG            128
> #define MEMP_NUM_REASSDATA          32
> #define MEMP_NUM_ARP_QUEUE          10
> #define PBUF_POOL_SIZE              512
> #define LWIP_ARP                    1
> #define IP_REASS_MAX_PBUFS          64
> #define IP_FRAG_USES_STATIC_BUF     0
> #define IP_DEFAULT_TTL              255
> #define IP_SOF_BROADCAST            1
> #define IP_SOF_BROADCAST_RECV       1
> #define LWIP_ICMP                   1
> #define LWIP_BROADCAST_PING         1
> #define LWIP_MULTICAST_PING         1
> #define LWIP_RAW                    0
> #define TCP_WND                     (4 * TCP_MSS)
> #define TCP_MSS                     1460
> #define TCP_SND_BUF                 (8 * TCP_MSS)
> #define TCP_LISTEN_BACKLOG          1
> #define LWIP_NETIF_STATUS_CALLBACK  1
> #define LWIP_NETIF_LINK_CALLBACK    1
> #define LWIP_NETIF_HWADDRHINT       1
> #define LWIP_NETCONN                0
> #define LWIP_SOCKET                 0
> #define LWIP_STATS_DISPLAY          1
> #define ETHARP_TRUST_IP_MAC         0
> 
> #define mem_init()
> #define mem_free                    my_free
> #define mem_malloc                  my_malloc
> #define mem_calloc(c, n)            my_zalloc((c) * (n))
> #define mem_realloc                 my_realloc
> 
> 
> For the MSS value, specifically, I worked backwards from the standard
> max ethernet frame size: 1514.  Subtract 14 bytes for layer 2 header;
> subtract 20 bytes for IP header and another 20 for TCP header; that
> leaves 1460.  There are a couple of ports in contrib/ that define it
> to 1476 but I couldn't figure out how they came up with that.  I will
> have a direct ethernet connection to my peer so don't need to worry
> about any additional fragmentation.
> 
> BTW, any comments on my settings would be greatly appreciated.
> 
> Hope this helps.
> Jeff
> 
> 
> _______________________________________________
> lwip-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/lwip-users
> 
> ________________________________________
> CONFIDENTIALITY NOTICE: This E-mail and any attachments are
> confidential information of the sender and are for the exclusive use of
> the intended recipient. If you are not the intended recipient, be aware
> that any disclosure, copying, distribution, or use of this E-mail or
> any attachment is prohibited. If you have received this E-mail in
> error, please notify us immediately by returning it to the sender and
> delete this copy from your system. Thank you for your cooperation.
> 
> 
> 
> 
> _______________________________________________
> lwip-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/lwip-users

reply via email to

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