mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
mptcp: add a new sysctl scheduler
This patch adds a new sysctl, named scheduler, to support for selection of different schedulers. Export mptcp_get_scheduler helper to get this sysctl. Acked-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Signed-off-by: Mat Martineau <martineau@kernel.org> Link: https://lore.kernel.org/r/20230821-upstream-net-next-20230818-v1-4-0c860fb256a8@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
740ebe35bd
commit
e3b2870b6d
@ -74,3 +74,11 @@ stale_loss_cnt - INTEGER
|
||||
This is a per-namespace sysctl.
|
||||
|
||||
Default: 4
|
||||
|
||||
scheduler - STRING
|
||||
Select the scheduler of your choice.
|
||||
|
||||
Support for selection of different schedulers. This is a per-namespace
|
||||
sysctl.
|
||||
|
||||
Default: "default"
|
||||
|
@ -32,6 +32,7 @@ struct mptcp_pernet {
|
||||
u8 checksum_enabled;
|
||||
u8 allow_join_initial_addr_port;
|
||||
u8 pm_type;
|
||||
char scheduler[MPTCP_SCHED_NAME_MAX];
|
||||
};
|
||||
|
||||
static struct mptcp_pernet *mptcp_get_pernet(const struct net *net)
|
||||
@ -69,6 +70,11 @@ int mptcp_get_pm_type(const struct net *net)
|
||||
return mptcp_get_pernet(net)->pm_type;
|
||||
}
|
||||
|
||||
const char *mptcp_get_scheduler(const struct net *net)
|
||||
{
|
||||
return mptcp_get_pernet(net)->scheduler;
|
||||
}
|
||||
|
||||
static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet)
|
||||
{
|
||||
pernet->mptcp_enabled = 1;
|
||||
@ -77,6 +83,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet)
|
||||
pernet->allow_join_initial_addr_port = 1;
|
||||
pernet->stale_loss_cnt = 4;
|
||||
pernet->pm_type = MPTCP_PM_TYPE_KERNEL;
|
||||
strcpy(pernet->scheduler, "default");
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
@ -128,6 +135,12 @@ static struct ctl_table mptcp_sysctl_table[] = {
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = &mptcp_pm_type_max
|
||||
},
|
||||
{
|
||||
.procname = "scheduler",
|
||||
.maxlen = MPTCP_SCHED_NAME_MAX,
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dostring,
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
||||
@ -149,6 +162,7 @@ static int mptcp_pernet_new_table(struct net *net, struct mptcp_pernet *pernet)
|
||||
table[3].data = &pernet->allow_join_initial_addr_port;
|
||||
table[4].data = &pernet->stale_loss_cnt;
|
||||
table[5].data = &pernet->pm_type;
|
||||
table[6].data = &pernet->scheduler;
|
||||
|
||||
hdr = register_net_sysctl(net, MPTCP_SYSCTL_PATH, table);
|
||||
if (!hdr)
|
||||
|
@ -623,6 +623,7 @@ int mptcp_is_checksum_enabled(const struct net *net);
|
||||
int mptcp_allow_join_id0(const struct net *net);
|
||||
unsigned int mptcp_stale_loss_cnt(const struct net *net);
|
||||
int mptcp_get_pm_type(const struct net *net);
|
||||
const char *mptcp_get_scheduler(const struct net *net);
|
||||
void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow,
|
||||
const struct mptcp_options_received *mp_opt);
|
||||
bool __mptcp_retransmit_pending_data(struct sock *sk);
|
||||
|
Loading…
Reference in New Issue
Block a user