Lines Matching refs:dst
36 struct dst_entry *dst; in xfrm6_dst_lookup() local
47 dst = ip6_route_output(net, NULL, &fl6); in xfrm6_dst_lookup()
49 err = dst->error; in xfrm6_dst_lookup()
50 if (dst->error) { in xfrm6_dst_lookup()
51 dst_release(dst); in xfrm6_dst_lookup()
52 dst = ERR_PTR(err); in xfrm6_dst_lookup()
55 return dst; in xfrm6_dst_lookup()
62 struct dst_entry *dst; in xfrm6_get_saddr() local
65 dst = xfrm6_dst_lookup(net, 0, oif, NULL, daddr, mark); in xfrm6_get_saddr()
66 if (IS_ERR(dst)) in xfrm6_get_saddr()
69 dev = ip6_dst_idev(dst)->dev; in xfrm6_get_saddr()
71 dst_release(dst); in xfrm6_get_saddr()
80 static int xfrm6_init_path(struct xfrm_dst *path, struct dst_entry *dst, in xfrm6_init_path() argument
83 if (dst->ops->family == AF_INET6) { in xfrm6_init_path()
84 struct rt6_info *rt = (struct rt6_info *)dst; in xfrm6_init_path()
98 xdst->u.dst.dev = dev; in xfrm6_fill_dst()
230 static void xfrm6_update_pmtu(struct dst_entry *dst, struct sock *sk, in xfrm6_update_pmtu() argument
233 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; in xfrm6_update_pmtu()
239 static void xfrm6_redirect(struct dst_entry *dst, struct sock *sk, in xfrm6_redirect() argument
242 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; in xfrm6_redirect()
248 static void xfrm6_dst_destroy(struct dst_entry *dst) in xfrm6_dst_destroy() argument
250 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; in xfrm6_dst_destroy()
254 dst_destroy_metrics_generic(dst); in xfrm6_dst_destroy()
258 static void xfrm6_dst_ifdown(struct dst_entry *dst, struct net_device *dev, in xfrm6_dst_ifdown() argument
266 xdst = (struct xfrm_dst *)dst; in xfrm6_dst_ifdown()
276 xdst = (struct xfrm_dst *)xdst->u.dst.child; in xfrm6_dst_ifdown()
277 } while (xdst->u.dst.xfrm); in xfrm6_dst_ifdown()
282 xfrm_dst_ifdown(dst, dev); in xfrm6_dst_ifdown()