linux-brain/net/ipv4
Eric Dumazet dfe4f69f8e tcp/dccp: drop SYN packets if accept queue is full
commit 5ea8ea2cb7 upstream.

Per listen(fd, backlog) rules, there is really no point accepting a SYN,
sending a SYNACK, and dropping the following ACK packet if accept queue
is full, because application is not draining accept queue fast enough.

This behavior is fooling TCP clients that believe they established a
flow, while there is nothing at server side. They might then send about
10 MSS (if using IW10) that will be dropped anyway while server is under
stress.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-27 14:13:04 +09:00
..
netfilter netfilter: nf_tables: fix mismatch in big-endian system 2019-02-20 10:18:34 +01: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
af_inet.c gso_segment: Reset skb->mac_len after modifying network header 2018-09-29 03:07:32 -07:00
ah4.c ipsec: check return value of skb_to_sgvec always 2018-04-13 19:48:31 +02:00
arp.c arp: fix arp_filter on l3slave devices 2018-04-13 19:48:32 +02:00
cipso_ipv4.c net: avoid use IPCB in cipso_v4_error 2019-03-13 14:04:54 -07: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 ipsec: check return value of skb_to_sgvec always 2018-04-13 19:48:31 +02:00
fib_frontend.c net: ipv4: Fix memory leak in network namespace dismantle 2019-01-31 08:12:33 +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 net: ipv4: update fnhe_pmtu when first hop's MTU changes 2018-10-18 09:13:22 +02:00
fib_trie.c net: ipv4: Fix memory leak in network namespace dismantle 2019-01-31 08:12:33 +01: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 net: Add __icmp_send helper. 2019-03-13 14:04:53 -07:00
igmp.c multicast: do not restore deleted record source filter mode to new one 2018-07-28 07:49:11 +02:00
inet_connection_sock.c tcp/dccp: remove reqsk_put() from inet_child_forget() 2019-03-19 13:14:10 +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 ipfrag: really prevent allocation on netns exit 2019-01-31 08:12:33 +01:00
inet_hashtables.c soreuseport: fix initialization race 2017-11-18 11:22:22 +01:00
inet_timewait_sock.c soreuseport: initialise timewait reuseport field 2018-05-16 10:08:41 +02:00
inetpeer.c net: ipv4: use a dedicated counter for icmp_v4 redirect packets 2019-02-23 09:05:59 +01:00
ip_forward.c ipv4: allow local fragmentation in ip_finish_output_gso() 2016-11-03 16:10:26 -04:00
ip_fragment.c Fix "net: ipv4: do not handle duplicate fragments as overlapping" 2019-02-06 17:33:26 +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: Fix usage of pskb_trim_rcsum 2019-01-31 08:12:33 +01:00
ip_options.c net: avoid use IPCB in cipso_v4_error 2019-03-13 14:04:54 -07:00
ip_output.c ip: hash fragments consistently 2018-07-28 07:49:11 +02:00
ip_sockglue.c ip: on queued skb use skb_header_pointer instead of pskb_may_pull 2019-01-23 08:10:54 +01:00
ip_tunnel.c ip_tunnel: Fix name string concatenate in __ip_tunnel_create() 2018-12-08 13:05:05 +01:00
ip_tunnel_core.c ip_tunnel: don't force DF when MTU is locked 2018-11-23 08:20:34 +01:00
ip_vti.c vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel 2019-03-13 14:04:55 -07:00
ipcomp.c ipv4: coding style: comparison for equality with NULL 2015-04-03 12:11:15 -04:00
ipconfig.c ipconfig: Correctly initialise ic_nameservers 2018-08-03 07:55:24 +02: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: Fix potential Spectre v1 vulnerability 2019-01-09 16:16:39 +01:00
netfilter.c netfilter: use skb_to_full_sk in ip_route_me_harder 2017-07-05 14:40:28 +02:00
ping.c ipv4: fix memory leaks in udp_sendmsg, ping_v4_sendmsg 2018-05-19 10:26:57 +02:00
proc.c ip: discard IPv4 datagrams with overlapping segments. 2018-10-18 09:13:25 +02: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: set the deleted fnhe fnhe_daddr to 0 in ip_del_fnhe to fix a race 2019-03-19 13:14:08 +01:00
syncookies.c tcp: handle inet_csk_reqsk_queue_add() failures 2019-03-19 13:14:09 +01:00
sysctl_net_ipv4.c ipv4: Return EINVAL when ping_group_range sysctl doesn't map to user ns 2018-07-25 11:24:00 +02:00
tcp.c tcp: clear icsk_backoff in tcp_write_queue_purge() 2019-02-23 09:05:59 +01:00
tcp_bbr.c tcp_bbr: fix bw probing to raise in-flight data for very small BDPs 2018-08-06 16:23:01 +02: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 tcp: remove DELAYED ACK events in DCTCP 2018-08-24 13:12:39 +02: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 net/tcp/illinois: replace broken algorithm reference link 2018-05-30 07:50:33 +02:00
tcp_input.c tcp/dccp: drop SYN packets if accept queue is full 2019-03-27 14:13:04 +09:00
tcp_ipv4.c tcp: tcp_v4_err() should be more careful 2019-02-23 09:05:59 +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: do not restart timewait timer on rst reception 2018-09-15 09:42:56 +02:00
tcp_nv.c tcp_nv: fix potential integer overflow in tcpnv_acked 2018-05-30 07:50:22 +02:00
tcp_offload.c gso: validate gso_type in GSO handlers 2018-01-31 12:55:55 +01:00
tcp_output.c tcp: fix NULL ref in tail loss probe 2018-12-17 09:38:31 +01:00
tcp_probe.c tcp: Revert "tcp: tcp_probe: use spin_lock_bh()" 2018-09-15 09:43:01 +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: tcp: close sock if net namespace is exiting 2018-01-31 12:55:54 +01: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
tunnel4.c tunnels: correct conditional build of MPLS and IPv6 2016-07-11 13:27:06 -07:00
udp.c net: udp: fix handling of CHECKSUM_COMPLETE packets 2018-11-10 07:42:58 -08: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: validate gso_type in GSO handlers 2018-01-31 12:55:55 +01:00
udp_tunnel.c net: Remove deprecated tunnel specific UDP offload functions 2016-06-17 20:23:32 -07: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 ipv4: ERROR: code indent should use tabs where possible 2013-12-26 13:43:21 -05:00
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 ipv4: lock mtu in fnhe when received PMTU < net.ipv4.route.min_pmtu 2018-05-30 07:50:36 +02:00
xfrm4_protocol.c xfrm4: Remove duplicate semicolon 2014-06-30 07:49:47 +02:00
xfrm4_state.c inet: make no_pmtu_disc per namespace and kill ipv4_config 2013-12-18 16:58:20 -05:00
xfrm4_tunnel.c