Lines Matching refs:fl6
527 struct flowi6 fl6; in l2tp_ip6_sendmsg() local
545 memset(&fl6, 0, sizeof(fl6)); in l2tp_ip6_sendmsg()
547 fl6.flowi6_mark = READ_ONCE(sk->sk_mark); in l2tp_ip6_sendmsg()
548 fl6.flowi6_uid = sk->sk_uid; in l2tp_ip6_sendmsg()
561 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg()
562 if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg()
563 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg()
579 fl6.flowi6_oif = lsa->l2tp_scope_id; in l2tp_ip6_sendmsg()
585 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg()
588 if (fl6.flowi6_oif == 0) in l2tp_ip6_sendmsg()
589 fl6.flowi6_oif = READ_ONCE(sk->sk_bound_dev_if); in l2tp_ip6_sendmsg()
597 err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6, &ipc6); in l2tp_ip6_sendmsg()
602 if ((fl6.flowlabel & IPV6_FLOWLABEL_MASK) && !flowlabel) { in l2tp_ip6_sendmsg()
603 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg()
620 fl6.flowi6_proto = sk->sk_protocol; in l2tp_ip6_sendmsg()
622 fl6.daddr = *daddr; in l2tp_ip6_sendmsg()
624 fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */ in l2tp_ip6_sendmsg()
625 if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr)) in l2tp_ip6_sendmsg()
626 fl6.saddr = np->saddr; in l2tp_ip6_sendmsg()
628 final_p = fl6_update_dst(&fl6, opt, &final); in l2tp_ip6_sendmsg()
630 if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) in l2tp_ip6_sendmsg()
631 fl6.flowi6_oif = READ_ONCE(np->mcast_oif); in l2tp_ip6_sendmsg()
632 else if (!fl6.flowi6_oif) in l2tp_ip6_sendmsg()
633 fl6.flowi6_oif = READ_ONCE(np->ucast_oif); in l2tp_ip6_sendmsg()
635 security_sk_classify_flow(sk, flowi6_to_flowi_common(&fl6)); in l2tp_ip6_sendmsg()
640 fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); in l2tp_ip6_sendmsg()
642 dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); in l2tp_ip6_sendmsg()
649 ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); in l2tp_ip6_sendmsg()
662 &fl6, dst_rt6_info(dst), in l2tp_ip6_sendmsg()
679 dst_confirm_neigh(dst, &fl6.daddr); in l2tp_ip6_sendmsg()