lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] TCP Previous segment lost - lwip down to crawl


From: m8847
Subject: [lwip-users] TCP Previous segment lost - lwip down to crawl
Date: Tue, 06 Dec 2011 15:10:33 +0100
User-agent: Roundcube Webmail/0.4.2


Hi Guys,

I have this problem where lwip (1.4) suddenly goes into a state where throughput is very low. Like one packet a second. I can get this behavior by pushing more data (than normal for my application) onto the stack. I am using non-blocking sockets, and check for errno 11 (EAGAIN), and this is the limiter of the throughput as seen from the application side.

This 'mode' always starts with a 'TCP Previous segment lost' in the wireshark log. In the attached log 'problem', packet 4. The log is reduced, but all messages between these two nodes are not filtered.
10.0.0.123 is where I am logging below.


I am guessing this has something to do with our very limited ram setup, could it be?


When this happens, the statistics looks similar to this; (i.e. no real errors afaict)

LINK
xmit:     929   recv:   972     fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 0     opterr: 0       err:    0       cachehit: 0

ETHARP
xmit:     2     recv:   36      fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 0     opterr: 0       err:    0       cachehit: 445

IP_FRAG
xmit:     0     recv:   0       fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 0     opterr: 0       err:    0       cachehit: 0

IP
xmit:     927   recv:   936     fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 0     opterr: 0       err:    0       cachehit: 0

ICMP
xmit:     0     recv:   0       fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 0     opterr: 0       err:    0       cachehit: 0

UDP
xmit:     2     recv:   6       fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 0     opterr: 0       err:    0       cachehit: 0

TCP
xmit:     608   recv:   930     fw:     0       drop:     0
chkerr:   0     lenerr: 0       memerr: 0       rterr:    0
tproterr: 1     opterr: 0       err:    0       cachehit: 0

            Name   Curr    Max   Out of     Err
---------------------------------------------------
            HEAP  1116    1600    4096       0
         UDP_PCB     2       2       4       0
         TCP_PCB     2       2      14       0
  TCP_PCB_LISTEN     2       3       8       0
         TCP_SEG     3       4      36       0
       REASSDATA     0       0       5       0
       FRAG_PBUF     0       0      15       0
          NETBUF     0       1       8       0
         NETCONN     6       6      18       0
   TCPIP_MSG_API     0       1       2       0
 TCPIP_MSG_INPKT     0       2      10       0
     SYS_TIMEOUT     3       3       6       0
    PBUF_REF/ROM     0       1       3       0
       PBUF_POOL     0       5      19       0
SYS
sem.used:  9    sem.max:  9     sem.err:  0
mbox.used: 7    mbox.max: 7     mbox.err: 0




Excerpts from lwipopts.h:

#define TCP_LISTEN_BACKLOG              1
#define SYS_LIGHTWEIGHT_PROT            1
#define MEM_ALIGNMENT                   4
#define MEM_SIZE                        (4*1024)

#define MEMP_NUM_PBUF                   3
#define MEMP_NUM_TCP_PCB                14
#define MEMP_NUM_NETCONN                18
#define MEMP_NUM_ARP_QUEUE              24
#define MEMP_NUM_TCP_SEG                36
#define MEMP_NUM_SYS_TIMEOUT            6
#define MEMP_NUM_NETBUF                 8

#define PBUF_POOL_SIZE                  19

#define MEMP_NUM_TCPIP_MSG_API          2
#define MEMP_NUM_UDP_PCB                4
#ifndef MEMP_NUM_TCPIP_MSG_INPKT
#define MEMP_NUM_TCPIP_MSG_INPKT        10
#endif

#define PBUF_POOL_BUFSIZE               400

#define LWIP_TCP                        1

#define TCP_MSS                         400
#define TCP_SND_BUF                     800
#define TCP_WND                         800
#define TCP_SYNMAXRTX                   4

#define LWIP_RAW                        0

#define LWIP_SOCKET                     1
#define LWIP_SO_RCVTIMEO                1
#define SO_REUSE                        1

#define LWIP_STATS                      1
#define LWIP_STATS_DISPLAY              1
#define LWIP_DHCP                       0





Any helps greatly appreciated!

 Micael

Attachment: problem
Description: Binary data


reply via email to

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