5a015b
From 14336b7b4c70b3def333ae78e654e8919107176b Mon Sep 17 00:00:00 2001
5a015b
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
5a015b
Date: Tue, 28 Jun 2016 13:50:57 +0200
5a015b
Subject: [PATCH 13/17] tcp.7: document TCP_USER_TIMEOUT
5a015b
5a015b
---
5a015b
 man-pages/man7/tcp.7 | 48 +++++++++++++++++++++++++++++++++++++++++++++---
5a015b
 1 file changed, 45 insertions(+), 3 deletions(-)
5a015b
5a015b
diff --git a/man-pages/man7/tcp.7 b/man-pages/man7/tcp.7
5a015b
index 93b4148..98ccf27 100644
5a015b
--- a/man-pages/man7/tcp.7
5a015b
+++ b/man-pages/man7/tcp.7
5a015b
@@ -46,9 +46,6 @@
5a015b
 .\"	TCP_THIN_DUPACK (2..6.34)
5a015b
 .\"	    commit 7e38017557bc0b87434d184f8804cadb102bb903
5a015b
 .\"	    Author: Andreas Petlund <apetlund@simula.no>
5a015b
-.\"	TCP_USER_TIMEOUT (new in 2.6.37)
5a015b
-.\"	    Author: Jerry Chu <hkchu@google.com>
5a015b
-.\"	    commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
5a015b
 .\"	TCP_REPAIR (3.5)
5a015b
 .\"	    commit ee9952831cfd0bbe834f4a26489d7dce74582e37
5a015b
 .\"	    Author: Pavel Emelyanov <xemul@parallels.com>
5a015b
@@ -1038,6 +1035,51 @@ aborting the attempt to connect.
5a015b
 It cannot exceed 255.
5a015b
 This option should not be used in code intended to be portable.
5a015b
 .TP
5a015b
+.BR TCP_USER_TIMEOUT " (since Linux 2.6.37)"
5a015b
+.\"	    commit dca43c75e7e545694a9dd6288553f55c53e2a3a3
5a015b
+.\"	    Author: Jerry Chu <hkchu@google.com>
5a015b
+.\" The following text taken nearly verbatim from Jerry Chu's (excellent)
5a015b
+.\" commit message.
5a015b
+.\"
5a015b
+This option takes an
5a015b
+.IR "unsigned int"
5a015b
+as an argument.
5a015b
+When the value is greater than 0,
5a015b
+it specifies the maximum amount of time in milliseconds that transmitted
5a015b
+data may remain unacknowledged before TCP will forcibly close the
5a015b
+corresponding connection and return
5a015b
+.B ETIMEDOUT
5a015b
+to the application.
5a015b
+If the option value is specified as 0,
5a015b
+TCP will to use the system default.
5a015b
+
5a015b
+Increasing user timeouts allows a TCP connection to survive extended
5a015b
+periods without end-to-end connectivity.
5a015b
+Decreasing user timeouts
5a015b
+allows applications to "fail fast", if so desired.
5a015b
+Otherwise, failure may take up to 20 minutes with
5a015b
+the current system defaults in a normal WAN environment.
5a015b
+
5a015b
+This option can be set during any state of a TCP connection,
5a015b
+but is effective only during the synchronized states of a connection
5a015b
+(ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, and LAST-ACK).
5a015b
+Moreover, when used with the TCP keepalive
5a015b
+.RB ( SO_KEEPALIVE )
5a015b
+option,
5a015b
+.B TCP_USER_TIMEOUT
5a015b
+will override keepalive to determine when to close a
5a015b
+connection due to keepalive failure.
5a015b
+
5a015b
+The option has no effect on when TCP retransmits a packet,
5a015b
+nor when a keepalive probe is sent.
5a015b
+
5a015b
+This option, like many others, will be inherited by the socket returned by
5a015b
+.BR accept (2),
5a015b
+if it was set on the listening socket.
5a015b
+
5a015b
+Further details on the user timeout feature can be found in
5a015b
+RFC\ 793 and RFC\ 5482 ("TCP User Timeout Option").
5a015b
+.TP
5a015b
 .BR TCP_WINDOW_CLAMP " (since Linux 2.4)"
5a015b
 .\" Precisely: since 2.3.41
5a015b
 Bound the size of the advertised window to this value.
5a015b
-- 
5a015b
2.7.4
5a015b