aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAndreas Petlund <apetlund@simula.no>2010-02-17 23:48:19 -0500
committerDavid S. Miller <davem@davemloft.net>2010-02-18 18:43:09 -0500
commit7e38017557bc0b87434d184f8804cadb102bb903 (patch)
tree30c4a0793bd28f6731ade58786c06f9cf33115df /include/linux
parent36e31b0af58728071e8023cf8e20c5166b700717 (diff)
net: TCP thin dupack
This patch enables fast retransmissions after one dupACK for TCP if the stream is identified as thin. This will reduce latencies for thin streams that are not able to trigger fast retransmissions due to high packet interarrival time. This mechanism is only active if enabled by iocontrol or syscontrol and the stream is identified as thin. Signed-off-by: Andreas Petlund <apetlund@simula.no> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/tcp.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 3ba8b074612f..a778ee024590 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -104,6 +104,7 @@ enum {
104#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */ 104#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */
105#define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */ 105#define TCP_COOKIE_TRANSACTIONS 15 /* TCP Cookie Transactions */
106#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/ 106#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/
107#define TCP_THIN_DUPACK 17 /* Fast retrans. after 1 dupack */
107 108
108/* for TCP_INFO socket option */ 109/* for TCP_INFO socket option */
109#define TCPI_OPT_TIMESTAMPS 1 110#define TCPI_OPT_TIMESTAMPS 1
@@ -343,7 +344,8 @@ struct tcp_sock {
343 u8 frto_counter; /* Number of new acks after RTO */ 344 u8 frto_counter; /* Number of new acks after RTO */
344 u8 nonagle : 4,/* Disable Nagle algorithm? */ 345 u8 nonagle : 4,/* Disable Nagle algorithm? */
345 thin_lto : 1,/* Use linear timeouts for thin streams */ 346 thin_lto : 1,/* Use linear timeouts for thin streams */
346 unused : 3; 347 thin_dupack : 1,/* Fast retransmit on first dupack */
348 unused : 2;
347 349
348/* RTT measurement */ 350/* RTT measurement */
349 u32 srtt; /* smoothed round trip time << 3 */ 351 u32 srtt; /* smoothed round trip time << 3 */