Lines Matching refs:xdst
70 static int xfrm6_fill_dst(struct xfrm_dst *xdst, struct net_device *dev,
73 struct rt6_info *rt = (struct rt6_info *)xdst->route;
75 xdst->u.dst.dev = dev;
76 netdev_hold(dev, &xdst->u.dst.dev_tracker, GFP_ATOMIC);
78 xdst->u.rt6.rt6i_idev = in6_dev_get(dev);
79 if (!xdst->u.rt6.rt6i_idev) {
80 netdev_put(dev, &xdst->u.dst.dev_tracker);
86 xdst->u.rt6.rt6i_flags = rt->rt6i_flags & (RTF_ANYCAST |
88 xdst->route_cookie = rt6_get_cookie(rt);
89 xdst->u.rt6.rt6i_gateway = rt->rt6i_gateway;
90 xdst->u.rt6.rt6i_dst = rt->rt6i_dst;
91 xdst->u.rt6.rt6i_src = rt->rt6i_src;
92 rt6_uncached_list_add(&xdst->u.rt6);
101 struct xfrm_dst *xdst = (struct xfrm_dst *)dst;
102 struct dst_entry *path = xdst->route;
110 struct xfrm_dst *xdst = (struct xfrm_dst *)dst;
111 struct dst_entry *path = xdst->route;
118 struct xfrm_dst *xdst = (struct xfrm_dst *)dst;
121 rt6_uncached_list_del(&xdst->u.rt6);
122 if (likely(xdst->u.rt6.rt6i_idev))
123 in6_dev_put(xdst->u.rt6.rt6i_idev);
124 xfrm_dst_destroy(xdst);
129 struct xfrm_dst *xdst;
131 xdst = (struct xfrm_dst *)dst;
132 if (xdst->u.rt6.rt6i_idev->dev == dev) {
137 in6_dev_put(xdst->u.rt6.rt6i_idev);
138 xdst->u.rt6.rt6i_idev = loopback_idev;
140 xdst = (struct xfrm_dst *)xfrm_dst_child(&xdst->u.dst);
141 } while (xdst->u.dst.xfrm);