diff options
Diffstat (limited to 'net/mptcp/ctrl.c')
| -rw-r--r-- | net/mptcp/ctrl.c | 26 | 
1 files changed, 20 insertions, 6 deletions
diff --git a/net/mptcp/ctrl.c b/net/mptcp/ctrl.c index 7d738bd06f2c..8b235468c88f 100644 --- a/net/mptcp/ctrl.c +++ b/net/mptcp/ctrl.c @@ -21,43 +21,50 @@ struct mptcp_pernet {  	struct ctl_table_header *ctl_table_hdr;  #endif -	u8 mptcp_enabled;  	unsigned int add_addr_timeout; +	unsigned int stale_loss_cnt; +	u8 mptcp_enabled;  	u8 checksum_enabled;  	u8 allow_join_initial_addr_port;  }; -static struct mptcp_pernet *mptcp_get_pernet(struct net *net) +static struct mptcp_pernet *mptcp_get_pernet(const struct net *net)  {  	return net_generic(net, mptcp_pernet_id);  } -int mptcp_is_enabled(struct net *net) +int mptcp_is_enabled(const struct net *net)  {  	return mptcp_get_pernet(net)->mptcp_enabled;  } -unsigned int mptcp_get_add_addr_timeout(struct net *net) +unsigned int mptcp_get_add_addr_timeout(const struct net *net)  {  	return mptcp_get_pernet(net)->add_addr_timeout;  } -int mptcp_is_checksum_enabled(struct net *net) +int mptcp_is_checksum_enabled(const struct net *net)  {  	return mptcp_get_pernet(net)->checksum_enabled;  } -int mptcp_allow_join_id0(struct net *net) +int mptcp_allow_join_id0(const struct net *net)  {  	return mptcp_get_pernet(net)->allow_join_initial_addr_port;  } +unsigned int mptcp_stale_loss_cnt(const struct net *net) +{ +	return mptcp_get_pernet(net)->stale_loss_cnt; +} +  static void mptcp_pernet_set_defaults(struct mptcp_pernet *pernet)  {  	pernet->mptcp_enabled = 1;  	pernet->add_addr_timeout = TCP_RTO_MAX;  	pernet->checksum_enabled = 0;  	pernet->allow_join_initial_addr_port = 1; +	pernet->stale_loss_cnt = 4;  }  #ifdef CONFIG_SYSCTL @@ -95,6 +102,12 @@ static struct ctl_table mptcp_sysctl_table[] = {  		.extra1       = SYSCTL_ZERO,  		.extra2       = SYSCTL_ONE  	}, +	{ +		.procname = "stale_loss_cnt", +		.maxlen = sizeof(unsigned int), +		.mode = 0644, +		.proc_handler = proc_douintvec_minmax, +	},  	{}  }; @@ -114,6 +127,7 @@ static int mptcp_pernet_new_table(struct net *net, struct mptcp_pernet *pernet)  	table[1].data = &pernet->add_addr_timeout;  	table[2].data = &pernet->checksum_enabled;  	table[3].data = &pernet->allow_join_initial_addr_port; +	table[4].data = &pernet->stale_loss_cnt;  	hdr = register_net_sysctl(net, MPTCP_SYSCTL_PATH, table);  	if (!hdr)  | 
