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
201 extern struct net init_net; argument
204 struct net *copy_net_ns(unsigned long flags, struct user_namespace *user_ns,
205 struct net *old_net);
207 void net_ns_get_ownership(const struct net *net, kuid_t *uid, kgid_t *gid);
212 struct net *get_net_ns_by_fd(int fd);
218 static inline struct net *copy_net_ns(unsigned long flags, in copy_net_ns()
219 struct user_namespace *user_ns, struct net *old_net) in copy_net_ns()
226 static inline void net_ns_get_ownership(const struct net *net, in net_ns_get_ownership() argument
240 static inline struct net *get_net_ns_by_fd(int fd) in get_net_ns_by_fd()
249 struct net *get_net_ns_by_pid(pid_t pid);
260 void __put_net(struct net *net);
263 static inline struct net *get_net(struct net *net) in get_net() argument
265 refcount_inc(&net->ns.count); in get_net()
266 return net; in get_net()
269 static inline struct net *maybe_get_net(struct net *net) in maybe_get_net() argument
271 /* Used when we know struct net exists but we in maybe_get_net()
276 if (!refcount_inc_not_zero(&net->ns.count)) in maybe_get_net()
277 net = NULL; in maybe_get_net()
278 return net; in maybe_get_net()
282 static inline void put_net(struct net *net) in put_net() argument
284 if (refcount_dec_and_test(&net->ns.count)) in put_net()
285 __put_net(net); in put_net()
289 int net_eq(const struct net *net1, const struct net *net2) in net_eq()
294 static inline int check_net(const struct net *net) in check_net() argument
296 return refcount_read(&net->ns.count) != 0; in check_net()
300 void net_passive_dec(struct net *net);
304 static inline struct net *get_net(struct net *net) in get_net() argument
306 return net; in get_net()
309 static inline void put_net(struct net *net) in put_net() argument
313 static inline struct net *maybe_get_net(struct net *net) in maybe_get_net() argument
315 return net; in maybe_get_net()
319 int net_eq(const struct net *net1, const struct net *net2) in net_eq()
324 static inline int check_net(const struct net *net) in check_net() argument
331 static inline void net_passive_dec(struct net *net) in net_passive_dec() argument
333 refcount_dec(&net->passive); in net_passive_dec()
337 static inline void net_passive_inc(struct net *net) in net_passive_inc() argument
339 refcount_inc(&net->passive); in net_passive_inc()
343 static inline bool net_initialized(const struct net *net) in net_initialized() argument
345 return READ_ONCE(net->list.next); in net_initialized()
348 static inline void __netns_tracker_alloc(struct net *net, in __netns_tracker_alloc() argument
354 ref_tracker_alloc(refcounted ? &net->refcnt_tracker : in __netns_tracker_alloc()
355 &net->notrefcnt_tracker, in __netns_tracker_alloc()
360 static inline void netns_tracker_alloc(struct net *net, netns_tracker *tracker, in netns_tracker_alloc() argument
363 __netns_tracker_alloc(net, tracker, true, gfp); in netns_tracker_alloc()
366 static inline void __netns_tracker_free(struct net *net, in __netns_tracker_free() argument
371 ref_tracker_free(refcounted ? &net->refcnt_tracker : in __netns_tracker_free()
372 &net->notrefcnt_tracker, tracker); in __netns_tracker_free()
376 static inline struct net *get_net_track(struct net *net, in get_net_track() argument
379 get_net(net); in get_net_track()
380 netns_tracker_alloc(net, tracker, gfp); in get_net_track()
381 return net; in get_net_track()
384 static inline void put_net_track(struct net *net, netns_tracker *tracker) in put_net_track() argument
386 __netns_tracker_free(net, tracker, true); in put_net_track()
387 put_net(net); in put_net_track()
392 struct net __rcu *net; member
396 static inline void write_pnet(possible_net_t *pnet, struct net *net) in write_pnet() argument
399 rcu_assign_pointer(pnet->net, net); in write_pnet()
403 static inline struct net *read_pnet(const possible_net_t *pnet) in read_pnet()
406 return rcu_dereference_protected(pnet->net, true); in read_pnet()
412 static inline struct net *read_pnet_rcu(const possible_net_t *pnet) in read_pnet_rcu()
415 return rcu_dereference(pnet->net); in read_pnet_rcu()
441 int peernet2id_alloc(struct net *net, struct net *peer, gfp_t gfp);
442 int peernet2id(const struct net *net, struct net *peer);
443 bool peernet_has_id(const struct net *net, struct net *peer);
444 struct net *get_net_ns_by_id(const struct net *net, int id);
450 * More than one net may be constructed and destructed
461 * Then, destruction of a group of net requires single
463 * instead of separate synchronize_rcu() for every net.
470 int (*init)(struct net *net);
471 void (*pre_exit)(struct net *net);
472 void (*exit)(struct net *net);
507 #define register_net_sysctl(net, path, table) \ argument
508 register_net_sysctl_sz(net, path, table, ARRAY_SIZE(table))
511 struct ctl_table_header *register_net_sysctl_sz(struct net *net, const char *path,
516 static inline struct ctl_table_header *register_net_sysctl_sz(struct net *net, in register_net_sysctl_sz() argument
526 static inline int rt_genid_ipv4(const struct net *net) in rt_genid_ipv4() argument
528 return atomic_read(&net->ipv4.rt_genid); in rt_genid_ipv4()
532 static inline int rt_genid_ipv6(const struct net *net) in rt_genid_ipv6() argument
534 return atomic_read(&net->ipv6.fib6_sernum); in rt_genid_ipv6()
538 static inline void rt_genid_bump_ipv4(struct net *net) in rt_genid_bump_ipv4() argument
540 atomic_inc(&net->ipv4.rt_genid); in rt_genid_bump_ipv4()
543 extern void (*__fib6_flush_trees)(struct net *net);
544 static inline void rt_genid_bump_ipv6(struct net *net) in rt_genid_bump_ipv6() argument
547 __fib6_flush_trees(net); in rt_genid_bump_ipv6()
552 net_ieee802154_lowpan(struct net *net) in net_ieee802154_lowpan() argument
554 return &net->ieee802154_lowpan; in net_ieee802154_lowpan()
559 static inline void rt_genid_bump_all(struct net *net) in rt_genid_bump_all() argument
561 rt_genid_bump_ipv4(net); in rt_genid_bump_all()
562 rt_genid_bump_ipv6(net); in rt_genid_bump_all()
565 static inline int fnhe_genid(const struct net *net) in fnhe_genid() argument
567 return atomic_read(&net->fnhe_genid); in fnhe_genid()
570 static inline void fnhe_genid_bump(struct net *net) in fnhe_genid_bump() argument
572 atomic_inc(&net->fnhe_genid); in fnhe_genid_bump()