@@ -32,6 +32,7 @@ struct mptcp_pernet {
3232 u8 checksum_enabled ;
3333 u8 allow_join_initial_addr_port ;
3434 u8 pm_type ;
35+ char scheduler [MPTCP_SCHED_NAME_MAX ];
3536};
3637
3738static struct mptcp_pernet * mptcp_get_pernet (const struct net * net )
@@ -69,6 +70,11 @@ int mptcp_get_pm_type(const struct net *net)
6970 return mptcp_get_pernet (net )-> pm_type ;
7071}
7172
73+ const char * mptcp_get_scheduler (const struct net * net )
74+ {
75+ return mptcp_get_pernet (net )-> scheduler ;
76+ }
77+
7278static void mptcp_pernet_set_defaults (struct mptcp_pernet * pernet )
7379{
7480 pernet -> mptcp_enabled = 1 ;
@@ -77,6 +83,7 @@ static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet)
7783 pernet -> allow_join_initial_addr_port = 1 ;
7884 pernet -> stale_loss_cnt = 4 ;
7985 pernet -> pm_type = MPTCP_PM_TYPE_KERNEL ;
86+ strcpy (pernet -> scheduler , "default" );
8087}
8188
8289#ifdef CONFIG_SYSCTL
@@ -128,6 +135,12 @@ static struct ctl_table mptcp_sysctl_table[] = {
128135 .extra1 = SYSCTL_ZERO ,
129136 .extra2 = & mptcp_pm_type_max
130137 },
138+ {
139+ .procname = "scheduler" ,
140+ .maxlen = MPTCP_SCHED_NAME_MAX ,
141+ .mode = 0644 ,
142+ .proc_handler = proc_dostring ,
143+ },
131144 {}
132145};
133146
@@ -149,6 +162,7 @@ static int mptcp_pernet_new_table(struct net *net, struct mptcp_pernet *pernet)
149162 table [3 ].data = & pernet -> allow_join_initial_addr_port ;
150163 table [4 ].data = & pernet -> stale_loss_cnt ;
151164 table [5 ].data = & pernet -> pm_type ;
165+ table [6 ].data = & pernet -> scheduler ;
152166
153167 hdr = register_net_sysctl (net , MPTCP_SYSCTL_PATH , table );
154168 if (!hdr )
0 commit comments