fl6 422 drivers/infiniband/core/addr.c struct flowi6 fl6; fl6 425 drivers/infiniband/core/addr.c memset(&fl6, 0, sizeof fl6); fl6 426 drivers/infiniband/core/addr.c fl6.daddr = dst_in->sin6_addr; fl6 427 drivers/infiniband/core/addr.c fl6.saddr = src_in->sin6_addr; fl6 428 drivers/infiniband/core/addr.c fl6.flowi6_oif = addr->bound_dev_if; fl6 430 drivers/infiniband/core/addr.c dst = ipv6_stub->ipv6_dst_lookup_flow(addr->net, NULL, &fl6, NULL); fl6 435 drivers/infiniband/core/addr.c src_in->sin6_addr = fl6.saddr; fl6 2039 drivers/infiniband/hw/i40iw/i40iw_cm.c struct flowi6 fl6; fl6 2041 drivers/infiniband/hw/i40iw/i40iw_cm.c memset(&fl6, 0, sizeof(fl6)); fl6 2042 drivers/infiniband/hw/i40iw/i40iw_cm.c fl6.daddr = dst_addr->sin6_addr; fl6 2043 drivers/infiniband/hw/i40iw/i40iw_cm.c fl6.saddr = src_addr->sin6_addr; fl6 2044 drivers/infiniband/hw/i40iw/i40iw_cm.c if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) fl6 2045 drivers/infiniband/hw/i40iw/i40iw_cm.c fl6.flowi6_oif = dst_addr->sin6_scope_id; fl6 2047 drivers/infiniband/hw/i40iw/i40iw_cm.c dst = ip6_route_output(&init_net, NULL, &fl6); fl6 473 drivers/infiniband/hw/qedr/qedr_iw_cm.c struct flowi6 fl6; fl6 476 drivers/infiniband/hw/qedr/qedr_iw_cm.c memset(&fl6, 0, sizeof(fl6)); fl6 477 drivers/infiniband/hw/qedr/qedr_iw_cm.c fl6.daddr = dst_in->sin6_addr; fl6 478 drivers/infiniband/hw/qedr/qedr_iw_cm.c fl6.saddr = src_in->sin6_addr; fl6 480 drivers/infiniband/hw/qedr/qedr_iw_cm.c dst = ip6_route_output(&init_net, NULL, &fl6); fl6 491 drivers/infiniband/hw/qedr/qedr_iw_cm.c neigh = dst_neigh_lookup(dst, &fl6.daddr); fl6 112 drivers/infiniband/sw/rxe/rxe_net.c struct flowi6 fl6 = { { 0 } }; fl6 114 drivers/infiniband/sw/rxe/rxe_net.c memset(&fl6, 0, sizeof(fl6)); fl6 115 drivers/infiniband/sw/rxe/rxe_net.c fl6.flowi6_oif = ndev->ifindex; fl6 116 drivers/infiniband/sw/rxe/rxe_net.c memcpy(&fl6.saddr, saddr, sizeof(*saddr)); fl6 117 drivers/infiniband/sw/rxe/rxe_net.c memcpy(&fl6.daddr, daddr, sizeof(*daddr)); fl6 118 drivers/infiniband/sw/rxe/rxe_net.c fl6.flowi6_proto = IPPROTO_UDP; fl6 121 drivers/infiniband/sw/rxe/rxe_net.c recv_sockets.sk6->sk, &fl6, fl6 3695 drivers/net/ethernet/broadcom/cnic.c struct flowi6 fl6; fl6 3697 drivers/net/ethernet/broadcom/cnic.c memset(&fl6, 0, sizeof(fl6)); fl6 3698 drivers/net/ethernet/broadcom/cnic.c fl6.daddr = dst_addr->sin6_addr; fl6 3699 drivers/net/ethernet/broadcom/cnic.c if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) fl6 3700 drivers/net/ethernet/broadcom/cnic.c fl6.flowi6_oif = dst_addr->sin6_scope_id; fl6 3702 drivers/net/ethernet/broadcom/cnic.c *dst = ip6_route_output(&init_net, NULL, &fl6); fl6 128 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c struct flowi6 fl6; fl6 130 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c memset(&fl6, 0, sizeof(fl6)); fl6 131 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c memcpy(&fl6.daddr, peer_ip, 16); fl6 132 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c memcpy(&fl6.saddr, local_ip, 16); fl6 133 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) fl6 134 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c fl6.flowi6_oif = sin6_scope_id; fl6 135 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c dst = ip6_route_output(&init_net, NULL, &fl6); fl6 137 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c struct flowi6 *fl6, fl6 147 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c dst = ipv6_stub->ipv6_dst_lookup_flow(dev_net(mirred_dev), NULL, fl6, fl6 164 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c n = dst_neigh_lookup(dst, &fl6->daddr); fl6 335 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c struct flowi6 fl6 = {}; fl6 344 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl6.flowlabel = ip6_make_flowinfo(RT_TOS(tun_key->tos), tun_key->label); fl6 345 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl6.daddr = tun_key->u.ipv6.dst; fl6 346 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl6.saddr = tun_key->u.ipv6.src; fl6 349 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c &fl6, &n, &ttl); fl6 402 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c ip6h->daddr = fl6.daddr; fl6 403 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c ip6h->saddr = fl6.saddr; fl6 404 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c struct flowi6 fl6 = t->fl.u.ip6; fl6 412 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c fl6.flowi6_mark = t->parms.fwmark; fl6 413 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c if (!ip6_tnl_xmit_ctl(t, &fl6.saddr, &fl6.daddr)) fl6 416 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c dst = ip6_route_output(t->net, NULL, &fl6); fl6 423 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c *saddrp = fl6.saddr; fl6 825 drivers/net/geneve.c struct flowi6 *fl6, fl6 837 drivers/net/geneve.c memset(fl6, 0, sizeof(*fl6)); fl6 838 drivers/net/geneve.c fl6->flowi6_mark = skb->mark; fl6 839 drivers/net/geneve.c fl6->flowi6_proto = IPPROTO_UDP; fl6 840 drivers/net/geneve.c fl6->daddr = info->key.u.ipv6.dst; fl6 841 drivers/net/geneve.c fl6->saddr = info->key.u.ipv6.src; fl6 848 drivers/net/geneve.c fl6->flowlabel = ip6_make_flowinfo(RT_TOS(prio), fl6 852 drivers/net/geneve.c dst = dst_cache_get_ip6(dst_cache, &fl6->saddr); fl6 856 drivers/net/geneve.c dst = ipv6_stub->ipv6_dst_lookup_flow(geneve->net, gs6->sock->sk, fl6, fl6 859 drivers/net/geneve.c netdev_dbg(dev, "no route to %pI6\n", &fl6->daddr); fl6 863 drivers/net/geneve.c netdev_dbg(dev, "circular route to %pI6\n", &fl6->daddr); fl6 869 drivers/net/geneve.c dst_cache_set_ip6(dst_cache, dst, &fl6->saddr); fl6 945 drivers/net/geneve.c struct flowi6 fl6; fl6 950 drivers/net/geneve.c dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info); fl6 961 drivers/net/geneve.c prio = ip_tunnel_ecn_encap(ip6_tclass(fl6.flowlabel), fl6 974 drivers/net/geneve.c &fl6.saddr, &fl6.daddr, prio, ttl, fl6 1051 drivers/net/geneve.c struct flowi6 fl6; fl6 1054 drivers/net/geneve.c dst = geneve_get_v6_dst(skb, dev, gs6, &fl6, info); fl6 1059 drivers/net/geneve.c info->key.u.ipv6.src = fl6.saddr; fl6 461 drivers/net/ipvlan/ipvlan_core.c struct flowi6 fl6 = { fl6 471 drivers/net/ipvlan/ipvlan_core.c dst = ip6_route_output(net, NULL, &fl6); fl6 66 drivers/net/ipvlan/ipvlan_l3s.c struct flowi6 fl6 = { fl6 76 drivers/net/ipvlan/ipvlan_l3s.c dst = ip6_route_input_lookup(dev_net(sdev), sdev, &fl6, fl6 170 drivers/net/vrf.c struct flowi6 fl6; fl6 180 drivers/net/vrf.c memset(&fl6, 0, sizeof(fl6)); fl6 182 drivers/net/vrf.c fl6.flowi6_oif = dev->ifindex; fl6 183 drivers/net/vrf.c fl6.flowi6_iif = LOOPBACK_IFINDEX; fl6 184 drivers/net/vrf.c fl6.daddr = iph->daddr; fl6 185 drivers/net/vrf.c fl6.saddr = iph->saddr; fl6 186 drivers/net/vrf.c fl6.flowlabel = ip6_flowinfo(iph); fl6 187 drivers/net/vrf.c fl6.flowi6_mark = skb->mark; fl6 188 drivers/net/vrf.c fl6.flowi6_proto = iph->nexthdr; fl6 189 drivers/net/vrf.c fl6.flowi6_flags = FLOWI_FLAG_SKIP_NH_OIF; fl6 191 drivers/net/vrf.c dst = ip6_dst_lookup_flow(net, NULL, &fl6, NULL); fl6 953 drivers/net/vrf.c struct flowi6 *fl6, fl6 960 drivers/net/vrf.c return ip6_pol_route(net, vrf->fib6_table, ifindex, fl6, skb, flags); fl6 967 drivers/net/vrf.c struct flowi6 fl6 = { fl6 978 drivers/net/vrf.c rt6 = vrf_ip6_route_lookup(net, vrf_dev, &fl6, ifindex, skb, fl6 1092 drivers/net/vrf.c struct flowi6 *fl6) fl6 1103 drivers/net/vrf.c if (fl6->flowi6_oif == dev->ifindex) { fl6 1108 drivers/net/vrf.c if (!ipv6_addr_any(&fl6->saddr)) fl6 1111 drivers/net/vrf.c rt = vrf_ip6_route_lookup(net, dev, fl6, fl6->flowi6_oif, NULL, flags); fl6 2282 drivers/net/vxlan.c struct flowi6 fl6; fl6 2295 drivers/net/vxlan.c memset(&fl6, 0, sizeof(fl6)); fl6 2296 drivers/net/vxlan.c fl6.flowi6_oif = oif; fl6 2297 drivers/net/vxlan.c fl6.daddr = *daddr; fl6 2298 drivers/net/vxlan.c fl6.saddr = *saddr; fl6 2299 drivers/net/vxlan.c fl6.flowlabel = ip6_make_flowinfo(RT_TOS(tos), label); fl6 2300 drivers/net/vxlan.c fl6.flowi6_mark = skb->mark; fl6 2301 drivers/net/vxlan.c fl6.flowi6_proto = IPPROTO_UDP; fl6 2302 drivers/net/vxlan.c fl6.fl6_dport = dport; fl6 2303 drivers/net/vxlan.c fl6.fl6_sport = sport; fl6 2306 drivers/net/vxlan.c &fl6, NULL); fl6 2318 drivers/net/vxlan.c *saddr = fl6.saddr; fl6 44 include/linux/icmpv6.h struct flowi6 *fl6, fl6 1347 include/linux/skbuff.h static inline __u32 skb_get_hash_flowi6(struct sk_buff *skb, const struct flowi6 *fl6) fl6 1351 include/linux/skbuff.h __u32 hash = __get_hash_from_flowi6(fl6, &keys); fl6 197 include/net/flow.h static inline struct flowi *flowi6_to_flowi(struct flowi6 *fl6) fl6 199 include/net/flow.h return container_of(fl6, struct flowi, u.ip6); fl6 225 include/net/flow.h __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys); fl6 19 include/net/inet6_connection_sock.h struct dst_entry *inet6_csk_route_req(const struct sock *sk, struct flowi6 *fl6, fl6 394 include/net/ip6_fib.h struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, fl6 401 include/net/ip6_fib.h int fib6_lookup(struct net *net, int oif, struct flowi6 *fl6, fl6 406 include/net/ip6_fib.h int oif, struct flowi6 *fl6, struct fib6_result *res, fl6 410 include/net/ip6_fib.h struct flowi6 *fl6, int oif, bool have_oif_match, fl6 516 include/net/ip6_fib.h struct flowi6 *fl6, fl6 525 include/net/ip6_fib.h fl6->fl6_sport = flkeys->ports.src; fl6 526 include/net/ip6_fib.h fl6->fl6_dport = flkeys->ports.dst; fl6 527 include/net/ip6_fib.h fl6->flowi6_proto = flkeys->basic.ip_proto; fl6 554 include/net/ip6_fib.h struct flowi6 *fl6, fl6 84 include/net/ip6_route.h struct flowi6 *fl6, fl6 89 include/net/ip6_route.h struct flowi6 *fl6, int flags); fl6 92 include/net/ip6_route.h struct flowi6 *fl6, int flags); fl6 96 include/net/ip6_route.h struct flowi6 *fl6) fl6 98 include/net/ip6_route.h return ip6_route_output_flags(net, sk, fl6, 0); fl6 111 include/net/ip6_route.h struct dst_entry *ip6_route_lookup(struct net *net, struct flowi6 *fl6, fl6 114 include/net/ip6_route.h int ifindex, struct flowi6 *fl6, fl6 153 include/net/ip6_route.h u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6, fl6 156 include/net/ip6_route.h struct dst_entry *icmp6_dst_alloc(struct net_device *dev, struct flowi6 *fl6); fl6 241 include/net/ip6_route.h const struct flowi6 *fl6); fl6 71 include/net/ip6_tunnel.h u8 *protocol, struct flowi6 *fl6); fl6 109 include/net/ip6_tunnel.h u8 *protocol, struct flowi6 *fl6) fl6 123 include/net/ip6_tunnel.h ret = ops->build_header(skb, &t->encap, protocol, fl6); fl6 145 include/net/ip6_tunnel.h struct flowi6 *fl6, int encap_limit, __u32 *pmtu, __u8 proto); fl6 424 include/net/ipv6.h void icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, fl6 813 include/net/ipv6.h static inline int ip6_sk_dst_hoplimit(struct ipv6_pinfo *np, struct flowi6 *fl6, fl6 818 include/net/ipv6.h if (ipv6_addr_is_multicast(&fl6->daddr)) fl6 862 include/net/ipv6.h struct flowi6 *fl6) fl6 877 include/net/ipv6.h hash = skb_get_hash_flowi6(skb, fl6); fl6 909 include/net/ipv6.h struct flowi6 *fl6) fl6 960 include/net/ipv6.h static inline __be32 flowi6_get_flowlabel(const struct flowi6 *fl6) fl6 962 include/net/ipv6.h return fl6->flowlabel & IPV6_FLOWLABEL_MASK; fl6 983 include/net/ipv6.h int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, fl6 992 include/net/ipv6.h struct ipcm6_cookie *ipc6, struct flowi6 *fl6, fl6 1008 include/net/ipv6.h struct ipcm6_cookie *ipc6, struct flowi6 *fl6, fl6 1019 include/net/ipv6.h struct flowi6 *fl6); fl6 1020 include/net/ipv6.h struct dst_entry *ip6_dst_lookup_flow(struct net *net, const struct sock *sk, struct flowi6 *fl6, fl6 1022 include/net/ipv6.h struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, fl6 1069 include/net/ipv6.h struct in6_addr *fl6_update_dst(struct flowi6 *fl6, fl6 1100 include/net/ipv6.h void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info); fl6 1101 include/net/ipv6.h void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu); fl6 29 include/net/ipv6_stubs.h struct flowi6 *fl6, fl6 34 include/net/ipv6_stubs.h int (*fib6_lookup)(struct net *net, int oif, struct flowi6 *fl6, fl6 37 include/net/ipv6_stubs.h int oif, struct flowi6 *fl6, fl6 40 include/net/ipv6_stubs.h struct flowi6 *fl6, int oif, bool oif_match, fl6 35 include/net/l3mdev.h struct flowi6 *fl6); fl6 143 include/net/l3mdev.h struct dst_entry *l3mdev_link_scope_lookup(struct net *net, struct flowi6 *fl6); fl6 254 include/net/l3mdev.h struct dst_entry *l3mdev_link_scope_lookup(struct net *net, struct flowi6 *fl6) fl6 45 include/net/transp_v6.h struct flowi6 *fl6, struct ipcm6_cookie *ipc6); fl6 4738 net/core/filter.c struct flowi6 fl6; fl6 4756 net/core/filter.c fl6.flowi6_iif = 1; fl6 4757 net/core/filter.c oif = fl6.flowi6_oif = params->ifindex; fl6 4759 net/core/filter.c oif = fl6.flowi6_iif = params->ifindex; fl6 4760 net/core/filter.c fl6.flowi6_oif = 0; fl6 4763 net/core/filter.c fl6.flowlabel = params->flowinfo; fl6 4764 net/core/filter.c fl6.flowi6_scope = 0; fl6 4765 net/core/filter.c fl6.flowi6_flags = 0; fl6 4766 net/core/filter.c fl6.mp_hash = 0; fl6 4768 net/core/filter.c fl6.flowi6_proto = params->l4_protocol; fl6 4769 net/core/filter.c fl6.daddr = *dst; fl6 4770 net/core/filter.c fl6.saddr = *src; fl6 4771 net/core/filter.c fl6.fl6_sport = params->sport; fl6 4772 net/core/filter.c fl6.fl6_dport = params->dport; fl6 4782 net/core/filter.c err = ipv6_stub->fib6_table_lookup(net, tb, oif, &fl6, &res, fl6 4785 net/core/filter.c fl6.flowi6_mark = 0; fl6 4786 net/core/filter.c fl6.flowi6_secid = 0; fl6 4787 net/core/filter.c fl6.flowi6_tun_key.tun_id = 0; fl6 4788 net/core/filter.c fl6.flowi6_uid = sock_net_uid(net, NULL); fl6 4790 net/core/filter.c err = ipv6_stub->fib6_lookup(net, oif, &fl6, &res, strict); fl6 4811 net/core/filter.c ipv6_stub->fib6_select_path(net, &res, &fl6, fl6.flowi6_oif, fl6 4812 net/core/filter.c fl6.flowi6_oif != 0, NULL, strict); fl6 1669 net/core/flow_dissector.c __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys) fl6 1673 net/core/flow_dissector.c memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, fl6 1675 net/core/flow_dissector.c memcpy(&keys->addrs.v6addrs.dst, &fl6->daddr, fl6 1678 net/core/flow_dissector.c keys->ports.src = fl6->fl6_sport; fl6 1679 net/core/flow_dissector.c keys->ports.dst = fl6->fl6_dport; fl6 1680 net/core/flow_dissector.c keys->keyid.keyid = fl6->fl6_gre_key; fl6 1681 net/core/flow_dissector.c keys->tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); fl6 1682 net/core/flow_dissector.c keys->basic.ip_proto = fl6->flowi6_proto; fl6 223 net/core/lwt_bpf.c struct flowi6 fl6 = {}; fl6 225 net/core/lwt_bpf.c fl6.flowi6_oif = oif; fl6 226 net/core/lwt_bpf.c fl6.flowi6_mark = skb->mark; fl6 227 net/core/lwt_bpf.c fl6.flowi6_uid = sock_net_uid(net, sk); fl6 228 net/core/lwt_bpf.c fl6.flowlabel = ip6_flowinfo(iph6); fl6 229 net/core/lwt_bpf.c fl6.flowi6_proto = iph6->nexthdr; fl6 230 net/core/lwt_bpf.c fl6.daddr = iph6->daddr; fl6 231 net/core/lwt_bpf.c fl6.saddr = iph6->saddr; fl6 233 net/core/lwt_bpf.c dst = ipv6_stub->ipv6_dst_lookup_flow(net, skb->sk, &fl6, NULL); fl6 194 net/dccp/ipv6.c struct flowi6 fl6; fl6 198 net/dccp/ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 199 net/dccp/ipv6.c fl6.flowi6_proto = IPPROTO_DCCP; fl6 200 net/dccp/ipv6.c fl6.daddr = ireq->ir_v6_rmt_addr; fl6 201 net/dccp/ipv6.c fl6.saddr = ireq->ir_v6_loc_addr; fl6 202 net/dccp/ipv6.c fl6.flowlabel = 0; fl6 203 net/dccp/ipv6.c fl6.flowi6_oif = ireq->ir_iif; fl6 204 net/dccp/ipv6.c fl6.fl6_dport = ireq->ir_rmt_port; fl6 205 net/dccp/ipv6.c fl6.fl6_sport = htons(ireq->ir_num); fl6 206 net/dccp/ipv6.c security_req_classify_flow(req, flowi6_to_flowi(&fl6)); fl6 210 net/dccp/ipv6.c final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); fl6 213 net/dccp/ipv6.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 228 net/dccp/ipv6.c fl6.daddr = ireq->ir_v6_rmt_addr; fl6 233 net/dccp/ipv6.c err = ip6_xmit(sk, skb, &fl6, sk->sk_mark, opt, np->tclass, fl6 255 net/dccp/ipv6.c struct flowi6 fl6; fl6 274 net/dccp/ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 275 net/dccp/ipv6.c fl6.daddr = rxip6h->saddr; fl6 276 net/dccp/ipv6.c fl6.saddr = rxip6h->daddr; fl6 278 net/dccp/ipv6.c fl6.flowi6_proto = IPPROTO_DCCP; fl6 279 net/dccp/ipv6.c fl6.flowi6_oif = inet6_iif(rxskb); fl6 280 net/dccp/ipv6.c fl6.fl6_dport = dccp_hdr(skb)->dccph_dport; fl6 281 net/dccp/ipv6.c fl6.fl6_sport = dccp_hdr(skb)->dccph_sport; fl6 282 net/dccp/ipv6.c security_skb_classify_flow(rxskb, flowi6_to_flowi(&fl6)); fl6 285 net/dccp/ipv6.c dst = ip6_dst_lookup_flow(sock_net(ctl_sk), ctl_sk, &fl6, NULL); fl6 288 net/dccp/ipv6.c ip6_xmit(ctl_sk, skb, &fl6, 0, NULL, 0, 0); fl6 459 net/dccp/ipv6.c struct flowi6 fl6; fl6 461 net/dccp/ipv6.c dst = inet6_csk_route_req(sk, &fl6, req, IPPROTO_DCCP); fl6 813 net/dccp/ipv6.c struct flowi6 fl6; fl6 826 net/dccp/ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 829 net/dccp/ipv6.c fl6.flowlabel = usin->sin6_flowinfo & IPV6_FLOWINFO_MASK; fl6 830 net/dccp/ipv6.c IP6_ECN_flow_init(fl6.flowlabel); fl6 831 net/dccp/ipv6.c if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { fl6 833 net/dccp/ipv6.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 869 net/dccp/ipv6.c np->flow_label = fl6.flowlabel; fl6 904 net/dccp/ipv6.c fl6.flowi6_proto = IPPROTO_DCCP; fl6 905 net/dccp/ipv6.c fl6.daddr = sk->sk_v6_daddr; fl6 906 net/dccp/ipv6.c fl6.saddr = saddr ? *saddr : np->saddr; fl6 907 net/dccp/ipv6.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 908 net/dccp/ipv6.c fl6.fl6_dport = usin->sin6_port; fl6 909 net/dccp/ipv6.c fl6.fl6_sport = inet->inet_sport; fl6 910 net/dccp/ipv6.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 913 net/dccp/ipv6.c final_p = fl6_update_dst(&fl6, opt, &final); fl6 915 net/dccp/ipv6.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 922 net/dccp/ipv6.c saddr = &fl6.saddr; fl6 134 net/ipv6/addrconf_core.c struct flowi6 *fl6, fl6 152 net/ipv6/addrconf_core.c int oif, struct flowi6 *fl6, fl6 159 net/ipv6/addrconf_core.c eafnosupport_fib6_lookup(struct net *net, int oif, struct flowi6 *fl6, fl6 167 net/ipv6/addrconf_core.c struct flowi6 *fl6, int oif, bool have_oif_match, fl6 749 net/ipv6/af_inet6.c struct flowi6 fl6; fl6 751 net/ipv6/af_inet6.c memset(&fl6, 0, sizeof(fl6)); fl6 752 net/ipv6/af_inet6.c fl6.flowi6_proto = sk->sk_protocol; fl6 753 net/ipv6/af_inet6.c fl6.daddr = sk->sk_v6_daddr; fl6 754 net/ipv6/af_inet6.c fl6.saddr = np->saddr; fl6 755 net/ipv6/af_inet6.c fl6.flowlabel = np->flow_label; fl6 756 net/ipv6/af_inet6.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 757 net/ipv6/af_inet6.c fl6.flowi6_mark = sk->sk_mark; fl6 758 net/ipv6/af_inet6.c fl6.fl6_dport = inet->inet_dport; fl6 759 net/ipv6/af_inet6.c fl6.fl6_sport = inet->inet_sport; fl6 760 net/ipv6/af_inet6.c fl6.flowi6_uid = sk->sk_uid; fl6 761 net/ipv6/af_inet6.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 764 net/ipv6/af_inet6.c final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), fl6 768 net/ipv6/af_inet6.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 40 net/ipv6/datagram.c static void ip6_datagram_flow_key_init(struct flowi6 *fl6, struct sock *sk) fl6 45 net/ipv6/datagram.c memset(fl6, 0, sizeof(*fl6)); fl6 46 net/ipv6/datagram.c fl6->flowi6_proto = sk->sk_protocol; fl6 47 net/ipv6/datagram.c fl6->daddr = sk->sk_v6_daddr; fl6 48 net/ipv6/datagram.c fl6->saddr = np->saddr; fl6 49 net/ipv6/datagram.c fl6->flowi6_oif = sk->sk_bound_dev_if; fl6 50 net/ipv6/datagram.c fl6->flowi6_mark = sk->sk_mark; fl6 51 net/ipv6/datagram.c fl6->fl6_dport = inet->inet_dport; fl6 52 net/ipv6/datagram.c fl6->fl6_sport = inet->inet_sport; fl6 53 net/ipv6/datagram.c fl6->flowlabel = np->flow_label; fl6 54 net/ipv6/datagram.c fl6->flowi6_uid = sk->sk_uid; fl6 56 net/ipv6/datagram.c if (!fl6->flowi6_oif) fl6 57 net/ipv6/datagram.c fl6->flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; fl6 59 net/ipv6/datagram.c if (!fl6->flowi6_oif && ipv6_addr_is_multicast(&fl6->daddr)) fl6 60 net/ipv6/datagram.c fl6->flowi6_oif = np->mcast_oif; fl6 62 net/ipv6/datagram.c security_sk_classify_flow(sk, flowi6_to_flowi(fl6)); fl6 73 net/ipv6/datagram.c struct flowi6 fl6; fl6 81 net/ipv6/datagram.c ip6_datagram_flow_key_init(&fl6, sk); fl6 85 net/ipv6/datagram.c final_p = fl6_update_dst(&fl6, opt, &final); fl6 88 net/ipv6/datagram.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 96 net/ipv6/datagram.c np->saddr = fl6.saddr; fl6 99 net/ipv6/datagram.c sk->sk_v6_rcv_saddr = fl6.saddr; fl6 106 net/ipv6/datagram.c ip6_sk_dst_store_flow(sk, dst, &fl6); fl6 322 net/ipv6/datagram.c void ipv6_local_error(struct sock *sk, int err, struct flowi6 *fl6, u32 info) fl6 341 net/ipv6/datagram.c iph->daddr = fl6->daddr; fl6 353 net/ipv6/datagram.c serr->port = fl6->fl6_dport; fl6 362 net/ipv6/datagram.c void ipv6_local_rxpmtu(struct sock *sk, struct flowi6 *fl6, u32 mtu) fl6 379 net/ipv6/datagram.c iph->daddr = fl6->daddr; fl6 387 net/ipv6/datagram.c mtu_info->ip6m_addr.sin6_scope_id = fl6->flowi6_oif; fl6 738 net/ipv6/datagram.c struct msghdr *msg, struct flowi6 *fl6, fl6 783 net/ipv6/datagram.c if (fl6->flowi6_oif && fl6 784 net/ipv6/datagram.c src_idx != fl6->flowi6_oif && fl6 785 net/ipv6/datagram.c (sk->sk_bound_dev_if != fl6->flowi6_oif || fl6 788 net/ipv6/datagram.c fl6->flowi6_oif = src_idx; fl6 794 net/ipv6/datagram.c if (fl6->flowi6_oif) { fl6 795 net/ipv6/datagram.c dev = dev_get_by_index_rcu(net, fl6->flowi6_oif); fl6 815 net/ipv6/datagram.c fl6->saddr = src_info->ipi6_addr; fl6 832 net/ipv6/datagram.c if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { fl6 833 net/ipv6/datagram.c if ((fl6->flowlabel^*(__be32 *)CMSG_DATA(cmsg))&~IPV6_FLOWINFO_MASK) { fl6 838 net/ipv6/datagram.c fl6->flowlabel = IPV6_FLOWINFO_MASK & *(__be32 *)CMSG_DATA(cmsg); fl6 1140 net/ipv6/exthdrs.c struct in6_addr *fl6_update_dst(struct flowi6 *fl6, fl6 1147 net/ipv6/exthdrs.c *orig = fl6->daddr; fl6 1153 net/ipv6/exthdrs.c fl6->daddr = *((struct rt0_hdr *)opt->srcrt)->addr; fl6 1159 net/ipv6/exthdrs.c fl6->daddr = srh->segments[srh->segments_left]; fl6 61 net/ipv6/fib6_rules.c int fib6_lookup(struct net *net, int oif, struct flowi6 *fl6, fl6 74 net/ipv6/fib6_rules.c l3mdev_update_flow(net, flowi6_to_flowi(fl6)); fl6 77 net/ipv6/fib6_rules.c flowi6_to_flowi(fl6), flags, &arg); fl6 80 net/ipv6/fib6_rules.c fl6, res, flags); fl6 83 net/ipv6/fib6_rules.c oif, fl6, res, flags); fl6 89 net/ipv6/fib6_rules.c struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, fl6 103 net/ipv6/fib6_rules.c l3mdev_update_flow(net, flowi6_to_flowi(fl6)); fl6 106 net/ipv6/fib6_rules.c flowi6_to_flowi(fl6), flags, &arg); fl6 113 net/ipv6/fib6_rules.c rt = lookup(net, net->ipv6.fib6_local_tbl, fl6, skb, flags); fl6 117 net/ipv6/fib6_rules.c rt = lookup(net, net->ipv6.fib6_main_tbl, fl6, skb, flags); fl6 298 net/ipv6/fib6_rules.c struct flowi6 *fl6 = &fl->u.ip6; fl6 301 net/ipv6/fib6_rules.c !ipv6_prefix_equal(&fl6->daddr, &r->dst.addr, r->dst.plen)) fl6 311 net/ipv6/fib6_rules.c if (!ipv6_prefix_equal(&fl6->saddr, &r->src.addr, fl6 318 net/ipv6/fib6_rules.c if (r->tclass && r->tclass != ip6_tclass(fl6->flowlabel)) fl6 321 net/ipv6/fib6_rules.c if (rule->ip_proto && (rule->ip_proto != fl6->flowi6_proto)) fl6 325 net/ipv6/fib6_rules.c !fib_rule_port_inrange(&rule->sport_range, fl6->fl6_sport)) fl6 329 net/ipv6/fib6_rules.c !fib_rule_port_inrange(&rule->dport_range, fl6->fl6_dport)) fl6 22 net/ipv6/fou6.c struct flowi6 *fl6, u8 *protocol, __be16 sport) fl6 35 net/ipv6/fou6.c &fl6->saddr, &fl6->daddr, skb->len); fl6 41 net/ipv6/fou6.c u8 *protocol, struct flowi6 *fl6) fl6 52 net/ipv6/fou6.c fou6_build_udp(skb, e, fl6, protocol, sport); fl6 58 net/ipv6/fou6.c u8 *protocol, struct flowi6 *fl6) fl6 69 net/ipv6/fou6.c fou6_build_udp(skb, e, fl6, protocol, sport); fl6 194 net/ipv6/icmp.c struct flowi6 *fl6) fl6 208 net/ipv6/icmp.c dst = ip6_route_output(net, sk, fl6); fl6 223 net/ipv6/icmp.c peer = inet_getpeer_v6(net->ipv6.peers, &fl6->daddr, 1); fl6 250 net/ipv6/icmp.c void icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, fl6 267 net/ipv6/icmp.c icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, fl6 268 net/ipv6/icmp.c &fl6->daddr, fl6 269 net/ipv6/icmp.c len, fl6->flowi6_proto, fl6 280 net/ipv6/icmp.c icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, fl6 281 net/ipv6/icmp.c &fl6->daddr, fl6 282 net/ipv6/icmp.c len, fl6->flowi6_proto, fl6 335 net/ipv6/icmp.c struct flowi6 *fl6) fl6 341 net/ipv6/icmp.c err = ip6_dst_lookup(net, sk, &dst, fl6); fl6 349 net/ipv6/icmp.c if (ipv6_anycast_destination(dst, &fl6->daddr)) { fl6 358 net/ipv6/icmp.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), sk, 0); fl6 434 net/ipv6/icmp.c struct flowi6 fl6; fl6 519 net/ipv6/icmp.c memset(&fl6, 0, sizeof(fl6)); fl6 520 net/ipv6/icmp.c fl6.flowi6_proto = IPPROTO_ICMPV6; fl6 521 net/ipv6/icmp.c fl6.daddr = hdr->saddr; fl6 525 net/ipv6/icmp.c fl6.saddr = *saddr; fl6 526 net/ipv6/icmp.c fl6.flowi6_mark = mark; fl6 527 net/ipv6/icmp.c fl6.flowi6_oif = iif; fl6 528 net/ipv6/icmp.c fl6.fl6_icmp_type = type; fl6 529 net/ipv6/icmp.c fl6.fl6_icmp_code = code; fl6 530 net/ipv6/icmp.c fl6.flowi6_uid = sock_net_uid(net, NULL); fl6 531 net/ipv6/icmp.c fl6.mp_hash = rt6_multipath_hash(net, &fl6, skb, NULL); fl6 532 net/ipv6/icmp.c security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); fl6 541 net/ipv6/icmp.c if (!icmpv6_xrlim_allow(sk, type, &fl6)) fl6 549 net/ipv6/icmp.c if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) fl6 550 net/ipv6/icmp.c fl6.flowi6_oif = np->mcast_oif; fl6 551 net/ipv6/icmp.c else if (!fl6.flowi6_oif) fl6 552 net/ipv6/icmp.c fl6.flowi6_oif = np->ucast_oif; fl6 555 net/ipv6/icmp.c fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); fl6 557 net/ipv6/icmp.c dst = icmpv6_route_lookup(net, skb, sk, &fl6); fl6 561 net/ipv6/icmp.c ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); fl6 581 net/ipv6/icmp.c &ipc6, &fl6, (struct rt6_info *)dst, fl6 586 net/ipv6/icmp.c icmpv6_push_pending_frames(sk, &fl6, &tmp_hdr, fl6 681 net/ipv6/icmp.c struct flowi6 fl6; fl6 705 net/ipv6/icmp.c memset(&fl6, 0, sizeof(fl6)); fl6 707 net/ipv6/icmp.c fl6.flowlabel = ip6_flowlabel(ipv6_hdr(skb)); fl6 709 net/ipv6/icmp.c fl6.flowi6_proto = IPPROTO_ICMPV6; fl6 710 net/ipv6/icmp.c fl6.daddr = ipv6_hdr(skb)->saddr; fl6 712 net/ipv6/icmp.c fl6.saddr = *saddr; fl6 713 net/ipv6/icmp.c fl6.flowi6_oif = icmp6_iif(skb); fl6 714 net/ipv6/icmp.c fl6.fl6_icmp_type = ICMPV6_ECHO_REPLY; fl6 715 net/ipv6/icmp.c fl6.flowi6_mark = mark; fl6 716 net/ipv6/icmp.c fl6.flowi6_uid = sock_net_uid(net, NULL); fl6 717 net/ipv6/icmp.c security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); fl6 726 net/ipv6/icmp.c if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) fl6 727 net/ipv6/icmp.c fl6.flowi6_oif = np->mcast_oif; fl6 728 net/ipv6/icmp.c else if (!fl6.flowi6_oif) fl6 729 net/ipv6/icmp.c fl6.flowi6_oif = np->ucast_oif; fl6 731 net/ipv6/icmp.c if (ip6_dst_lookup(net, sk, &dst, &fl6)) fl6 733 net/ipv6/icmp.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), sk, 0); fl6 739 net/ipv6/icmp.c !icmpv6_xrlim_allow(sk, ICMPV6_ECHO_REPLY, &fl6)) fl6 749 net/ipv6/icmp.c ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); fl6 754 net/ipv6/icmp.c sizeof(struct icmp6hdr), &ipc6, &fl6, fl6 759 net/ipv6/icmp.c icmpv6_push_pending_frames(sk, &fl6, &tmp_hdr, fl6 957 net/ipv6/icmp.c void icmpv6_flow_init(struct sock *sk, struct flowi6 *fl6, fl6 963 net/ipv6/icmp.c memset(fl6, 0, sizeof(*fl6)); fl6 964 net/ipv6/icmp.c fl6->saddr = *saddr; fl6 965 net/ipv6/icmp.c fl6->daddr = *daddr; fl6 966 net/ipv6/icmp.c fl6->flowi6_proto = IPPROTO_ICMPV6; fl6 967 net/ipv6/icmp.c fl6->fl6_icmp_type = type; fl6 968 net/ipv6/icmp.c fl6->fl6_icmp_code = 0; fl6 969 net/ipv6/icmp.c fl6->flowi6_oif = oif; fl6 970 net/ipv6/icmp.c security_sk_classify_flow(sk, flowi6_to_flowi(fl6)); fl6 64 net/ipv6/ila/ila_lwt.c struct flowi6 fl6; fl6 70 net/ipv6/ila/ila_lwt.c memset(&fl6, 0, sizeof(fl6)); fl6 71 net/ipv6/ila/ila_lwt.c fl6.flowi6_oif = orig_dst->dev->ifindex; fl6 72 net/ipv6/ila/ila_lwt.c fl6.flowi6_iif = LOOPBACK_IFINDEX; fl6 73 net/ipv6/ila/ila_lwt.c fl6.daddr = *rt6_nexthop((struct rt6_info *)orig_dst, fl6 76 net/ipv6/ila/ila_lwt.c dst = ip6_route_output(net, NULL, &fl6); fl6 83 net/ipv6/ila/ila_lwt.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); fl6 90 net/ipv6/ila/ila_lwt.c dst_cache_set_ip6(&ilwt->dst_cache, dst, &fl6.saddr); fl6 28 net/ipv6/inet6_connection_sock.c struct flowi6 *fl6, fl6 37 net/ipv6/inet6_connection_sock.c memset(fl6, 0, sizeof(*fl6)); fl6 38 net/ipv6/inet6_connection_sock.c fl6->flowi6_proto = proto; fl6 39 net/ipv6/inet6_connection_sock.c fl6->daddr = ireq->ir_v6_rmt_addr; fl6 41 net/ipv6/inet6_connection_sock.c final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); fl6 43 net/ipv6/inet6_connection_sock.c fl6->saddr = ireq->ir_v6_loc_addr; fl6 44 net/ipv6/inet6_connection_sock.c fl6->flowi6_oif = ireq->ir_iif; fl6 45 net/ipv6/inet6_connection_sock.c fl6->flowi6_mark = ireq->ir_mark; fl6 46 net/ipv6/inet6_connection_sock.c fl6->fl6_dport = ireq->ir_rmt_port; fl6 47 net/ipv6/inet6_connection_sock.c fl6->fl6_sport = htons(ireq->ir_num); fl6 48 net/ipv6/inet6_connection_sock.c fl6->flowi6_uid = sk->sk_uid; fl6 49 net/ipv6/inet6_connection_sock.c security_req_classify_flow(req, flowi6_to_flowi(fl6)); fl6 51 net/ipv6/inet6_connection_sock.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_p); fl6 80 net/ipv6/inet6_connection_sock.c struct flowi6 *fl6) fl6 87 net/ipv6/inet6_connection_sock.c memset(fl6, 0, sizeof(*fl6)); fl6 88 net/ipv6/inet6_connection_sock.c fl6->flowi6_proto = sk->sk_protocol; fl6 89 net/ipv6/inet6_connection_sock.c fl6->daddr = sk->sk_v6_daddr; fl6 90 net/ipv6/inet6_connection_sock.c fl6->saddr = np->saddr; fl6 91 net/ipv6/inet6_connection_sock.c fl6->flowlabel = np->flow_label; fl6 92 net/ipv6/inet6_connection_sock.c IP6_ECN_flow_xmit(sk, fl6->flowlabel); fl6 93 net/ipv6/inet6_connection_sock.c fl6->flowi6_oif = sk->sk_bound_dev_if; fl6 94 net/ipv6/inet6_connection_sock.c fl6->flowi6_mark = sk->sk_mark; fl6 95 net/ipv6/inet6_connection_sock.c fl6->fl6_sport = inet->inet_sport; fl6 96 net/ipv6/inet6_connection_sock.c fl6->fl6_dport = inet->inet_dport; fl6 97 net/ipv6/inet6_connection_sock.c fl6->flowi6_uid = sk->sk_uid; fl6 98 net/ipv6/inet6_connection_sock.c security_sk_classify_flow(sk, flowi6_to_flowi(fl6)); fl6 101 net/ipv6/inet6_connection_sock.c final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); fl6 106 net/ipv6/inet6_connection_sock.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_p); fl6 117 net/ipv6/inet6_connection_sock.c struct flowi6 fl6; fl6 121 net/ipv6/inet6_connection_sock.c dst = inet6_csk_route_socket(sk, &fl6); fl6 133 net/ipv6/inet6_connection_sock.c fl6.daddr = sk->sk_v6_daddr; fl6 135 net/ipv6/inet6_connection_sock.c res = ip6_xmit(sk, skb, &fl6, sk->sk_mark, rcu_dereference(np->opt), fl6 144 net/ipv6/inet6_connection_sock.c struct flowi6 fl6; fl6 145 net/ipv6/inet6_connection_sock.c struct dst_entry *dst = inet6_csk_route_socket(sk, &fl6); fl6 151 net/ipv6/inet6_connection_sock.c dst = inet6_csk_route_socket(sk, &fl6); fl6 311 net/ipv6/ip6_fib.c struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, fl6 317 net/ipv6/ip6_fib.c rt = lookup(net, net->ipv6.fib6_main_tbl, fl6, skb, flags); fl6 329 net/ipv6/ip6_fib.c int fib6_lookup(struct net *net, int oif, struct flowi6 *fl6, fl6 332 net/ipv6/ip6_fib.c return fib6_table_lookup(net, net->ipv6.fib6_main_tbl, oif, fl6, fl6 634 net/ipv6/ip6_gre.c struct flowi6 *fl6, __u8 *dsfield, fl6 643 net/ipv6/ip6_gre.c memcpy(fl6, &t->fl.u.ip6, sizeof(*fl6)); fl6 651 net/ipv6/ip6_gre.c fl6->flowi6_mark = skb->mark; fl6 653 net/ipv6/ip6_gre.c fl6->flowi6_mark = t->parms.fwmark; fl6 655 net/ipv6/ip6_gre.c fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6 660 net/ipv6/ip6_gre.c struct flowi6 *fl6, __u8 *dsfield, fl6 685 net/ipv6/ip6_gre.c memcpy(fl6, &t->fl.u.ip6, sizeof(*fl6)); fl6 693 net/ipv6/ip6_gre.c fl6->flowlabel |= ip6_flowlabel(ipv6h); fl6 696 net/ipv6/ip6_gre.c fl6->flowi6_mark = skb->mark; fl6 698 net/ipv6/ip6_gre.c fl6->flowi6_mark = t->parms.fwmark; fl6 700 net/ipv6/ip6_gre.c fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6 707 net/ipv6/ip6_gre.c struct flowi6 *fl6, int encap_limit, fl6 717 net/ipv6/ip6_gre.c fl6->daddr = ((struct ipv6hdr *)skb->data)->daddr; fl6 719 net/ipv6/ip6_gre.c fl6->daddr = tunnel->parms.raddr; fl6 739 net/ipv6/ip6_gre.c memset(fl6, 0, sizeof(*fl6)); fl6 740 net/ipv6/ip6_gre.c fl6->flowi6_proto = IPPROTO_GRE; fl6 741 net/ipv6/ip6_gre.c fl6->daddr = key->u.ipv6.dst; fl6 742 net/ipv6/ip6_gre.c fl6->flowlabel = key->label; fl6 743 net/ipv6/ip6_gre.c fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6 765 net/ipv6/ip6_gre.c return ip6_tnl_xmit(skb, dev, dsfield, fl6, encap_limit, pmtu, fl6 773 net/ipv6/ip6_gre.c struct flowi6 fl6; fl6 781 net/ipv6/ip6_gre.c prepare_ip6gre_xmit_ipv4(skb, dev, &fl6, fl6 788 net/ipv6/ip6_gre.c err = __gre6_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, fl6 806 net/ipv6/ip6_gre.c struct flowi6 fl6; fl6 815 net/ipv6/ip6_gre.c prepare_ip6gre_xmit_ipv6(skb, dev, &fl6, &dsfield, &encap_limit)) fl6 821 net/ipv6/ip6_gre.c err = __gre6_xmit(skb, dev, dsfield, &fl6, encap_limit, fl6 856 net/ipv6/ip6_gre.c struct flowi6 fl6; fl6 864 net/ipv6/ip6_gre.c memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6)); fl6 870 net/ipv6/ip6_gre.c err = __gre6_xmit(skb, dev, 0, &fl6, encap_limit, &mtu, skb->protocol); fl6 921 net/ipv6/ip6_gre.c struct flowi6 fl6; fl6 974 net/ipv6/ip6_gre.c memset(&fl6, 0, sizeof(fl6)); fl6 975 net/ipv6/ip6_gre.c fl6.flowi6_proto = IPPROTO_GRE; fl6 976 net/ipv6/ip6_gre.c fl6.daddr = key->u.ipv6.dst; fl6 977 net/ipv6/ip6_gre.c fl6.flowlabel = key->label; fl6 978 net/ipv6/ip6_gre.c fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6 1006 net/ipv6/ip6_gre.c prepare_ip6gre_xmit_ipv4(skb, dev, &fl6, fl6 1012 net/ipv6/ip6_gre.c if (prepare_ip6gre_xmit_ipv6(skb, dev, &fl6, fl6 1017 net/ipv6/ip6_gre.c memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6)); fl6 1033 net/ipv6/ip6_gre.c fl6.daddr = t->parms.raddr; fl6 1045 net/ipv6/ip6_gre.c err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, fl6 1073 net/ipv6/ip6_gre.c struct flowi6 *fl6 = &t->fl.u.ip6; fl6 1081 net/ipv6/ip6_gre.c fl6->saddr = p->laddr; fl6 1082 net/ipv6/ip6_gre.c fl6->daddr = p->raddr; fl6 1083 net/ipv6/ip6_gre.c fl6->flowi6_oif = p->link; fl6 1084 net/ipv6/ip6_gre.c fl6->flowlabel = 0; fl6 1085 net/ipv6/ip6_gre.c fl6->flowi6_proto = IPPROTO_GRE; fl6 1088 net/ipv6/ip6_gre.c fl6->flowlabel |= IPV6_TCLASS_MASK & p->flowinfo; fl6 1090 net/ipv6/ip6_gre.c fl6->flowlabel |= IPV6_FLOWLABEL_MASK & p->flowinfo; fl6 195 net/ipv6/ip6_output.c int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, fl6 200 net/ipv6/ip6_output.c struct in6_addr *first_hop = &fl6->daddr; fl6 204 net/ipv6/ip6_output.c u8 proto = fl6->flowi6_proto; fl6 235 net/ipv6/ip6_output.c &fl6->saddr); fl6 250 net/ipv6/ip6_output.c ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, fl6 251 net/ipv6/ip6_output.c ip6_autoflowlabel(net, np), fl6)); fl6 257 net/ipv6/ip6_output.c hdr->saddr = fl6->saddr; fl6 288 net/ipv6/ip6_output.c ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); fl6 955 net/ipv6/ip6_output.c const struct flowi6 *fl6) fl6 986 net/ipv6/ip6_output.c if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || fl6 988 net/ipv6/ip6_output.c ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || fl6 990 net/ipv6/ip6_output.c (!(fl6->flowi6_flags & FLOWI_FLAG_SKIP_NH_OIF) && fl6 991 net/ipv6/ip6_output.c (fl6->flowi6_oif && fl6->flowi6_oif != dst->dev->ifindex))) { fl6 1001 net/ipv6/ip6_output.c struct dst_entry **dst, struct flowi6 *fl6) fl6 1019 net/ipv6/ip6_output.c if (ipv6_addr_any(&fl6->saddr) && (!*dst || !(*dst)->error)) { fl6 1025 net/ipv6/ip6_output.c *dst = ip6_route_output(net, sk, fl6); fl6 1030 net/ipv6/ip6_output.c err = ip6_route_get_saddr(net, from, &fl6->daddr, fl6 1032 net/ipv6/ip6_output.c &fl6->saddr); fl6 1047 net/ipv6/ip6_output.c if (fl6->flowi6_oif) fl6 1052 net/ipv6/ip6_output.c *dst = ip6_route_output_flags(net, sk, fl6, flags); fl6 1070 net/ipv6/ip6_output.c rt6_nexthop(rt, &fl6->daddr)); fl6 1079 net/ipv6/ip6_output.c ifp = ipv6_get_ifaddr(net, &fl6->saddr, fl6 1092 net/ipv6/ip6_output.c memcpy(&fl_gw6, fl6, sizeof(struct flowi6)); fl6 1101 net/ipv6/ip6_output.c if (ipv6_addr_v4mapped(&fl6->saddr) && fl6 1102 net/ipv6/ip6_output.c !(ipv6_addr_v4mapped(&fl6->daddr) || ipv6_addr_any(&fl6->daddr))) { fl6 1129 net/ipv6/ip6_output.c struct flowi6 *fl6) fl6 1132 net/ipv6/ip6_output.c return ip6_dst_lookup_tail(net, sk, dst, fl6); fl6 1147 net/ipv6/ip6_output.c struct dst_entry *ip6_dst_lookup_flow(struct net *net, const struct sock *sk, struct flowi6 *fl6, fl6 1153 net/ipv6/ip6_output.c err = ip6_dst_lookup_tail(net, sk, &dst, fl6); fl6 1157 net/ipv6/ip6_output.c fl6->daddr = *final_dst; fl6 1159 net/ipv6/ip6_output.c return xfrm_lookup_route(net, dst, flowi6_to_flowi(fl6), sk, 0); fl6 1181 net/ipv6/ip6_output.c struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, fl6 1187 net/ipv6/ip6_output.c dst = ip6_sk_dst_check(sk, dst, fl6); fl6 1191 net/ipv6/ip6_output.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_dst); fl6 1193 net/ipv6/ip6_output.c ip6_sk_dst_store_flow(sk, dst_clone(dst), fl6); fl6 1237 net/ipv6/ip6_output.c struct rt6_info *rt, struct flowi6 *fl6) fl6 1282 net/ipv6/ip6_output.c cork->fl.u.ip6 = *fl6; fl6 1313 net/ipv6/ip6_output.c struct flowi6 *fl6, fl6 1376 net/ipv6/ip6_output.c ipv6_local_rxpmtu(sk, fl6, mtu - headersize + fl6 1389 net/ipv6/ip6_output.c ipv6_local_error(sk, EMSGSIZE, fl6, pmtu); fl6 1660 net/ipv6/ip6_output.c struct ipcm6_cookie *ipc6, struct flowi6 *fl6, fl6 1675 net/ipv6/ip6_output.c ipc6, rt, fl6); fl6 1683 net/ipv6/ip6_output.c fl6 = &inet->cork.fl.u.ip6; fl6 1687 net/ipv6/ip6_output.c return __ip6_append_data(sk, fl6, &sk->sk_write_queue, &inet->cork.base, fl6 1726 net/ipv6/ip6_output.c struct flowi6 *fl6 = &cork->fl.u.ip6; fl6 1727 net/ipv6/ip6_output.c unsigned char proto = fl6->flowi6_proto; fl6 1751 net/ipv6/ip6_output.c *final_dst = fl6->daddr; fl6 1756 net/ipv6/ip6_output.c ipv6_push_nfrag_opts(skb, opt, &proto, &final_dst, &fl6->saddr); fl6 1763 net/ipv6/ip6_output.c ip6_make_flowlabel(net, skb, fl6->flowlabel, fl6 1764 net/ipv6/ip6_output.c ip6_autoflowlabel(net, np), fl6)); fl6 1767 net/ipv6/ip6_output.c hdr->saddr = fl6->saddr; fl6 1847 net/ipv6/ip6_output.c struct ipcm6_cookie *ipc6, struct flowi6 *fl6, fl6 1866 net/ipv6/ip6_output.c err = ip6_setup_cork(sk, cork, &v6_cork, ipc6, rt, fl6); fl6 1874 net/ipv6/ip6_output.c err = __ip6_append_data(sk, fl6, &queue, &cork->base, &v6_cork, fl6 1033 net/ipv6/ip6_tunnel.c struct flowi6 *fl6, int encap_limit, __u32 *pmtu, fl6 1079 net/ipv6/ip6_tunnel.c memcpy(&fl6->daddr, addr6, sizeof(fl6->daddr)); fl6 1094 net/ipv6/ip6_tunnel.c if (!ip6_tnl_xmit_ctl(t, &fl6->saddr, &fl6->daddr)) fl6 1100 net/ipv6/ip6_tunnel.c fl6->flowlabel = ip6_make_flowinfo(dsfield, fl6->flowlabel); fl6 1102 net/ipv6/ip6_tunnel.c dst = ip6_route_output(net, NULL, fl6); fl6 1106 net/ipv6/ip6_tunnel.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), NULL, 0); fl6 1112 net/ipv6/ip6_tunnel.c if (t->parms.collect_md && ipv6_addr_any(&fl6->saddr) && fl6 1114 net/ipv6/ip6_tunnel.c &fl6->daddr, 0, &fl6->saddr)) fl6 1179 net/ipv6/ip6_tunnel.c dst_cache_set_ip6(&t->dst_cache, ndst, &fl6->saddr); fl6 1200 net/ipv6/ip6_tunnel.c err = ip6_tnl_encap(skb, t, &proto, fl6); fl6 1213 net/ipv6/ip6_tunnel.c ip6_make_flowlabel(net, skb, fl6->flowlabel, true, fl6)); fl6 1216 net/ipv6/ip6_tunnel.c ipv6h->saddr = fl6->saddr; fl6 1217 net/ipv6/ip6_tunnel.c ipv6h->daddr = fl6->daddr; fl6 1235 net/ipv6/ip6_tunnel.c struct flowi6 fl6; fl6 1257 net/ipv6/ip6_tunnel.c memset(&fl6, 0, sizeof(fl6)); fl6 1258 net/ipv6/ip6_tunnel.c fl6.flowi6_proto = IPPROTO_IPIP; fl6 1259 net/ipv6/ip6_tunnel.c fl6.saddr = key->u.ipv6.src; fl6 1260 net/ipv6/ip6_tunnel.c fl6.daddr = key->u.ipv6.dst; fl6 1261 net/ipv6/ip6_tunnel.c fl6.flowlabel = key->label; fl6 1267 net/ipv6/ip6_tunnel.c memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6)); fl6 1268 net/ipv6/ip6_tunnel.c fl6.flowi6_proto = IPPROTO_IPIP; fl6 1275 net/ipv6/ip6_tunnel.c fl6.flowi6_mark = skb->mark; fl6 1277 net/ipv6/ip6_tunnel.c fl6.flowi6_mark = t->parms.fwmark; fl6 1280 net/ipv6/ip6_tunnel.c fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6 1288 net/ipv6/ip6_tunnel.c err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, fl6 1308 net/ipv6/ip6_tunnel.c struct flowi6 fl6; fl6 1329 net/ipv6/ip6_tunnel.c memset(&fl6, 0, sizeof(fl6)); fl6 1330 net/ipv6/ip6_tunnel.c fl6.flowi6_proto = IPPROTO_IPV6; fl6 1331 net/ipv6/ip6_tunnel.c fl6.saddr = key->u.ipv6.src; fl6 1332 net/ipv6/ip6_tunnel.c fl6.daddr = key->u.ipv6.dst; fl6 1333 net/ipv6/ip6_tunnel.c fl6.flowlabel = key->label; fl6 1353 net/ipv6/ip6_tunnel.c memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6)); fl6 1354 net/ipv6/ip6_tunnel.c fl6.flowi6_proto = IPPROTO_IPV6; fl6 1361 net/ipv6/ip6_tunnel.c fl6.flowlabel |= ip6_flowlabel(ipv6h); fl6 1363 net/ipv6/ip6_tunnel.c fl6.flowi6_mark = skb->mark; fl6 1365 net/ipv6/ip6_tunnel.c fl6.flowi6_mark = t->parms.fwmark; fl6 1368 net/ipv6/ip6_tunnel.c fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6 1376 net/ipv6/ip6_tunnel.c err = ip6_tnl_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, fl6 1424 net/ipv6/ip6_tunnel.c struct flowi6 *fl6 = &t->fl.u.ip6; fl6 1431 net/ipv6/ip6_tunnel.c fl6->saddr = p->laddr; fl6 1432 net/ipv6/ip6_tunnel.c fl6->daddr = p->raddr; fl6 1433 net/ipv6/ip6_tunnel.c fl6->flowi6_oif = p->link; fl6 1434 net/ipv6/ip6_tunnel.c fl6->flowlabel = 0; fl6 1437 net/ipv6/ip6_tunnel.c fl6->flowlabel |= IPV6_TCLASS_MASK & p->flowinfo; fl6 1439 net/ipv6/ip6_tunnel.c fl6->flowlabel |= IPV6_FLOWLABEL_MASK & p->flowinfo; fl6 524 net/ipv6/ip6mr.c struct flowi6 fl6 = { fl6 551 net/ipv6/ip6mr.c if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) fl6 593 net/ipv6/ip6mr.c struct flowi6 fl6 = { fl6 602 net/ipv6/ip6mr.c if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) fl6 1607 net/ipv6/ip6mr.c struct flowi6 fl6 = { fl6 1613 net/ipv6/ip6mr.c if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) fl6 2003 net/ipv6/ip6mr.c struct flowi6 fl6; fl6 2021 net/ipv6/ip6mr.c fl6 = (struct flowi6) { fl6 2026 net/ipv6/ip6mr.c dst = ip6_route_output(net, NULL, &fl6); fl6 2188 net/ipv6/ip6mr.c struct flowi6 fl6 = { fl6 2207 net/ipv6/ip6mr.c err = ip6mr_fib_lookup(net, &fl6, &mrt); fl6 506 net/ipv6/ipv6_sockglue.c struct flowi6 fl6; fl6 509 net/ipv6/ipv6_sockglue.c memset(&fl6, 0, sizeof(fl6)); fl6 510 net/ipv6/ipv6_sockglue.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 511 net/ipv6/ipv6_sockglue.c fl6.flowi6_mark = sk->sk_mark; fl6 539 net/ipv6/ipv6_sockglue.c retv = ip6_datagram_send_ctl(net, sk, &msg, &fl6, &ipc6); fl6 1651 net/ipv6/mcast.c struct flowi6 fl6; fl6 1668 net/ipv6/mcast.c icmpv6_flow_init(net->ipv6.igmp_sk, &fl6, ICMPV6_MLD2_REPORT, fl6 1671 net/ipv6/mcast.c dst = icmp6_dst_alloc(skb->dev, &fl6); fl6 1996 net/ipv6/mcast.c struct flowi6 fl6; fl6 2049 net/ipv6/mcast.c icmpv6_flow_init(sk, &fl6, type, fl6 2052 net/ipv6/mcast.c dst = icmp6_dst_alloc(skb->dev, &fl6); fl6 201 net/ipv6/mip6.c const struct flowi6 *fl6 = &fl->u.ip6; fl6 208 net/ipv6/mip6.c if (unlikely(fl6->flowi6_proto == IPPROTO_MH && fl6 209 net/ipv6/mip6.c fl6->fl6_mh_type <= IP6_MH_TYPE_MAX)) fl6 234 net/ipv6/mip6.c sel.proto = fl6->flowi6_proto; fl6 235 net/ipv6/mip6.c sel.dport = xfrm_flowi_dport(fl, &fl6->uli); fl6 238 net/ipv6/mip6.c sel.sport = xfrm_flowi_sport(fl, &fl6->uli); fl6 241 net/ipv6/mip6.c sel.ifindex = fl6->flowi6_oif; fl6 481 net/ipv6/ndisc.c struct flowi6 fl6; fl6 484 net/ipv6/ndisc.c icmpv6_flow_init(sk, &fl6, type, saddr, daddr, oif); fl6 485 net/ipv6/ndisc.c dst = icmp6_dst_alloc(skb->dev, &fl6); fl6 1588 net/ipv6/ndisc.c struct flowi6 fl6; fl6 1613 net/ipv6/ndisc.c icmpv6_flow_init(sk, &fl6, NDISC_REDIRECT, fl6 1616 net/ipv6/ndisc.c dst = ip6_route_output(net, NULL, &fl6); fl6 1621 net/ipv6/ndisc.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); fl6 31 net/ipv6/netfilter.c struct flowi6 fl6 = { fl6 41 net/ipv6/netfilter.c dst = ip6_route_output(net, sk, &fl6); fl6 57 net/ipv6/netfilter.c xfrm_decode_session(skb, flowi6_to_flowi(&fl6), AF_INET6) == 0) { fl6 59 net/ipv6/netfilter.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), sk, 0); fl6 38 net/ipv6/netfilter/ip6t_rpfilter.c struct flowi6 fl6 = { fl6 47 net/ipv6/netfilter/ip6t_rpfilter.c memcpy(&fl6.saddr, &iph->daddr, sizeof(struct in6_addr)); fl6 53 net/ipv6/netfilter/ip6t_rpfilter.c fl6.flowi6_mark = flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; fl6 57 net/ipv6/netfilter/ip6t_rpfilter.c fl6.flowi6_oif = dev->ifindex; fl6 61 net/ipv6/netfilter/ip6t_rpfilter.c fl6.flowi6_oif = dev->ifindex; fl6 63 net/ipv6/netfilter/ip6t_rpfilter.c rt = (void *)ip6_route_lookup(net, &fl6, skb, lookup_flags); fl6 24 net/ipv6/netfilter/nf_dup_ipv6.c struct flowi6 fl6; fl6 26 net/ipv6/netfilter/nf_dup_ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 28 net/ipv6/netfilter/nf_dup_ipv6.c fl6.flowi6_oif = oif; fl6 30 net/ipv6/netfilter/nf_dup_ipv6.c fl6.daddr = *gw; fl6 31 net/ipv6/netfilter/nf_dup_ipv6.c fl6.flowlabel = (__force __be32)(((iph->flow_lbl[0] & 0xF) << 16) | fl6 33 net/ipv6/netfilter/nf_dup_ipv6.c fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; fl6 34 net/ipv6/netfilter/nf_dup_ipv6.c dst = ip6_route_output(net, NULL, &fl6); fl6 139 net/ipv6/netfilter/nf_reject_ipv6.c struct flowi6 fl6; fl6 151 net/ipv6/netfilter/nf_reject_ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 152 net/ipv6/netfilter/nf_reject_ipv6.c fl6.flowi6_proto = IPPROTO_TCP; fl6 153 net/ipv6/netfilter/nf_reject_ipv6.c fl6.saddr = oip6h->daddr; fl6 154 net/ipv6/netfilter/nf_reject_ipv6.c fl6.daddr = oip6h->saddr; fl6 155 net/ipv6/netfilter/nf_reject_ipv6.c fl6.fl6_sport = otcph->dest; fl6 156 net/ipv6/netfilter/nf_reject_ipv6.c fl6.fl6_dport = otcph->source; fl6 157 net/ipv6/netfilter/nf_reject_ipv6.c fl6.flowi6_oif = l3mdev_master_ifindex(skb_dst(oldskb)->dev); fl6 158 net/ipv6/netfilter/nf_reject_ipv6.c fl6.flowi6_mark = IP6_REPLY_MARK(net, oldskb->mark); fl6 159 net/ipv6/netfilter/nf_reject_ipv6.c security_skb_classify_flow(oldskb, flowi6_to_flowi(&fl6)); fl6 160 net/ipv6/netfilter/nf_reject_ipv6.c dst = ip6_route_output(net, NULL, &fl6); fl6 165 net/ipv6/netfilter/nf_reject_ipv6.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); fl6 182 net/ipv6/netfilter/nf_reject_ipv6.c nskb->mark = fl6.flowi6_mark; fl6 22 net/ipv6/netfilter/nft_fib_ipv6.c static int nft_fib6_flowi_init(struct flowi6 *fl6, const struct nft_fib *priv, fl6 30 net/ipv6/netfilter/nft_fib_ipv6.c fl6->daddr = iph->daddr; fl6 31 net/ipv6/netfilter/nft_fib_ipv6.c fl6->saddr = iph->saddr; fl6 33 net/ipv6/netfilter/nft_fib_ipv6.c fl6->daddr = iph->saddr; fl6 34 net/ipv6/netfilter/nft_fib_ipv6.c fl6->saddr = iph->daddr; fl6 37 net/ipv6/netfilter/nft_fib_ipv6.c if (ipv6_addr_type(&fl6->daddr) & IPV6_ADDR_LINKLOCAL) { fl6 39 net/ipv6/netfilter/nft_fib_ipv6.c fl6->flowi6_oif = get_ifindex(dev ? dev : pkt->skb->dev); fl6 42 net/ipv6/netfilter/nft_fib_ipv6.c if (ipv6_addr_type(&fl6->saddr) & IPV6_ADDR_UNICAST) fl6 46 net/ipv6/netfilter/nft_fib_ipv6.c fl6->flowi6_mark = pkt->skb->mark; fl6 48 net/ipv6/netfilter/nft_fib_ipv6.c fl6->flowlabel = (*(__be32 *)iph) & IPV6_FLOWINFO_MASK; fl6 60 net/ipv6/netfilter/nft_fib_ipv6.c struct flowi6 fl6 = { fl6 71 net/ipv6/netfilter/nft_fib_ipv6.c nft_fib6_flowi_init(&fl6, priv, pkt, dev, iph); fl6 73 net/ipv6/netfilter/nft_fib_ipv6.c if (dev && nf_ipv6_chk_addr(nft_net(pkt), &fl6.daddr, dev, true)) fl6 77 net/ipv6/netfilter/nft_fib_ipv6.c flowi6_to_flowi(&fl6), false); fl6 87 net/ipv6/netfilter/nft_fib_ipv6.c if (ipv6_anycast_destination((struct dst_entry *)rt, &fl6.daddr)) fl6 97 net/ipv6/netfilter/nft_fib_ipv6.c addrtype = ipv6_addr_type(&fl6.daddr); fl6 146 net/ipv6/netfilter/nft_fib_ipv6.c struct flowi6 fl6 = { fl6 164 net/ipv6/netfilter/nft_fib_ipv6.c lookup_flags = nft_fib6_flowi_init(&fl6, priv, pkt, oif, iph); fl6 173 net/ipv6/netfilter/nft_fib_ipv6.c rt = (void *)ip6_route_lookup(nft_net(pkt), &fl6, pkt->skb, fl6 55 net/ipv6/ping.c struct flowi6 fl6; fl6 104 net/ipv6/ping.c memset(&fl6, 0, sizeof(fl6)); fl6 106 net/ipv6/ping.c fl6.flowi6_proto = IPPROTO_ICMPV6; fl6 107 net/ipv6/ping.c fl6.saddr = np->saddr; fl6 108 net/ipv6/ping.c fl6.daddr = *daddr; fl6 109 net/ipv6/ping.c fl6.flowi6_oif = oif; fl6 110 net/ipv6/ping.c fl6.flowi6_mark = sk->sk_mark; fl6 111 net/ipv6/ping.c fl6.flowi6_uid = sk->sk_uid; fl6 112 net/ipv6/ping.c fl6.fl6_icmp_type = user_icmph.icmp6_type; fl6 113 net/ipv6/ping.c fl6.fl6_icmp_code = user_icmph.icmp6_code; fl6 114 net/ipv6/ping.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 117 net/ipv6/ping.c fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); fl6 119 net/ipv6/ping.c dst = ip6_sk_dst_lookup_flow(sk, &fl6, daddr, false); fl6 124 net/ipv6/ping.c if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) fl6 125 net/ipv6/ping.c fl6.flowi6_oif = np->mcast_oif; fl6 126 net/ipv6/ping.c else if (!fl6.flowi6_oif) fl6 127 net/ipv6/ping.c fl6.flowi6_oif = np->ucast_oif; fl6 138 net/ipv6/ping.c ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); fl6 142 net/ipv6/ping.c 0, &ipc6, &fl6, rt, fl6 150 net/ipv6/ping.c icmpv6_push_pending_frames(sk, &fl6, fl6 539 net/ipv6/raw.c static int rawv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, fl6 604 net/ipv6/raw.c csum = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, fl6 605 net/ipv6/raw.c total_len, fl6->flowi6_proto, tmp_csum); fl6 607 net/ipv6/raw.c if (csum == 0 && fl6->flowi6_proto == IPPROTO_UDP) fl6 619 net/ipv6/raw.c struct flowi6 *fl6, struct dst_entry **dstp, fl6 632 net/ipv6/raw.c ipv6_local_error(sk, EMSGSIZE, fl6, rt->dst.dev->mtu); fl6 714 net/ipv6/raw.c static int rawv6_probe_proto_opt(struct raw6_frag_vec *rfv, struct flowi6 *fl6) fl6 717 net/ipv6/raw.c switch (fl6->flowi6_proto) { fl6 722 net/ipv6/raw.c fl6->fl6_icmp_type = rfv->c[0]; fl6 723 net/ipv6/raw.c fl6->fl6_icmp_code = rfv->c[1]; fl6 730 net/ipv6/raw.c fl6->fl6_mh_type = rfv->c[2]; fl6 779 net/ipv6/raw.c struct flowi6 fl6; fl6 806 net/ipv6/raw.c memset(&fl6, 0, sizeof(fl6)); fl6 808 net/ipv6/raw.c fl6.flowi6_mark = sk->sk_mark; fl6 809 net/ipv6/raw.c fl6.flowi6_uid = sk->sk_uid; fl6 835 net/ipv6/raw.c fl6.flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; fl6 836 net/ipv6/raw.c if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { fl6 837 net/ipv6/raw.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 854 net/ipv6/raw.c fl6.flowi6_oif = sin6->sin6_scope_id; fl6 861 net/ipv6/raw.c fl6.flowlabel = np->flow_label; fl6 864 net/ipv6/raw.c if (fl6.flowi6_oif == 0) fl6 865 net/ipv6/raw.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 873 net/ipv6/raw.c err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6, &ipc6); fl6 878 net/ipv6/raw.c if ((fl6.flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { fl6 879 net/ipv6/raw.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 894 net/ipv6/raw.c fl6.flowi6_proto = proto; fl6 895 net/ipv6/raw.c fl6.flowi6_mark = ipc6.sockc.mark; fl6 900 net/ipv6/raw.c err = rawv6_probe_proto_opt(&rfv, &fl6); fl6 906 net/ipv6/raw.c fl6.daddr = *daddr; fl6 908 net/ipv6/raw.c fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */ fl6 909 net/ipv6/raw.c if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr)) fl6 910 net/ipv6/raw.c fl6.saddr = np->saddr; fl6 912 net/ipv6/raw.c final_p = fl6_update_dst(&fl6, opt, &final); fl6 914 net/ipv6/raw.c if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) fl6 915 net/ipv6/raw.c fl6.flowi6_oif = np->mcast_oif; fl6 916 net/ipv6/raw.c else if (!fl6.flowi6_oif) fl6 917 net/ipv6/raw.c fl6.flowi6_oif = np->ucast_oif; fl6 918 net/ipv6/raw.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 921 net/ipv6/raw.c fl6.flowi6_flags |= FLOWI_FLAG_KNOWN_NH; fl6 926 net/ipv6/raw.c fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); fl6 928 net/ipv6/raw.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 934 net/ipv6/raw.c ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); fl6 944 net/ipv6/raw.c err = rawv6_send_hdrinc(sk, msg, len, &fl6, &dst, fl6 950 net/ipv6/raw.c len, 0, &ipc6, &fl6, (struct rt6_info *)dst, fl6 956 net/ipv6/raw.c err = rawv6_push_pending_frames(sk, &fl6, rp); fl6 967 net/ipv6/raw.c dst_confirm_neigh(dst, &fl6.daddr); fl6 428 net/ipv6/route.c struct flowi6 *fl6, int oif, bool have_oif_match, fl6 440 net/ipv6/route.c if (!fl6->mp_hash && fl6 442 net/ipv6/route.c fl6->mp_hash = rt6_multipath_hash(net, fl6, skb, NULL); fl6 445 net/ipv6/route.c nexthop_path_fib6_result(res, fl6->mp_hash); fl6 449 net/ipv6/route.c if (fl6->mp_hash <= atomic_read(&match->fib6_nh->fib_nh_upper_bound)) fl6 458 net/ipv6/route.c if (fl6->mp_hash > nh_upper_bound) fl6 1214 net/ipv6/route.c struct flowi6 *fl6, fl6 1222 net/ipv6/route.c if (fl6->flowi6_flags & FLOWI_FLAG_SKIP_NH_OIF) fl6 1226 net/ipv6/route.c fn = fib6_node_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); fl6 1232 net/ipv6/route.c rt6_device_match(net, &res, &fl6->saddr, fl6->flowi6_oif, fl6 1236 net/ipv6/route.c fn = fib6_backtrack(fn, &fl6->saddr); fl6 1247 net/ipv6/route.c fib6_select_path(net, &res, fl6, fl6->flowi6_oif, fl6 1248 net/ipv6/route.c fl6->flowi6_oif != 0, skb, flags); fl6 1251 net/ipv6/route.c rt = rt6_find_cached_rt(&res, &fl6->daddr, &fl6->saddr); fl6 1261 net/ipv6/route.c trace_fib6_table_lookup(net, &res, table, fl6); fl6 1268 net/ipv6/route.c struct dst_entry *ip6_route_lookup(struct net *net, struct flowi6 *fl6, fl6 1271 net/ipv6/route.c return fib6_rule_lookup(net, fl6, skb, flags, ip6_pol_route_lookup); fl6 1279 net/ipv6/route.c struct flowi6 fl6 = { fl6 1287 net/ipv6/route.c memcpy(&fl6.saddr, saddr, sizeof(*saddr)); fl6 1291 net/ipv6/route.c dst = fib6_rule_lookup(net, &fl6, skb, flags, ip6_pol_route_lookup); fl6 2181 net/ipv6/route.c struct flowi6 *fl6, struct fib6_result *res, int strict) fl6 2185 net/ipv6/route.c fn = fib6_node_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); fl6 2188 net/ipv6/route.c if (fl6->flowi6_flags & FLOWI_FLAG_SKIP_NH_OIF) fl6 2194 net/ipv6/route.c fn = fib6_backtrack(fn, &fl6->saddr); fl6 2205 net/ipv6/route.c trace_fib6_table_lookup(net, res, table, fl6); fl6 2211 net/ipv6/route.c int oif, struct flowi6 *fl6, fl6 2228 net/ipv6/route.c fib6_table_lookup(net, table, oif, fl6, &res, strict); fl6 2232 net/ipv6/route.c fib6_select_path(net, &res, fl6, oif, false, skb, strict); fl6 2235 net/ipv6/route.c rt = rt6_find_cached_rt(&res, &fl6->daddr, &fl6->saddr); fl6 2238 net/ipv6/route.c } else if (unlikely((fl6->flowi6_flags & FLOWI_FLAG_KNOWN_NH) && fl6 2245 net/ipv6/route.c rt = ip6_rt_cache_alloc(&res, &fl6->daddr, NULL); fl6 2282 net/ipv6/route.c struct flowi6 *fl6, fl6 2286 net/ipv6/route.c return ip6_pol_route(net, table, fl6->flowi6_iif, fl6, skb, flags); fl6 2291 net/ipv6/route.c struct flowi6 *fl6, fl6 2295 net/ipv6/route.c if (rt6_need_strict(&fl6->daddr) && dev->type != ARPHRD_PIMREG) fl6 2298 net/ipv6/route.c return fib6_rule_lookup(net, fl6, skb, flags, ip6_pol_route_input); fl6 2351 net/ipv6/route.c u32 rt6_multipath_hash(const struct net *net, const struct flowi6 *fl6, fl6 2364 net/ipv6/route.c hash_keys.addrs.v6addrs.src = fl6->saddr; fl6 2365 net/ipv6/route.c hash_keys.addrs.v6addrs.dst = fl6->daddr; fl6 2366 net/ipv6/route.c hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); fl6 2367 net/ipv6/route.c hash_keys.basic.ip_proto = fl6->flowi6_proto; fl6 2394 net/ipv6/route.c hash_keys.addrs.v6addrs.src = fl6->saddr; fl6 2395 net/ipv6/route.c hash_keys.addrs.v6addrs.dst = fl6->daddr; fl6 2396 net/ipv6/route.c hash_keys.ports.src = fl6->fl6_sport; fl6 2397 net/ipv6/route.c hash_keys.ports.dst = fl6->fl6_dport; fl6 2398 net/ipv6/route.c hash_keys.basic.ip_proto = fl6->flowi6_proto; fl6 2431 net/ipv6/route.c hash_keys.addrs.v6addrs.src = fl6->saddr; fl6 2432 net/ipv6/route.c hash_keys.addrs.v6addrs.dst = fl6->daddr; fl6 2433 net/ipv6/route.c hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6); fl6 2434 net/ipv6/route.c hash_keys.basic.ip_proto = fl6->flowi6_proto; fl6 2450 net/ipv6/route.c struct flowi6 fl6 = { fl6 2462 net/ipv6/route.c fl6.flowi6_tun_key.tun_id = tun_info->key.tun_id; fl6 2464 net/ipv6/route.c if (fib6_rules_early_flow_dissect(net, skb, &fl6, &_flkeys)) fl6 2467 net/ipv6/route.c if (unlikely(fl6.flowi6_proto == IPPROTO_ICMPV6)) fl6 2468 net/ipv6/route.c fl6.mp_hash = rt6_multipath_hash(net, &fl6, skb, flkeys); fl6 2471 net/ipv6/route.c &fl6, skb, flags)); fl6 2476 net/ipv6/route.c struct flowi6 *fl6, fl6 2480 net/ipv6/route.c return ip6_pol_route(net, table, fl6->flowi6_oif, fl6, skb, flags); fl6 2485 net/ipv6/route.c struct flowi6 *fl6, int flags) fl6 2489 net/ipv6/route.c if (ipv6_addr_type(&fl6->daddr) & fl6 2494 net/ipv6/route.c dst = l3mdev_link_scope_lookup(net, fl6); fl6 2499 net/ipv6/route.c fl6->flowi6_iif = LOOPBACK_IFINDEX; fl6 2502 net/ipv6/route.c any_src = ipv6_addr_any(&fl6->saddr); fl6 2503 net/ipv6/route.c if ((sk && sk->sk_bound_dev_if) || rt6_need_strict(&fl6->daddr) || fl6 2504 net/ipv6/route.c (fl6->flowi6_oif && any_src)) fl6 2512 net/ipv6/route.c return fib6_rule_lookup(net, fl6, NULL, flags, ip6_pol_route_output); fl6 2518 net/ipv6/route.c struct flowi6 *fl6, fl6 2525 net/ipv6/route.c dst = ip6_route_output_flags_noref(net, sk, fl6, flags); fl6 2815 net/ipv6/route.c struct flowi6 fl6 = { fl6 2824 net/ipv6/route.c dst = ip6_route_output(net, NULL, &fl6); fl6 2854 net/ipv6/route.c const struct flowi6 *fl6) fl6 2861 net/ipv6/route.c ipv6_addr_equal(&fl6->daddr, &sk->sk_v6_daddr) ? fl6 2864 net/ipv6/route.c ipv6_addr_equal(&fl6->saddr, &np->saddr) ? fl6 2871 net/ipv6/route.c struct flowi6 *fl6, fl6 2878 net/ipv6/route.c fl6->flowi6_oif != nh->fib_nh_dev->ifindex) fl6 2889 net/ipv6/route.c rt_cache = rt6_find_cached_rt(res, &fl6->daddr, &fl6->saddr); fl6 2902 net/ipv6/route.c struct flowi6 *fl6; fl6 2912 net/ipv6/route.c return ip6_redirect_nh_match(arg->res, arg->fl6, arg->gw, arg->ret); fl6 2917 net/ipv6/route.c struct flowi6 fl6; fl6 2923 net/ipv6/route.c struct flowi6 *fl6, fl6 2927 net/ipv6/route.c struct ip6rd_flowi *rdfl = (struct ip6rd_flowi *)fl6; fl6 2932 net/ipv6/route.c .fl6 = fl6, fl6 2942 net/ipv6/route.c if (fl6->flowi6_flags & FLOWI_FLAG_SKIP_NH_OIF) fl6 2943 net/ipv6/route.c fl6->flowi6_oif = skb->dev->ifindex; fl6 2956 net/ipv6/route.c fn = fib6_node_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); fl6 2974 net/ipv6/route.c if (ip6_redirect_nh_match(&res, fl6, &rdfl->gateway, fl6 2988 net/ipv6/route.c fn = fib6_backtrack(fn, &fl6->saddr); fl6 3006 net/ipv6/route.c trace_fib6_table_lookup(net, &res, table, fl6); fl6 3011 net/ipv6/route.c const struct flowi6 *fl6, fl6 3018 net/ipv6/route.c rdfl.fl6 = *fl6; fl6 3021 net/ipv6/route.c return fib6_rule_lookup(net, &rdfl.fl6, skb, fl6 3030 net/ipv6/route.c struct flowi6 fl6 = { fl6 3040 net/ipv6/route.c dst = ip6_route_redirect(net, &fl6, skb, &ipv6_hdr(skb)->saddr); fl6 3051 net/ipv6/route.c struct flowi6 fl6 = { fl6 3059 net/ipv6/route.c dst = ip6_route_redirect(net, &fl6, skb, &iph->saddr); fl6 3158 net/ipv6/route.c struct flowi6 *fl6) fl6 3178 net/ipv6/route.c rt->rt6i_gateway = fl6->daddr; fl6 3179 net/ipv6/route.c rt->rt6i_dst.addr = fl6->daddr; fl6 3190 net/ipv6/route.c dst = xfrm_lookup(net, &rt->dst, flowi6_to_flowi(fl6), NULL, 0); fl6 3225 net/ipv6/route.c struct flowi6 fl6 = { fl6 3242 net/ipv6/route.c err = fib6_table_lookup(net, table, cfg->fc_ifindex, &fl6, res, flags); fl6 3244 net/ipv6/route.c fib6_select_path(net, res, &fl6, cfg->fc_ifindex, fl6 3297 net/ipv6/route.c struct flowi6 fl6 = { fl6 3302 net/ipv6/route.c err = fib6_lookup(net, cfg->fc_ifindex, &fl6, &res, flags); fl6 3310 net/ipv6/route.c fib6_select_path(net, &res, &fl6, cfg->fc_ifindex, fl6 5807 net/ipv6/route.c struct flowi6 fl6 = {}; fl6 5816 net/ipv6/route.c fl6.flowlabel = ip6_make_flowinfo(rtm->rtm_tos, 0); fl6 5823 net/ipv6/route.c fl6.saddr = *(struct in6_addr *)nla_data(tb[RTA_SRC]); fl6 5830 net/ipv6/route.c fl6.daddr = *(struct in6_addr *)nla_data(tb[RTA_DST]); fl6 5840 net/ipv6/route.c fl6.flowi6_mark = nla_get_u32(tb[RTA_MARK]); fl6 5843 net/ipv6/route.c fl6.flowi6_uid = make_kuid(current_user_ns(), fl6 5846 net/ipv6/route.c fl6.flowi6_uid = iif ? INVALID_UID : current_uid(); fl6 5849 net/ipv6/route.c fl6.fl6_sport = nla_get_be16(tb[RTA_SPORT]); fl6 5852 net/ipv6/route.c fl6.fl6_dport = nla_get_be16(tb[RTA_DPORT]); fl6 5856 net/ipv6/route.c &fl6.flowi6_proto, AF_INET6, fl6 5875 net/ipv6/route.c fl6.flowi6_iif = iif; fl6 5877 net/ipv6/route.c if (!ipv6_addr_any(&fl6.saddr)) fl6 5880 net/ipv6/route.c dst = ip6_route_input_lookup(net, dev, &fl6, NULL, flags); fl6 5884 net/ipv6/route.c fl6.flowi6_oif = oif; fl6 5886 net/ipv6/route.c dst = ip6_route_output(net, NULL, &fl6); fl6 5921 net/ipv6/route.c err = rt6_fill_node(net, skb, from, dst, &fl6.daddr, fl6 5922 net/ipv6/route.c &fl6.saddr, iif, RTM_NEWROUTE, fl6 345 net/ipv6/seg6_iptunnel.c struct flowi6 fl6; fl6 347 net/ipv6/seg6_iptunnel.c memset(&fl6, 0, sizeof(fl6)); fl6 348 net/ipv6/seg6_iptunnel.c fl6.daddr = hdr->daddr; fl6 349 net/ipv6/seg6_iptunnel.c fl6.saddr = hdr->saddr; fl6 350 net/ipv6/seg6_iptunnel.c fl6.flowlabel = ip6_flowinfo(hdr); fl6 351 net/ipv6/seg6_iptunnel.c fl6.flowi6_mark = skb->mark; fl6 352 net/ipv6/seg6_iptunnel.c fl6.flowi6_proto = hdr->nexthdr; fl6 354 net/ipv6/seg6_iptunnel.c dst = ip6_route_output(net, NULL, &fl6); fl6 362 net/ipv6/seg6_iptunnel.c dst_cache_set_ip6(&slwt->cache, dst, &fl6.saddr); fl6 162 net/ipv6/seg6_local.c struct flowi6 fl6; fl6 164 net/ipv6/seg6_local.c fl6.flowi6_iif = skb->dev->ifindex; fl6 165 net/ipv6/seg6_local.c fl6.daddr = nhaddr ? *nhaddr : hdr->daddr; fl6 166 net/ipv6/seg6_local.c fl6.saddr = hdr->saddr; fl6 167 net/ipv6/seg6_local.c fl6.flowlabel = ip6_flowinfo(hdr); fl6 168 net/ipv6/seg6_local.c fl6.flowi6_mark = skb->mark; fl6 169 net/ipv6/seg6_local.c fl6.flowi6_proto = hdr->nexthdr; fl6 172 net/ipv6/seg6_local.c fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; fl6 175 net/ipv6/seg6_local.c dst = ip6_route_input_lookup(net, skb->dev, &fl6, skb, flags); fl6 183 net/ipv6/seg6_local.c rt = ip6_pol_route(net, table, 0, &fl6, skb, flags); fl6 225 net/ipv6/syncookies.c struct flowi6 fl6; fl6 226 net/ipv6/syncookies.c memset(&fl6, 0, sizeof(fl6)); fl6 227 net/ipv6/syncookies.c fl6.flowi6_proto = IPPROTO_TCP; fl6 228 net/ipv6/syncookies.c fl6.daddr = ireq->ir_v6_rmt_addr; fl6 229 net/ipv6/syncookies.c final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); fl6 230 net/ipv6/syncookies.c fl6.saddr = ireq->ir_v6_loc_addr; fl6 231 net/ipv6/syncookies.c fl6.flowi6_oif = ireq->ir_iif; fl6 232 net/ipv6/syncookies.c fl6.flowi6_mark = ireq->ir_mark; fl6 233 net/ipv6/syncookies.c fl6.fl6_dport = ireq->ir_rmt_port; fl6 234 net/ipv6/syncookies.c fl6.fl6_sport = inet_sk(sk)->inet_sport; fl6 235 net/ipv6/syncookies.c fl6.flowi6_uid = sk->sk_uid; fl6 236 net/ipv6/syncookies.c security_req_classify_flow(req, flowi6_to_flowi(&fl6)); fl6 238 net/ipv6/syncookies.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 154 net/ipv6/tcp_ipv6.c struct flowi6 fl6; fl6 166 net/ipv6/tcp_ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 169 net/ipv6/tcp_ipv6.c fl6.flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; fl6 170 net/ipv6/tcp_ipv6.c IP6_ECN_flow_init(fl6.flowlabel); fl6 171 net/ipv6/tcp_ipv6.c if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { fl6 173 net/ipv6/tcp_ipv6.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 222 net/ipv6/tcp_ipv6.c np->flow_label = fl6.flowlabel; fl6 264 net/ipv6/tcp_ipv6.c fl6.flowi6_proto = IPPROTO_TCP; fl6 265 net/ipv6/tcp_ipv6.c fl6.daddr = sk->sk_v6_daddr; fl6 266 net/ipv6/tcp_ipv6.c fl6.saddr = saddr ? *saddr : np->saddr; fl6 267 net/ipv6/tcp_ipv6.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 268 net/ipv6/tcp_ipv6.c fl6.flowi6_mark = sk->sk_mark; fl6 269 net/ipv6/tcp_ipv6.c fl6.fl6_dport = usin->sin6_port; fl6 270 net/ipv6/tcp_ipv6.c fl6.fl6_sport = inet->inet_sport; fl6 271 net/ipv6/tcp_ipv6.c fl6.flowi6_uid = sk->sk_uid; fl6 274 net/ipv6/tcp_ipv6.c final_p = fl6_update_dst(&fl6, opt, &final); fl6 276 net/ipv6/tcp_ipv6.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 278 net/ipv6/tcp_ipv6.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 285 net/ipv6/tcp_ipv6.c saddr = &fl6.saddr; fl6 493 net/ipv6/tcp_ipv6.c struct flowi6 *fl6 = &fl->u.ip6; fl6 498 net/ipv6/tcp_ipv6.c if (!dst && (dst = inet6_csk_route_req(sk, fl6, req, fl6 508 net/ipv6/tcp_ipv6.c fl6->daddr = ireq->ir_v6_rmt_addr; fl6 510 net/ipv6/tcp_ipv6.c fl6->flowlabel = ip6_flowlabel(ipv6_hdr(ireq->pktopts)); fl6 516 net/ipv6/tcp_ipv6.c err = ip6_xmit(sk, skb, fl6, sk->sk_mark, opt, np->tclass, fl6 813 net/ipv6/tcp_ipv6.c struct flowi6 fl6; fl6 868 net/ipv6/tcp_ipv6.c memset(&fl6, 0, sizeof(fl6)); fl6 869 net/ipv6/tcp_ipv6.c fl6.daddr = ipv6_hdr(skb)->saddr; fl6 870 net/ipv6/tcp_ipv6.c fl6.saddr = ipv6_hdr(skb)->daddr; fl6 871 net/ipv6/tcp_ipv6.c fl6.flowlabel = label; fl6 876 net/ipv6/tcp_ipv6.c __tcp_v6_send_check(buff, &fl6.saddr, &fl6.daddr); fl6 878 net/ipv6/tcp_ipv6.c fl6.flowi6_proto = IPPROTO_TCP; fl6 879 net/ipv6/tcp_ipv6.c if (rt6_need_strict(&fl6.daddr) && !oif) fl6 880 net/ipv6/tcp_ipv6.c fl6.flowi6_oif = tcp_v6_iif(skb); fl6 885 net/ipv6/tcp_ipv6.c fl6.flowi6_oif = oif; fl6 899 net/ipv6/tcp_ipv6.c fl6.flowi6_mark = IP6_REPLY_MARK(net, skb->mark) ?: mark; fl6 900 net/ipv6/tcp_ipv6.c fl6.fl6_dport = t1->dest; fl6 901 net/ipv6/tcp_ipv6.c fl6.fl6_sport = t1->source; fl6 902 net/ipv6/tcp_ipv6.c fl6.flowi6_uid = sock_net_uid(net, sk && sk_fullsock(sk) ? sk : NULL); fl6 903 net/ipv6/tcp_ipv6.c security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); fl6 909 net/ipv6/tcp_ipv6.c dst = ip6_dst_lookup_flow(sock_net(ctl_sk), ctl_sk, &fl6, NULL); fl6 912 net/ipv6/tcp_ipv6.c ip6_xmit(ctl_sk, buff, &fl6, fl6.flowi6_mark, NULL, tclass, fl6 1130 net/ipv6/tcp_ipv6.c struct flowi6 fl6; fl6 1191 net/ipv6/tcp_ipv6.c dst = inet6_csk_route_req(sk, &fl6, req, IPPROTO_TCP); fl6 1102 net/ipv6/udp.c static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6, fl6 1118 net/ipv6/udp.c uh->source = fl6->fl6_sport; fl6 1119 net/ipv6/udp.c uh->dest = fl6->fl6_dport; fl6 1161 net/ipv6/udp.c udp6_hwcsum_outgoing(sk, skb, &fl6->saddr, &fl6->daddr, len); fl6 1167 net/ipv6/udp.c uh->check = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, fl6 1168 net/ipv6/udp.c len, fl6->flowi6_proto, csum); fl6 1191 net/ipv6/udp.c struct flowi6 fl6; fl6 1200 net/ipv6/udp.c fl6 = inet_sk(sk)->cork.fl.u.ip6; fl6 1206 net/ipv6/udp.c err = udp_v6_send_skb(skb, &fl6, &inet_sk(sk)->cork.base); fl6 1225 net/ipv6/udp.c struct flowi6 fl6; fl6 1316 net/ipv6/udp.c memset(&fl6, 0, sizeof(fl6)); fl6 1322 net/ipv6/udp.c fl6.fl6_dport = sin6->sin6_port; fl6 1326 net/ipv6/udp.c fl6.flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; fl6 1327 net/ipv6/udp.c if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { fl6 1328 net/ipv6/udp.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 1345 net/ipv6/udp.c fl6.flowi6_oif = sin6->sin6_scope_id; fl6 1350 net/ipv6/udp.c fl6.fl6_dport = inet->inet_dport; fl6 1352 net/ipv6/udp.c fl6.flowlabel = np->flow_label; fl6 1356 net/ipv6/udp.c if (!fl6.flowi6_oif) fl6 1357 net/ipv6/udp.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 1359 net/ipv6/udp.c if (!fl6.flowi6_oif) fl6 1360 net/ipv6/udp.c fl6.flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; fl6 1362 net/ipv6/udp.c fl6.flowi6_mark = ipc6.sockc.mark; fl6 1363 net/ipv6/udp.c fl6.flowi6_uid = sk->sk_uid; fl6 1373 net/ipv6/udp.c err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6, fl6 1379 net/ipv6/udp.c if ((fl6.flowlabel&IPV6_FLOWLABEL_MASK) && !flowlabel) { fl6 1380 net/ipv6/udp.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 1397 net/ipv6/udp.c fl6.flowi6_proto = sk->sk_protocol; fl6 1398 net/ipv6/udp.c fl6.daddr = *daddr; fl6 1399 net/ipv6/udp.c if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr)) fl6 1400 net/ipv6/udp.c fl6.saddr = np->saddr; fl6 1401 net/ipv6/udp.c fl6.fl6_sport = inet->inet_sport; fl6 1405 net/ipv6/udp.c (struct sockaddr *)sin6, &fl6.saddr); fl6 1421 net/ipv6/udp.c fl6.fl6_dport = sin6->sin6_port; fl6 1422 net/ipv6/udp.c fl6.daddr = sin6->sin6_addr; fl6 1426 net/ipv6/udp.c if (ipv6_addr_any(&fl6.daddr)) fl6 1427 net/ipv6/udp.c fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */ fl6 1429 net/ipv6/udp.c final_p = fl6_update_dst(&fl6, opt, &final); fl6 1433 net/ipv6/udp.c if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) { fl6 1434 net/ipv6/udp.c fl6.flowi6_oif = np->mcast_oif; fl6 1436 net/ipv6/udp.c } else if (!fl6.flowi6_oif) fl6 1437 net/ipv6/udp.c fl6.flowi6_oif = np->ucast_oif; fl6 1439 net/ipv6/udp.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 1444 net/ipv6/udp.c fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); fl6 1446 net/ipv6/udp.c dst = ip6_sk_dst_lookup_flow(sk, &fl6, final_p, connected); fl6 1454 net/ipv6/udp.c ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); fl6 1467 net/ipv6/udp.c &fl6, (struct rt6_info *)dst, fl6 1471 net/ipv6/udp.c err = udp_v6_send_skb(skb, &fl6, &cork.base); fl6 1493 net/ipv6/udp.c &ipc6, &fl6, (struct rt6_info *)dst, fl6 1528 net/ipv6/udp.c dst_confirm_neigh(dst, &fl6.daddr); fl6 45 net/ipv6/xfrm6_output.c struct flowi6 fl6; fl6 48 net/ipv6/xfrm6_output.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 49 net/ipv6/xfrm6_output.c fl6.daddr = ipv6_hdr(skb)->daddr; fl6 51 net/ipv6/xfrm6_output.c ipv6_local_rxpmtu(sk, &fl6, mtu); fl6 56 net/ipv6/xfrm6_output.c struct flowi6 fl6; fl6 61 net/ipv6/xfrm6_output.c fl6.fl6_dport = inet_sk(sk)->inet_dport; fl6 62 net/ipv6/xfrm6_output.c fl6.daddr = hdr->daddr; fl6 64 net/ipv6/xfrm6_output.c ipv6_local_error(sk, EMSGSIZE, &fl6, mtu); fl6 31 net/ipv6/xfrm6_policy.c struct flowi6 fl6; fl6 35 net/ipv6/xfrm6_policy.c memset(&fl6, 0, sizeof(fl6)); fl6 36 net/ipv6/xfrm6_policy.c fl6.flowi6_oif = l3mdev_master_ifindex_by_index(net, oif); fl6 37 net/ipv6/xfrm6_policy.c fl6.flowi6_flags = FLOWI_FLAG_SKIP_NH_OIF; fl6 38 net/ipv6/xfrm6_policy.c fl6.flowi6_mark = mark; fl6 39 net/ipv6/xfrm6_policy.c memcpy(&fl6.daddr, daddr, sizeof(fl6.daddr)); fl6 41 net/ipv6/xfrm6_policy.c memcpy(&fl6.saddr, saddr, sizeof(fl6.saddr)); fl6 43 net/ipv6/xfrm6_policy.c dst = ip6_route_output(net, NULL, &fl6); fl6 514 net/l2tp/l2tp_ip6.c struct flowi6 fl6; fl6 534 net/l2tp/l2tp_ip6.c memset(&fl6, 0, sizeof(fl6)); fl6 536 net/l2tp/l2tp_ip6.c fl6.flowi6_mark = sk->sk_mark; fl6 537 net/l2tp/l2tp_ip6.c fl6.flowi6_uid = sk->sk_uid; fl6 550 net/l2tp/l2tp_ip6.c fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; fl6 551 net/l2tp/l2tp_ip6.c if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { fl6 552 net/l2tp/l2tp_ip6.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 569 net/l2tp/l2tp_ip6.c fl6.flowi6_oif = lsa->l2tp_scope_id; fl6 575 net/l2tp/l2tp_ip6.c fl6.flowlabel = np->flow_label; fl6 578 net/l2tp/l2tp_ip6.c if (fl6.flowi6_oif == 0) fl6 579 net/l2tp/l2tp_ip6.c fl6.flowi6_oif = sk->sk_bound_dev_if; fl6 587 net/l2tp/l2tp_ip6.c err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6, &ipc6); fl6 592 net/l2tp/l2tp_ip6.c if ((fl6.flowlabel & IPV6_FLOWLABEL_MASK) && !flowlabel) { fl6 593 net/l2tp/l2tp_ip6.c flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); fl6 610 net/l2tp/l2tp_ip6.c fl6.flowi6_proto = sk->sk_protocol; fl6 612 net/l2tp/l2tp_ip6.c fl6.daddr = *daddr; fl6 614 net/l2tp/l2tp_ip6.c fl6.daddr.s6_addr[15] = 0x1; /* :: means loopback (BSD'ism) */ fl6 615 net/l2tp/l2tp_ip6.c if (ipv6_addr_any(&fl6.saddr) && !ipv6_addr_any(&np->saddr)) fl6 616 net/l2tp/l2tp_ip6.c fl6.saddr = np->saddr; fl6 618 net/l2tp/l2tp_ip6.c final_p = fl6_update_dst(&fl6, opt, &final); fl6 620 net/l2tp/l2tp_ip6.c if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) fl6 621 net/l2tp/l2tp_ip6.c fl6.flowi6_oif = np->mcast_oif; fl6 622 net/l2tp/l2tp_ip6.c else if (!fl6.flowi6_oif) fl6 623 net/l2tp/l2tp_ip6.c fl6.flowi6_oif = np->ucast_oif; fl6 625 net/l2tp/l2tp_ip6.c security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); fl6 630 net/l2tp/l2tp_ip6.c fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); fl6 632 net/l2tp/l2tp_ip6.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, &fl6, final_p); fl6 639 net/l2tp/l2tp_ip6.c ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); fl6 651 net/l2tp/l2tp_ip6.c &fl6, (struct rt6_info *)dst, fl6 668 net/l2tp/l2tp_ip6.c dst_confirm_neigh(dst, &fl6.daddr); fl6 126 net/l3mdev/l3mdev.c struct flowi6 *fl6) fl6 132 net/l3mdev/l3mdev.c if (fl6->flowi6_oif) { fl6 133 net/l3mdev/l3mdev.c dev = dev_get_by_index_rcu(net, fl6->flowi6_oif); fl6 139 net/l3mdev/l3mdev.c dst = dev->l3mdev_ops->l3mdev_link_scope_lookup(dev, fl6); fl6 619 net/mpls/af_mpls.c struct flowi6 fl6; fl6 624 net/mpls/af_mpls.c memset(&fl6, 0, sizeof(fl6)); fl6 625 net/mpls/af_mpls.c memcpy(&fl6.daddr, addr, sizeof(struct in6_addr)); fl6 626 net/mpls/af_mpls.c dst = ipv6_stub->ipv6_dst_lookup_flow(net, NULL, &fl6, NULL); fl6 75 net/netfilter/ipvs/ip_vs_ctl.c struct flowi6 fl6 = { fl6 78 net/netfilter/ipvs/ip_vs_ctl.c struct dst_entry *dst = ip6_route_output(net, NULL, &fl6); fl6 436 net/netfilter/ipvs/ip_vs_xmit.c struct flowi6 fl6 = { fl6 441 net/netfilter/ipvs/ip_vs_xmit.c fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; fl6 443 net/netfilter/ipvs/ip_vs_xmit.c dst = ip6_route_output(net, NULL, &fl6); fl6 448 net/netfilter/ipvs/ip_vs_xmit.c if (ipv6_addr_any(&fl6.saddr) && fl6 450 net/netfilter/ipvs/ip_vs_xmit.c &fl6.daddr, 0, &fl6.saddr) < 0) fl6 453 net/netfilter/ipvs/ip_vs_xmit.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); fl6 459 net/netfilter/ipvs/ip_vs_xmit.c *ret_saddr = fl6.saddr; fl6 95 net/netfilter/nf_nat_core.c struct flowi6 *fl6 = &fl->u.ip6; fl6 98 net/netfilter/nf_nat_core.c fl6->daddr = t->dst.u3.in6; fl6 104 net/netfilter/nf_nat_core.c fl6->fl6_dport = t->dst.u.all; fl6 110 net/netfilter/nf_nat_core.c fl6->saddr = t->src.u3.in6; fl6 116 net/netfilter/nf_nat_core.c fl6->fl6_sport = t->src.u.all; fl6 838 net/netfilter/nf_synproxy_core.c struct flowi6 fl6; fl6 846 net/netfilter/nf_synproxy_core.c memset(&fl6, 0, sizeof(fl6)); fl6 847 net/netfilter/nf_synproxy_core.c fl6.flowi6_proto = IPPROTO_TCP; fl6 848 net/netfilter/nf_synproxy_core.c fl6.saddr = niph->saddr; fl6 849 net/netfilter/nf_synproxy_core.c fl6.daddr = niph->daddr; fl6 850 net/netfilter/nf_synproxy_core.c fl6.fl6_sport = nth->source; fl6 851 net/netfilter/nf_synproxy_core.c fl6.fl6_dport = nth->dest; fl6 853 net/netfilter/nf_synproxy_core.c flowi6_to_flowi(&fl6)); fl6 854 net/netfilter/nf_synproxy_core.c err = nf_ip6_route(net, &dst, flowi6_to_flowi(&fl6), false); fl6 859 net/netfilter/nf_synproxy_core.c dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); fl6 56 net/netfilter/xt_TCPMSS.c struct flowi6 *fl6 = &fl.u.ip6; fl6 58 net/netfilter/xt_TCPMSS.c memset(fl6, 0, sizeof(*fl6)); fl6 59 net/netfilter/xt_TCPMSS.c fl6->daddr = ipv6_hdr(skb)->saddr; fl6 161 net/rxrpc/peer_object.c struct flowi6 *fl6 = &fl.u.ip6; fl6 182 net/rxrpc/peer_object.c fl6->flowi6_iif = LOOPBACK_IFINDEX; fl6 183 net/rxrpc/peer_object.c fl6->flowi6_scope = RT_SCOPE_UNIVERSE; fl6 184 net/rxrpc/peer_object.c fl6->flowi6_proto = IPPROTO_UDP; fl6 185 net/rxrpc/peer_object.c memcpy(&fl6->daddr, &peer->srx.transport.sin6.sin6_addr, fl6 187 net/rxrpc/peer_object.c fl6->fl6_dport = htons(7001); fl6 188 net/rxrpc/peer_object.c fl6->fl6_sport = htons(7000); fl6 189 net/rxrpc/peer_object.c dst = ip6_route_output(net, NULL, fl6); fl6 198 net/sctp/ipv6.c struct flowi6 *fl6 = &transport->fl.u.ip6; fl6 203 net/sctp/ipv6.c skb->len, &fl6->saddr, &fl6->daddr); fl6 209 net/sctp/ipv6.c IP6_ECN_flow_xmit(sk, fl6->flowlabel); fl6 217 net/sctp/ipv6.c res = ip6_xmit(sk, skb, fl6, sk->sk_mark, rcu_dereference(np->opt), fl6 232 net/sctp/ipv6.c struct flowi6 *fl6 = &_fl.u.ip6; fl6 243 net/sctp/ipv6.c fl6->daddr = daddr->v6.sin6_addr; fl6 244 net/sctp/ipv6.c fl6->fl6_dport = daddr->v6.sin6_port; fl6 245 net/sctp/ipv6.c fl6->flowi6_proto = IPPROTO_SCTP; fl6 247 net/sctp/ipv6.c fl6->flowi6_oif = daddr->v6.sin6_scope_id; fl6 249 net/sctp/ipv6.c fl6->flowi6_oif = asoc->base.sk->sk_bound_dev_if; fl6 251 net/sctp/ipv6.c fl6->flowlabel = htonl(t->flowlabel & SCTP_FLOWLABEL_VAL_MASK); fl6 253 net/sctp/ipv6.c if (np->sndflow && (fl6->flowlabel & IPV6_FLOWLABEL_MASK)) { fl6 256 net/sctp/ipv6.c flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); fl6 262 net/sctp/ipv6.c pr_debug("%s: dst=%pI6 ", __func__, &fl6->daddr); fl6 265 net/sctp/ipv6.c fl6->fl6_sport = htons(asoc->base.bind_addr.port); fl6 268 net/sctp/ipv6.c fl6->saddr = saddr->v6.sin6_addr; fl6 269 net/sctp/ipv6.c if (!fl6->fl6_sport) fl6 270 net/sctp/ipv6.c fl6->fl6_sport = saddr->v6.sin6_port; fl6 272 net/sctp/ipv6.c pr_debug("src=%pI6 - ", &fl6->saddr); fl6 276 net/sctp/ipv6.c final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); fl6 279 net/sctp/ipv6.c dst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_p); fl6 295 net/sctp/ipv6.c sctp_v6_to_addr(&dst_saddr, &fl6->saddr, htons(bp->port)); fl6 334 net/sctp/ipv6.c fl6->saddr = laddr->a.v6.sin6_addr; fl6 335 net/sctp/ipv6.c fl6->fl6_sport = laddr->a.v6.sin6_port; fl6 336 net/sctp/ipv6.c final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); fl6 337 net/sctp/ipv6.c bdst = ip6_dst_lookup_flow(sock_net(sk), sk, fl6, final_p); fl6 398 net/sctp/ipv6.c struct flowi6 *fl6 = &fl->u.ip6; fl6 405 net/sctp/ipv6.c saddr->v6.sin6_addr = fl6->saddr; fl6 194 net/tipc/udp_media.c struct flowi6 fl6 = { fl6 202 net/tipc/udp_media.c &fl6, NULL); fl6 207 net/tipc/udp_media.c dst_cache_set_ip6(cache, ndst, &fl6.saddr); fl6 209 net/xfrm/xfrm_policy.c const struct flowi6 *fl6 = &fl->u.ip6; fl6 211 net/xfrm/xfrm_policy.c return addr_match(&fl6->daddr, &sel->daddr, sel->prefixlen_d) && fl6 212 net/xfrm/xfrm_policy.c addr_match(&fl6->saddr, &sel->saddr, sel->prefixlen_s) && fl6 213 net/xfrm/xfrm_policy.c !((xfrm_flowi_dport(fl, &fl6->uli) ^ sel->dport) & sel->dport_mask) && fl6 214 net/xfrm/xfrm_policy.c !((xfrm_flowi_sport(fl, &fl6->uli) ^ sel->sport) & sel->sport_mask) && fl6 215 net/xfrm/xfrm_policy.c (fl6->flowi6_proto == sel->proto || !sel->proto) && fl6 216 net/xfrm/xfrm_policy.c (fl6->flowi6_oif == sel->ifindex || !sel->ifindex); fl6 3374 net/xfrm/xfrm_policy.c struct flowi6 *fl6 = &fl->u.ip6; fl6 3392 net/xfrm/xfrm_policy.c memset(fl6, 0, sizeof(struct flowi6)); fl6 3393 net/xfrm/xfrm_policy.c fl6->flowi6_mark = skb->mark; fl6 3394 net/xfrm/xfrm_policy.c fl6->flowi6_oif = reverse ? skb->skb_iif : oif; fl6 3396 net/xfrm/xfrm_policy.c fl6->daddr = reverse ? hdr->saddr : hdr->daddr; fl6 3397 net/xfrm/xfrm_policy.c fl6->saddr = reverse ? hdr->daddr : hdr->saddr; fl6 3426 net/xfrm/xfrm_policy.c fl6->fl6_sport = ports[!!reverse]; fl6 3427 net/xfrm/xfrm_policy.c fl6->fl6_dport = ports[!reverse]; fl6 3429 net/xfrm/xfrm_policy.c fl6->flowi6_proto = nexthdr; fl6 3438 net/xfrm/xfrm_policy.c fl6->fl6_icmp_type = icmp[0]; fl6 3439 net/xfrm/xfrm_policy.c fl6->fl6_icmp_code = icmp[1]; fl6 3441 net/xfrm/xfrm_policy.c fl6->flowi6_proto = nexthdr; fl6 3452 net/xfrm/xfrm_policy.c fl6->fl6_mh_type = mh->ip6mh_type; fl6 3454 net/xfrm/xfrm_policy.c fl6->flowi6_proto = nexthdr; fl6 3462 net/xfrm/xfrm_policy.c fl6->fl6_ipsec_spi = 0; fl6 3463 net/xfrm/xfrm_policy.c fl6->flowi6_proto = nexthdr; fl6 872 net/xfrm/xfrm_state.c const struct flowi6 *fl6 = &fl->u.ip6; fl6 875 net/xfrm/xfrm_state.c *(struct in6_addr *)&sel->daddr = fl6->daddr; fl6 876 net/xfrm/xfrm_state.c *(struct in6_addr *)&sel->saddr = fl6->saddr; fl6 877 net/xfrm/xfrm_state.c sel->dport = xfrm_flowi_dport(fl, &fl6->uli); fl6 879 net/xfrm/xfrm_state.c sel->sport = xfrm_flowi_sport(fl, &fl6->uli); fl6 884 net/xfrm/xfrm_state.c sel->proto = fl6->flowi6_proto; fl6 885 net/xfrm/xfrm_state.c sel->ifindex = fl6->flowi6_oif;