tcp-fast-open revision b351a5864727a390e06d787e522b141ca760590f
563N/ACopyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
563N/A
563N/AThis Source Code Form is subject to the terms of the Mozilla Public
563N/ALicense, v. 2.0. If a copy of the MPL was not distributed with this
563N/Afile, You can obtain one at http://mozilla.org/MPL/2.0/.
563N/A
563N/ASome systems (Linux, FreeBSD, OS X/macOS and Windows 10) support
563N/Athe TCP Fast Open (RFC 7413) mechanism in their recent versions.
563N/A
563N/ABIND 9 supports this on the server side.
563N/A
563N/AWhen the TCP_FASTOPEN socket option is defined after the listen()
563N/Asystem call the socket code in the libisc set the option with
563N/Athe half of the listen backlog (so the fast open maximum queue length
563N/Ais the half of the pending connection queue length).
563N/AAny failure is logged and ignored.
563N/A
563N/ASystem specific notes:
873N/A - FreeBSD doesn't interpret the argument as a queue length but
563N/A only as an on/off switch.
563N/A
563N/A - Using TCP Fast Open on FreeBSD, as of versions 10.3 and 11.0, requires
563N/A compiling a custom kernel and setting the "net.inet.tcp.fastopen.enabled"
563N/A sysctl to 1.
3231N/A
563N/A - Apple OS X/macOS allows only 0 or 1 so the code puts 1 for this system.
563N/A
563N/A - Windows 10 uses a 0/1 char flag? Note that TCP_FASTOPEN is defined
563N/A only in SDK 10.0.14393.0 or higher (Visual Studio 2015 requires
2086N/A extra setting of the "Target Platform Version" in all project
2086N/A properties).
2086N/A
1126N/A - the only other system known to support this is Linux.
1126N/A
4031N/A