Skip to content

Commit ac7941e

Browse files
Geliang Tangintel-lab-lkp
authored andcommitted
mptcp: pm: userspace: register mptcp_userspace_pm
This patch defines the original userspace path manager as a new struct mptcp_pm_ops named "mptcp_userspace_pm", and register it in mptcp_pm_data_init(). Only get_local_id() and get_priority() interfaces are implemented here. mptcp_userspace_pm_is_backup() becomes a wrapper of get_priority(). Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
1 parent 3866867 commit ac7941e

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

net/mptcp/pm.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,7 @@ void mptcp_pm_data_init(struct mptcp_sock *msk)
651651
void __init mptcp_pm_init(void)
652652
{
653653
mptcp_pm_nl_init();
654+
mptcp_userspace_pm_init();
654655
}
655656

656657
/* Must be called with rcu read lock held */

net/mptcp/pm_userspace.c

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ int mptcp_userspace_pm_get_local_id(struct mptcp_sock *msk,
149149
return mptcp_userspace_pm_append_new_local_addr(msk, skc, true);
150150
}
151151

152-
bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk,
153-
struct mptcp_addr_info *skc)
152+
static bool mptcp_userspace_pm_get_priority(struct mptcp_sock *msk,
153+
struct mptcp_addr_info *skc)
154154
{
155155
struct mptcp_pm_addr_entry *entry;
156156
bool backup;
@@ -163,6 +163,12 @@ bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk,
163163
return backup;
164164
}
165165

166+
bool mptcp_userspace_pm_is_backup(struct mptcp_sock *msk,
167+
struct mptcp_addr_info *skc)
168+
{
169+
return mptcp_userspace_pm_get_priority(msk, skc);
170+
}
171+
166172
static struct mptcp_sock *mptcp_userspace_pm_get_sock(const struct genl_info *info)
167173
{
168174
struct mptcp_sock *msk;
@@ -686,3 +692,16 @@ int mptcp_userspace_pm_get_addr(u8 id, struct mptcp_pm_addr_entry *addr,
686692
sock_put(sk);
687693
return ret;
688694
}
695+
696+
static struct mptcp_pm_ops mptcp_userspace_pm = {
697+
.get_local_id = mptcp_userspace_pm_get_local_id,
698+
.get_priority = mptcp_userspace_pm_get_priority,
699+
.type = MPTCP_PM_TYPE_USERSPACE,
700+
.name = "userspace",
701+
.owner = THIS_MODULE,
702+
};
703+
704+
void __init mptcp_userspace_pm_init(void)
705+
{
706+
mptcp_pm_register(&mptcp_userspace_pm);
707+
}

net/mptcp/protocol.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1160,6 +1160,7 @@ static inline u8 subflow_get_local_id(const struct mptcp_subflow_context *subflo
11601160
}
11611161

11621162
void __init mptcp_pm_nl_init(void);
1163+
void __init mptcp_userspace_pm_init(void);
11631164
void mptcp_pm_nl_work(struct mptcp_sock *msk);
11641165
unsigned int mptcp_pm_get_add_addr_signal_max(const struct mptcp_sock *msk);
11651166
unsigned int mptcp_pm_get_add_addr_accept_max(const struct mptcp_sock *msk);

0 commit comments

Comments
 (0)