Hi all, I found the problem and a solution, but it raises a question.
The problem was in my implementation of sys_mbox_post. lwIP is supposed to work with queue sizes as small as one, and this is what I was using. My implementation would drop a message instead of blocking if the queue was full. The problem occurred when two SYN packets were received one after another. The application layer would never hear about the second connection because of the lost message. Blocking in sys_mbox_post was not enough to solve the problem, I also had to increase the queue size from 1 to 10. Is this a case where lwIP will not work properly with a queue size of 1? Dave -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Perry Sent: Tuesday, July 19, 2005 9:53 AM To: 'Mailing list for lwIP users' Subject: [lwip-users] Tcp freeze I've been reluctant to bring this up because it could easily be a bug in my new port of lwIP, but I think it could be in lwIP. I have a test app that serves a web page, and the page reloads every second. I open several windows and allow them to keep requesting pages. After a few seconds, the system freezes and no more packets are sent from lwIP. Sometimes it recovers and starts sending again, but in this case it will have leaked a few pbufs. If I define MEMP_NUM_TCP_PCB to 1, the problem goes away completely. So maybe it's something to do with allocating pcbs? I have an ethereal dump if anybody is interested. Dave Perry _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
