Lines Matching refs:xdst
77 static int xfrm6_fill_dst(struct xfrm_dst *xdst, struct net_device *dev, in xfrm6_fill_dst() argument
80 struct rt6_info *rt = dst_rt6_info(xdst->route); in xfrm6_fill_dst()
82 xdst->u.dst.dev = dev; in xfrm6_fill_dst()
83 netdev_hold(dev, &xdst->u.dst.dev_tracker, GFP_ATOMIC); in xfrm6_fill_dst()
85 xdst->u.rt6.rt6i_idev = in6_dev_get(dev); in xfrm6_fill_dst()
86 if (!xdst->u.rt6.rt6i_idev) { in xfrm6_fill_dst()
87 netdev_put(dev, &xdst->u.dst.dev_tracker); in xfrm6_fill_dst()
93 xdst->u.rt6.rt6i_flags = rt->rt6i_flags & (RTF_ANYCAST | in xfrm6_fill_dst()
95 xdst->route_cookie = rt6_get_cookie(rt); in xfrm6_fill_dst()
96 xdst->u.rt6.rt6i_gateway = rt->rt6i_gateway; in xfrm6_fill_dst()
97 xdst->u.rt6.rt6i_dst = rt->rt6i_dst; in xfrm6_fill_dst()
98 xdst->u.rt6.rt6i_src = rt->rt6i_src; in xfrm6_fill_dst()
99 rt6_uncached_list_add(&xdst->u.rt6); in xfrm6_fill_dst()
108 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; in xfrm6_update_pmtu() local
109 struct dst_entry *path = xdst->route; in xfrm6_update_pmtu()
117 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; in xfrm6_redirect() local
118 struct dst_entry *path = xdst->route; in xfrm6_redirect()
125 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; in xfrm6_dst_destroy() local
128 rt6_uncached_list_del(&xdst->u.rt6); in xfrm6_dst_destroy()
129 if (likely(xdst->u.rt6.rt6i_idev)) in xfrm6_dst_destroy()
130 in6_dev_put(xdst->u.rt6.rt6i_idev); in xfrm6_dst_destroy()
131 xfrm_dst_destroy(xdst); in xfrm6_dst_destroy()
136 struct xfrm_dst *xdst; in xfrm6_dst_ifdown() local
138 xdst = (struct xfrm_dst *)dst; in xfrm6_dst_ifdown()
139 if (xdst->u.rt6.rt6i_idev->dev == dev) { in xfrm6_dst_ifdown()
144 in6_dev_put(xdst->u.rt6.rt6i_idev); in xfrm6_dst_ifdown()
145 xdst->u.rt6.rt6i_idev = loopback_idev; in xfrm6_dst_ifdown()
147 xdst = (struct xfrm_dst *)xfrm_dst_child(&xdst->u.dst); in xfrm6_dst_ifdown()
148 } while (xdst->u.dst.xfrm); in xfrm6_dst_ifdown()