freebsd-skq/sys/netinet/tcp_stacks
Randall Stewart c28440db29 This change represents a substantial restructure of the way we
reassembly inbound tcp segments. The old algorithm just blindly
dropped in segments without coalescing. This meant that every
segment could take up greater and greater room on the linked list
of segments. This of course is now subject to a tighter limit (100)
of segments which in a high BDP situation will cause us to be a
lot more in-efficent as we drop segments beyond 100 entries that
we receive. What this restructure does is cause the reassembly
buffer to coalesce segments putting an emphasis on the two
common cases (which avoid walking the list of segments) i.e.
where we add to the back of the queue of segments and where we
add to the front. We also have the reassembly buffer supporting
a couple of debug options (black box logging as well as counters
for code coverage). These are compiled out by default but can
be added by uncommenting the defines.

Sponsored by:	Netflix Inc.
Differential Revision:	https://reviews.freebsd.org/D16626
2018-08-20 12:43:18 +00:00
..
rack_bbr_common.h This commit brings in a new refactored TCP stack called Rack. 2018-06-07 18:18:13 +00:00
rack.c This change represents a substantial restructure of the way we 2018-08-20 12:43:18 +00:00
sack_filter.c This commit brings in a new refactored TCP stack called Rack. 2018-06-07 18:18:13 +00:00
sack_filter.h This commit brings in a new refactored TCP stack called Rack. 2018-06-07 18:18:13 +00:00
tcp_rack.h epoch(9): allow preemptible epochs to compose 2018-07-04 02:47:16 +00:00