Lines Matching refs:ign
78 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
124 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_lookup() local
132 for_each_ip_tunnel_rcu(t, ign->tunnels_r_l[h0 ^ h1]) { in ip6gre_tunnel_lookup()
157 for_each_ip_tunnel_rcu(t, ign->tunnels_r[h0 ^ h1]) { in ip6gre_tunnel_lookup()
181 for_each_ip_tunnel_rcu(t, ign->tunnels_l[h1]) { in ip6gre_tunnel_lookup()
207 for_each_ip_tunnel_rcu(t, ign->tunnels_wc[h1]) { in ip6gre_tunnel_lookup()
235 t = rcu_dereference(ign->collect_md_tun_erspan); in ip6gre_tunnel_lookup()
237 t = rcu_dereference(ign->collect_md_tun); in ip6gre_tunnel_lookup()
242 ndev = READ_ONCE(ign->fb_tunnel_dev); in ip6gre_tunnel_lookup()
249 static struct ip6_tnl __rcu **__ip6gre_bucket(struct ip6gre_net *ign, in __ip6gre_bucket() argument
264 return &ign->tunnels[prio][h]; in __ip6gre_bucket()
267 static void ip6gre_tunnel_link_md(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_link_md() argument
270 rcu_assign_pointer(ign->collect_md_tun, t); in ip6gre_tunnel_link_md()
273 static void ip6erspan_tunnel_link_md(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6erspan_tunnel_link_md() argument
276 rcu_assign_pointer(ign->collect_md_tun_erspan, t); in ip6erspan_tunnel_link_md()
279 static void ip6gre_tunnel_unlink_md(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_unlink_md() argument
282 rcu_assign_pointer(ign->collect_md_tun, NULL); in ip6gre_tunnel_unlink_md()
285 static void ip6erspan_tunnel_unlink_md(struct ip6gre_net *ign, in ip6erspan_tunnel_unlink_md() argument
289 rcu_assign_pointer(ign->collect_md_tun_erspan, NULL); in ip6erspan_tunnel_unlink_md()
292 static inline struct ip6_tnl __rcu **ip6gre_bucket(struct ip6gre_net *ign, in ip6gre_bucket() argument
295 return __ip6gre_bucket(ign, &t->parms); in ip6gre_bucket()
298 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_link() argument
300 struct ip6_tnl __rcu **tp = ip6gre_bucket(ign, t); in ip6gre_tunnel_link()
306 static void ip6gre_tunnel_unlink(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_unlink() argument
311 for (tp = ip6gre_bucket(ign, t); in ip6gre_tunnel_unlink()
331 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_find() local
333 for (tp = __ip6gre_bucket(ign, parms); in ip6gre_tunnel_find()
352 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_locate() local
385 ip6gre_tunnel_link(ign, nt); in ip6gre_tunnel_locate()
396 struct ip6gre_net *ign = net_generic(t->net, ip6gre_net_id); in ip6erspan_tunnel_uninit() local
398 ip6erspan_tunnel_unlink_md(ign, t); in ip6erspan_tunnel_uninit()
399 ip6gre_tunnel_unlink(ign, t); in ip6erspan_tunnel_uninit()
407 struct ip6gre_net *ign = net_generic(t->net, ip6gre_net_id); in ip6gre_tunnel_uninit() local
409 ip6gre_tunnel_unlink_md(ign, t); in ip6gre_tunnel_uninit()
410 ip6gre_tunnel_unlink(ign, t); in ip6gre_tunnel_uninit()
411 if (ign->fb_tunnel_dev == dev) in ip6gre_tunnel_uninit()
412 WRITE_ONCE(ign->fb_tunnel_dev, NULL); in ip6gre_tunnel_uninit()
1289 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_siocdevprivate() local
1295 if (dev == ign->fb_tunnel_dev) { in ip6gre_tunnel_siocdevprivate()
1333 if (dev != ign->fb_tunnel_dev && cmd == SIOCCHGTUNNEL) { in ip6gre_tunnel_siocdevprivate()
1342 ip6gre_tunnel_unlink(ign, t); in ip6gre_tunnel_siocdevprivate()
1345 ip6gre_tunnel_link(ign, t); in ip6gre_tunnel_siocdevprivate()
1366 if (dev == ign->fb_tunnel_dev) { in ip6gre_tunnel_siocdevprivate()
1376 if (t == netdev_priv(ign->fb_tunnel_dev)) in ip6gre_tunnel_siocdevprivate()
1575 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_destroy_tunnels() local
1590 t = rtnl_dereference(ign->tunnels[prio][h]); in ip6gre_destroy_tunnels()
1607 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_init_net() local
1619 ign->fb_tunnel_dev = ndev; in ip6gre_init_net()
1620 dev_net_set(ign->fb_tunnel_dev, net); in ip6gre_init_net()
1624 ign->fb_tunnel_dev->netns_local = true; in ip6gre_init_net()
1626 ip6gre_fb_tunnel_init(ign->fb_tunnel_dev); in ip6gre_init_net()
1627 ign->fb_tunnel_dev->rtnl_link_ops = &ip6gre_link_ops; in ip6gre_init_net()
1629 err = register_netdev(ign->fb_tunnel_dev); in ip6gre_init_net()
1633 rcu_assign_pointer(ign->tunnels_wc[0], in ip6gre_init_net()
1634 netdev_priv(ign->fb_tunnel_dev)); in ip6gre_init_net()
2014 struct ip6gre_net *ign; in ip6gre_newlink() local
2018 ign = net_generic(net, ip6gre_net_id); in ip6gre_newlink()
2021 if (rtnl_dereference(ign->collect_md_tun)) in ip6gre_newlink()
2031 ip6gre_tunnel_link_md(ign, nt); in ip6gre_newlink()
2044 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_changelink_common() local
2047 if (dev == ign->fb_tunnel_dev) in ip6gre_changelink_common()
2076 struct ip6gre_net *ign = net_generic(t->net, ip6gre_net_id); in ip6gre_changelink() local
2083 ip6gre_tunnel_unlink_md(ign, t); in ip6gre_changelink()
2084 ip6gre_tunnel_unlink(ign, t); in ip6gre_changelink()
2086 ip6gre_tunnel_link_md(ign, t); in ip6gre_changelink()
2087 ip6gre_tunnel_link(ign, t); in ip6gre_changelink()
2094 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_dellink() local
2096 if (dev != ign->fb_tunnel_dev) in ip6gre_dellink()
2250 struct ip6gre_net *ign; in ip6erspan_newlink() local
2255 ign = net_generic(net, ip6gre_net_id); in ip6erspan_newlink()
2258 if (rtnl_dereference(ign->collect_md_tun_erspan)) in ip6erspan_newlink()
2268 ip6erspan_tunnel_link_md(ign, nt); in ip6erspan_newlink()
2292 struct ip6gre_net *ign = net_generic(dev_net(dev), ip6gre_net_id); in ip6erspan_changelink() local
2301 ip6gre_tunnel_unlink_md(ign, t); in ip6erspan_changelink()
2302 ip6gre_tunnel_unlink(ign, t); in ip6erspan_changelink()
2304 ip6erspan_tunnel_link_md(ign, t); in ip6erspan_changelink()
2305 ip6gre_tunnel_link(ign, t); in ip6erspan_changelink()