summaryrefslogtreecommitdiff
path: root/net/ipv4/syncookies.c
diff options
context:
space:
mode:
authorYuchung Cheng <ycheng@google.com>2014-03-01 04:42:26 +0400
committerDavid S. Miller <davem@davemloft.net>2014-03-04 00:33:02 +0400
commitc84a57113f59486e6688be1cd443b96e3118efa0 (patch)
tree5177aed13e8ff6c94ceed13239d824a92e672f71 /net/ipv4/syncookies.c
parentde39d7a4f3693c4247135cbce42716bf2a113577 (diff)
downloadlinux-c84a57113f59486e6688be1cd443b96e3118efa0.tar.xz
tcp: fix bogus RTT on special retransmission
RTT may be bogus with tall loss probe (TLP) when a packet is retransmitted and latter (s)acked without TCPCB_SACKED_RETRANS flag. For example, TLP calls __tcp_retransmit_skb() instead of tcp_retransmit_skb(). The skb timestamps are updated but the sacked flag is not marked with TCPCB_SACKED_RETRANS. As a result we'll get bogus RTT in tcp_clean_rtx_queue() or in tcp_sacktag_one() on spurious retransmission. The fix is to apply the sticky flag TCP_EVER_RETRANS to enforce Karn's check on RTT sampling. However this will disable F-RTO if timeout occurs after TLP, by resetting undo_marker in tcp_enter_loss(). We relax this check to only if any pending retransmists are still in-flight. Signed-off-by: Yuchung Cheng <ycheng@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Neal Cardwell <ncardwell@google.com> Acked-by: Nandita Dukkipati <nanditad@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/syncookies.c')
0 files changed, 0 insertions, 0 deletions