One more observation from a debugging session (with n=2) with these settings

#define MEMP_NUM_TCP_PCB                2
#define MEMP_NUM_TCP_PCB_LISTEN         2

(Hex numbers are addresses of pcbs or lpcbs)

Two listening lpcb initially:
0xb78c
0xb76c

The first two connections use the following pcbs:
0xbab4    (pcb first connection)
0xba18    (pcb second connection)

n+1 (third connection in this example) gets this pcb
0xbab4    (reuses pcb from first connection)
=> Now we have "lost" the lpcb 0xb76c !!!

n+2 gets this pcb
0xb76c (this was the starting address of first "listening pcb", this
"normal pcb will overlap with second lpcb !!!)
=> This overwrites the "last remaining" listening pcb !!!

If I leave MEMP_NUM_TCP_PCB at 2, but increase the MEMP_NUM_TCP_PCB_LISTEN
to 6 I get almost identical behavior (different addresses obviously) with
the same failure at n+2 connection (one lpcb dropped at n+1, last remaining
lpcb overwritten at n+2).

I will not rule out that some LWIP settings (maybe pcb memory allocation
settings?) are wrong in my project. Is there any setting I could try?
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to