Lines Matching refs:fl6
1222 static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6, in udp_v6_send_skb() argument
1238 uh->source = fl6->fl6_sport; in udp_v6_send_skb()
1239 uh->dest = fl6->fl6_dport; in udp_v6_send_skb()
1282 udp6_hwcsum_outgoing(sk, skb, &fl6->saddr, &fl6->daddr, len); in udp_v6_send_skb()
1288 uh->check = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in udp_v6_send_skb()
1289 len, fl6->flowi6_proto, csum); in udp_v6_send_skb()
1341 struct flowi6 *fl6 = &cork.fl.u.ip6; in udpv6_sendmsg() local
1433 memset(fl6, 0, sizeof(*fl6)); in udpv6_sendmsg()
1439 fl6->fl6_dport = sin6->sin6_port; in udpv6_sendmsg()
1443 fl6->flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in udpv6_sendmsg()
1444 if (fl6->flowlabel & IPV6_FLOWLABEL_MASK) { in udpv6_sendmsg()
1445 flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); in udpv6_sendmsg()
1462 fl6->flowi6_oif = sin6->sin6_scope_id; in udpv6_sendmsg()
1467 fl6->fl6_dport = inet->inet_dport; in udpv6_sendmsg()
1469 fl6->flowlabel = np->flow_label; in udpv6_sendmsg()
1473 if (!fl6->flowi6_oif) in udpv6_sendmsg()
1474 fl6->flowi6_oif = READ_ONCE(sk->sk_bound_dev_if); in udpv6_sendmsg()
1476 if (!fl6->flowi6_oif) in udpv6_sendmsg()
1477 fl6->flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; in udpv6_sendmsg()
1479 fl6->flowi6_uid = sk->sk_uid; in udpv6_sendmsg()
1489 err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, fl6, in udpv6_sendmsg()
1497 if ((fl6->flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { in udpv6_sendmsg()
1498 flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); in udpv6_sendmsg()
1514 fl6->flowi6_proto = sk->sk_protocol; in udpv6_sendmsg()
1515 fl6->flowi6_mark = ipc6.sockc.mark; in udpv6_sendmsg()
1516 fl6->daddr = *daddr; in udpv6_sendmsg()
1517 if (ipv6_addr_any(&fl6->saddr) && !ipv6_addr_any(&np->saddr)) in udpv6_sendmsg()
1518 fl6->saddr = np->saddr; in udpv6_sendmsg()
1519 fl6->fl6_sport = inet->inet_sport; in udpv6_sendmsg()
1525 &fl6->saddr); in udpv6_sendmsg()
1541 fl6->fl6_dport = sin6->sin6_port; in udpv6_sendmsg()
1542 fl6->daddr = sin6->sin6_addr; in udpv6_sendmsg()
1546 if (ipv6_addr_any(&fl6->daddr)) in udpv6_sendmsg()
1547 fl6->daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */ in udpv6_sendmsg()
1549 final_p = fl6_update_dst(fl6, opt, &final); in udpv6_sendmsg()
1553 if (!fl6->flowi6_oif && ipv6_addr_is_multicast(&fl6->daddr)) { in udpv6_sendmsg()
1554 fl6->flowi6_oif = READ_ONCE(np->mcast_oif); in udpv6_sendmsg()
1556 } else if (!fl6->flowi6_oif) in udpv6_sendmsg()
1557 fl6->flowi6_oif = READ_ONCE(np->ucast_oif); in udpv6_sendmsg()
1559 security_sk_classify_flow(sk, flowi6_to_flowi_common(fl6)); in udpv6_sendmsg()
1564 fl6->flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6->flowlabel); in udpv6_sendmsg()
1566 dst = ip6_sk_dst_lookup_flow(sk, fl6, final_p, connected); in udpv6_sendmsg()
1574 ipc6.hlimit = ip6_sk_dst_hoplimit(np, fl6, dst); in udpv6_sendmsg()
1590 err = udp_v6_send_skb(skb, fl6, &cork.base); in udpv6_sendmsg()
1613 &ipc6, fl6, dst_rt6_info(dst), in udpv6_sendmsg()
1648 dst_confirm_neigh(dst, &fl6->daddr); in udpv6_sendmsg()