diff mbox series

[mptcp-next,v2,01/11] Revert "mptcp: sched: remove mptcp_sched_data"

Message ID 9a414d874ffc0dfc9849513c3faf293b13ddeaf0.1741347233.git.tanggeliang@kylinos.cn (mailing list archive)
State Changes Requested
Headers show
Series add bpf_iter_task | expand

Checks

Context Check Description
matttbe/checkpatch success total: 0 errors, 0 warnings, 0 checks, 72 lines checked
matttbe/shellcheck success MPTCP selftests files have not been modified
matttbe/build fail Build error with: -Werror
matttbe/KVM_Validation__normal success Success! ✅
matttbe/KVM_Validation__debug success Success! ✅
matttbe/KVM_Validation__btf-normal__only_bpftest_all_ success Success! ✅
matttbe/KVM_Validation__btf-debug__only_bpftest_all_ success Success! ✅

Commit Message

Geliang Tang March 7, 2025, 11:36 a.m. UTC
From: Geliang Tang <tanggeliang@kylinos.cn>

Keep mptcp scheduler API unchanged.
Add back struct mptcp_sched_data.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 include/net/mptcp.h | 13 +++++++++++--
 net/mptcp/sched.c   | 18 +++++++++++-------
 2 files changed, 22 insertions(+), 9 deletions(-)
diff mbox series

Patch

diff --git a/include/net/mptcp.h b/include/net/mptcp.h
index e9832a8f981e..2c85ca92bb1c 100644
--- a/include/net/mptcp.h
+++ b/include/net/mptcp.h
@@ -100,9 +100,18 @@  struct mptcp_out_options {
 #define MPTCP_SCHED_MAX		128
 #define MPTCP_SCHED_BUF_MAX	(MPTCP_SCHED_NAME_MAX * MPTCP_SCHED_MAX)
 
+#define MPTCP_SUBFLOWS_MAX	8
+
+struct mptcp_sched_data {
+	u8	subflows;
+	struct mptcp_subflow_context *contexts[MPTCP_SUBFLOWS_MAX];
+};
+
 struct mptcp_sched_ops {
-	int (*get_send)(struct mptcp_sock *msk);
-	int (*get_retrans)(struct mptcp_sock *msk);
+	int (*get_send)(struct mptcp_sock *msk,
+			struct mptcp_sched_data *data);
+	int (*get_retrans)(struct mptcp_sock *msk,
+			   struct mptcp_sched_data *data);
 
 	char			name[MPTCP_SCHED_NAME_MAX];
 	struct module		*owner;
diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c
index f09f7eb1d63f..c16c6fbd4ba2 100644
--- a/net/mptcp/sched.c
+++ b/net/mptcp/sched.c
@@ -16,7 +16,8 @@ 
 static DEFINE_SPINLOCK(mptcp_sched_list_lock);
 static LIST_HEAD(mptcp_sched_list);
 
-static int mptcp_sched_default_get_send(struct mptcp_sock *msk)
+static int mptcp_sched_default_get_send(struct mptcp_sock *msk,
+					struct mptcp_sched_data *data)
 {
 	struct sock *ssk;
 
@@ -28,7 +29,8 @@  static int mptcp_sched_default_get_send(struct mptcp_sock *msk)
 	return 0;
 }
 
-static int mptcp_sched_default_get_retrans(struct mptcp_sock *msk)
+static int mptcp_sched_default_get_retrans(struct mptcp_sock *msk,
+					   struct mptcp_sched_data *data)
 {
 	struct sock *ssk;
 
@@ -155,6 +157,7 @@  void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow,
 int mptcp_sched_get_send(struct mptcp_sock *msk)
 {
 	struct mptcp_subflow_context *subflow;
+	struct mptcp_sched_data *data = NULL;
 
 	msk_owned_by_me(msk);
 
@@ -175,13 +178,14 @@  int mptcp_sched_get_send(struct mptcp_sock *msk)
 	}
 
 	if (msk->sched == &mptcp_sched_default || !msk->sched)
-		return mptcp_sched_default_get_send(msk);
-	return msk->sched->get_send(msk);
+		return mptcp_sched_default_get_send(msk, data);
+	return msk->sched->get_send(msk, data);
 }
 
 int mptcp_sched_get_retrans(struct mptcp_sock *msk)
 {
 	struct mptcp_subflow_context *subflow;
+	struct mptcp_sched_data *data = NULL;
 
 	msk_owned_by_me(msk);
 
@@ -195,8 +199,8 @@  int mptcp_sched_get_retrans(struct mptcp_sock *msk)
 	}
 
 	if (msk->sched == &mptcp_sched_default || !msk->sched)
-		return mptcp_sched_default_get_retrans(msk);
+		return mptcp_sched_default_get_retrans(msk, data);
 	if (msk->sched->get_retrans)
-		return msk->sched->get_retrans(msk);
-	return msk->sched->get_send(msk);
+		return msk->sched->get_retrans(msk, data);
+	return msk->sched->get_send(msk, data);
 }