diff mbox series

[v2,4/6] mptcp: Re-factor subflow_v4_conn_request to be af-agnostic

Message ID 20191106044133.14418-5-peter.krystad@linux.intel.com
State Accepted, archived
Delegated to: Matthieu Baerts
Headers show
Series IPv6 support | expand

Commit Message

Peter Krystad Nov. 6, 2019, 4:41 a.m. UTC
Split subflow_v4_init_req into separate af-specific
and functional parts.

squashto: Create SUBFLOW socket for incoming connections

Signed-off-by: Peter Krystad <peter.krystad@linux.intel.com>
---
 net/mptcp/subflow.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 6aa02001a06d..586713537124 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -90,19 +90,16 @@  static bool subflow_token_join_request(struct request_sock *req,
 	return true;
 }
 
-static void subflow_v4_init_req(struct request_sock *req,
-				const struct sock *sk_listener,
-				struct sk_buff *skb)
+static void subflow_init_req(struct request_sock *req,
+			     const struct sock *sk_listener,
+			     struct sk_buff *skb)
 {
 	struct mptcp_subflow_context *listener = mptcp_subflow_ctx(sk_listener);
 	struct mptcp_subflow_request_sock *subflow_req = mptcp_subflow_rsk(req);
 	struct tcp_options_received rx_opt;
 
-	tcp_rsk(req)->is_mptcp = 1;
 	pr_debug("subflow_req=%p, listener=%p", subflow_req, listener);
 
-	tcp_request_sock_ipv4_ops.init_req(req, sk_listener, skb);
-
 	memset(&rx_opt.mptcp, 0, sizeof(rx_opt.mptcp));
 	mptcp_get_options(skb, &rx_opt);
 
@@ -146,6 +143,17 @@  static void subflow_v4_init_req(struct request_sock *req,
 	}
 }
 
+static void subflow_v4_init_req(struct request_sock *req,
+				const struct sock *sk_listener,
+				struct sk_buff *skb)
+{
+	tcp_rsk(req)->is_mptcp = 1;
+
+	tcp_request_sock_ipv4_ops.init_req(req, sk_listener, skb);
+
+	subflow_init_req(req, sk_listener, skb);
+}
+
 /* validate received truncated hmac and create hmac for third ACK */
 static bool subflow_thmac_valid(struct mptcp_subflow_context *subflow)
 {