Lines Matching refs:fl6
41 static void ip6_datagram_flow_key_init(struct flowi6 *fl6, in ip6_datagram_flow_key_init() argument
48 memset(fl6, 0, sizeof(*fl6)); in ip6_datagram_flow_key_init()
49 fl6->flowi6_proto = sk->sk_protocol; in ip6_datagram_flow_key_init()
50 fl6->daddr = sk->sk_v6_daddr; in ip6_datagram_flow_key_init()
51 fl6->saddr = np->saddr; in ip6_datagram_flow_key_init()
52 fl6->flowi6_mark = sk->sk_mark; in ip6_datagram_flow_key_init()
53 fl6->fl6_dport = inet->inet_dport; in ip6_datagram_flow_key_init()
54 fl6->fl6_sport = inet->inet_sport; in ip6_datagram_flow_key_init()
55 fl6->flowlabel = ip6_make_flowinfo(np->tclass, np->flow_label); in ip6_datagram_flow_key_init()
56 fl6->flowi6_uid = sk_uid(sk); in ip6_datagram_flow_key_init()
62 if (ipv6_addr_is_multicast(&fl6->daddr)) in ip6_datagram_flow_key_init()
68 fl6->flowi6_oif = oif; in ip6_datagram_flow_key_init()
69 security_sk_classify_flow(sk, flowi6_to_flowi_common(fl6)); in ip6_datagram_flow_key_init()
80 struct flowi6 fl6; in ip6_datagram_dst_update() local
89 ip6_datagram_flow_key_init(&fl6, sk); in ip6_datagram_dst_update()
93 final_p = fl6_update_dst(&fl6, opt, &final); in ip6_datagram_dst_update()
96 dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); in ip6_datagram_dst_update()
104 np->saddr = fl6.saddr; in ip6_datagram_dst_update()
107 sk->sk_v6_rcv_saddr = fl6.saddr; in ip6_datagram_dst_update()
114 ip6_sk_dst_store_flow(sk, dst, &fl6); in ip6_datagram_dst_update()
345 void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info) in ipv6_local_error() argument
363 iph->daddr = fl6->daddr; in ipv6_local_error()
375 serr->port = fl6->fl6_dport; in ipv6_local_error()
384 void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu) in ipv6_local_rxpmtu() argument
401 iph->daddr = fl6->daddr; in ipv6_local_rxpmtu()
409 mtu_info->ip6m_addr.sin6_scope_id = fl6->flowi6_oif; in ipv6_local_rxpmtu()
760 struct msghdr *msg, struct flowi6 *fl6, in ip6_datagram_send_ctl() argument
805 if (fl6->flowi6_oif && in ip6_datagram_send_ctl()
806 src_idx != fl6->flowi6_oif && in ip6_datagram_send_ctl()
807 (READ_ONCE(sk->sk_bound_dev_if) != fl6->flowi6_oif || in ip6_datagram_send_ctl()
810 fl6->flowi6_oif = src_idx; in ip6_datagram_send_ctl()
816 if (fl6->flowi6_oif) { in ip6_datagram_send_ctl()
817 dev = dev_get_by_index_rcu(net, fl6->flowi6_oif); in ip6_datagram_send_ctl()
837 fl6->saddr = src_info->ipi6_addr; in ip6_datagram_send_ctl()
854 if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl()
855 if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl()
860 fl6->flowlabel = IPV6_FLOWINFO_MASK & *(__be32 *)CMSG_DATA(cmsg); in ip6_datagram_send_ctl()