Message ID | 20171104004655.43335-1-priyarjha@google.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net] tcp: fix DSACK-based undo on non-duplicate ACK | expand |
From: Priyaranjan Jha <priyarjha@google.com> Date: Fri, 3 Nov 2017 17:46:55 -0700 > Fixes DSACK-based undo when sender is in Open State and > an ACK advances snd_una. > > Example scenario: > - Sender goes into recovery and makes some spurious rtx. > - It comes out of recovery and enters into open state. > - It sends some more packets, let's say 4. > - The receiver sends an ACK for the first two, but this ACK is lost. > - The sender receives ack for first two, and DSACK for previous > spurious rtx. > > Signed-off-by: Priyaranjan Jha <priyarjha@google.com> > Signed-off-by: Yuchung Cheng <ycheng@google.com> > Signed-off-by: Neal Cardwell <ncardwell@google.com> > Acked-by: Yousuk Seung <ysseung@google.com> Applied, thanks.
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 7eec3383702b..bf69bfbe593b 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -114,7 +114,7 @@ int sysctl_tcp_invalid_ratelimit __read_mostly = HZ/2; #define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED) #define FLAG_NOT_DUP (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED) -#define FLAG_CA_ALERT (FLAG_DATA_SACKED|FLAG_ECE) +#define FLAG_CA_ALERT (FLAG_DATA_SACKED|FLAG_ECE|FLAG_DSACKING_ACK) #define FLAG_FORWARD_PROGRESS (FLAG_ACKED|FLAG_DATA_SACKED) #define TCP_REMNANT (TCP_FLAG_FIN|TCP_FLAG_URG|TCP_FLAG_SYN|TCP_FLAG_PSH)