On Sun, Oct 22, 2017 at 11:23 +0200, Job Snijders wrote: > 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@ >
It's setting the option in my build here: 15:55:20.336682 fe:e1:bb:d1:a2:f0 fe:e1:ba:d0:55:1e 0800 78: \ 10.50.50.34.17078 > 10.50.50.1.80: S [tcp sum ok] 1313610867:1313610867(0) \ win 16384 <mss 1460,nop,nop,sackOK,nop,wscale 6,nop,nop,timestamp 3624645505 0> \ (DF) (ttl 64, id 25292, len 64) > > 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. > Yes, jmc@ has already notified me that I didn't include the manpage diff, but please be my guest and check your diff in. > 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 >