1
0
Files
linux/include/net
Jerry Chu dca43c75e7 tcp: Add TCP_USER_TIMEOUT socket option.
This patch provides a "user timeout" support as described in RFC793. The
socket option is also needed for the the local half of RFC5482 "TCP User
Timeout Option".

TCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int,
when > 0, to specify the maximum amount of time in ms that transmitted
data may remain unacknowledged before TCP will forcefully close the
corresponding connection and return ETIMEDOUT to the application. If
0 is given, TCP will continue to use the system default.

Increasing the user timeouts allows a TCP connection to survive extended
periods without end-to-end connectivity. Decreasing the user timeouts
allows applications to "fail fast" if so desired. Otherwise it may take
upto 20 minutes with the current system defaults in a normal WAN
environment.

The socket option can be made during any state of a TCP connection, but
is only effective during the synchronized states of a connection
(ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, or LAST-ACK).
Moreover, when used with the TCP keepalive (SO_KEEPALIVE) option,
TCP_USER_TIMEOUT will overtake keepalive to determine when to close a
connection due to keepalive failure.

The option does not change in anyway when TCP retransmits a packet, nor
when a keepalive probe will be sent.

This option, like many others, will be inherited by an acceptor from its
listener.

Signed-off-by: H.K. Jerry Chu <hkchu@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-08-30 13:23:33 -07:00
..
2010-08-02 14:28:34 -05:00
2010-08-26 14:11:48 -07:00
2010-05-12 23:02:23 -07:00
2009-11-04 05:06:25 -08:00
2009-09-01 17:40:57 -07:00
2010-08-24 16:32:06 -04:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2009-09-01 17:40:31 -07:00
2009-11-04 05:06:25 -08:00
2010-06-02 05:16:23 -07:00
2010-04-13 01:41:33 -07:00
2010-06-03 03:21:52 -07:00
2010-08-19 00:08:30 -07:00
2010-06-10 23:31:35 -07:00
2010-06-30 13:31:19 -07:00
2010-06-03 03:21:52 -07:00
2009-12-26 20:46:28 -08:00
2010-08-24 16:32:04 -04:00
2010-06-03 03:21:52 -07:00
2010-06-03 03:21:52 -07:00
2010-06-30 12:06:52 -07:00
2010-03-12 15:52:40 -08:00
2010-06-23 12:58:40 -07:00
2009-11-20 15:35:04 -08:00
2010-04-13 14:49:34 -07:00
2009-11-04 05:06:25 -08:00
2009-07-26 19:11:14 -07:00
2010-06-10 23:31:35 -07:00
2010-06-30 13:31:19 -07:00
2010-08-19 00:08:30 -07:00
2010-07-15 21:41:00 -07:00
2010-07-12 20:21:45 -07:00
2009-10-07 16:39:43 -04:00