Lines Matching refs:ort

928 static void ip6_rt_init_dst_reject(struct rt6_info *rt, struct fib6_info *ort)  in ip6_rt_init_dst_reject()  argument
930 rt->dst.error = ip6_rt_type_to_error(ort->fib6_type); in ip6_rt_init_dst_reject()
932 switch (ort->fib6_type) { in ip6_rt_init_dst_reject()
950 static void ip6_rt_init_dst(struct rt6_info *rt, struct fib6_info *ort) in ip6_rt_init_dst() argument
952 if (ort->fib6_flags & RTF_REJECT) { in ip6_rt_init_dst()
953 ip6_rt_init_dst_reject(rt, ort); in ip6_rt_init_dst()
960 if (ort->fib6_type == RTN_LOCAL || ort->fib6_type == RTN_ANYCAST) { in ip6_rt_init_dst()
962 } else if (ipv6_addr_type(&ort->fib6_dst.addr) & IPV6_ADDR_MULTICAST) { in ip6_rt_init_dst()
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()
989 static void ip6_rt_copy_init(struct rt6_info *rt, struct fib6_info *ort) in ip6_rt_copy_init() argument
991 struct net_device *dev = fib6_info_nh_dev(ort); in ip6_rt_copy_init()
993 ip6_rt_init_dst(rt, ort); in ip6_rt_copy_init()
995 rt->rt6i_dst = ort->fib6_dst; in ip6_rt_copy_init()
997 rt->rt6i_gateway = ort->fib6_nh.nh_gw; in ip6_rt_copy_init()
998 rt->rt6i_flags = ort->fib6_flags; in ip6_rt_copy_init()
999 rt6_set_from(rt, ort); in ip6_rt_copy_init()
1001 rt->rt6i_src = ort->fib6_src; in ip6_rt_copy_init()
1003 rt->rt6i_prefsrc = ort->fib6_prefsrc; in ip6_rt_copy_init()
1176 static struct rt6_info *ip6_rt_cache_alloc(struct fib6_info *ort, in ip6_rt_cache_alloc() argument
1187 if (!fib6_info_hold_safe(ort)) in ip6_rt_cache_alloc()
1190 dev = ip6_rt_get_dev_rcu(ort); in ip6_rt_cache_alloc()
1193 fib6_info_release(ort); in ip6_rt_cache_alloc()
1197 ip6_rt_copy_init(rt, ort); in ip6_rt_cache_alloc()
1203 if (!rt6_is_gw_or_nonexthop(ort)) { in ip6_rt_cache_alloc()
1204 if (ort->fib6_dst.plen != 128 && in ip6_rt_cache_alloc()
1205 ipv6_addr_equal(&ort->fib6_dst.addr, daddr)) in ip6_rt_cache_alloc()
1420 struct fib6_info *ort) in rt6_insert_exception() argument
1430 if (ort->exception_bucket_flushed) { in rt6_insert_exception()
1435 bucket = rcu_dereference_protected(ort->rt6i_exception_bucket, in rt6_insert_exception()
1444 rcu_assign_pointer(ort->rt6i_exception_bucket, bucket); in rt6_insert_exception()
1454 if (ort->fib6_src.plen) in rt6_insert_exception()
1461 nrt->rt6i_prefsrc = ort->fib6_prefsrc; in rt6_insert_exception()
1466 if (dst_metric_raw(&nrt->dst, RTAX_MTU) >= fib6_mtu(ort)) { in rt6_insert_exception()
1495 spin_lock_bh(&ort->fib6_table->tb6_lock); in rt6_insert_exception()
1496 fib6_update_sernum(net, ort); in rt6_insert_exception()
1497 spin_unlock_bh(&ort->fib6_table->tb6_lock); in rt6_insert_exception()
2132 struct rt6_info *rt, *ort = (struct rt6_info *) dst_orig; in ip6_blackhole_route() local
2147 dst_copy_metrics(new, &ort->dst); in ip6_blackhole_route()
2150 rt->rt6i_gateway = ort->rt6i_gateway; in ip6_blackhole_route()
2151 rt->rt6i_flags = ort->rt6i_flags & ~RTF_PCPU; in ip6_blackhole_route()
2153 memcpy(&rt->rt6i_dst, &ort->rt6i_dst, sizeof(struct rt6key)); in ip6_blackhole_route()
2155 memcpy(&rt->rt6i_src, &ort->rt6i_src, sizeof(struct rt6key)); in ip6_blackhole_route()