lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] calculating memory #define(s) in lwip


From: Bandu
Subject: [lwip-users] calculating memory #define(s) in lwip
Date: Tue, 21 Apr 2009 23:28:56 +0100

Hi,
 
I'm having problem setting a proper values for the following #defines
 
#define MEM_SIZE                        (24 * 1024) 
 
#define MEMP_NUM_PBUF                   16
#define MEMP_NUM_TCP_PCB              8       
#define MEMP_NUM_TCP_SEG              16     
#define PBUF_POOL_SIZE                     16
#define TCP_WND                                 (8 * 1024)  
#define TCP_MSS                                1024       
#define TCP_SND_BUF                         (8 * TCP_MSS)
#define TCP_SND_QUEUELEN               (MEMP_NUM_TCP_SEG) *4
#define PBUF_LINK_HLEN                    16
#define PBUF_POOL_BUFSIZE             256
Which of the above are related to TCP Tx and which are Rx?
 
How do I calculate those values to get an optimum throughput ?
 
I'm using Luminary Micro LM3S6965 which got 64KB RAM. and I'm opening 2 TCP port transfering data to PC.
 
PC <-------> MCU with lwIP 1.3 (2 TCP channel transfering data from 2xUART using 230Kbps).
 
When I open only 1 TCP port and transfer the data, the transmission is fast and smooth.
The problem is,  when 2 TCP port are opened and device is connected to 10Mbps Hub both data transfer starting to slow down significantly and i can see the data transfer are starting and stopping.
 
In my firmware, I got sometimes a) snd_queuelen was fulled on one of the port  b) i got ERR_MEM on tcp_write most of the time c) snd_buf size become 0 or very low and never free up again.
I'm sure my ethernet driver is NOT in promicuous mode.
 
Am I setting those #define completely wrong?
 
It would be great if you guys can give me suggestion or thoughts about what would causing me the issue.
 
Thank you very much.
 

--
Bandu
address@hidden

reply via email to

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