• Home
  • Raw
  • Download

Lines Matching refs:fl6

41 static void ip6_datagram_flow_key_init(struct flowi6 *fl6, struct sock *sk)  in ip6_datagram_flow_key_init()  argument
46 memset(fl6, 0, sizeof(*fl6)); in ip6_datagram_flow_key_init()
47 fl6->flowi6_proto = sk->sk_protocol; in ip6_datagram_flow_key_init()
48 fl6->daddr = sk->sk_v6_daddr; in ip6_datagram_flow_key_init()
49 fl6->saddr = np->saddr; in ip6_datagram_flow_key_init()
50 fl6->flowi6_oif = sk->sk_bound_dev_if; in ip6_datagram_flow_key_init()
51 fl6->flowi6_mark = sk->sk_mark; in ip6_datagram_flow_key_init()
52 fl6->fl6_dport = inet->inet_dport; in ip6_datagram_flow_key_init()
53 fl6->fl6_sport = inet->inet_sport; in ip6_datagram_flow_key_init()
54 fl6->flowlabel = ip6_make_flowinfo(np->tclass, np->flow_label); in ip6_datagram_flow_key_init()
55 fl6->flowi6_uid = sk->sk_uid; in ip6_datagram_flow_key_init()
57 if (!fl6->flowi6_oif) in ip6_datagram_flow_key_init()
58 fl6->flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; in ip6_datagram_flow_key_init()
60 if (!fl6->flowi6_oif && ipv6_addr_is_multicast(&fl6->daddr)) in ip6_datagram_flow_key_init()
61 fl6->flowi6_oif = np->mcast_oif; in ip6_datagram_flow_key_init()
63 security_sk_classify_flow(sk, flowi6_to_flowi_common(fl6)); in ip6_datagram_flow_key_init()
74 struct flowi6 fl6; in ip6_datagram_dst_update() local
82 ip6_datagram_flow_key_init(&fl6, sk); in ip6_datagram_dst_update()
86 final_p = fl6_update_dst(&fl6, opt, &final); in ip6_datagram_dst_update()
89 dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); in ip6_datagram_dst_update()
97 np->saddr = fl6.saddr; in ip6_datagram_dst_update()
100 sk->sk_v6_rcv_saddr = fl6.saddr; in ip6_datagram_dst_update()
107 ip6_sk_dst_store_flow(sk, dst, &fl6); in ip6_datagram_dst_update()
338 void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info) in ipv6_local_error() argument
357 iph->daddr = fl6->daddr; in ipv6_local_error()
369 serr->port = fl6->fl6_dport; in ipv6_local_error()
378 void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu) in ipv6_local_rxpmtu() argument
395 iph->daddr = fl6->daddr; in ipv6_local_rxpmtu()
403 mtu_info->ip6m_addr.sin6_scope_id = fl6->flowi6_oif; in ipv6_local_rxpmtu()
754 struct msghdr *msg, struct flowi6 *fl6, in ip6_datagram_send_ctl() argument
799 if (fl6->flowi6_oif && in ip6_datagram_send_ctl()
800 src_idx != fl6->flowi6_oif && in ip6_datagram_send_ctl()
801 (sk->sk_bound_dev_if != fl6->flowi6_oif || in ip6_datagram_send_ctl()
804 fl6->flowi6_oif = src_idx; in ip6_datagram_send_ctl()
810 if (fl6->flowi6_oif) { in ip6_datagram_send_ctl()
811 dev = dev_get_by_index_rcu(net, fl6->flowi6_oif); in ip6_datagram_send_ctl()
831 fl6->saddr = src_info->ipi6_addr; in ip6_datagram_send_ctl()
848 if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl()
849 if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { in ip6_datagram_send_ctl()
854 fl6->flowlabel = IPV6_FLOWINFO_MASK & *(__be32 *)CMSG_DATA(cmsg); in ip6_datagram_send_ctl()