[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #43192] tcp_enqueue_flags() should TCP_SND_QUEUELEN wh
From: |
Albert Huitsing |
Subject: |
[lwip-devel] [bug #43192] tcp_enqueue_flags() should TCP_SND_QUEUELEN when sending FIN |
Date: |
Thu, 11 Sep 2014 09:22:12 +0000 |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 |
URL:
<http://savannah.nongnu.org/bugs/?43192>
Summary: tcp_enqueue_flags() should TCP_SND_QUEUELEN when
sending FIN
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: ajhuitsing
Submitted on: Thu 11 Sep 2014 09:22:11 AM GMT
Category: TCP
Severity: 3 - Normal
Item Group: Faulty Behaviour
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release:
lwIP version: git head
_______________________________________________________
Details:
in tcp_out.c() : tcp_enqueue_flags()
if ((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen >
TCP_SNDQUEUELEN_OVERFLOW)) {
LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue_flags: too long queue
%"U16_F" (max %"U16_F")\n",
pcb->snd_queuelen, TCP_SND_QUEUELEN));
will cause hangup in some cases, which can be partially fixed by:
if ((pcb->snd_queuelen > TCP_SND_QUEUELEN) || (pcb->snd_queuelen >
TCP_SNDQUEUELEN_OVERFLOW)) {
LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue_flags: too long queue
%"U16_F" (max %"U16_F")\n",
pcb->snd_queuelen, TCP_SND_QUEUELEN));
but this seems not the entire solution:
quote from Simon on this bug by email:
"This seems like a bug in lwIP, but your fix is not really correct. It might
solve your specific problem, but only because of your current
pcb->snd_queuelen state. A more general fix might have to detect that only a
FIN should be enqueued and ignore the TCP_SND_QUEUELEN counter in this case."
but I'm not deep enough into LWIP for that...
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?43192>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [bug #43192] tcp_enqueue_flags() should TCP_SND_QUEUELEN when sending FIN,
Albert Huitsing <=