Lines Matching refs:ipv6
29 #include <net/ipv6.h>
74 list_for_each_entry(w, &(net)->ipv6.fib6_walkers, lh)
78 write_lock_bh(&net->ipv6.fib6_walker_lock);
79 list_add(&w->lh, &net->ipv6.fib6_walkers);
80 write_unlock_bh(&net->ipv6.fib6_walker_lock);
85 write_lock_bh(&net->ipv6.fib6_walker_lock);
87 write_unlock_bh(&net->ipv6.fib6_walker_lock);
95 old = atomic_read(&net->ipv6.fib6_sernum);
97 } while (atomic_cmpxchg(&net->ipv6.fib6_sernum,
187 net->ipv6.rt6_stats->fib_nodes++;
195 net->ipv6.rt6_stats->fib_nodes--;
208 net->ipv6.rt6_stats->fib_nodes--;
232 hlist_add_head_rcu(&tb->tb6_hlist, &net->ipv6.fib_table_hash[h]);
245 net->ipv6.fib6_null_entry);
281 head = &net->ipv6.fib_table_hash[h];
296 fib6_link_table(net, net->ipv6.fib6_main_tbl);
297 fib6_link_table(net, net->ipv6.fib6_local_tbl);
308 return net->ipv6.fib6_main_tbl;
318 net, net->ipv6.fib6_main_tbl, fl6, skb, flags);
321 rt = net->ipv6.ip6_null_entry;
333 return fib6_table_lookup(net, net->ipv6.fib6_main_tbl, oif, fl6,
339 fib6_link_table(net, net->ipv6.fib6_main_tbl);
350 struct hlist_head *head = &net->ipv6.fib_table_hash[h];
441 if (!rt || rt == arg->net->ipv6.fib6_null_entry)
497 struct hlist_head *head = &net->ipv6.fib_table_hash[h];
691 head = &net->ipv6.fib_table_hash[h];
793 net->ipv6.fib6_null_entry) {
1255 info->nl_net->ipv6.rt6_stats->fib_rt_entries++;
1258 info->nl_net->ipv6.rt6_stats->fib_route_nodes++;
1287 info->nl_net->ipv6.rt6_stats->fib_route_nodes++;
1313 info->nl_net->ipv6.rt6_stats->fib_rt_entries--;
1329 if (!timer_pending(&net->ipv6.ip6_fib_timer) &&
1331 mod_timer(&net->ipv6.ip6_fib_timer,
1332 jiffies + net->ipv6.sysctl.ip6_rt_gc_interval);
1337 if (!timer_pending(&net->ipv6.ip6_fib_timer))
1338 mod_timer(&net->ipv6.ip6_fib_timer,
1339 jiffies + net->ipv6.sysctl.ip6_rt_gc_interval);
1429 fib6_info_hold(info->nl_net->ipv6.fib6_null_entry);
1431 info->nl_net->ipv6.fib6_null_entry);
1470 info->nl_net->ipv6.fib6_null_entry);
1509 info->nl_net->ipv6.fib6_null_entry;
1751 return net->ipv6.fib6_null_entry;
1788 rcu_assign_pointer(fn->leaf, net->ipv6.fib6_null_entry);
1837 new_fn_leaf = net->ipv6.fib6_null_entry;
1868 read_lock(&net->ipv6.fib6_walker_lock);
1889 read_unlock(&net->ipv6.fib6_walker_lock);
1930 net->ipv6.rt6_stats->fib_rt_entries--;
1931 net->ipv6.rt6_stats->fib_discarded_routes++;
1958 read_lock(&net->ipv6.fib6_walker_lock);
1968 read_unlock(&net->ipv6.fib6_walker_lock);
1977 net->ipv6.rt6_stats->fib_route_nodes--;
2006 if (rt == net->ipv6.fib6_null_entry)
2252 head = &net->ipv6.fib_table_hash[h];
2320 spin_lock_bh(&net->ipv6.fib6_gc_lock);
2321 } else if (!spin_trylock_bh(&net->ipv6.fib6_gc_lock)) {
2322 mod_timer(&net->ipv6.ip6_fib_timer, jiffies + HZ);
2326 net->ipv6.sysctl.ip6_rt_gc_interval;
2331 net->ipv6.ip6_rt_last_gc = now;
2334 mod_timer(&net->ipv6.ip6_fib_timer,
2336 + net->ipv6.sysctl.ip6_rt_gc_interval));
2338 del_timer(&net->ipv6.ip6_fib_timer);
2339 spin_unlock_bh(&net->ipv6.fib6_gc_lock);
2344 struct net *arg = from_timer(arg, t, ipv6.ip6_fib_timer);
2358 spin_lock_init(&net->ipv6.fib6_gc_lock);
2359 rwlock_init(&net->ipv6.fib6_walker_lock);
2360 INIT_LIST_HEAD(&net->ipv6.fib6_walkers);
2361 timer_setup(&net->ipv6.ip6_fib_timer, fib6_gc_timer_cb, 0);
2363 net->ipv6.rt6_stats = kzalloc(sizeof(*net->ipv6.rt6_stats), GFP_KERNEL);
2364 if (!net->ipv6.rt6_stats)
2370 net->ipv6.fib_table_hash = kzalloc(size, GFP_KERNEL);
2371 if (!net->ipv6.fib_table_hash)
2374 net->ipv6.fib6_main_tbl = kzalloc(sizeof(*net->ipv6.fib6_main_tbl),
2376 if (!net->ipv6.fib6_main_tbl)
2379 net->ipv6.fib6_main_tbl->tb6_id = RT6_TABLE_MAIN;
2380 rcu_assign_pointer(net->ipv6.fib6_main_tbl->tb6_root.leaf,
2381 net->ipv6.fib6_null_entry);
2382 net->ipv6.fib6_main_tbl->tb6_root.fn_flags =
2384 inet_peer_base_init(&net->ipv6.fib6_main_tbl->tb6_peers);
2387 net->ipv6.fib6_local_tbl = kzalloc(sizeof(*net->ipv6.fib6_local_tbl),
2389 if (!net->ipv6.fib6_local_tbl)
2391 net->ipv6.fib6_local_tbl->tb6_id = RT6_TABLE_LOCAL;
2392 rcu_assign_pointer(net->ipv6.fib6_local_tbl->tb6_root.leaf,
2393 net->ipv6.fib6_null_entry);
2394 net->ipv6.fib6_local_tbl->tb6_root.fn_flags =
2396 inet_peer_base_init(&net->ipv6.fib6_local_tbl->tb6_peers);
2404 kfree(net->ipv6.fib6_main_tbl);
2407 kfree(net->ipv6.fib_table_hash);
2409 kfree(net->ipv6.rt6_stats);
2419 del_timer_sync(&net->ipv6.ip6_fib_timer);
2422 struct hlist_head *head = &net->ipv6.fib_table_hash[i];
2432 kfree(net->ipv6.fib_table_hash);
2433 kfree(net->ipv6.rt6_stats);
2562 hlist_first_rcu(&net->ipv6.fib_table_hash[h++]));