All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: mptcp@lists.linux.dev
Cc: Geliang Tang <geliangtang@gmail.com>
Subject: [PATCH v5 mptcp-next 08/21] mptcp: add sk parameter for mptcp_parse_option
Date: Tue,  4 May 2021 23:29:18 +0200	[thread overview]
Message-ID: <7c42a4e99aa9d299c917b5db6f21b8c7ae3ad134.1620162984.git.pabeni@redhat.com> (raw)
In-Reply-To: <cover.1620162984.git.pabeni@redhat.com>

From: Geliang Tang <geliangtang@gmail.com>

This patch added a new parameter name sk in mptcp_parse_option() and
mptcp_get_options().

Signed-off-by: Geliang Tang <geliangtang@gmail.com>
---
 net/mptcp/options.c  | 10 ++++++----
 net/mptcp/protocol.h |  3 ++-
 net/mptcp/subflow.c  | 10 +++++-----
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/net/mptcp/options.c b/net/mptcp/options.c
index ef951cb2aff3..8f768c517586 100644
--- a/net/mptcp/options.c
+++ b/net/mptcp/options.c
@@ -20,7 +20,8 @@ static bool mptcp_cap_flag_sha256(u8 flags)
 	return (flags & MPTCP_CAP_FLAG_MASK) == MPTCP_CAP_HMAC_SHA256;
 }
 
-static void mptcp_parse_option(const struct sk_buff *skb,
+static void mptcp_parse_option(const struct sock *sk,
+			       const struct sk_buff *skb,
 			       const unsigned char *ptr, int opsize,
 			       struct mptcp_options_received *mp_opt)
 {
@@ -324,7 +325,8 @@ static void mptcp_parse_option(const struct sk_buff *skb,
 	}
 }
 
-void mptcp_get_options(const struct sk_buff *skb,
+void mptcp_get_options(const struct sock *sk,
+		       const struct sk_buff *skb,
 		       struct mptcp_options_received *mp_opt)
 {
 	const struct tcphdr *th = tcp_hdr(skb);
@@ -363,7 +365,7 @@ void mptcp_get_options(const struct sk_buff *skb,
 			if (opsize > length)
 				return;	/* don't parse partial options */
 			if (opcode == TCPOPT_MPTCP)
-				mptcp_parse_option(skb, ptr, opsize, mp_opt);
+				mptcp_parse_option(sk, skb, ptr, opsize, mp_opt);
 			ptr += opsize - 2;
 			length -= opsize;
 		}
@@ -1028,7 +1030,7 @@ void mptcp_incoming_options(struct sock *sk, struct sk_buff *skb)
 		return;
 	}
 
-	mptcp_get_options(skb, &mp_opt);
+	mptcp_get_options(sk, skb, &mp_opt);
 	if (!check_fully_established(msk, sk, subflow, skb, &mp_opt))
 		return;
 
diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 141317aa6c52..a1def094899c 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -585,7 +585,8 @@ int __init mptcp_proto_v6_init(void);
 struct sock *mptcp_sk_clone(const struct sock *sk,
 			    const struct mptcp_options_received *mp_opt,
 			    struct request_sock *req);
-void mptcp_get_options(const struct sk_buff *skb,
+void mptcp_get_options(const struct sock *sk,
+		       const struct sk_buff *skb,
 		       struct mptcp_options_received *mp_opt);
 
 void mptcp_finish_connect(struct sock *sk);
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 2ca20f5ba29c..f12ea479a70f 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -151,7 +151,7 @@ static int subflow_check_req(struct request_sock *req,
 		return -EINVAL;
 #endif
 
-	mptcp_get_options(skb, &mp_opt);
+	mptcp_get_options(sk_listener, skb, &mp_opt);
 
 	if (mp_opt.mp_capable) {
 		SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MPCAPABLEPASSIVE);
@@ -248,7 +248,7 @@ int mptcp_subflow_init_cookie_req(struct request_sock *req,
 	int err;
 
 	subflow_init_req(req, sk_listener);
-	mptcp_get_options(skb, &mp_opt);
+	mptcp_get_options(sk_listener, skb, &mp_opt);
 
 	if (mp_opt.mp_capable && mp_opt.mp_join)
 		return -EINVAL;
@@ -395,7 +395,7 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb)
 	subflow->ssn_offset = TCP_SKB_CB(skb)->seq;
 	pr_debug("subflow=%p synack seq=%x", subflow, subflow->ssn_offset);
 
-	mptcp_get_options(skb, &mp_opt);
+	mptcp_get_options(sk, skb, &mp_opt);
 	if (subflow->request_mptcp) {
 		if (!mp_opt.mp_capable) {
 			MPTCP_INC_STATS(sock_net(sk),
@@ -640,7 +640,7 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk,
 			goto create_msk;
 		}
 
-		mptcp_get_options(skb, &mp_opt);
+		mptcp_get_options(sk, skb, &mp_opt);
 		if (!mp_opt.mp_capable) {
 			fallback = true;
 			goto create_child;
@@ -651,7 +651,7 @@ static struct sock *subflow_syn_recv_sock(const struct sock *sk,
 		if (!new_msk)
 			fallback = true;
 	} else if (subflow_req->mp_join) {
-		mptcp_get_options(skb, &mp_opt);
+		mptcp_get_options(sk, skb, &mp_opt);
 		if (!mp_opt.mp_join || !subflow_hmac_valid(req, &mp_opt) ||
 		    !mptcp_can_accept_new_subflow(subflow_req->msk)) {
 			SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_JOINACKMAC);
-- 
2.26.2


  parent reply	other threads:[~2021-05-04 21:29 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-04 21:29 [PATCH v5 mptcp-next 00/21] mptcp: data checksum support Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 01/21] mptcp: generate the data checksum Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 02/21] Squash-to: "mptcp: generate the data checksum" Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 03/21] mptcp: add csum_reqd in mptcp_out_options Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 04/21] mptcp: send out checksum for MP_CAPABLE with data Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 05/21] Squash-to: "mptcp: send out checksum for MP_CAPABLE with data" Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 06/21] mptcp: send out checksum for DSS Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 07/21] Squash-to "mptcp: send out checksum for DSS" Paolo Abeni
2021-05-04 21:29 ` Paolo Abeni [this message]
2021-05-04 21:29 ` [PATCH v5 mptcp-next 09/21] mptcp: add csum_reqd in mptcp_options_received Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 10/21] mptcp: receive checksum for MP_CAPABLE with data Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 11/21] Squash-to: "mptcp: receive checksum for MP_CAPABLE with data" Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 12/21] mptcp: receive checksum for DSS Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 13/21] Squash-to: "mptcp: receive checksum for DSS" Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 14/21] mptcp: validate the data checksum Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 15/21] Squash-to: " Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 16/21] mptcp: cleanup error path in subflow_check_data_avail() Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 17/21] mptcp: tune re-injections for csum enabled mode Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 18/21] mptcp: add the mib for data checksum Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 19/21] mptcp: add a new sysctl checksum_enabled Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 20/21] selftests: mptcp: enable checksum in mptcp_connect.sh Paolo Abeni
2021-05-04 21:29 ` [PATCH v5 mptcp-next 21/21] selftests: mptcp: enable checksum in mptcp_join.sh Paolo Abeni
2021-05-04 21:41 ` [PATCH v5 mptcp-next 00/21] mptcp: data checksum support Paolo Abeni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7c42a4e99aa9d299c917b5db6f21b8c7ae3ad134.1620162984.git.pabeni@redhat.com \
    --to=pabeni@redhat.com \
    --cc=geliangtang@gmail.com \
    --cc=mptcp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.