diff options
author | Octavian Purdila <octavian.purdila@intel.com> | 2014-06-25 10:10:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-06-27 18:53:36 -0400 |
commit | 2aec4a297b21f3690486bbf8f7d5d29281ba6a48 (patch) | |
tree | 8df79a2b1eaf021a541eb6a5dde384c7cf2acbbe | |
parent | 5db92c994982ed826cf38f38d58bd09bc326aef6 (diff) |
tcp: add mss_clamp to tcp_request_sock_ops
Add mss_clamp member to tcp_request_sock_ops so that we can later
unify tcp_v4_conn_request and tcp_v6_conn_request.
Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/tcp.h | 1 | ||||
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 3 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 4 |
3 files changed, 6 insertions, 2 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index 8e9c28dccb80..30fe98bc8957 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -1592,6 +1592,7 @@ struct tcp_sock_af_ops { | |||
1592 | }; | 1592 | }; |
1593 | 1593 | ||
1594 | struct tcp_request_sock_ops { | 1594 | struct tcp_request_sock_ops { |
1595 | u16 mss_clamp; | ||
1595 | #ifdef CONFIG_TCP_MD5SIG | 1596 | #ifdef CONFIG_TCP_MD5SIG |
1596 | struct tcp_md5sig_key *(*md5_lookup) (struct sock *sk, | 1597 | struct tcp_md5sig_key *(*md5_lookup) (struct sock *sk, |
1597 | struct request_sock *req); | 1598 | struct request_sock *req); |
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 597dd9d75210..499d440539ad 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c | |||
@@ -1265,6 +1265,7 @@ struct request_sock_ops tcp_request_sock_ops __read_mostly = { | |||
1265 | }; | 1265 | }; |
1266 | 1266 | ||
1267 | static const struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = { | 1267 | static const struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = { |
1268 | .mss_clamp = TCP_MSS_DEFAULT, | ||
1268 | #ifdef CONFIG_TCP_MD5SIG | 1269 | #ifdef CONFIG_TCP_MD5SIG |
1269 | .md5_lookup = tcp_v4_reqsk_md5_lookup, | 1270 | .md5_lookup = tcp_v4_reqsk_md5_lookup, |
1270 | .calc_md5_hash = tcp_v4_md5_hash_skb, | 1271 | .calc_md5_hash = tcp_v4_md5_hash_skb, |
@@ -1324,7 +1325,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb) | |||
1324 | af_ops = tcp_rsk(req)->af_specific = &tcp_request_sock_ipv4_ops; | 1325 | af_ops = tcp_rsk(req)->af_specific = &tcp_request_sock_ipv4_ops; |
1325 | 1326 | ||
1326 | tcp_clear_options(&tmp_opt); | 1327 | tcp_clear_options(&tmp_opt); |
1327 | tmp_opt.mss_clamp = TCP_MSS_DEFAULT; | 1328 | tmp_opt.mss_clamp = af_ops->mss_clamp; |
1328 | tmp_opt.user_mss = tp->rx_opt.user_mss; | 1329 | tmp_opt.user_mss = tp->rx_opt.user_mss; |
1329 | tcp_parse_options(skb, &tmp_opt, 0, want_cookie ? NULL : &foc); | 1330 | tcp_parse_options(skb, &tmp_opt, 0, want_cookie ? NULL : &foc); |
1330 | 1331 | ||
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 41389bbb08c0..ad658332cf7d 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -754,6 +754,8 @@ struct request_sock_ops tcp6_request_sock_ops __read_mostly = { | |||
754 | }; | 754 | }; |
755 | 755 | ||
756 | static const struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = { | 756 | static const struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = { |
757 | .mss_clamp = IPV6_MIN_MTU - sizeof(struct tcphdr) - | ||
758 | sizeof(struct ipv6hdr), | ||
757 | #ifdef CONFIG_TCP_MD5SIG | 759 | #ifdef CONFIG_TCP_MD5SIG |
758 | .md5_lookup = tcp_v6_reqsk_md5_lookup, | 760 | .md5_lookup = tcp_v6_reqsk_md5_lookup, |
759 | .calc_md5_hash = tcp_v6_md5_hash_skb, | 761 | .calc_md5_hash = tcp_v6_md5_hash_skb, |
@@ -1047,7 +1049,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb) | |||
1047 | af_ops = tcp_rsk(req)->af_specific = &tcp_request_sock_ipv6_ops; | 1049 | af_ops = tcp_rsk(req)->af_specific = &tcp_request_sock_ipv6_ops; |
1048 | 1050 | ||
1049 | tcp_clear_options(&tmp_opt); | 1051 | tcp_clear_options(&tmp_opt); |
1050 | tmp_opt.mss_clamp = IPV6_MIN_MTU - sizeof(struct tcphdr) - sizeof(struct ipv6hdr); | 1052 | tmp_opt.mss_clamp = af_ops->mss_clamp; |
1051 | tmp_opt.user_mss = tp->rx_opt.user_mss; | 1053 | tmp_opt.user_mss = tp->rx_opt.user_mss; |
1052 | tcp_parse_options(skb, &tmp_opt, 0, want_cookie ? NULL : &foc); | 1054 | tcp_parse_options(skb, &tmp_opt, 0, want_cookie ? NULL : &foc); |
1053 | 1055 | ||