diff options
author | Yuchung Cheng <ycheng@google.com> | 2012-07-19 02:43:05 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-19 13:55:36 -0400 |
commit | 2100c8d2d9db23c0a09901a782bb4e3b21bee298 (patch) | |
tree | fd5842c540bf77c3fa546797c1c8e94f054cc86c /include/linux/tcp.h | |
parent | 4cce66cdd14aa5006a011505865d932adb49f600 (diff) |
net-tcp: Fast Open base
This patch impelements the common code for both the client and server.
1. TCP Fast Open option processing. Since Fast Open does not have an
option number assigned by IANA yet, it shares the experiment option
code 254 by implementing draft-ietf-tcpm-experimental-options
with a 16 bits magic number 0xF989. This enables global experiments
without clashing the scarce(2) experimental options available for TCP.
When the draft status becomes standard (maybe), the client should
switch to the new option number assigned while the server supports
both numbers for transistion.
2. The new sysctl tcp_fastopen
3. A place holder init function
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/tcp.h')
-rw-r--r-- | include/linux/tcp.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 1888169e07c7..12948f543839 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
@@ -243,6 +243,16 @@ static inline unsigned int tcp_optlen(const struct sk_buff *skb) | |||
243 | return (tcp_hdr(skb)->doff - 5) * 4; | 243 | return (tcp_hdr(skb)->doff - 5) * 4; |
244 | } | 244 | } |
245 | 245 | ||
246 | /* TCP Fast Open */ | ||
247 | #define TCP_FASTOPEN_COOKIE_MIN 4 /* Min Fast Open Cookie size in bytes */ | ||
248 | #define TCP_FASTOPEN_COOKIE_MAX 16 /* Max Fast Open Cookie size in bytes */ | ||
249 | |||
250 | /* TCP Fast Open Cookie as stored in memory */ | ||
251 | struct tcp_fastopen_cookie { | ||
252 | s8 len; | ||
253 | u8 val[TCP_FASTOPEN_COOKIE_MAX]; | ||
254 | }; | ||
255 | |||
246 | /* This defines a selective acknowledgement block. */ | 256 | /* This defines a selective acknowledgement block. */ |
247 | struct tcp_sack_block_wire { | 257 | struct tcp_sack_block_wire { |
248 | __be32 start_seq; | 258 | __be32 start_seq; |