aboutsummaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorYuchung Cheng <ycheng@google.com>2012-01-19 14:42:21 +0000
committerDavid S. Miller <davem@davemloft.net>2012-01-22 15:08:44 -0500
commit974c12360dfe6ab01201fe9e708e7755c413f8b6 (patch)
tree8cdf87f44c8be550af2ec1530f8cb271fb1a2e1f /drivers/net
parentd0249e44432aa0ffcf710b64449b8eaa3722547e (diff)
tcp: detect loss above high_seq in recovery
Correctly implement a loss detection heuristic: New sequences (above high_seq) sent during the fast recovery are deemed lost when higher sequences are SACKed. Current code does not catch these losses, because tcp_mark_head_lost() does not check packets beyond high_seq. The fix is straight-forward by checking packets until the highest sacked packet. In addition, all the FLAG_DATA_LOST logic are in-effective and redundant and can be removed. Update the loss heuristic comments. The algorithm above is documented as heuristic B, but it is redundant too because heuristic A already covers B. Note that this change only marks some forward-retransmitted packets LOST. It does NOT forbid TCP performing further CWR on new losses. A potential follow-up patch under preparation is to perform another CWR on "new" losses such as 1) sequence above high_seq is lost (by resetting high_seq to snd_nxt) 2) retransmission is lost. Signed-off-by: Yuchung Cheng <ycheng@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
0 files changed, 0 insertions, 0 deletions