freebsd-dev/sys/netinet
Richard Scheffenegger 9028b6e0d9 Prevent premature shrinking of the scaled receive window
which can cause a TCP client to use invalid or stale TCP sequence numbers for ACK packets.

Packets with old sequence numbers are ignored and not used to update the send window size.
This might cause the TCP session to hang indefinitely under some circumstances.

Reported by:	Cui Cheng
Reviewed by:	tuexen (mentor), rgrimes (mentor)
Approved by:	tuexen (mentor), rgrimes (mentor)
MFC after:	3 weeks
Sponsored by:	NetApp, Inc.
Differential Revision:	https://reviews.freebsd.org/D24515
2020-04-29 22:01:33 +00:00
..
cc Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
khelp
libalias Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
netdump Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_stacks Prevent premature shrinking of the scaled receive window 2020-04-29 22:01:33 +00:00
accf_data.c
accf_dns.c
accf_http.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
icmp6.h Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
icmp_var.h
if_ether.c Use interface fib for proxyarp checks. 2020-04-02 20:06:37 +00:00
if_ether.h Retire arpresolve_addr(), which is not used anywhere, from if_ether.c. 2018-11-17 16:08:36 +00:00
igmp_var.h
igmp.c Fix an issue of net.inet.igmp.stats handler. 2020-03-07 08:41:10 +00:00
igmp.h
in_cksum.c
in_debug.c
in_fib.c Move route_temporal.c and route_var.h to net/route. 2020-04-28 19:14:09 +00:00
in_fib.h Convert debugnet to the new routing KPI. 2020-04-26 18:42:38 +00:00
in_gif.c Mechanically substitute assertion of in_epoch(net_epoch_preempt) to 2020-01-15 05:45:27 +00:00
in_jail.c
in_kdtrace.c Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
in_kdtrace.h Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
in_mcast.c Remove the "config" taskqgroup and its KPIs. 2020-03-30 14:24:03 +00:00
in_pcb.c Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
in_pcb.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
in_pcbgroup.c
in_prot.c
in_proto.c Avoid calling protocol drain routines more than once per reclamation event. 2020-04-16 20:17:24 +00:00
in_rmx.c Move route_temporal.c and route_var.h to net/route. 2020-04-28 19:14:09 +00:00
in_rss.c
in_rss.h
in_systm.h
in_var.h Eliminate now-unused parts of old routing KPI. 2020-04-28 07:25:34 +00:00
in.c White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
in.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip6.h Remove stale definitions. The removed definitions are not used right 2020-03-01 12:34:27 +00:00
ip_carp.c carp: Widen epoch coverage 2020-04-12 16:09:21 +00:00
ip_carp.h carp: replace caddr_t with char * 2019-12-06 16:35:48 +00:00
ip_divert.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_divert.h
ip_dummynet.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
ip_encap.h Add KPI that can be used by tunneling interfaces to handle IP addresses 2018-10-21 17:55:26 +00:00
ip_fastfwd.c Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
ip_fw.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip_gre.c Introduce NET_EPOCH_CALL() macro and use it everywhere where we free 2020-01-15 06:05:20 +00:00
ip_icmp.c Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
ip_icmp.h
ip_id.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_input.c Convert rtalloc_mpath_fib() users to the new KPI. 2020-04-28 08:06:56 +00:00
ip_mroute.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_mroute.h
ip_options.c White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip_options.h
ip_output.c Convert rtalloc_mpath_fib() users to the new KPI. 2020-04-28 08:06:56 +00:00
ip_reass.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_var.h This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control. This 2019-09-24 18:18:11 +00:00
ip.h
pim_var.h
pim.h
raw_ip.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
sctp_asconf.c Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp_asconf.h Consistently provide arguments for timer start and stop routines. 2020-03-19 21:01:16 +00:00
sctp_auth.c Improve input validation for some parameters having a too small 2019-12-20 15:25:08 +00:00
sctp_auth.h Remove unused code. 2018-09-18 10:53:07 +00:00
sctp_bsd_addr.c Remove unused function. 2020-02-18 19:41:55 +00:00
sctp_bsd_addr.h Use an event handler to notify the SCTP about IP address changes 2019-10-13 18:17:08 +00:00
sctp_cc_functions.c Handle integer overflows correctly when converting msecs and secs to 2020-03-28 20:25:45 +00:00
sctp_constants.h Handle integer overflows correctly when converting msecs and secs to 2020-03-28 20:25:45 +00:00
sctp_crc32.c When the IP layer calls back into the SCTP layer to perform the SCTP 2019-09-15 18:29:45 +00:00
sctp_crc32.h
sctp_header.h Whitespace changes due to changes in ident. 2018-07-19 20:16:33 +00:00
sctp_indata.c Consistently provide arguments for timer start and stop routines. 2020-03-19 21:01:16 +00:00
sctp_indata.h Fix initialization of top_fsn. 2019-09-01 10:39:16 +00:00
sctp_input.c Improve input validation when processing AUTH chunks. 2020-04-22 21:22:33 +00:00
sctp_input.h Whitespace changes due to changes in ident. 2018-07-19 20:16:33 +00:00
sctp_kdtrace.c Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
sctp_kdtrace.h Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
sctp_lock_bsd.h Cleanup the file and add two ASSERT variants for locks, which will be 2020-03-23 12:17:13 +00:00
sctp_os_bsd.h Fix order of arguments in fib[46]_lookup calls in SCTP. 2020-04-26 13:02:42 +00:00
sctp_os.h
sctp_output.c Fix LINT build #2 after r360292. 2020-04-25 11:35:38 +00:00
sctp_output.h Improve the handling of state cookie parameters in INIT-ACK chunks. 2019-09-01 10:09:53 +00:00
sctp_pcb.c Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp_pcb.h Some more uint32_t cleanups, no functional change. 2020-03-27 21:48:52 +00:00
sctp_peeloff.c Use the stacb instead of the asoc in state macros. 2018-08-13 13:58:45 +00:00
sctp_peeloff.h
sctp_ss_functions.c Fix the non-default stream schedulers such that do not interleave 2020-02-17 18:05:03 +00:00
sctp_structs.h Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp_syscalls.c sctp: use new capsicum helpers 2020-02-15 01:29:40 +00:00
sctp_sysctl.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (14 of many) 2020-02-24 10:47:18 +00:00
sctp_sysctl.h Make the message size limit used for SCTP_SENDALL configurable via 2020-01-04 20:33:12 +00:00
sctp_timer.c Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp_timer.h More timer cleanups, no functional change. 2020-03-21 16:12:19 +00:00
sctp_uio.h Whitespace changes due to changes in ident. 2018-07-19 20:16:33 +00:00
sctp_usrreq.c Small cleanup by using a variable just assigned. 2020-03-28 22:35:04 +00:00
sctp_var.h Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp.h Make the message size limit used for SCTP_SENDALL configurable via 2020-01-04 20:33:12 +00:00
sctputil.c Do more argument validation under INVARIANTS when starting/stopping 2020-04-06 13:58:13 +00:00
sctputil.h Handle integer overflows correctly when converting msecs and secs to 2020-03-28 20:25:45 +00:00
siftr.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_debug.c
tcp_debug.h
tcp_fastopen.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_fastopen.h
tcp_fsm.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
tcp_hostcache.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_hostcache.h
tcp_hpts.c tcp_hpts: make RSS kernel compile again. 2020-03-03 14:15:30 +00:00
tcp_hpts.h Whitespace, remove from three files trailing white 2020-02-12 13:07:09 +00:00
tcp_input.c Correctly set up the initial TCP congestion window in all cases, 2020-04-29 21:48:52 +00:00
tcp_log_buf.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_log_buf.h This change does a small prepratory step in getting the 2020-04-27 16:30:29 +00:00
tcp_lro.c White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
tcp_lro.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
tcp_offload.c Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcp_offload.h Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcp_output.c Prevent premature shrinking of the scaled receive window 2020-04-29 22:01:33 +00:00
tcp_pcap.c Add an external mbuf buffer type that holds multiple unmapped pages. 2019-06-29 00:48:33 +00:00
tcp_pcap.h
tcp_ratelimit.c Fix copyright year and eliminate the obsolete all rights reserved line. 2020-04-08 17:55:45 +00:00
tcp_ratelimit.h Fix copyright year and eliminate the obsolete all rights reserved line. 2020-04-08 17:55:45 +00:00
tcp_reass.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_sack.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_seq.h
tcp_stats.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_subr.c This change does a small prepratory step in getting the 2020-04-27 16:30:29 +00:00
tcp_syncache.c When using automatically generated flow labels and using TCP SYN 2020-03-04 16:41:25 +00:00
tcp_syncache.h Add flags for upcoming patches related to improved ECN handling. 2019-12-31 14:32:48 +00:00
tcp_timer.c Improve the TCP blackhole detection. The principle is to reduce the 2020-04-14 16:35:05 +00:00
tcp_timer.h Reduce default TCP delayed ACK timeout to 40ms. 2020-04-16 15:59:23 +00:00
tcp_timewait.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_usrreq.c Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcp_var.h This change does a small prepratory step in getting the 2020-04-27 16:30:29 +00:00
tcp.h Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcpip.h
toecore.c Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
toecore.h Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
udp_usrreq.c Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
udp_var.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
udp.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
udplite.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00