Lines Matching refs:fib6_nh

445 	if (fl6->mp_hash <= atomic_read(&match->fib6_nh.nh_upper_bound))  in fib6_multipath_select()
452 nh_upper_bound = atomic_read(&sibling->fib6_nh.nh_upper_bound); in fib6_multipath_select()
477 !(rt->fib6_nh.nh_flags & RTNH_F_DEAD)) in rt6_device_match()
481 const struct net_device *dev = sprt->fib6_nh.nh_dev; in rt6_device_match()
483 if (sprt->fib6_nh.nh_flags & RTNH_F_DEAD) in rt6_device_match()
499 return rt->fib6_nh.nh_flags & RTNH_F_DEAD ? net->ipv6.fib6_null_entry : rt; in rt6_device_match()
540 nh_gw = &rt->fib6_nh.nh_gw; in rt6_probe()
541 dev = rt->fib6_nh.nh_dev; in rt6_probe()
586 const struct net_device *dev = rt->fib6_nh.nh_dev; in rt6_check_dev()
603 neigh = __ipv6_neigh_lookup_noref(rt->fib6_nh.nh_dev, in rt6_check_neigh()
604 &rt->fib6_nh.nh_gw); in rt6_check_neigh()
665 if (rt->fib6_nh.nh_flags & RTNH_F_DEAD) in find_match()
669 rt->fib6_nh.nh_flags & RTNH_F_LINKDOWN && in find_match()
874 struct net_device *dev = rt->fib6_nh.nh_dev; in ip6_rt_get_dev_rcu()
968 if (ort->fib6_nh.nh_lwtstate) { in ip6_rt_init_dst()
969 rt->dst.lwtstate = lwtstate_get(ort->fib6_nh.nh_lwtstate); in ip6_rt_init_dst()
997 rt->rt6i_gateway = ort->fib6_nh.nh_gw; in ip6_rt_copy_init()
1045 struct net_device *dev = rt->fib6_nh.nh_dev; in ip6_create_rt_rcu()
1416 return mtu - lwtunnel_headroom(rt->fib6_nh.nh_lwtstate, mtu); in fib6_mtu()
2460 if (rt->fib6_nh.nh_flags & RTNH_F_DEAD) in __ip6_route_redirect()
2468 if (fl6->flowi6_oif != rt->fib6_nh.nh_dev->ifindex) in __ip6_route_redirect()
2475 if (!ipv6_addr_equal(&rdfl->gateway, &rt->fib6_nh.nh_gw)) { in __ip6_route_redirect()
3057 rt->fib6_nh.nh_lwtstate = lwtstate_get(lwtstate); in ip6_route_info_create()
3071 rt->fib6_nh.nh_weight = 1; in ip6_route_info_create()
3105 rt->fib6_nh.nh_gw = cfg->fc_gateway; in ip6_route_info_create()
3140 rt->fib6_nh.nh_flags |= RTNH_F_LINKDOWN; in ip6_route_info_create()
3141 rt->fib6_nh.nh_flags |= (cfg->fc_flags & RTNH_F_ONLINK); in ip6_route_info_create()
3142 rt->fib6_nh.nh_dev = dev; in ip6_route_info_create()
3312 (!rt->fib6_nh.nh_dev || in ip6_route_del()
3313 rt->fib6_nh.nh_dev->ifindex != cfg->fc_ifindex)) in ip6_route_del()
3316 !ipv6_addr_equal(&cfg->fc_gateway, &rt->fib6_nh.nh_gw)) in ip6_route_del()
3487 if (rt->fib6_nh.nh_dev->ifindex != ifindex) in rt6_get_route_info()
3491 if (!ipv6_addr_equal(&rt->fib6_nh.nh_gw, gwaddr)) in rt6_get_route_info()
3549 if (dev == rt->fib6_nh.nh_dev && in rt6_get_dflt_router()
3551 ipv6_addr_equal(&rt->fib6_nh.nh_gw, addr)) in rt6_get_dflt_router()
3773 f6i->fib6_nh.nh_gw = *addr; in addrconf_f6i_alloc()
3775 f6i->fib6_nh.nh_dev = dev; in addrconf_f6i_alloc()
3797 if (((void *)rt->fib6_nh.nh_dev == dev || !dev) && in fib6_remove_prefsrc()
3829 ipv6_addr_equal(gateway, &rt->fib6_nh.nh_gw)) { in fib6_clean_tohost()
3877 if (rt->fib6_nh.nh_flags & RTNH_F_DEAD || in rt6_is_dead()
3878 (rt->fib6_nh.nh_flags & RTNH_F_LINKDOWN && in rt6_is_dead()
3891 total += rt->fib6_nh.nh_weight; in rt6_multipath_total_weight()
3895 total += iter->fib6_nh.nh_weight; in rt6_multipath_total_weight()
3906 *weight += rt->fib6_nh.nh_weight; in rt6_upper_bound_set()
3910 atomic_set(&rt->fib6_nh.nh_upper_bound, upper_bound); in rt6_upper_bound_set()
3953 if (rt != net->ipv6.fib6_null_entry && rt->fib6_nh.nh_dev == arg->dev) { in fib6_ifup()
3954 rt->fib6_nh.nh_flags &= ~arg->nh_flags; in fib6_ifup()
3982 if (rt->fib6_nh.nh_dev == dev) in rt6_multipath_uses_dev()
3985 if (iter->fib6_nh.nh_dev == dev) in rt6_multipath_uses_dev()
4006 if (rt->fib6_nh.nh_dev == down_dev || in rt6_multipath_dead_count()
4007 rt->fib6_nh.nh_flags & RTNH_F_DEAD) in rt6_multipath_dead_count()
4010 if (iter->fib6_nh.nh_dev == down_dev || in rt6_multipath_dead_count()
4011 iter->fib6_nh.nh_flags & RTNH_F_DEAD) in rt6_multipath_dead_count()
4023 if (rt->fib6_nh.nh_dev == dev) in rt6_multipath_nh_flags_set()
4024 rt->fib6_nh.nh_flags |= nh_flags; in rt6_multipath_nh_flags_set()
4026 if (iter->fib6_nh.nh_dev == dev) in rt6_multipath_nh_flags_set()
4027 iter->fib6_nh.nh_flags |= nh_flags; in rt6_multipath_nh_flags_set()
4042 return rt->fib6_nh.nh_dev == dev ? -1 : 0; in fib6_ifdown()
4047 return rt->fib6_nh.nh_dev == dev ? -1 : 0; in fib6_ifdown()
4063 if (rt->fib6_nh.nh_dev != dev || in fib6_ifdown()
4066 rt->fib6_nh.nh_flags |= RTNH_F_LINKDOWN; in fib6_ifdown()
4118 if (rt->fib6_nh.nh_dev == arg->dev && in rt6_mtu_change_route()
4415 rt->fib6_nh.nh_weight = rtnh->rtnh_hops + 1; in ip6_route_multipath_add()
4578 + lwtunnel_get_encap_size(rt->fib6_nh.nh_lwtstate); in rt6_nlmsg_size()
4596 + lwtunnel_get_encap_size(rt->fib6_nh.nh_lwtstate) in rt6_nlmsg_size()
4603 if (rt->fib6_nh.nh_flags & RTNH_F_DEAD) in rt6_nexthop_info()
4606 if (rt->fib6_nh.nh_flags & RTNH_F_LINKDOWN) { in rt6_nexthop_info()
4616 if (nla_put_in6_addr(skb, RTA_GATEWAY, &rt->fib6_nh.nh_gw) < 0) in rt6_nexthop_info()
4620 *flags |= (rt->fib6_nh.nh_flags & RTNH_F_ONLINK); in rt6_nexthop_info()
4621 if (rt->fib6_nh.nh_flags & RTNH_F_OFFLOAD) in rt6_nexthop_info()
4625 if (!skip_oif && rt->fib6_nh.nh_dev && in rt6_nexthop_info()
4626 nla_put_u32(skb, RTA_OIF, rt->fib6_nh.nh_dev->ifindex)) in rt6_nexthop_info()
4629 if (rt->fib6_nh.nh_lwtstate && in rt6_nexthop_info()
4630 lwtunnel_fill_encap(skb, rt->fib6_nh.nh_lwtstate) < 0) in rt6_nexthop_info()
4642 const struct net_device *dev = rt->fib6_nh.nh_dev; in rt6_add_nexthop()
4650 rtnh->rtnh_hops = rt->fib6_nh.nh_weight - 1; in rt6_add_nexthop()
5024 net->ipv6.fib6_null_entry->fib6_nh.nh_dev = dev; in ip6_route_dev_notify()
5341 init_net.ipv6.fib6_null_entry->fib6_nh.nh_dev = init_net.loopback_dev; in ip6_route_init_special_entries()