Neal Cardwell
7d21d54d62
bpf: tcp: bpf_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
...
Apply the fix from:
"tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT"
to the BPF implementation of TCP CUBIC congestion control.
Repeating the commit description here for completeness:
Mirja Kuehlewind reported a bug in Linux TCP CUBIC Hystart, where
Hystart HYSTART_DELAY mechanism can exit Slow Start spuriously on an
ACK when the minimum rtt of a connection goes down. From inspection it
is clear from the existing code that this could happen in an example
like the following:
o The first 8 RTT samples in a round trip are 150ms, resulting in a
curr_rtt of 150ms and a delay_min of 150ms.
o The 9th RTT sample is 100ms. The curr_rtt does not change after the
first 8 samples, so curr_rtt remains 150ms. But delay_min can be
lowered at any time, so delay_min falls to 100ms. The code executes
the HYSTART_DELAY comparison between curr_rtt of 150ms and delay_min
of 100ms, and the curr_rtt is declared far enough above delay_min to
force a (spurious) exit of Slow start.
The fix here is simple: allow every RTT sample in a round trip to
lower the curr_rtt.
Fixes: 6de4a9c430b5 ("bpf: tcp: Add bpf_cubic example")
Reported-by: Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-06-25 16:08:47 -07:00
..
2020-06-25 16:08:47 -07:00
2020-03-23 20:51:55 +01:00
2020-06-01 15:21:03 -07:00
2020-05-19 11:41:49 -07:00
2020-05-19 11:41:49 -07:00
2020-05-19 11:41:49 -07:00
2020-05-19 11:41:49 -07:00
2020-05-19 11:41:49 -07:00
2020-05-09 17:05:27 -07:00
2020-05-09 17:05:27 -07:00
2020-05-19 14:03:59 -07:00
2020-05-19 14:03:59 -07:00
2020-05-19 11:41:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-12-15 16:53:51 -08:00
2019-12-15 16:53:51 -08:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-11-04 16:06:56 +01:00
2019-12-15 16:53:51 -08:00
2019-08-07 14:43:49 -07:00
2019-11-04 16:06:56 +01:00
2019-11-04 16:06:56 +01:00
2019-11-04 16:06:56 +01:00
2019-11-04 16:06:56 +01:00
2019-11-04 16:06:56 +01:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-10-15 16:06:05 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-08-07 14:43:49 -07:00
2019-11-04 16:06:56 +01:00
2019-11-04 16:06:56 +01:00
2019-05-24 14:05:58 -07:00
2019-05-24 14:05:58 -07:00
2019-05-24 14:05:58 -07:00
2019-05-24 14:05:58 -07:00
2019-05-24 14:05:58 -07:00
2019-10-09 15:38:36 -07:00
2020-03-04 17:00:06 +01:00
2020-05-14 18:41:08 -07:00
2020-06-01 14:57:14 -07:00
2020-01-20 16:37:45 -08:00
2020-05-19 11:32:04 -07:00
2020-05-19 11:32:04 -07:00
2020-05-11 16:56:47 +02:00
2020-01-20 16:37:45 -08:00
2020-03-02 16:25:14 -08:00
2020-03-02 16:25:14 -08:00
2020-03-02 16:25:14 -08:00
2020-03-02 16:25:14 -08:00
2020-04-24 17:34:30 -07:00
2020-01-20 16:37:45 -08:00
2020-03-02 16:25:14 -08:00
2020-06-11 16:05:56 +02:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-04-02 19:42:52 -07:00
2020-03-04 13:41:06 -08:00
2020-01-20 16:37:45 -08:00
2020-06-01 14:38:22 -07:00
2019-05-23 16:20:57 +02:00
2019-05-23 16:20:57 +02:00
2019-05-23 16:20:57 +02:00
2019-06-19 02:22:52 +02:00
2019-06-19 02:22:52 +02:00
2020-01-10 17:20:07 +01:00
2020-01-20 16:37:45 -08:00
2020-06-01 14:38:22 -07:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-03-17 19:28:27 +01:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-06-17 10:54:05 -07:00
2019-06-19 02:22:52 +02:00
2019-06-19 02:22:52 +02:00
2019-06-19 02:22:52 +02:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-03-02 16:25:14 -08:00
2020-04-24 17:47:40 -07:00
2020-04-28 17:35:03 -07:00
2020-04-24 17:47:40 -07:00
2020-04-24 17:47:40 -07:00
2020-03-30 17:36:41 -07:00
2020-06-02 11:50:23 -07:00
2020-04-26 10:00:36 -07:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-05-01 10:36:32 -07:00
2020-03-30 15:00:30 -07:00
2020-01-20 16:37:45 -08:00
2020-03-30 01:17:35 +02:00
2020-01-20 16:37:45 -08:00
2020-01-10 17:20:07 +01:00
2020-01-20 16:37:45 -08:00
2020-01-10 17:20:07 +01:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2019-07-03 15:06:33 +02:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-03-02 22:06:27 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-05-20 20:21:53 -07:00
2020-03-12 17:40:47 -07:00
2020-04-28 17:27:08 -07:00
2020-05-15 13:48:59 -07:00
2020-03-02 16:25:14 -08:00
2020-03-02 16:25:14 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-22 23:04:53 +01:00
2020-01-20 16:37:45 -08:00
2020-03-02 16:25:14 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-06-01 14:38:22 -07:00
2020-06-01 14:38:22 -07:00
2020-01-20 16:37:45 -08:00
2020-01-24 22:12:13 +01:00
2020-03-05 14:02:41 -08:00
2020-04-29 23:31:00 +02:00
2020-05-21 17:44:25 -07:00
2020-01-20 16:37:45 -08:00
2020-03-03 16:23:59 -08:00
2020-06-01 14:38:21 -07:00
2020-06-12 15:27:47 -07:00
2020-06-01 14:38:20 -07:00
2020-01-20 16:37:45 -08:00
2020-06-01 14:48:32 -07:00
2020-02-21 22:29:46 +01:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-04-28 15:31:59 -07:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-03-02 16:25:14 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-03-13 23:30:53 +01:00
2020-05-14 21:21:57 -07:00
2020-05-14 21:21:57 -07:00
2020-03-12 17:47:38 -07:00
2020-06-09 11:36:19 -07:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-06-09 11:36:19 -07:00
2020-01-20 16:37:45 -08:00
2020-05-13 12:19:38 -07:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00
2020-01-20 16:37:45 -08:00