mptcp: remove MPTCP 'ifdef' in TCP SYN cookies
To ease the maintenance, it is often recommended to avoid having #ifdef preprocessor conditions. Here the section related to CONFIG_MPTCP was quite short but the next commit needs to add more code around. It is then cleaner to move specific MPTCP code to functions located in net/mptcp directory. Now that mptcp_subflow_request_sock_ops structure can be static, it can also be marked as "read only after init". Suggested-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Cc: stable@vger.kernel.org Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
e0fe1123ab
commit
3fff88186f
|
@ -97,8 +97,6 @@ struct mptcp_out_options {
|
|||
};
|
||||
|
||||
#ifdef CONFIG_MPTCP
|
||||
extern struct request_sock_ops mptcp_subflow_request_sock_ops;
|
||||
|
||||
void mptcp_init(void);
|
||||
|
||||
static inline bool sk_is_mptcp(const struct sock *sk)
|
||||
|
@ -188,6 +186,9 @@ void mptcp_seq_show(struct seq_file *seq);
|
|||
int mptcp_subflow_init_cookie_req(struct request_sock *req,
|
||||
const struct sock *sk_listener,
|
||||
struct sk_buff *skb);
|
||||
struct request_sock *mptcp_subflow_reqsk_alloc(const struct request_sock_ops *ops,
|
||||
struct sock *sk_listener,
|
||||
bool attach_listener);
|
||||
|
||||
__be32 mptcp_get_reset_option(const struct sk_buff *skb);
|
||||
|
||||
|
@ -274,6 +275,13 @@ static inline int mptcp_subflow_init_cookie_req(struct request_sock *req,
|
|||
return 0; /* TCP fallback */
|
||||
}
|
||||
|
||||
static inline struct request_sock *mptcp_subflow_reqsk_alloc(const struct request_sock_ops *ops,
|
||||
struct sock *sk_listener,
|
||||
bool attach_listener)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline __be32 mptcp_reset_option(const struct sk_buff *skb) { return htonl(0u); }
|
||||
#endif /* CONFIG_MPTCP */
|
||||
|
||||
|
|
|
@ -288,12 +288,11 @@ struct request_sock *cookie_tcp_reqsk_alloc(const struct request_sock_ops *ops,
|
|||
struct tcp_request_sock *treq;
|
||||
struct request_sock *req;
|
||||
|
||||
#ifdef CONFIG_MPTCP
|
||||
if (sk_is_mptcp(sk))
|
||||
ops = &mptcp_subflow_request_sock_ops;
|
||||
#endif
|
||||
req = mptcp_subflow_reqsk_alloc(ops, sk, false);
|
||||
else
|
||||
req = inet_reqsk_alloc(ops, sk, false);
|
||||
|
||||
req = inet_reqsk_alloc(ops, sk, false);
|
||||
if (!req)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -529,7 +529,7 @@ static int subflow_v6_rebuild_header(struct sock *sk)
|
|||
}
|
||||
#endif
|
||||
|
||||
struct request_sock_ops mptcp_subflow_request_sock_ops;
|
||||
static struct request_sock_ops mptcp_subflow_request_sock_ops __ro_after_init;
|
||||
static struct tcp_request_sock_ops subflow_request_sock_ipv4_ops __ro_after_init;
|
||||
|
||||
static int subflow_v4_conn_request(struct sock *sk, struct sk_buff *skb)
|
||||
|
@ -582,6 +582,16 @@ static int subflow_v6_conn_request(struct sock *sk, struct sk_buff *skb)
|
|||
}
|
||||
#endif
|
||||
|
||||
struct request_sock *mptcp_subflow_reqsk_alloc(const struct request_sock_ops *ops,
|
||||
struct sock *sk_listener,
|
||||
bool attach_listener)
|
||||
{
|
||||
ops = &mptcp_subflow_request_sock_ops;
|
||||
|
||||
return inet_reqsk_alloc(ops, sk_listener, attach_listener);
|
||||
}
|
||||
EXPORT_SYMBOL(mptcp_subflow_reqsk_alloc);
|
||||
|
||||
/* validate hmac received in third ACK */
|
||||
static bool subflow_hmac_valid(const struct request_sock *req,
|
||||
const struct mptcp_options_received *mp_opt)
|
||||
|
|
Loading…
Reference in New Issue