option TCP_RFC7413 is not in GENERIC

Patrick Kelsey pkelsey at freebsd.org
Fri Mar 16 16:47:39 UTC 2018

On Fri, Mar 16, 2018 at 12:12 PM Ian Lepore <ian at freebsd.org> wrote:

> On Fri, 2018-03-16 at 16:04 +0000, Patrick Kelsey wrote:
> > The current thinking is that users who care
> > about such performance differences are dealing with extreme workloads
> that
> > already motivate them to compile their own kernels, or are working with
> > very resource-constrained platforms, so the way forward is to keep the
> > TCP_RFC7413 kernel option around and enable it by default for the
> > server-class platforms (armd64 and arm64).
> I have no idea what TCP_RFC7413 even is, but I know I was forced to add
> it to my kernel config when I installed the bind911 package during a
> recent upgrade.  This is on a tiny NUC for which saturating even one of
> its gbe interfaces would count as "extreme workload". :)
RFC7413 is TCP Fast Open (TFO), which is a way to short-circuit TCP
handshakes if <mumble> conditions are met.  I'm curious as to why you were
forced to add the option to your kernel config when you installed bind911.
Maybe that version of bind was assuming something like 'if the TCP_FASTOPEN
sockopt is defined in a header, then all setsockopt(TCP_FASTOPEN) should
succeed or else die'?  That would be a very weird assumption, as the MacOS,
Linux, and FreeBSD implementations all have a sysctl that can be used to
disable the feature system-wide at any point in time.


More information about the freebsd-hackers mailing list