|
From: | Luke Trowbridge |
Subject: | [lwip-users] tcp_output does not flush |
Date: | Tue, 4 May 2010 09:45:11 -0400 |
I am using LWIP 1.3.2 via the raw API in a
single-threaded environment.
In a specific example, a call to tcp_write()
enqueues two segments. Successive calls to tcp_output() flush the first segment
and not the second. The Nagle algorithm fails in tcp_output()
here:
if((tcp_do_output_nagle(pcb) == 0) && ((pcb->flags & (TF_NAGLEMEMERR | TF_FIN)) == 0)){ break; } The delayed acknowledgment from the client
automatically flushes the second segment. I suspect I am misunderstanding
how I can force a flush of all enqueued data.
TCP_MSS = 536
TCP_SND_BUF = 4 * TCP_MSS
TCP_SND_QUEUELEN = 16
TCP_SNDLOWAT = 2 * TCP_MSS
TCP_WND = 4 * TCP_MSS
TCP_CALCULATE_EFF_SEND_MSS = 1
TCP_WND_UPDATE_THRESHOLD = TCP_MSS
Regards,
Luke Trowbridge
|
[Prev in Thread] | Current Thread | [Next in Thread] |