Lines Matching refs:fl6
248 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, in ip6_xmit() argument
253 struct in6_addr *first_hop = &fl6->daddr; in ip6_xmit()
261 u8 proto = fl6->flowi6_proto; in ip6_xmit()
286 &fl6->saddr); in ip6_xmit()
315 ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, in ip6_xmit()
316 ip6_autoflowlabel(net, np), fl6)); in ip6_xmit()
322 hdr->saddr = fl6->saddr; in ip6_xmit()
352 ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); in ip6_xmit()
1030 const struct flowi6 *fl6) in ip6_sk_dst_check() argument
1061 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || in ip6_sk_dst_check()
1063 ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || in ip6_sk_dst_check()
1065 (fl6->flowi6_oif && fl6->flowi6_oif != dst->dev->ifindex)) { in ip6_sk_dst_check()
1075 struct dst_entry **dst, struct flowi6 *fl6) in ip6_dst_lookup_tail() argument
1093 if (ipv6_addr_any(&fl6->saddr)) { in ip6_dst_lookup_tail()
1097 *dst = ip6_route_output(net, sk, fl6); in ip6_dst_lookup_tail()
1102 err = ip6_route_get_saddr(net, from, &fl6->daddr, in ip6_dst_lookup_tail()
1104 &fl6->saddr); in ip6_dst_lookup_tail()
1119 if (fl6->flowi6_oif) in ip6_dst_lookup_tail()
1124 *dst = ip6_route_output_flags(net, sk, fl6, flags); in ip6_dst_lookup_tail()
1142 rt6_nexthop(rt, &fl6->daddr)); in ip6_dst_lookup_tail()
1151 ifp = ipv6_get_ifaddr(net, &fl6->saddr, in ip6_dst_lookup_tail()
1164 memcpy(&fl_gw6, fl6, sizeof(struct flowi6)); in ip6_dst_lookup_tail()
1173 if (ipv6_addr_v4mapped(&fl6->saddr) && in ip6_dst_lookup_tail()
1174 !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr))) { in ip6_dst_lookup_tail()
1202 struct flowi6 *fl6) in ip6_dst_lookup() argument
1205 return ip6_dst_lookup_tail(net, sk, dst, fl6); in ip6_dst_lookup()
1221 struct dst_entry *ip6_dst_lookup_flow(struct net *net, const struct sock *sk, struct flowi6 *fl6, in ip6_dst_lookup_flow() argument
1227 err = ip6_dst_lookup_tail(net, sk, &dst, fl6); in ip6_dst_lookup_flow()
1231 fl6->daddr = *final_dst; in ip6_dst_lookup_flow()
1233 return xfrm_lookup_route(net, dst, flowi6_to_flowi(fl6), sk, 0); in ip6_dst_lookup_flow()
1255 struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, in ip6_sk_dst_lookup_flow() argument
1261 dst = ip6_sk_dst_check(sk, dst, fl6); in ip6_sk_dst_lookup_flow()
1265 dst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_dst); in ip6_sk_dst_lookup_flow()
1267 ip6_sk_dst_store_flow(sk, dst_clone(dst), fl6); in ip6_sk_dst_lookup_flow()
1302 struct flowi6 fl6; in ip6_dst_lookup_tunnel() local
1313 memset(&fl6, 0, sizeof(fl6)); in ip6_dst_lookup_tunnel()
1314 fl6.flowi6_mark = skb->mark; in ip6_dst_lookup_tunnel()
1315 fl6.flowi6_proto = protocol; in ip6_dst_lookup_tunnel()
1316 fl6.daddr = info->key.u.ipv6.dst; in ip6_dst_lookup_tunnel()
1317 fl6.saddr = info->key.u.ipv6.src; in ip6_dst_lookup_tunnel()
1319 fl6.flowlabel = ip6_make_flowinfo(prio, info->key.label); in ip6_dst_lookup_tunnel()
1321 dst = ipv6_stub->ipv6_dst_lookup_flow(net, sock->sk, &fl6, in ip6_dst_lookup_tunnel()
1324 netdev_dbg(dev, "no route to %pI6\n", &fl6.daddr); in ip6_dst_lookup_tunnel()
1328 netdev_dbg(dev, "circular route to %pI6\n", &fl6.daddr); in ip6_dst_lookup_tunnel()
1334 dst_cache_set_ip6(dst_cache, dst, &fl6.saddr); in ip6_dst_lookup_tunnel()
1336 *saddr = fl6.saddr; in ip6_dst_lookup_tunnel()
1462 struct flowi6 *fl6 = &cork_full->fl.u.ip6; in __ip6_append_data() local
1522 ipv6_local_rxpmtu(sk, fl6, mtu - headersize + in __ip6_append_data()
1535 ipv6_local_error(sk, EMSGSIZE, fl6, pmtu); in __ip6_append_data()
1826 struct ipcm6_cookie *ipc6, struct flowi6 *fl6, in ip6_append_data() argument
1846 inet->cork.fl.u.ip6 = *fl6; in ip6_append_data()
1903 struct flowi6 *fl6 = &cork->fl.u.ip6; in __ip6_make_skb() local
1904 unsigned char proto = fl6->flowi6_proto; in __ip6_make_skb()
1929 final_dst = &fl6->daddr; in __ip6_make_skb()
1933 ipv6_push_nfrag_opts(skb, opt, &proto, &final_dst, &fl6->saddr); in __ip6_make_skb()
1940 ip6_make_flowlabel(net, skb, fl6->flowlabel, in __ip6_make_skb()
1941 ip6_autoflowlabel(net, np), fl6)); in __ip6_make_skb()
1944 hdr->saddr = fl6->saddr; in __ip6_make_skb()