[PATCH mptcp-next v4 2/4] mptcp: define BPF path manager type

Geliang Tang posted 4 patches 3 months ago
There is a newer version of this series
[PATCH mptcp-next v4 2/4] mptcp: define BPF path manager type
Posted by Geliang Tang 3 months ago
From: Geliang Tang <tanggeliang@kylinos.cn>

This patch defines a new path manager type: MPTCP_PM_TYPE_BPF_USERSPACE,
which is used for the userspace path manager implemented in BPF. This
path manager is also a userspace path manager, so add this new type in
mptcp_pm_is_userspace() too.

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 net/mptcp/protocol.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
index 93445c24de93..cd36ffe8509b 100644
--- a/net/mptcp/protocol.h
+++ b/net/mptcp/protocol.h
@@ -198,6 +198,7 @@ enum mptcp_pm_status {
 enum mptcp_pm_type {
 	MPTCP_PM_TYPE_KERNEL = 0,
 	MPTCP_PM_TYPE_USERSPACE,
+	MPTCP_PM_TYPE_BPF_USERSPACE,
 
 	__MPTCP_PM_TYPE_NR,
 	__MPTCP_PM_TYPE_MAX = __MPTCP_PM_TYPE_NR - 1,
@@ -1093,7 +1094,10 @@ static inline bool mptcp_pm_should_rm_signal(struct mptcp_sock *msk)
 
 static inline bool mptcp_pm_is_userspace(const struct mptcp_sock *msk)
 {
-	return READ_ONCE(msk->pm.pm_type) == MPTCP_PM_TYPE_USERSPACE;
+	enum mptcp_pm_type pm_type = READ_ONCE(msk->pm.pm_type);
+
+	return (pm_type == MPTCP_PM_TYPE_USERSPACE ||
+		pm_type == MPTCP_PM_TYPE_BPF_USERSPACE);
 }
 
 static inline bool mptcp_pm_is_kernel(const struct mptcp_sock *msk)
-- 
2.43.0