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;