linux-brain/net/ipv4
Neal Cardwell 8824b2d7ab tcp_bbr: reset long-term bandwidth sampling on loss recovery undo
commit 600647d467 upstream.

Fix BBR so that upon notification of a loss recovery undo BBR resets
long-term bandwidth sampling.

Under high reordering, reordering events can be interpreted as loss.
If the reordering and spurious loss estimates are high enough, this
can cause BBR to spuriously estimate that we are seeing loss rates
high enough to trigger long-term bandwidth estimation. To avoid that
problem, this commit resets long-term bandwidth sampling on loss
recovery undo events.

Signed-off-by: Neal Cardwell <ncardwell@google.com>
Reviewed-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-05 15:46:31 +01:00
..
netfilter netfilter: nf_nat_snmp: Fix panic when snmp_trap_helper fails to register 2017-12-25 14:23:42 +01:00
af_inet.c igmp: Fix regression caused by igmp sysctl namespace code. 2017-08-12 19:31:22 -07:00
ah4.c IPsec: do not ignore crypto err in ah4 input 2017-11-15 15:53:15 +01:00
arp.c NET: Fix /proc/net/arp for AX.25 2017-06-17 06:41:50 +02:00
cipso_ipv4.c tcp/dccp: fix ireq->opt races 2017-11-18 11:22:22 +01:00
datagram.c net: Set sk_txhash from a random number 2015-07-29 22:44:04 -07:00
devinet.c ipv4: igmp: guard against silly MTU values 2018-01-02 20:35:10 +01:00
esp4.c esp4: Fix integrity verification when ESN are used 2016-11-30 11:09:39 +01:00
fib_frontend.c ipv4: Fix use-after-free when flushing FIB tables 2018-01-02 20:35:12 +01:00
fib_lookup.h ipv4: consider TOS in fib_select_default 2015-07-24 22:46:11 -07:00
fib_rules.c switchdev: remove FIB offload infrastructure 2016-09-28 04:48:00 -04:00
fib_semantics.c ipv4: fix NULL dereference in free_fib_info_rcu() 2017-08-30 10:21:39 +02:00
fib_trie.c net: Improve handling of failures on link and route dumps 2017-06-07 12:07:44 +02:00
fou.c net: add recursion limit to GRO 2016-10-20 14:32:22 -04:00
gre_demux.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-06-30 05:03:36 -04:00
gre_offload.c gso: fix payload length when gso_size is zero 2017-11-18 11:22:20 +01:00
icmp.c icmp: don't fail on fragment reassembly time exceeded 2017-12-20 10:07:33 +01:00
igmp.c net: igmp: Use correct source address on IGMPv3 reports 2018-01-02 20:35:10 +01:00
inet_connection_sock.c tcp/dccp: fix other lockdep splats accessing ireq_opt 2017-11-18 11:22:22 +01:00
inet_diag.c net: inet: diag: expose the socket mark to privileged processes. 2016-09-08 16:13:09 -07:00
inet_fragment.c Revert "net: use lib/percpu_counter API for fragmentation mem accounting" 2017-09-20 08:19:55 +02:00
inet_hashtables.c soreuseport: fix initialization race 2017-11-18 11:22:22 +01:00
inet_timewait_sock.c timers, net/ipv4/inet: Initialize connection request timers as pinned 2016-07-07 10:35:06 +02:00
inetpeer.c net: Add helper function to compare inetpeer addresses 2015-08-28 13:32:36 -07:00
ip_forward.c ipv4: allow local fragmentation in ip_finish_output_gso() 2016-11-03 16:10:26 -04:00
ip_fragment.c inet: frag: release spinlock before calling icmp_send() 2017-12-25 14:23:39 +01:00
ip_gre.c net/ip_tunnels: Introduce tunnel_id_to_key32() and key32_to_tunnel_id() 2016-09-10 20:53:55 -07:00
ip_input.c net: VRF: Pass original iif to ip_route_input() 2016-09-16 04:24:07 -04:00
ip_options.c net: ipv4: Convert IP network timestamps to be y2038 safe 2016-03-01 17:18:44 -05:00
ip_output.c udp: consistently apply ufo or fragmentation 2017-08-12 19:31:22 -07:00
ip_sockglue.c net: Allow IP_MULTICAST_IF to set index to L3 slave 2017-11-30 08:39:11 +00:00
ip_tunnel_core.c net: Specify the owning module for lwtunnel ops 2017-02-04 09:47:11 +01:00
ip_tunnel.c ipv4: igmp: guard against silly MTU values 2018-01-02 20:35:10 +01:00
ip_vti.c vti: fix use after free in vti_tunnel_xmit/vti6_tnl_xmit 2017-10-12 11:51:22 +02:00
ipcomp.c ipv4: coding style: comparison for equality with NULL 2015-04-03 12:11:15 -04:00
ipconfig.c net: ipconfig: fix ic_close_devs() use-after-free 2017-12-25 14:23:42 +01:00
ipip.c ipip: only increase err_count for some certain type icmp in ipip_err 2017-11-18 11:22:23 +01:00
ipmr.c ipv4: allow local fragmentation in ip_finish_output_gso() 2016-11-03 16:10:26 -04:00
Kconfig tcp: Set DEFAULT_TCP_CONG to bbr if DEFAULT_BBR is set 2016-11-28 12:15:00 -05:00
Makefile tcp_bbr: add BBR congestion control 2016-09-21 00:23:01 -04:00
netfilter.c netfilter: use skb_to_full_sk in ip_route_me_harder 2017-07-05 14:40:28 +02:00
ping.c ping: implement proper locking 2017-05-03 08:36:34 -07:00
proc.c net: Suppress the "Comparison to NULL could be written" warnings 2016-09-30 01:50:45 -04:00
protocol.c net: Export inet_offloads and inet6_offloads 2014-09-19 17:15:31 -04:00
raw.c net: ipv4: fix for a race condition in raw_sendmsg 2018-01-02 20:35:12 +01:00
route.c route: update fnhe_expires for redirect when the fnhe exists 2017-12-14 09:28:22 +01:00
syncookies.c tcp/dccp: fix ireq->opt races 2017-11-18 11:22:22 +01:00
sysctl_net_ipv4.c ipv4: make tcp_notsent_lowat sysctl knob behave as true unsigned int 2017-08-11 08:49:35 -07:00
tcp_bbr.c tcp_bbr: reset long-term bandwidth sampling on loss recovery undo 2018-01-05 15:46:31 +01:00
tcp_bic.c tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_cdg.c tcp: cdg: rename struct minmax in tcp_cdg.c to avoid a naming conflict 2016-09-21 00:22:59 -04:00
tcp_cong.c tcp: disallow cwnd undo when switching congestion control 2017-06-14 15:05:52 +02:00
tcp_cubic.c tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_dctcp.c dctcp: avoid bogus doubling of cwnd after loss 2016-10-31 15:16:28 -04:00
tcp_diag.c net: diag: Fix refcnt leak in error path destroying socket 2016-08-23 23:11:36 -07:00
tcp_fastopen.c tcp: initialize max window for a new fastopen socket 2017-02-04 09:47:10 +01:00
tcp_highspeed.c tcp: add tcp_in_slow_start helper 2015-07-09 14:22:52 -07:00
tcp_htcp.c tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_hybla.c tcp: do not slow start when cwnd equals ssthresh 2015-07-09 14:22:52 -07:00
tcp_illinois.c tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_input.c tcp: invalidate rate samples during SACK reneging 2018-01-02 20:35:13 +01:00
tcp_ipv4.c tcp md5sig: Use skb's saddr when replying to an incoming segment 2018-01-02 20:35:11 +01:00
tcp_lp.c tcp: fix wraparound issue in tcp_lp 2017-05-14 14:00:21 +02:00
tcp_metrics.c tcp: make nla_policy const 2016-09-01 14:09:01 -07:00
tcp_minisocks.c tcp/dccp: block bh before arming time_wait timer 2017-12-16 16:25:46 +01:00
tcp_nv.c tcp_nv: fix division by zero in tcpnv_acked() 2017-11-24 08:33:40 +01:00
tcp_offload.c gso: Support partial splitting at the frag_list pointer 2016-09-19 20:59:34 -04:00
tcp_output.c tcp: do not mangle skb->cb[] in tcp_make_synack() 2017-11-24 08:33:40 +01:00
tcp_probe.c tcp: tcp_probe: use spin_lock_bh() 2017-06-17 06:41:49 +02:00
tcp_rate.c tcp: invalidate rate samples during SACK reneging 2018-01-02 20:35:13 +01:00
tcp_recovery.c tcp: do not assume TCP code is non preemptible 2016-05-02 17:02:25 -04:00
tcp_scalable.c tcp: add tcp_in_slow_start helper 2015-07-09 14:22:52 -07:00
tcp_timer.c net: fix keepalive code vs TCP_FASTOPEN_CONNECT 2017-08-12 19:31:21 -07:00
tcp_vegas.c tcp: fix under-evaluated ssthresh in TCP Vegas 2017-12-25 14:23:45 +01:00
tcp_vegas.h tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_veno.c tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_westwood.c tcp: replace cnt & rtt with struct in pkts_acked() 2016-05-11 14:43:19 -04:00
tcp_yeah.c tcp: cwnd does not increase in TCP YeAH 2016-09-08 17:16:12 -07:00
tcp.c tcp: invalidate rate samples during SACK reneging 2018-01-02 20:35:13 +01:00
tunnel4.c tunnels: correct conditional build of MPLS and IPv6 2016-07-11 13:27:06 -07:00
udp_diag.c net: inet: diag: expose the socket mark to privileged processes. 2016-09-08 16:13:09 -07:00
udp_impl.h udplite: call proper backlog handlers 2016-11-24 15:32:14 -05:00
udp_offload.c gso: fix payload length when gso_size is zero 2017-11-18 11:22:20 +01:00
udp_tunnel.c net: Remove deprecated tunnel specific UDP offload functions 2016-06-17 20:23:32 -07:00
udp.c soreuseport: fix initialization race 2017-11-18 11:22:22 +01:00
udplite.c udplite: call proper backlog handlers 2016-11-24 15:32:14 -05:00
xfrm4_input.c netfilter: Pass net into okfn 2015-09-17 17:18:37 -07:00
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c ipv4: hash net ptr into fragmentation bucket selection 2015-03-25 14:07:04 -04:00
xfrm4_output.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-10-24 06:54:12 -07:00
xfrm4_policy.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-09-12 15:52:44 -07:00
xfrm4_protocol.c xfrm4: Remove duplicate semicolon 2014-06-30 07:49:47 +02:00
xfrm4_state.c
xfrm4_tunnel.c