addrconf.c (753d179ad001b25425beb977d00f2531540e7d42) addrconf.c (38fbeeeeccdb38d0635398e8e344d245f6d8dc52)
1/*
2 * IPv6 Address [auto]configuration
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
8 *

--- 2308 unchanged lines hidden (view full) ---

2317 struct fib6_table *table;
2318 u32 tb_id = l3mdev_fib_table(dev) ? : RT6_TABLE_PREFIX;
2319
2320 table = fib6_get_table(dev_net(dev), tb_id);
2321 if (!table)
2322 return NULL;
2323
2324 read_lock_bh(&table->tb6_lock);
1/*
2 * IPv6 Address [auto]configuration
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
8 *

--- 2308 unchanged lines hidden (view full) ---

2317 struct fib6_table *table;
2318 u32 tb_id = l3mdev_fib_table(dev) ? : RT6_TABLE_PREFIX;
2319
2320 table = fib6_get_table(dev_net(dev), tb_id);
2321 if (!table)
2322 return NULL;
2323
2324 read_lock_bh(&table->tb6_lock);
2325 fn = fib6_locate(&table->tb6_root, pfx, plen, NULL, 0);
2325 fn = fib6_locate(&table->tb6_root, pfx, plen, NULL, 0, true);
2326 if (!fn)
2327 goto out;
2328
2329 noflags |= RTF_CACHE;
2330 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) {
2331 if (rt->dst.dev->ifindex != dev->ifindex)
2332 continue;
2333 if ((rt->rt6i_flags & flags) != flags)

--- 4311 unchanged lines hidden ---
2326 if (!fn)
2327 goto out;
2328
2329 noflags |= RTF_CACHE;
2330 for (rt = fn->leaf; rt; rt = rt->dst.rt6_next) {
2331 if (rt->dst.dev->ifindex != dev->ifindex)
2332 continue;
2333 if ((rt->rt6i_flags & flags) != flags)

--- 4311 unchanged lines hidden ---