Hello

Recently many lwip users had problems with not received TCP ACK packets. In
many cases source of this problem is ETH driver behavior. When there are no
free pbufs, pbuf_alloc returns ERR_MEM, and received packet is dropped.
Sometimes that received packet is part of ongoing TCP connection. As a
result, resources assigned to that TCP connection are locked. Sometimes
these resources are freed after successful retransmission. But in some
cases that problem can make device totally unresponsive.

After some ussually long time resources are freed and device start to work
correctly again. Probably due to some kind of timeout (is it possible to
change that timeout?). Common advise in these situations is to increase
pbuf count. Of course assigning more memory to pbufs could be helpful. But
it wont solve the problem, it only makes it occur less frequently.

What is the best way to avoid that kind of issues? I believe it can be
achieved with good lwipopt settings combined with proper ethernetif
implementation and some changes in application or even lwip code. Maybe we
can create some guidelines to avoid TCP ACK problems and add them to lwip
wiki?
__
Best Regards
Maciek
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to