Lines Matching refs:ign
83 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
129 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_lookup() local
136 for_each_ip_tunnel_rcu(t, ign->tunnels_r_l[h0 ^ h1]) { in ip6gre_tunnel_lookup()
161 for_each_ip_tunnel_rcu(t, ign->tunnels_r[h0 ^ h1]) { in ip6gre_tunnel_lookup()
185 for_each_ip_tunnel_rcu(t, ign->tunnels_l[h1]) { in ip6gre_tunnel_lookup()
211 for_each_ip_tunnel_rcu(t, ign->tunnels_wc[h1]) { in ip6gre_tunnel_lookup()
239 t = rcu_dereference(ign->collect_md_tun_erspan); in ip6gre_tunnel_lookup()
241 t = rcu_dereference(ign->collect_md_tun); in ip6gre_tunnel_lookup()
246 dev = ign->fb_tunnel_dev; in ip6gre_tunnel_lookup()
253 static struct ip6_tnl __rcu **__ip6gre_bucket(struct ip6gre_net *ign, in __ip6gre_bucket() argument
268 return &ign->tunnels[prio][h]; in __ip6gre_bucket()
271 static void ip6gre_tunnel_link_md(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_link_md() argument
274 rcu_assign_pointer(ign->collect_md_tun, t); in ip6gre_tunnel_link_md()
277 static void ip6erspan_tunnel_link_md(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6erspan_tunnel_link_md() argument
280 rcu_assign_pointer(ign->collect_md_tun_erspan, t); in ip6erspan_tunnel_link_md()
283 static void ip6gre_tunnel_unlink_md(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_unlink_md() argument
286 rcu_assign_pointer(ign->collect_md_tun, NULL); in ip6gre_tunnel_unlink_md()
289 static void ip6erspan_tunnel_unlink_md(struct ip6gre_net *ign, in ip6erspan_tunnel_unlink_md() argument
293 rcu_assign_pointer(ign->collect_md_tun_erspan, NULL); in ip6erspan_tunnel_unlink_md()
296 static inline struct ip6_tnl __rcu **ip6gre_bucket(struct ip6gre_net *ign, in ip6gre_bucket() argument
299 return __ip6gre_bucket(ign, &t->parms); in ip6gre_bucket()
302 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_link() argument
304 struct ip6_tnl __rcu **tp = ip6gre_bucket(ign, t); in ip6gre_tunnel_link()
310 static void ip6gre_tunnel_unlink(struct ip6gre_net *ign, struct ip6_tnl *t) in ip6gre_tunnel_unlink() argument
315 for (tp = ip6gre_bucket(ign, t); in ip6gre_tunnel_unlink()
335 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_find() local
337 for (tp = __ip6gre_bucket(ign, parms); in ip6gre_tunnel_find()
356 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_locate() local
395 ip6gre_tunnel_link(ign, nt); in ip6gre_tunnel_locate()
406 struct ip6gre_net *ign = net_generic(t->net, ip6gre_net_id); in ip6erspan_tunnel_uninit() local
408 ip6erspan_tunnel_unlink_md(ign, t); in ip6erspan_tunnel_uninit()
409 ip6gre_tunnel_unlink(ign, t); in ip6erspan_tunnel_uninit()
417 struct ip6gre_net *ign = net_generic(t->net, ip6gre_net_id); in ip6gre_tunnel_uninit() local
419 ip6gre_tunnel_unlink_md(ign, t); in ip6gre_tunnel_uninit()
420 ip6gre_tunnel_unlink(ign, t); in ip6gre_tunnel_uninit()
1238 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_tunnel_ioctl() local
1244 if (dev == ign->fb_tunnel_dev) { in ip6gre_tunnel_ioctl()
1282 if (dev != ign->fb_tunnel_dev && cmd == SIOCCHGTUNNEL) { in ip6gre_tunnel_ioctl()
1291 ip6gre_tunnel_unlink(ign, t); in ip6gre_tunnel_ioctl()
1294 ip6gre_tunnel_link(ign, t); in ip6gre_tunnel_ioctl()
1315 if (dev == ign->fb_tunnel_dev) { in ip6gre_tunnel_ioctl()
1325 if (t == netdev_priv(ign->fb_tunnel_dev)) in ip6gre_tunnel_ioctl()
1536 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_destroy_tunnels() local
1551 t = rtnl_dereference(ign->tunnels[prio][h]); in ip6gre_destroy_tunnels()
1568 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_init_net() local
1573 ign->fb_tunnel_dev = alloc_netdev(sizeof(struct ip6_tnl), "ip6gre0", in ip6gre_init_net()
1576 if (!ign->fb_tunnel_dev) { in ip6gre_init_net()
1580 dev_net_set(ign->fb_tunnel_dev, net); in ip6gre_init_net()
1584 ign->fb_tunnel_dev->features |= NETIF_F_NETNS_LOCAL; in ip6gre_init_net()
1587 ip6gre_fb_tunnel_init(ign->fb_tunnel_dev); in ip6gre_init_net()
1588 ign->fb_tunnel_dev->rtnl_link_ops = &ip6gre_link_ops; in ip6gre_init_net()
1590 err = register_netdev(ign->fb_tunnel_dev); in ip6gre_init_net()
1594 rcu_assign_pointer(ign->tunnels_wc[0], in ip6gre_init_net()
1595 netdev_priv(ign->fb_tunnel_dev)); in ip6gre_init_net()
1599 free_netdev(ign->fb_tunnel_dev); in ip6gre_init_net()
1985 struct ip6gre_net *ign; in ip6gre_newlink() local
1989 ign = net_generic(net, ip6gre_net_id); in ip6gre_newlink()
1992 if (rtnl_dereference(ign->collect_md_tun)) in ip6gre_newlink()
2002 ip6gre_tunnel_link_md(ign, nt); in ip6gre_newlink()
2015 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_changelink_common() local
2018 if (dev == ign->fb_tunnel_dev) in ip6gre_changelink_common()
2046 struct ip6gre_net *ign = net_generic(dev_net(dev), ip6gre_net_id); in ip6gre_changelink() local
2054 ip6gre_tunnel_unlink_md(ign, t); in ip6gre_changelink()
2055 ip6gre_tunnel_unlink(ign, t); in ip6gre_changelink()
2057 ip6gre_tunnel_link_md(ign, t); in ip6gre_changelink()
2058 ip6gre_tunnel_link(ign, t); in ip6gre_changelink()
2065 struct ip6gre_net *ign = net_generic(net, ip6gre_net_id); in ip6gre_dellink() local
2067 if (dev != ign->fb_tunnel_dev) in ip6gre_dellink()
2213 struct ip6gre_net *ign; in ip6erspan_newlink() local
2217 ign = net_generic(net, ip6gre_net_id); in ip6erspan_newlink()
2220 if (rtnl_dereference(ign->collect_md_tun_erspan)) in ip6erspan_newlink()
2230 ip6erspan_tunnel_link_md(ign, nt); in ip6erspan_newlink()
2254 struct ip6gre_net *ign = net_generic(dev_net(dev), ip6gre_net_id); in ip6erspan_changelink() local
2262 ip6gre_tunnel_unlink_md(ign, t); in ip6erspan_changelink()
2263 ip6gre_tunnel_unlink(ign, t); in ip6erspan_changelink()
2265 ip6erspan_tunnel_link_md(ign, t); in ip6erspan_changelink()
2266 ip6gre_tunnel_link(ign, t); in ip6erspan_changelink()