]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[tcp] Update window even if ACK does not acknowledge new data
authorMichael Brown <mcb30@ipxe.org>
Wed, 5 Mar 2014 17:30:06 +0000 (17:30 +0000)
committerMichael Brown <mcb30@ipxe.org>
Fri, 7 Mar 2014 17:30:01 +0000 (17:30 +0000)
commit859664ea2a9201332da5320fe38081365c0f032a
treec619008e347edb79de3acd409933151e67f516d2
parentf17a30d547b40bcd4298161f77ee14258508acf8
[tcp] Update window even if ACK does not acknowledge new data

iPXE currently ignores ACKs which do not acknowledge any new data.
(In particular, it does not stop the retransmission timer; this is
done to prevent an immediate retransmission if a duplicate ACK is
received while the transmit queue is non-empty.)

If a peer provides a window size of zero and later sends a duplicate
ACK to update the window size, this update will therefore be ignored
and iPXE will never be able to transmit data.

Fix by updating the window size even for ACKs which do not acknowledge
new data.

Reported-by: Wissam Shoukair <wissams@mellanox.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/net/tcp.c