rx: Exit fast restart on non-duplicate ACK
authorSimon Wilkinson <sxw@your-file-system.com>
Sat, 18 Jun 2011 14:50:08 +0000 (15:50 +0100)
committerDerrick Brashear <shadow@dementia.org>
Wed, 22 Jun 2011 01:59:24 +0000 (18:59 -0700)
commit6b833f575743d4a826750bb6913cd53232a8867f
tree1d26afed29c37b509629adb3074bee74b71de725
parent91b351e88bdb56bfdfc2f5f16f64bb7522796581
rx: Exit fast restart on non-duplicate ACK

The current code only exits fast restart when we receive an ACK
packet that contains no missing chunks at all. On a network that is
dropping a reasonable chunk of its packets, this means that we spend
most of the call in fast recovery. (I originally found this by running
with the intentionally drop packets feature set to 10%)

TCP's fast retransmit behaviour is that we stay in fast recovery until
we receive our first non-duplicate acknowledgement. In TCP that means an
acknowledgement that moves the window. In RX, it is an acknowledgment
that ACKs a new packet.

Change-Id: If8e461dd91315be845397dd1bf42771c9223d156
Reviewed-on: http://gerrit.openafs.org/4869
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/rx/rx.c