freebsd-dev/sys/netinet
Richard Scheffenegger 14558b9953 Introduce a lower bound of 2 MSS to TCP Cubic.
Running TCP Cubic together with ECN could end up reducing cwnd down to 1 byte, if the
receiver continously sets the ECE flag, resulting in very poor transmission speeds.

In line with RFC6582 App. B, a lower bound of 2 MSS is introduced, as well as a typecast
to prevent any potential integer overflows during intermediate calculation steps of the
adjusted cwnd.

Reported by:	Cheng Cui
Reviewed by:	tuexen (mentor)
Approved by:	tuexen (mentor)
MFC after:	2 weeks
Sponsored by:	NetApp, Inc.
Differential Revision:	https://reviews.freebsd.org/D23353
2020-04-30 11:11:28 +00:00
..
cc Introduce a lower bound of 2 MSS to TCP Cubic. 2020-04-30 11:11:28 +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
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
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
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
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
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
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
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