On Thu, Oct 19, 2017 at 06:55:05PM +0200, Mike Belopuhov wrote: > SACK has been enabled in GENERIC kernels for over a decade and it's > time to make it an official part of the TCP stack.
I tested your diff by doing an amd64 release build and testing both the newly created /bsd and /bsd.rd, I observed no problems and SACK was available in both boot scenarios. One thing that stood out to me is that the miniroot's "SMALL" ftp(1) didn't sent SACK as permitted tcp option. However, after chrooting into my normal environment and using the real /usr/bin/ftp, I observed that SACK was available and used. If this is as expected, OK job@ > This grows bsd.rd on amd64 by 8k but Theo said it's within reasonable. > OK? $ ls -latr /bsd.rd /tmp/bsd.rd -rw------- 1 root wheel 9787542 Oct 22 08:36 /bsd.rd -rw------- 1 job wheel 9782763 Oct 19 12:48 /old/bsd.rd > diff --git sys/conf/GENERIC sys/conf/GENERIC > -option TCP_SACK # Selective Acknowledgements for TCP I think the below patch may be an appropriate companion for removal of the option. Kind regards, Job diff --git share/man/man4/options.4 share/man/man4/options.4 index 3e15d4c8c4f..3945611607e 100644 --- share/man/man4/options.4 +++ share/man/man4/options.4 @@ -454,20 +454,6 @@ Turns on forward acknowledgements allowing a more precise estimate of outstanding data during the fast recovery phase by using .Em SACK information. -This option can only be used together with -.Em TCP_SACK . -.It Cd option TCP_SACK -Turns on selective acknowledgements. -Additional information about -segments already received can be transmitted back to the sender, -thus indicating segments that have been lost and allowing for -a swifter recovery. -Both communication endpoints need to support -.Em SACK . -The fallback behaviour is NewReno fast recovery phase, which allows -one lost segment to be recovered per round trip time. -When more than one segment has been dropped per window, the transmission can -continue without waiting for a retransmission timeout. .It Cd option TCP_SIGNATURE Turns on support for the TCP MD5 Signature option (RFC 2385). This is used by