Lines Matching refs:dst
204 struct dst_entry *dst; in icmpv6_xrlim_allow() local
215 dst = ip6_route_output(net, sk, fl6); in icmpv6_xrlim_allow()
216 if (dst->error) { in icmpv6_xrlim_allow()
217 IP6_INC_STATS(net, ip6_dst_idev(dst), in icmpv6_xrlim_allow()
219 } else if (dst->dev && (dst->dev->flags&IFF_LOOPBACK)) { in icmpv6_xrlim_allow()
222 struct rt6_info *rt = (struct rt6_info *)dst; in icmpv6_xrlim_allow()
235 dst_release(dst); in icmpv6_xrlim_allow()
243 struct dst_entry *dst; in icmpv6_rt_has_prefsrc() local
246 dst = ip6_route_output(net, sk, fl6); in icmpv6_rt_has_prefsrc()
247 if (!dst->error) { in icmpv6_rt_has_prefsrc()
248 struct rt6_info *rt = (struct rt6_info *)dst; in icmpv6_rt_has_prefsrc()
254 dst_release(dst); in icmpv6_rt_has_prefsrc()
362 struct dst_entry *dst, *dst2; in icmpv6_route_lookup() local
366 err = ip6_dst_lookup(net, sk, &dst, fl6); in icmpv6_route_lookup()
374 if (ipv6_anycast_destination(dst, &fl6->daddr)) { in icmpv6_route_lookup()
376 dst_release(dst); in icmpv6_route_lookup()
381 dst2 = dst; in icmpv6_route_lookup()
383 dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), sk, 0); in icmpv6_route_lookup()
384 if (!IS_ERR(dst)) { in icmpv6_route_lookup()
385 if (dst != dst2) in icmpv6_route_lookup()
386 return dst; in icmpv6_route_lookup()
388 if (PTR_ERR(dst) == -EPERM) in icmpv6_route_lookup()
389 dst = NULL; in icmpv6_route_lookup()
391 return dst; in icmpv6_route_lookup()
404 dst_release(dst); in icmpv6_route_lookup()
405 dst = dst2; in icmpv6_route_lookup()
409 dst_release(dst); in icmpv6_route_lookup()
416 if (dst) in icmpv6_route_lookup()
417 return dst; in icmpv6_route_lookup()
461 struct dst_entry *dst; in icmp6_send() local
601 dst = icmpv6_route_lookup(net, skb, sk, &fl6); in icmp6_send()
602 if (IS_ERR(dst)) in icmp6_send()
605 ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); in icmp6_send()
625 &ipc6, &fl6, (struct rt6_info *)dst, in icmp6_send()
635 dst_release(dst); in icmp6_send()
684 if (rt && rt->dst.dev) in ip6_err_gen_icmpv6_unreach()
685 skb2->dev = rt->dst.dev; in ip6_err_gen_icmpv6_unreach()
728 struct dst_entry *dst; in icmpv6_echo_reply() local
781 if (ip6_dst_lookup(net, sk, &dst, &fl6)) in icmpv6_echo_reply()
783 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), sk, 0); in icmpv6_echo_reply()
784 if (IS_ERR(dst)) in icmpv6_echo_reply()
799 ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); in icmpv6_echo_reply()
810 (struct rt6_info *)dst, MSG_DONTWAIT)) { in icmpv6_echo_reply()
818 dst_release(dst); in icmpv6_echo_reply()