Merge branch 'pm-cpufreq'
[cascardo/linux.git] / Documentation / networking / ip-sysctl.txt
index 9ae9293..3db8c67 100644 (file)
@@ -575,32 +575,33 @@ tcp_syncookies - BOOLEAN
        unconditionally generation of syncookies.
 
 tcp_fastopen - INTEGER
-       Enable TCP Fast Open feature (draft-ietf-tcpm-fastopen) to send data
-       in the opening SYN packet. To use this feature, the client application
-       must use sendmsg() or sendto() with MSG_FASTOPEN flag rather than
-       connect() to perform a TCP handshake automatically.
+       Enable TCP Fast Open (RFC7413) to send and accept data in the opening
+       SYN packet.
 
-       The values (bitmap) are
-       1: Enables sending data in the opening SYN on the client w/ MSG_FASTOPEN.
-       2: Enables TCP Fast Open on the server side, i.e., allowing data in
-          a SYN packet to be accepted and passed to the application before
-          3-way hand shake finishes.
-       4: Send data in the opening SYN regardless of cookie availability and
-          without a cookie option.
-       0x100: Accept SYN data w/o validating the cookie.
-       0x200: Accept data-in-SYN w/o any cookie option present.
-       0x400/0x800: Enable Fast Open on all listeners regardless of the
-          TCP_FASTOPEN socket option. The two different flags designate two
-          different ways of setting max_qlen without the TCP_FASTOPEN socket
-          option.
+       The client support is enabled by flag 0x1 (on by default). The client
+       then must use sendmsg() or sendto() with the MSG_FASTOPEN flag,
+       rather than connect() to send data in SYN.
 
-       Default: 1
+       The server support is enabled by flag 0x2 (off by default). Then
+       either enable for all listeners with another flag (0x400) or
+       enable individual listeners via TCP_FASTOPEN socket option with
+       the option value being the length of the syn-data backlog.
 
-       Note that the client & server side Fast Open flags (1 and 2
-       respectively) must be also enabled before the rest of flags can take
-       effect.
+       The values (bitmap) are
+         0x1: (client) enables sending data in the opening SYN on the client.
+         0x2: (server) enables the server support, i.e., allowing data in
+                       a SYN packet to be accepted and passed to the
+                       application before 3-way handshake finishes.
+         0x4: (client) send data in the opening SYN regardless of cookie
+                       availability and without a cookie option.
+       0x200: (server) accept data-in-SYN w/o any cookie option present.
+       0x400: (server) enable all listeners to support Fast Open by
+                       default without explicit TCP_FASTOPEN socket option.
+
+       Default: 0x1
 
-       See include/net/tcp.h and the code for more details.
+       Note that that additional client or server features are only
+       effective if the basic support (0x1 and 0x2) are enabled respectively.
 
 tcp_syn_retries - INTEGER
        Number of times initial SYNs for an active TCP connection attempt