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 /net/ipv6 | |
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 'net/ipv6')
-rw-r--r-- | net/ipv6/syncookies.c | 2 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c index 7bf3cc427c28..bb46061c813a 100644 --- a/net/ipv6/syncookies.c +++ b/net/ipv6/syncookies.c | |||
@@ -177,7 +177,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb) | |||
177 | 177 | ||
178 | /* check for timestamp cookie support */ | 178 | /* check for timestamp cookie support */ |
179 | memset(&tcp_opt, 0, sizeof(tcp_opt)); | 179 | memset(&tcp_opt, 0, sizeof(tcp_opt)); |
180 | tcp_parse_options(skb, &tcp_opt, &hash_location, 0); | 180 | tcp_parse_options(skb, &tcp_opt, &hash_location, 0, NULL); |
181 | 181 | ||
182 | if (!cookie_check_timestamp(&tcp_opt, &ecn_ok)) | 182 | if (!cookie_check_timestamp(&tcp_opt, &ecn_ok)) |
183 | goto out; | 183 | goto out; |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index c9dabdd832d7..0302ec3fecfc 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1033,7 +1033,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) | |||
1033 | tcp_clear_options(&tmp_opt); | 1033 | tcp_clear_options(&tmp_opt); |
1034 | tmp_opt.mss_clamp = IPV6_MIN_MTU - sizeof(struct tcphdr) - sizeof(struct ipv6hdr); | 1034 | tmp_opt.mss_clamp = IPV6_MIN_MTU - sizeof(struct tcphdr) - sizeof(struct ipv6hdr); |
1035 | tmp_opt.user_mss = tp->rx_opt.user_mss; | 1035 | tmp_opt.user_mss = tp->rx_opt.user_mss; |
1036 | tcp_parse_options(skb, &tmp_opt, &hash_location, 0); | 1036 | tcp_parse_options(skb, &tmp_opt, &hash_location, 0, NULL); |
1037 | 1037 | ||
1038 | if (tmp_opt.cookie_plus > 0 && | 1038 | if (tmp_opt.cookie_plus > 0 && |
1039 | tmp_opt.saw_tstamp && | 1039 | tmp_opt.saw_tstamp && |