net: add option to not create fall-back tunnels in root-ns as well
The sysctl that was added earlier by commit 79134e6ce2
("net: do
not create fallback tunnels for non-default namespaces") to create
fall-back only in root-ns. This patch enhances that behavior to provide
option not to create fallback tunnels in root-ns as well. Since modules
that create fallback tunnels could be built-in and setting the sysctl
value after booting is pointless, so added a kernel cmdline options to
change this default. The default setting is preseved for backward
compatibility. The kernel command line option of fb_tunnels=initns will
set the sysctl value to 1 and will create fallback tunnels only in initns
while kernel cmdline fb_tunnels=none will set the sysctl value to 2 and
fallback tunnels are skipped in every netns.
Signed-off-by: Mahesh Bandewar <maheshb@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Maciej Zenczykowski <maze@google.com>
Cc: Jian Yang <jianyang@google.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
0baf01942d
commit
316cdaa115
@@ -640,10 +640,14 @@ struct netdev_queue {
|
||||
extern int sysctl_fb_tunnels_only_for_init_net;
|
||||
extern int sysctl_devconf_inherit_init_net;
|
||||
|
||||
/*
|
||||
* sysctl_fb_tunnels_only_for_init_net == 0 : For all netns
|
||||
* == 1 : For initns only
|
||||
* == 2 : For none.
|
||||
*/
|
||||
static inline bool net_has_fallback_tunnels(const struct net *net)
|
||||
{
|
||||
return net == &init_net ||
|
||||
!IS_ENABLED(CONFIG_SYSCTL) ||
|
||||
return (net == &init_net && sysctl_fb_tunnels_only_for_init_net == 1) ||
|
||||
!sysctl_fb_tunnels_only_for_init_net;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user