freebsd-skq/sys/netinet
Sean Bruno d7fb35d13a Update tcp_lro with tested bugfixes from Netflix and LLNW:
rrs - Lets make the LRO code look for true dup-acks and window update acks
          fly on through and combine.
    rrs - Make the LRO engine a bit more aware of ack-only seq space. Lets not
          have it incorrectly wipe out newer acks for older acks when we have
          out-of-order acks (common in wifi environments).
    jeggleston - LRO eating window updates

Based on all of the above I think we are RFC compliant doing it this way:

https://tools.ietf.org/html/rfc1122

section 4.2.2.16

"Note that TCP has a heuristic to select the latest window update despite
possible datagram reordering; as a result, it may ignore a window update with
a smaller window than previously offered if neither the sequence number nor the
acknowledgment number is increased."

Submitted by:	Kevin Bowling <kevin.bowling@kev009.com>
Reviewed by:	rstone gallatin
Sponsored by:	NetFlix and Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D14540
2018-03-09 00:08:43 +00:00
..
cc sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
khelp sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
libalias libalias: small memory allocation cleanups. 2018-01-12 23:12:30 +00:00
tcp_stacks Declare more TCP globals in tcp_var.h, so that alternative TCP stacks 2017-10-11 20:36:09 +00:00
accf_data.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
accf_dns.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
accf_http.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
icmp6.h Correct the comment describing badrs which is bad router solicitiation, 2017-12-29 07:23:18 +00:00
icmp_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
if_ether.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
if_ether.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
igmp_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
igmp.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
igmp.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in_cksum.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in_debug.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
in_fib.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_fib.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in_gif.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in_jail.c Allow explicitly assigned IPv4 loopback address to be used in jails 2017-03-31 00:41:54 +00:00
in_kdtrace.c Use tcpinfoh_t for TCP headers in the tcp:::debug-{drop,input} probes. 2018-01-25 15:35:34 +00:00
in_kdtrace.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
in_mcast.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
in_pcb.c Reduce code duplication for inpcb route caching 2018-01-23 03:15:39 +00:00
in_pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in_pcbgroup.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
in_prot.c Remove BSD and USL copyright and update license block in in_prot.c, as the 2016-07-28 18:39:30 +00:00
in_proto.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in_rmx.c
in_rss.c
in_rss.h
in_systm.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
in.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip6.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_carp.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_carp.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_divert.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_divert.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_dummynet.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_ecn.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_ecn.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_encap.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_encap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_fastfwd.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_fw.h Rework ipfw dynamic states implementation to be lockless on fast path. 2018-02-07 18:59:54 +00:00
ip_gre.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_icmp.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_icmp.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_id.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ip_input.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_mroute.c style: Remove remaining deprecated MALLOC/FREE macros 2018-01-25 22:25:13 +00:00
ip_mroute.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_options.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_options.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip_output.c Reduce code duplication for inpcb route caching 2018-01-23 03:15:39 +00:00
ip_reass.c Do not generate illegal mbuf chains during IP fragment reassembly. Only 2018-01-24 05:09:21 +00:00
ip_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ip.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pim_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
pim.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
raw_ip.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_asconf.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_asconf.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_auth.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_auth.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_bsd_addr.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_bsd_addr.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_cc_functions.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_constants.h Add constant for the PAD chunk as defined in RFC 4820. 2018-01-27 13:46:55 +00:00
sctp_crc32.c When adding support for sending SCTP packets containing an ABORT chunk 2017-12-26 12:35:02 +00:00
sctp_crc32.h When adding support for sending SCTP packets containing an ABORT chunk 2017-12-26 12:35:02 +00:00
sctp_dtrace_declare.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_dtrace_define.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_header.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_indata.c Fix a bug related to fast retransmissions. 2018-01-16 21:58:38 +00:00
sctp_indata.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_input.c Cleaup, no functional change. 2017-12-13 17:11:57 +00:00
sctp_input.h Retire SCTP_WITH_NO_CSUM option. 2017-12-07 22:19:08 +00:00
sctp_lock_bsd.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_os_bsd.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_os.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_output.c Cleaup, no functional change. 2017-12-13 17:11:57 +00:00
sctp_output.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_pcb.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_pcb.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_peeloff.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_peeloff.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_ss_functions.c Fix SPDX line as suggested by pfg 2017-11-24 19:38:59 +00:00
sctp_structs.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_syscalls.c Correct sysent flags for dynamically loaded syscalls. 2017-07-14 09:34:44 +00:00
sctp_sysctl.c Retire SCTP_WITH_NO_CSUM option. 2017-12-07 22:19:08 +00:00
sctp_sysctl.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_timer.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_timer.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_uio.h Retire SCTP_WITH_NO_CSUM option. 2017-12-07 22:19:08 +00:00
sctp_usrreq.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctp.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
sctputil.c Don't provide a (meaningless) cmsg when proving a notification 2018-01-15 21:59:20 +00:00
sctputil.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
siftr.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp_debug.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tcp_debug.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tcp_fastopen.c When checking the TCP fast cookie length, conststently also check 2018-02-27 22:12:38 +00:00
tcp_fastopen.h Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_fsm.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tcp_hostcache.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp_hostcache.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp_input.c Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_lro.c Update tcp_lro with tested bugfixes from Netflix and LLNW: 2018-03-09 00:08:43 +00:00
tcp_lro.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp_offload.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp_offload.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
tcp_output.c Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_pcap.c
tcp_pcap.h
tcp_reass.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tcp_sack.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tcp_seq.h Update tcp_lro with tested bugfixes from Netflix and LLNW: 2018-03-09 00:08:43 +00:00
tcp_subr.c Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_syncache.c Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_syncache.h Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_timer.c Export tcp_always_keepalive for use by the Chelsio TOM module. 2018-01-30 23:01:37 +00:00
tcp_timer.h Export tcp_always_keepalive for use by the Chelsio TOM module. 2018-01-30 23:01:37 +00:00
tcp_timewait.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tcp_usrreq.c Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp_var.h Greatly reduce the number of #ifdefs supporting the TCP_RFC7413 kernel option. 2018-02-26 03:03:41 +00:00
tcp.h This is an implementation of the client side of TCP Fast Open (TFO) 2018-02-26 02:53:22 +00:00
tcpip.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
toecore.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
toecore.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
udp_usrreq.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
udp_var.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
udp.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
udplite.h