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
78 * methods on dead net ( argument
204 extern struct net init_net; argument
207 struct net *copy_net_ns(u64 flags, struct user_namespace *user_ns,
208 struct net *old_net);
210 void net_ns_get_ownership(const struct net *net, kuid_t *uid, kgid_t *gid);
215 struct net *get_net_ns_by_fd(int fd);
221 static inline struct net *copy_net_ns(u64 flags, in copy_net_ns()
222 struct user_namespace *user_ns, struct net *old_net) in copy_net_ns()
229 static inline void net_ns_get_ownership(const struct net *net, in net_ns_get_ownership() argument
243 static inline struct net *get_net_ns_by_fd(int fd) in get_net_ns_by_fd()
252 struct net *get_net_ns_by_pid(pid_t pid);
263 void __put_net(struct net *net);
265 static inline struct net *to_net_ns(struct ns_common *ns) in to_net_ns()
267 return container_of(ns, struct net, ns); in to_net_ns()
271 static inline struct net *get_net(struct net *net) in get_net() argument
273 ns_ref_inc(net); in get_net()
274 return net; in get_net()
277 static inline struct net *maybe_get_net(struct net *net) in maybe_get_net() argument
279 /* Used when we know struct net exists but we in maybe_get_net()
284 if (!ns_ref_get(net)) in maybe_get_net()
285 net = NULL; in maybe_get_net()
286 return net; in maybe_get_net()
290 static inline void put_net(struct net *net) in put_net() argument
292 if (ns_ref_put(net)) in put_net()
293 __put_net(net); in put_net()
297 int net_eq(const struct net *net1, const struct net *net2) in net_eq()
302 static inline int check_net(const struct net *net) in check_net() argument
304 return ns_ref_read(net) != 0; in check_net()
308 void net_passive_dec(struct net *net);
312 static inline struct net *get_net(struct net *net) in get_net() argument
314 return net; in get_net()
317 static inline void put_net(struct net *net) in put_net() argument
321 static inline struct net *maybe_get_net(struct net *net) in maybe_get_net() argument
323 return net; in maybe_get_net()
327 int net_eq(const struct net *net1, const struct net *net2) in net_eq()
332 static inline int check_net(const struct net *net) in check_net() argument
339 static inline void net_passive_dec(struct net *net) in net_passive_dec() argument
341 refcount_dec(&net->passive); in net_passive_dec()
345 static inline void net_passive_inc(struct net *net) in net_passive_inc() argument
347 refcount_inc(&net->passive); in net_passive_inc()
351 static inline bool net_initialized(const struct net *net) in net_initialized() argument
353 return READ_ONCE(net->list.next); in net_initialized()
356 static inline void __netns_tracker_alloc(struct net *net, in __netns_tracker_alloc() argument
362 ref_tracker_alloc(refcounted ? &net->refcnt_tracker : in __netns_tracker_alloc()
363 &net->notrefcnt_tracker, in __netns_tracker_alloc()
368 static inline void netns_tracker_alloc(struct net *net, netns_tracker *tracker, in netns_tracker_alloc() argument
371 __netns_tracker_alloc(net, tracker, true, gfp); in netns_tracker_alloc()
374 static inline void __netns_tracker_free(struct net *net, in __netns_tracker_free() argument
379 ref_tracker_free(refcounted ? &net->refcnt_tracker : in __netns_tracker_free()
380 &net->notrefcnt_tracker, tracker); in __netns_tracker_free()
384 static inline struct net *get_net_track(struct net *net, in get_net_track() argument
387 get_net(net); in get_net_track()
388 netns_tracker_alloc(net, tracker, gfp); in get_net_track()
389 return net; in get_net_track()
392 static inline void put_net_track(struct net *net, netns_tracker *tracker) in put_net_track() argument
394 __netns_tracker_free(net, tracker, true); in put_net_track()
395 put_net(net); in put_net_track()
400 struct net __rcu *net; member
404 static inline void write_pnet(possible_net_t *pnet, struct net *net) in write_pnet() argument
407 rcu_assign_pointer(pnet->net, net); in write_pnet()
411 static inline struct net *read_pnet(const possible_net_t *pnet) in read_pnet()
414 return rcu_dereference_protected(pnet->net, true); in read_pnet()
420 static inline struct net *read_pnet_rcu(const possible_net_t *pnet) in read_pnet_rcu()
423 return rcu_dereference(pnet->net); in read_pnet_rcu()
449 int peernet2id_alloc(struct net *net, struct net *peer, gfp_t gfp);
450 int peernet2id(const struct net *net, struct net *peer);
451 bool peernet_has_id(const struct net *net, struct net *peer);
452 struct net *get_net_ns_by_id(const struct net *net, int id);
458 * More than one net may be constructed and destructed
469 * Then, destruction of a group of net requires single
471 * instead of separate synchronize_rcu() for every net.
478 int (*init)(struct net *net);
479 void (*pre_exit)(struct net *net);
480 void (*exit)(struct net *net);
483 void (*exit_rtnl)(struct net *net,
515 #define register_net_sysctl(net, path, table) \ argument
516 register_net_sysctl_sz(net, path, table, ARRAY_SIZE(table))
519 struct ctl_table_header *register_net_sysctl_sz(struct net *net, const char *path,
524 static inline struct ctl_table_header *register_net_sysctl_sz(struct net *net, in register_net_sysctl_sz() argument
534 static inline int rt_genid_ipv4(const struct net *net) in rt_genid_ipv4() argument
536 return atomic_read(&net->ipv4.rt_genid); in rt_genid_ipv4()
540 static inline int rt_genid_ipv6(const struct net *net) in rt_genid_ipv6() argument
542 return atomic_read(&net->ipv6.fib6_sernum); in rt_genid_ipv6()
546 static inline void rt_genid_bump_ipv4(struct net *net) in rt_genid_bump_ipv4() argument
548 atomic_inc(&net->ipv4.rt_genid); in rt_genid_bump_ipv4()
551 extern void (*__fib6_flush_trees)(struct net *net);
552 static inline void rt_genid_bump_ipv6(struct net *net) in rt_genid_bump_ipv6() argument
555 __fib6_flush_trees(net); in rt_genid_bump_ipv6()
560 net_ieee802154_lowpan(struct net *net) in net_ieee802154_lowpan() argument
562 return &net->ieee802154_lowpan; in net_ieee802154_lowpan()
567 static inline void rt_genid_bump_all(struct net *net) in rt_genid_bump_all() argument
569 rt_genid_bump_ipv4(net); in rt_genid_bump_all()
570 rt_genid_bump_ipv6(net); in rt_genid_bump_all()
573 static inline int fnhe_genid(const struct net *net) in fnhe_genid() argument
575 return atomic_read(&net->fnhe_genid); in fnhe_genid()
578 static inline void fnhe_genid_bump(struct net *net) in fnhe_genid_bump() argument
580 atomic_inc(&net->fnhe_genid); in fnhe_genid_bump()