Lines Matching refs:dst
62 struct dst_entry *dst = skb_dst(skb); in ip6_finish_output2() local
63 struct net_device *dev = dst_dev(dst); in ip6_finish_output2()
64 struct inet6_dev *idev = ip6_dst_idev(dst); in ip6_finish_output2()
117 if (lwtunnel_xmit_redirect(dst->lwtstate)) { in ip6_finish_output2()
127 nexthop = rt6_nexthop(dst_rt6_info(dst), daddr); in ip6_finish_output2()
235 struct dst_entry *dst = skb_dst(skb); in ip6_output() local
236 struct net_device *dev = dst_dev(dst), *indev = skb->dev; in ip6_output()
237 struct inet6_dev *idev = ip6_dst_idev(dst); in ip6_output()
274 struct dst_entry *dst = skb_dst(skb); in ip6_xmit() local
275 struct net_device *dev = dst_dev(dst); in ip6_xmit()
276 struct inet6_dev *idev = ip6_dst_idev(dst); in ip6_xmit()
337 hlimit = ip6_dst_hoplimit(dst); in ip6_xmit()
353 mtu = dst_mtu(dst); in ip6_xmit()
504 struct dst_entry *dst = skb_dst(skb); in ip6_forward() local
507 struct net *net = dev_net(dst_dev(dst)); in ip6_forward()
596 dst = skb_dst(skb); in ip6_forward()
597 dev = dst_dev(dst); in ip6_forward()
613 rt = dst_rt6_info(dst); in ip6_forward()
642 __IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTFORWDATAGRAMS); in ip6_forward()
644 mtu = ip6_dst_mtu_maybe_forward(dst, true); in ip6_forward()
653 __IP6_INC_STATS(net, ip6_dst_idev(dst), in ip6_forward()
660 __IP6_INC_STATS(net, ip6_dst_idev(dst), in ip6_forward()
924 hroom = LL_RESERVED_SPACE(rt->dst.dev); in ip6_fragment()
972 IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), in ip6_fragment()
984 IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), in ip6_fragment()
992 IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), in ip6_fragment()
1012 ip6_frag_init(skb, hlen, mtu, rt->dst.dev->needed_tailroom, in ip6_fragment()
1013 LL_RESERVED_SPACE(rt->dst.dev), prevhdr, nexthdr, frag_id, in ip6_fragment()
1063 struct dst_entry *dst, in ip6_sk_dst_check() argument
1069 if (!dst) in ip6_sk_dst_check()
1072 if (dst->ops->family != AF_INET6) { in ip6_sk_dst_check()
1073 dst_release(dst); in ip6_sk_dst_check()
1077 rt = dst_rt6_info(dst); in ip6_sk_dst_check()
1099 (fl6->flowi6_oif && fl6->flowi6_oif != dst_dev(dst)->ifindex)) { in ip6_sk_dst_check()
1100 dst_release(dst); in ip6_sk_dst_check()
1101 dst = NULL; in ip6_sk_dst_check()
1105 return dst; in ip6_sk_dst_check()
1109 struct dst_entry **dst, struct flowi6 *fl6) in ip6_dst_lookup_tail() argument
1131 *dst = ip6_route_output(net, sk, fl6); in ip6_dst_lookup_tail()
1132 rt = (*dst)->error ? NULL : dst_rt6_info(*dst); in ip6_dst_lookup_tail()
1149 if ((*dst)->error) { in ip6_dst_lookup_tail()
1150 dst_release(*dst); in ip6_dst_lookup_tail()
1151 *dst = NULL; in ip6_dst_lookup_tail()
1158 if (!*dst) in ip6_dst_lookup_tail()
1159 *dst = ip6_route_output_flags(net, sk, fl6, flags); in ip6_dst_lookup_tail()
1161 err = (*dst)->error; in ip6_dst_lookup_tail()
1174 rt = dst_rt6_info(*dst); in ip6_dst_lookup_tail()
1176 n = __ipv6_neigh_lookup_noref(rt->dst.dev, in ip6_dst_lookup_tail()
1187 (*dst)->dev, 1); in ip6_dst_lookup_tail()
1198 dst_release(*dst); in ip6_dst_lookup_tail()
1201 *dst = ip6_route_output(net, sk, &fl_gw6); in ip6_dst_lookup_tail()
1202 err = (*dst)->error; in ip6_dst_lookup_tail()
1217 dst_release(*dst); in ip6_dst_lookup_tail()
1218 *dst = NULL; in ip6_dst_lookup_tail()
1236 int ip6_dst_lookup(struct net *net, struct sock *sk, struct dst_entry **dst, in ip6_dst_lookup() argument
1239 *dst = NULL; in ip6_dst_lookup()
1240 return ip6_dst_lookup_tail(net, sk, dst, fl6); in ip6_dst_lookup()
1259 struct dst_entry *dst = NULL; in ip6_dst_lookup_flow() local
1262 err = ip6_dst_lookup_tail(net, sk, &dst, fl6); in ip6_dst_lookup_flow()
1268 return xfrm_lookup_route(net, dst, flowi6_to_flowi(fl6), sk, 0); in ip6_dst_lookup_flow()
1294 struct dst_entry *dst = sk_dst_check(sk, inet6_sk(sk)->dst_cookie); in ip6_sk_dst_lookup_flow() local
1296 dst = ip6_sk_dst_check(sk, dst, fl6); in ip6_sk_dst_lookup_flow()
1297 if (dst) in ip6_sk_dst_lookup_flow()
1298 return dst; in ip6_sk_dst_lookup_flow()
1300 dst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_dst); in ip6_sk_dst_lookup_flow()
1301 if (connected && !IS_ERR(dst)) in ip6_sk_dst_lookup_flow()
1302 ip6_sk_dst_store_flow(sk, dst_clone(dst), fl6); in ip6_sk_dst_lookup_flow()
1304 return dst; in ip6_sk_dst_lookup_flow()
1327 if (!(rt->dst.flags & DST_XFRM_TUNNEL)) { in ip6_append_data_mtu()
1330 *mtu = orig_mtu - rt->dst.header_len; in ip6_append_data_mtu()
1355 cork->base.dst = &rt->dst; in ip6_setup_cork()
1393 if (rt->dst.flags & DST_XFRM_TUNNEL) in ip6_setup_cork()
1395 READ_ONCE(rt->dst.dev->mtu) : dst_mtu(&rt->dst); in ip6_setup_cork()
1398 READ_ONCE(rt->dst.dev->mtu) : dst_mtu(xfrm_dst_path(&rt->dst)); in ip6_setup_cork()
1443 struct rt6_info *rt = dst_rt6_info(cork->dst); in __ip6_append_data()
1453 dst_exthdrlen = rt->dst.header_len - rt->rt6i_nfheader_len; in __ip6_append_data()
1460 hh_len = LL_RESERVED_SPACE(rt->dst.dev); in __ip6_append_data()
1510 rt->dst.dev->features & (NETIF_F_IPV6_CSUM | NETIF_F_HW_CSUM)) in __ip6_append_data()
1523 if ((rt->dst.dev->features & NETIF_F_SG) && in __ip6_append_data()
1535 if (rt->dst.dev->features & NETIF_F_SG && in __ip6_append_data()
1547 if (rt->dst.dev->features & NETIF_F_SG && in __ip6_append_data()
1619 datalen = maxfraglen - fragheaderlen - rt->dst.trailer_len; in __ip6_append_data()
1625 alloc_extra += rt->dst.trailer_len; in __ip6_append_data()
1634 !(rt->dst.dev->features&NETIF_F_SG)) in __ip6_append_data()
1638 !(rt->dst.dev->features & NETIF_F_SG))) in __ip6_append_data()
1651 datalen += rt->dst.trailer_len; in __ip6_append_data()
1747 if (!(rt->dst.dev->features&NETIF_F_SG) && in __ip6_append_data()
1846 dst_hold(&rt->dst); in ip6_append_data()
1868 struct dst_entry *dst = cork->base.dst; in ip6_cork_steal_dst() local
1870 cork->base.dst = NULL; in ip6_cork_steal_dst()
1871 skb_dst_set(skb, dst); in ip6_cork_steal_dst()
1888 if (cork->base.dst) { in ip6_cork_release()
1889 dst_release(cork->base.dst); in ip6_cork_release()
1890 cork->base.dst = NULL; in ip6_cork_release()
1905 struct rt6_info *rt = dst_rt6_info(cork->base.dst); in __ip6_make_skb()
2046 dst_release(&rt->dst); in ip6_make_skb()