diff options
Diffstat (limited to 'include/net/net_namespace.h')
| -rw-r--r-- | include/net/net_namespace.h | 61 | 
1 files changed, 39 insertions, 22 deletions
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 9d22f08896c..361d2607719 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h @@ -9,12 +9,14 @@  #include <linux/list.h>  #include <linux/sysctl.h> +#include <net/flow.h>  #include <net/netns/core.h>  #include <net/netns/mib.h>  #include <net/netns/unix.h>  #include <net/netns/packet.h>  #include <net/netns/ipv4.h>  #include <net/netns/ipv6.h> +#include <net/netns/ieee802154_6lowpan.h>  #include <net/netns/sctp.h>  #include <net/netns/dccp.h>  #include <net/netns/netfilter.h> @@ -22,6 +24,7 @@  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)  #include <net/netns/conntrack.h>  #endif +#include <net/netns/nftables.h>  #include <net/netns/xfrm.h>  struct user_namespace; @@ -89,6 +92,9 @@ struct net {  #if IS_ENABLED(CONFIG_IPV6)  	struct netns_ipv6	ipv6;  #endif +#if IS_ENABLED(CONFIG_IEEE802154_6LOWPAN) +	struct netns_ieee802154_lowpan	ieee802154_lowpan; +#endif  #if defined(CONFIG_IP_SCTP) || defined(CONFIG_IP_SCTP_MODULE)  	struct netns_sctp	sctp;  #endif @@ -101,6 +107,9 @@ struct net {  #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)  	struct netns_ct		ct;  #endif +#if defined(CONFIG_NF_TABLES) || defined(CONFIG_NF_TABLES_MODULE) +	struct netns_nftables	nft; +#endif  #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)  	struct netns_nf_frag	nf_frag;  #endif @@ -123,22 +132,14 @@ struct net {  	atomic_t		fnhe_genid;  }; -/* - * ifindex generation is per-net namespace, and loopback is - * always the 1st device in ns (see net_dev_init), thus any - * loopback device should get ifindex 1 - */ - -#define LOOPBACK_IFINDEX	1 -  #include <linux/seq_file_net.h>  /* Init's network namespace */  extern struct net init_net;  #ifdef CONFIG_NET_NS -extern struct net *copy_net_ns(unsigned long flags, -	struct user_namespace *user_ns, struct net *old_net); +struct net *copy_net_ns(unsigned long flags, struct user_namespace *user_ns, +			struct net *old_net);  #else /* CONFIG_NET_NS */  #include <linux/sched.h> @@ -155,11 +156,19 @@ static inline struct net *copy_net_ns(unsigned long flags,  extern struct list_head net_namespace_list; -extern struct net *get_net_ns_by_pid(pid_t pid); -extern struct net *get_net_ns_by_fd(int pid); +struct net *get_net_ns_by_pid(pid_t pid); +struct net *get_net_ns_by_fd(int pid); + +#ifdef CONFIG_SYSCTL +void ipx_register_sysctl(void); +void ipx_unregister_sysctl(void); +#else +#define ipx_register_sysctl() +#define ipx_unregister_sysctl() +#endif  #ifdef CONFIG_NET_NS -extern void __put_net(struct net *net); +void __put_net(struct net *net);  static inline struct net *get_net(struct net *net)  { @@ -191,7 +200,7 @@ int net_eq(const struct net *net1, const struct net *net2)  	return net1 == net2;  } -extern void net_drop_ns(void *); +void net_drop_ns(void *);  #else @@ -308,19 +317,19 @@ struct pernet_operations {   * device which caused kernel oops, and panics during network   * namespace cleanup.   So please don't get this wrong.   */ -extern int register_pernet_subsys(struct pernet_operations *); -extern void unregister_pernet_subsys(struct pernet_operations *); -extern int register_pernet_device(struct pernet_operations *); -extern void unregister_pernet_device(struct pernet_operations *); +int register_pernet_subsys(struct pernet_operations *); +void unregister_pernet_subsys(struct pernet_operations *); +int register_pernet_device(struct pernet_operations *); +void unregister_pernet_device(struct pernet_operations *);  struct ctl_table;  struct ctl_table_header;  #ifdef CONFIG_SYSCTL -extern int net_sysctl_init(void); -extern struct ctl_table_header *register_net_sysctl(struct net *net, -	const char *path, struct ctl_table *table); -extern void unregister_net_sysctl_table(struct ctl_table_header *header); +int net_sysctl_init(void); +struct ctl_table_header *register_net_sysctl(struct net *net, const char *path, +					     struct ctl_table *table); +void unregister_net_sysctl_table(struct ctl_table_header *header);  #else  static inline int net_sysctl_init(void) { return 0; }  static inline struct ctl_table_header *register_net_sysctl(struct net *net, @@ -364,6 +373,14 @@ static inline void rt_genid_bump_ipv6(struct net *net)  }  #endif +#if IS_ENABLED(CONFIG_IEEE802154_6LOWPAN) +static inline struct netns_ieee802154_lowpan * +net_ieee802154_lowpan(struct net *net) +{ +	return &net->ieee802154_lowpan; +} +#endif +  /* For callers who don't really care about whether it's IPv4 or IPv6 */  static inline void rt_genid_bump_all(struct net *net)  {  | 
