rx: Fix resend accounting
authorSimon Wilkinson <sxw@your-file-system.com>
Mon, 25 Oct 2010 08:16:09 +0000 (09:16 +0100)
committerDerrick Brashear <shadow@dementia.org>
Tue, 26 Oct 2010 15:09:12 +0000 (08:09 -0700)
commite84193ca2a9cef5a13403d291435eb5ad47f5b41
treefda9cf90c694be8c6a19026eab6cc736eb3dd5cc
parentad3b5997c6da17927312f4618d8bb4f7fc542a64
rx: Fix resend accounting

rxi_Start flagged itself as 'resending' whenever it flushed the
transmit queue due to a resend event. However, it would flush the
entire transmit queue at this point, rather than only transmitting
packets that require a resend. When running with large window sizes
this results an a large number of packets erroneously being marked
as resent.

Instead, let SendXmitList decide whether a packet is being
retransmitted by using the presence of a serial number. This takes
advantage of the fact that a retransmitted packet must be the only
entry in a packet list - we just flag the packet list, instead of
having to maintain counters for each individual packet.

Change-Id: Id8e87b8efa87f5dfec2e51b7983a9fd6b1a5c4c5
Reviewed-on: http://gerrit.openafs.org/3135
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/rx/rx.c