Lines Matching full:net

15 #include <net/flow.h>
16 #include <net/netns/core.h>
17 #include <net/netns/mib.h>
18 #include <net/netns/unix.h>
19 #include <net/netns/packet.h>
20 #include <net/netns/ipv4.h>
21 #include <net/netns/ipv6.h>
22 #include <net/netns/nexthop.h>
23 #include <net/netns/ieee802154_6lowpan.h>
24 #include <net/netns/sctp.h>
25 #include <net/netns/netfilter.h>
27 #include <net/netns/conntrack.h>
30 #include <net/netns/flow_table.h>
32 #include <net/netns/nftables.h>
33 #include <net/netns/xfrm.h>
34 #include <net/netns/mpls.h>
35 #include <net/netns/can.h>
36 #include <net/netns/xdp.h>
37 #include <net/netns/smc.h>
38 #include <net/netns/bpf.h>
39 #include <net/netns/mctp.h>
40 #include <net/net_trackers.h>
61 struct net { struct
80 * methods on dead net ( argument
199 extern struct net init_net; argument
202 struct net *copy_net_ns(unsigned long flags, struct user_namespace *user_ns,
203 struct net *old_net);
205 void net_ns_get_ownership(const struct net *net, kuid_t *uid, kgid_t *gid);
210 struct net *get_net_ns_by_fd(int fd);
214 static inline struct net *copy_net_ns(unsigned long flags, in copy_net_ns()
215 struct user_namespace *user_ns, struct net *old_net) in copy_net_ns()
222 static inline void net_ns_get_ownership(const struct net *net, in net_ns_get_ownership() argument
236 static inline struct net *get_net_ns_by_fd(int fd) in get_net_ns_by_fd()
245 struct net *get_net_ns_by_pid(pid_t pid);
256 void __put_net(struct net *net);
259 static inline struct net *get_net(struct net *net) in get_net() argument
261 refcount_inc(&net->ns.count); in get_net()
262 return net; in get_net()
265 static inline struct net *maybe_get_net(struct net *net) in maybe_get_net() argument
267 /* Used when we know struct net exists but we in maybe_get_net()
272 if (!refcount_inc_not_zero(&net->ns.count)) in maybe_get_net()
273 net = NULL; in maybe_get_net()
274 return net; in maybe_get_net()
278 static inline void put_net(struct net *net) in put_net() argument
280 if (refcount_dec_and_test(&net->ns.count)) in put_net()
281 __put_net(net); in put_net()
285 int net_eq(const struct net *net1, const struct net *net2) in net_eq()
290 static inline int check_net(const struct net *net) in check_net() argument
292 return refcount_read(&net->ns.count) != 0; in check_net()
299 static inline struct net *get_net(struct net *net) in get_net() argument
301 return net; in get_net()
304 static inline void put_net(struct net *net) in put_net() argument
308 static inline struct net *maybe_get_net(struct net *net) in maybe_get_net() argument
310 return net; in maybe_get_net()
314 int net_eq(const struct net *net1, const struct net *net2) in net_eq()
319 static inline int check_net(const struct net *net) in check_net() argument
328 static inline void __netns_tracker_alloc(struct net *net, in __netns_tracker_alloc() argument
334 ref_tracker_alloc(refcounted ? &net->refcnt_tracker : in __netns_tracker_alloc()
335 &net->notrefcnt_tracker, in __netns_tracker_alloc()
340 static inline void netns_tracker_alloc(struct net *net, netns_tracker *tracker, in netns_tracker_alloc() argument
343 __netns_tracker_alloc(net, tracker, true, gfp); in netns_tracker_alloc()
346 static inline void __netns_tracker_free(struct net *net, in __netns_tracker_free() argument
351 ref_tracker_free(refcounted ? &net->refcnt_tracker : in __netns_tracker_free()
352 &net->notrefcnt_tracker, tracker); in __netns_tracker_free()
356 static inline struct net *get_net_track(struct net *net, in get_net_track() argument
359 get_net(net); in get_net_track()
360 netns_tracker_alloc(net, tracker, gfp); in get_net_track()
361 return net; in get_net_track()
364 static inline void put_net_track(struct net *net, netns_tracker *tracker) in put_net_track() argument
366 __netns_tracker_free(net, tracker, true); in put_net_track()
367 put_net(net); in put_net_track()
372 struct net __rcu *net; member
376 static inline void write_pnet(possible_net_t *pnet, struct net *net) in write_pnet() argument
379 rcu_assign_pointer(pnet->net, net); in write_pnet()
383 static inline struct net *read_pnet(const possible_net_t *pnet) in read_pnet()
386 return rcu_dereference_protected(pnet->net, true); in read_pnet()
392 static inline struct net *read_pnet_rcu(const possible_net_t *pnet) in read_pnet_rcu()
395 return rcu_dereference(pnet->net); in read_pnet_rcu()
421 int peernet2id_alloc(struct net *net, struct net *peer, gfp_t gfp);
422 int peernet2id(const struct net *net, struct net *peer);
423 bool peernet_has_id(const struct net *net, struct net *peer);
424 struct net *get_net_ns_by_id(const struct net *net, int id);
430 * More than one net may be constructed and destructed
441 * Then, destruction of a group of net requires single
443 * instead of separate synchronize_rcu() for every net.
450 int (*init)(struct net *net);
451 void (*pre_exit)(struct net *net);
452 void (*exit)(struct net *net);
487 #define register_net_sysctl(net, path, table) \ argument
488 register_net_sysctl_sz(net, path, table, ARRAY_SIZE(table))
491 struct ctl_table_header *register_net_sysctl_sz(struct net *net, const char *path,
496 static inline struct ctl_table_header *register_net_sysctl_sz(struct net *net, in register_net_sysctl_sz() argument
506 static inline int rt_genid_ipv4(const struct net *net) in rt_genid_ipv4() argument
508 return atomic_read(&net->ipv4.rt_genid); in rt_genid_ipv4()
512 static inline int rt_genid_ipv6(const struct net *net) in rt_genid_ipv6() argument
514 return atomic_read(&net->ipv6.fib6_sernum); in rt_genid_ipv6()
518 static inline void rt_genid_bump_ipv4(struct net *net) in rt_genid_bump_ipv4() argument
520 atomic_inc(&net->ipv4.rt_genid); in rt_genid_bump_ipv4()
523 extern void (*__fib6_flush_trees)(struct net *net);
524 static inline void rt_genid_bump_ipv6(struct net *net) in rt_genid_bump_ipv6() argument
527 __fib6_flush_trees(net); in rt_genid_bump_ipv6()
532 net_ieee802154_lowpan(struct net *net) in net_ieee802154_lowpan() argument
534 return &net->ieee802154_lowpan; in net_ieee802154_lowpan()
539 static inline void rt_genid_bump_all(struct net *net) in rt_genid_bump_all() argument
541 rt_genid_bump_ipv4(net); in rt_genid_bump_all()
542 rt_genid_bump_ipv6(net); in rt_genid_bump_all()
545 static inline int fnhe_genid(const struct net *net) in fnhe_genid() argument
547 return atomic_read(&net->fnhe_genid); in fnhe_genid()
550 static inline void fnhe_genid_bump(struct net *net) in fnhe_genid_bump() argument
552 atomic_inc(&net->fnhe_genid); in fnhe_genid_bump()