fl4 393 drivers/infiniband/core/addr.c struct flowi4 fl4; fl4 396 drivers/infiniband/core/addr.c memset(&fl4, 0, sizeof(fl4)); fl4 397 drivers/infiniband/core/addr.c fl4.daddr = dst_ip; fl4 398 drivers/infiniband/core/addr.c fl4.saddr = src_ip; fl4 399 drivers/infiniband/core/addr.c fl4.flowi4_oif = addr->bound_dev_if; fl4 400 drivers/infiniband/core/addr.c rt = ip_route_output_key(addr->net, &fl4); fl4 405 drivers/infiniband/core/addr.c src_in->sin_addr.s_addr = fl4.saddr; fl4 1415 drivers/infiniband/core/cma.c struct flowi4 fl4; fl4 1425 drivers/infiniband/core/cma.c memset(&fl4, 0, sizeof(fl4)); fl4 1426 drivers/infiniband/core/cma.c fl4.flowi4_iif = net_dev->ifindex; fl4 1427 drivers/infiniband/core/cma.c fl4.daddr = daddr; fl4 1428 drivers/infiniband/core/cma.c fl4.saddr = saddr; fl4 1431 drivers/infiniband/core/cma.c err = fib_lookup(dev_net(net_dev), &fl4, &res, 0); fl4 339 drivers/infiniband/hw/cxgb3/iwch_cm.c struct flowi4 fl4; fl4 341 drivers/infiniband/hw/cxgb3/iwch_cm.c rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip, fl4 97 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c struct flowi4 fl4; fl4 100 drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip, fl4 76 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c struct flowi4 *fl4, fl4 92 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl4->flowi4_oif = uplink_dev->ifindex; fl4 95 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c rt = ip_route_output_key(dev_net(mirred_dev), fl4); fl4 116 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c n = dst_neigh_lookup(&rt->dst, &fl4->daddr); fl4 216 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c struct flowi4 fl4 = {}; fl4 224 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl4.flowi4_tos = tun_key->tos; fl4 225 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl4.daddr = tun_key->u.ipv4.dst; fl4 226 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c fl4.saddr = tun_key->u.ipv4.src; fl4 230 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c &fl4, &n, &ttl); fl4 284 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c ip->daddr = fl4.daddr; fl4 285 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c ip->saddr = fl4.saddr; fl4 301 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c struct flowi4 fl4; fl4 307 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c ip_tunnel_init_flow(&fl4, parms.iph.protocol, *daddrp, *saddrp, fl4 310 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c rt = ip_route_output_key(tun->net, &fl4); fl4 318 drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c *saddrp = fl4.saddr; fl4 1357 drivers/net/ethernet/sun/sunvnet_common.c struct flowi4 fl4; fl4 1360 drivers/net/ethernet/sun/sunvnet_common.c memset(&fl4, 0, sizeof(fl4)); fl4 1361 drivers/net/ethernet/sun/sunvnet_common.c fl4.flowi4_oif = dev->ifindex; fl4 1362 drivers/net/ethernet/sun/sunvnet_common.c fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos); fl4 1363 drivers/net/ethernet/sun/sunvnet_common.c fl4.daddr = ip_hdr(skb)->daddr; fl4 1364 drivers/net/ethernet/sun/sunvnet_common.c fl4.saddr = ip_hdr(skb)->saddr; fl4 1366 drivers/net/ethernet/sun/sunvnet_common.c rt = ip_route_output_key(dev_net(dev), &fl4); fl4 775 drivers/net/geneve.c struct flowi4 *fl4, fl4 787 drivers/net/geneve.c memset(fl4, 0, sizeof(*fl4)); fl4 788 drivers/net/geneve.c fl4->flowi4_mark = skb->mark; fl4 789 drivers/net/geneve.c fl4->flowi4_proto = IPPROTO_UDP; fl4 790 drivers/net/geneve.c fl4->daddr = info->key.u.ipv4.dst; fl4 791 drivers/net/geneve.c fl4->saddr = info->key.u.ipv4.src; fl4 798 drivers/net/geneve.c fl4->flowi4_tos = RT_TOS(tos); fl4 802 drivers/net/geneve.c rt = dst_cache_get_ip4(dst_cache, &fl4->saddr); fl4 806 drivers/net/geneve.c rt = ip_route_output_key(geneve->net, fl4); fl4 808 drivers/net/geneve.c netdev_dbg(dev, "no route to %pI4\n", &fl4->daddr); fl4 812 drivers/net/geneve.c netdev_dbg(dev, "circular route to %pI4\n", &fl4->daddr); fl4 817 drivers/net/geneve.c dst_cache_set_ip4(dst_cache, &rt->dst, fl4->saddr); fl4 882 drivers/net/geneve.c struct flowi4 fl4; fl4 888 drivers/net/geneve.c rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info); fl4 902 drivers/net/geneve.c tos = ip_tunnel_ecn_encap(fl4.flowi4_tos, ip_hdr(skb), skb); fl4 929 drivers/net/geneve.c udp_tunnel_xmit_skb(rt, gs4->sock->sk, skb, fl4.saddr, fl4.daddr, fl4 1039 drivers/net/geneve.c struct flowi4 fl4; fl4 1042 drivers/net/geneve.c rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info); fl4 1047 drivers/net/geneve.c info->key.u.ipv4.src = fl4.saddr; fl4 1507 drivers/net/geneve.c struct flowi4 fl4 = { .daddr = info->key.u.ipv4.dst }; fl4 1508 drivers/net/geneve.c struct rtable *rt = ip_route_output_key(geneve->net, &fl4); fl4 390 drivers/net/gtp.c static struct rtable *ip4_route_output_gtp(struct flowi4 *fl4, fl4 394 drivers/net/gtp.c memset(fl4, 0, sizeof(*fl4)); fl4 395 drivers/net/gtp.c fl4->flowi4_oif = sk->sk_bound_dev_if; fl4 396 drivers/net/gtp.c fl4->daddr = daddr; fl4 397 drivers/net/gtp.c fl4->saddr = inet_sk(sk)->inet_saddr; fl4 398 drivers/net/gtp.c fl4->flowi4_tos = RT_CONN_FLAGS(sk); fl4 399 drivers/net/gtp.c fl4->flowi4_proto = sk->sk_protocol; fl4 401 drivers/net/gtp.c return ip_route_output_key(sock_net(sk), fl4); fl4 447 drivers/net/gtp.c struct flowi4 fl4; fl4 471 drivers/net/gtp.c struct flowi4 *fl4, fl4 478 drivers/net/gtp.c pktinfo->fl4 = *fl4; fl4 488 drivers/net/gtp.c struct flowi4 fl4; fl4 509 drivers/net/gtp.c rt = ip4_route_output_gtp(&fl4, pctx->sk, pctx->peer_addr_ip4.s_addr); fl4 554 drivers/net/gtp.c gtp_set_pktinfo_ipv4(pktinfo, pctx->sk, iph, pctx, rt, &fl4, dev); fl4 596 drivers/net/gtp.c pktinfo.fl4.saddr, pktinfo.fl4.daddr, fl4 422 drivers/net/ipvlan/ipvlan_core.c struct flowi4 fl4 = { fl4 431 drivers/net/ipvlan/ipvlan_core.c rt = ip_route_output_flow(net, &fl4, NULL); fl4 139 drivers/net/ppp/pptp.c struct flowi4 fl4; fl4 154 drivers/net/ppp/pptp.c rt = ip_route_output_ports(net, &fl4, NULL, fl4 233 drivers/net/ppp/pptp.c iph->daddr = fl4.daddr; fl4 234 drivers/net/ppp/pptp.c iph->saddr = fl4.saddr; fl4 410 drivers/net/ppp/pptp.c struct flowi4 fl4; fl4 443 drivers/net/ppp/pptp.c rt = ip_route_output_ports(sock_net(sk), &fl4, sk, fl4 248 drivers/net/vrf.c struct flowi4 fl4; fl4 257 drivers/net/vrf.c memset(&fl4, 0, sizeof(fl4)); fl4 259 drivers/net/vrf.c fl4.flowi4_oif = vrf_dev->ifindex; fl4 260 drivers/net/vrf.c fl4.flowi4_iif = LOOPBACK_IFINDEX; fl4 261 drivers/net/vrf.c fl4.flowi4_tos = RT_TOS(ip4h->tos); fl4 262 drivers/net/vrf.c fl4.flowi4_flags = FLOWI_FLAG_ANYSRC | FLOWI_FLAG_SKIP_NH_OIF; fl4 263 drivers/net/vrf.c fl4.flowi4_proto = ip4h->protocol; fl4 264 drivers/net/vrf.c fl4.daddr = ip4h->daddr; fl4 265 drivers/net/vrf.c fl4.saddr = ip4h->saddr; fl4 267 drivers/net/vrf.c rt = ip_route_output_flow(net, &fl4, NULL); fl4 2227 drivers/net/vxlan.c struct flowi4 fl4; fl4 2240 drivers/net/vxlan.c memset(&fl4, 0, sizeof(fl4)); fl4 2241 drivers/net/vxlan.c fl4.flowi4_oif = oif; fl4 2242 drivers/net/vxlan.c fl4.flowi4_tos = RT_TOS(tos); fl4 2243 drivers/net/vxlan.c fl4.flowi4_mark = skb->mark; fl4 2244 drivers/net/vxlan.c fl4.flowi4_proto = IPPROTO_UDP; fl4 2245 drivers/net/vxlan.c fl4.daddr = daddr; fl4 2246 drivers/net/vxlan.c fl4.saddr = *saddr; fl4 2247 drivers/net/vxlan.c fl4.fl4_dport = dport; fl4 2248 drivers/net/vxlan.c fl4.fl4_sport = sport; fl4 2250 drivers/net/vxlan.c rt = ip_route_output_key(vxlan->net, &fl4); fl4 2258 drivers/net/vxlan.c *saddr = fl4.saddr; fl4 2260 drivers/net/vxlan.c dst_cache_set_ip4(dst_cache, &rt->dst, fl4.saddr); fl4 586 drivers/scsi/cxgbi/libcxgbi.c static struct rtable *find_route_ipv4(struct flowi4 *fl4, fl4 593 drivers/scsi/cxgbi/libcxgbi.c rt = ip_route_output_ports(&init_net, fl4, NULL, daddr, saddr, fl4 610 drivers/scsi/cxgbi/libcxgbi.c struct flowi4 fl4; fl4 616 drivers/scsi/cxgbi/libcxgbi.c rt = find_route_ipv4(&fl4, 0, daddr->sin_addr.s_addr, 0, fl4 687 drivers/scsi/cxgbi/libcxgbi.c csk->saddr.sin_addr.s_addr = fl4.saddr; fl4 98 include/net/flow.h static inline void flowi4_init_output(struct flowi4 *fl4, int oif, fl4 105 include/net/flow.h fl4->flowi4_oif = oif; fl4 106 include/net/flow.h fl4->flowi4_iif = LOOPBACK_IFINDEX; fl4 107 include/net/flow.h fl4->flowi4_mark = mark; fl4 108 include/net/flow.h fl4->flowi4_tos = tos; fl4 109 include/net/flow.h fl4->flowi4_scope = scope; fl4 110 include/net/flow.h fl4->flowi4_proto = proto; fl4 111 include/net/flow.h fl4->flowi4_flags = flags; fl4 112 include/net/flow.h fl4->flowi4_secid = 0; fl4 113 include/net/flow.h fl4->flowi4_tun_key.tun_id = 0; fl4 114 include/net/flow.h fl4->flowi4_uid = uid; fl4 115 include/net/flow.h fl4->daddr = daddr; fl4 116 include/net/flow.h fl4->saddr = saddr; fl4 117 include/net/flow.h fl4->fl4_dport = dport; fl4 118 include/net/flow.h fl4->fl4_sport = sport; fl4 122 include/net/flow.h static inline void flowi4_update_output(struct flowi4 *fl4, int oif, __u8 tos, fl4 125 include/net/flow.h fl4->flowi4_oif = oif; fl4 126 include/net/flow.h fl4->flowi4_tos = tos; fl4 127 include/net/flow.h fl4->daddr = daddr; fl4 128 include/net/flow.h fl4->saddr = saddr; fl4 192 include/net/flow.h static inline struct flowi *flowi4_to_flowi(struct flowi4 *fl4) fl4 194 include/net/flow.h return container_of(fl4, struct flowi, u.ip4); fl4 257 include/net/inet_connection_sock.h struct dst_entry *inet_csk_route_req(const struct sock *sk, struct flowi4 *fl4, fl4 210 include/net/ip.h int ip_append_data(struct sock *sk, struct flowi4 *fl4, fl4 219 include/net/ip.h ssize_t ip_append_page(struct sock *sk, struct flowi4 *fl4, struct page *page, fl4 221 include/net/ip.h struct sk_buff *__ip_make_skb(struct sock *sk, struct flowi4 *fl4, fl4 225 include/net/ip.h int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4); fl4 227 include/net/ip.h struct sk_buff *ip_make_skb(struct sock *sk, struct flowi4 *fl4, fl4 240 include/net/ip.h static inline struct sk_buff *ip_finish_skb(struct sock *sk, struct flowi4 *fl4) fl4 242 include/net/ip.h return __ip_make_skb(sk, fl4, &sk->sk_write_queue, &inet_sk(sk)->cork.base); fl4 329 include/net/ip_fib.h struct flowi4 *fl4, fl4 384 include/net/ip_fib.h struct flowi4 *fl4, fl4 393 include/net/ip_fib.h fl4->fl4_sport = flkeys->ports.src; fl4 394 include/net/ip_fib.h fl4->fl4_dport = flkeys->ports.dst; fl4 395 include/net/ip_fib.h fl4->flowi4_proto = flkeys->basic.ip_proto; fl4 444 include/net/ip_fib.h int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4, fl4 451 include/net/ip_fib.h struct flowi4 *fl4, const struct sk_buff *skb); fl4 240 include/net/ip_tunnels.h static inline void ip_tunnel_init_flow(struct flowi4 *fl4, fl4 246 include/net/ip_tunnels.h memset(fl4, 0, sizeof(*fl4)); fl4 247 include/net/ip_tunnels.h fl4->flowi4_oif = oif; fl4 248 include/net/ip_tunnels.h fl4->daddr = daddr; fl4 249 include/net/ip_tunnels.h fl4->saddr = saddr; fl4 250 include/net/ip_tunnels.h fl4->flowi4_tos = tos; fl4 251 include/net/ip_tunnels.h fl4->flowi4_proto = proto; fl4 252 include/net/ip_tunnels.h fl4->fl4_gre_key = key; fl4 253 include/net/ip_tunnels.h fl4->flowi4_mark = mark; fl4 254 include/net/ip_tunnels.h fl4->flowi4_multipath_hash = tun_inner_hash; fl4 295 include/net/ip_tunnels.h u8 *protocol, struct flowi4 *fl4); fl4 353 include/net/ip_tunnels.h u8 *protocol, struct flowi4 *fl4) fl4 367 include/net/ip_tunnels.h ret = ops->build_header(skb, &t->encap, protocol, fl4); fl4 142 include/net/route.h struct flowi4 fl4 = { fl4 148 include/net/route.h return ip_route_output_key(net, &fl4); fl4 151 include/net/route.h static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi4 *fl4, fl4 157 include/net/route.h flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos, fl4 162 include/net/route.h security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); fl4 163 include/net/route.h return ip_route_output_flow(net, fl4, sk); fl4 166 include/net/route.h static inline struct rtable *ip_route_output_gre(struct net *net, struct flowi4 *fl4, fl4 170 include/net/route.h memset(fl4, 0, sizeof(*fl4)); fl4 171 include/net/route.h fl4->flowi4_oif = oif; fl4 172 include/net/route.h fl4->daddr = daddr; fl4 173 include/net/route.h fl4->saddr = saddr; fl4 174 include/net/route.h fl4->flowi4_tos = tos; fl4 175 include/net/route.h fl4->flowi4_proto = IPPROTO_GRE; fl4 176 include/net/route.h fl4->fl4_gre_key = gre_key; fl4 177 include/net/route.h return ip_route_output_key(net, fl4); fl4 281 include/net/route.h static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32 src, fl4 291 include/net/route.h flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE, fl4 296 include/net/route.h static inline struct rtable *ip_route_connect(struct flowi4 *fl4, fl4 305 include/net/route.h ip_route_connect_init(fl4, dst, src, tos, oif, protocol, fl4 309 include/net/route.h rt = __ip_route_output_key(net, fl4); fl4 313 include/net/route.h flowi4_update_output(fl4, oif, tos, fl4->daddr, fl4->saddr); fl4 315 include/net/route.h security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); fl4 316 include/net/route.h return ip_route_output_flow(net, fl4, sk); fl4 319 include/net/route.h static inline struct rtable *ip_route_newports(struct flowi4 *fl4, struct rtable *rt, fl4 325 include/net/route.h fl4->fl4_dport = dport; fl4 326 include/net/route.h fl4->fl4_sport = sport; fl4 328 include/net/route.h flowi4_update_output(fl4, sk->sk_bound_dev_if, fl4 329 include/net/route.h RT_CONN_FLAGS(sk), fl4->daddr, fl4 330 include/net/route.h fl4->saddr); fl4 331 include/net/route.h security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); fl4 332 include/net/route.h return ip_route_output_flow(sock_net(sk), fl4, sk); fl4 4622 net/core/filter.c struct flowi4 fl4; fl4 4636 net/core/filter.c fl4.flowi4_iif = 1; fl4 4637 net/core/filter.c fl4.flowi4_oif = params->ifindex; fl4 4639 net/core/filter.c fl4.flowi4_iif = params->ifindex; fl4 4640 net/core/filter.c fl4.flowi4_oif = 0; fl4 4642 net/core/filter.c fl4.flowi4_tos = params->tos & IPTOS_RT_MASK; fl4 4643 net/core/filter.c fl4.flowi4_scope = RT_SCOPE_UNIVERSE; fl4 4644 net/core/filter.c fl4.flowi4_flags = 0; fl4 4646 net/core/filter.c fl4.flowi4_proto = params->l4_protocol; fl4 4647 net/core/filter.c fl4.daddr = params->ipv4_dst; fl4 4648 net/core/filter.c fl4.saddr = params->ipv4_src; fl4 4649 net/core/filter.c fl4.fl4_sport = params->sport; fl4 4650 net/core/filter.c fl4.fl4_dport = params->dport; fl4 4660 net/core/filter.c err = fib_table_lookup(tb, &fl4, &res, FIB_LOOKUP_NOREF); fl4 4662 net/core/filter.c fl4.flowi4_mark = 0; fl4 4663 net/core/filter.c fl4.flowi4_secid = 0; fl4 4664 net/core/filter.c fl4.flowi4_tun_key.tun_id = 0; fl4 4665 net/core/filter.c fl4.flowi4_uid = sock_net_uid(net, NULL); fl4 4667 net/core/filter.c err = fib_lookup(net, &fl4, &res, FIB_LOOKUP_NOREF); fl4 4686 net/core/filter.c fib_select_path(net, &res, &fl4, NULL); fl4 203 net/core/lwt_bpf.c struct flowi4 fl4 = {}; fl4 206 net/core/lwt_bpf.c fl4.flowi4_oif = oif; fl4 207 net/core/lwt_bpf.c fl4.flowi4_mark = skb->mark; fl4 208 net/core/lwt_bpf.c fl4.flowi4_uid = sock_net_uid(net, sk); fl4 209 net/core/lwt_bpf.c fl4.flowi4_tos = RT_TOS(iph->tos); fl4 210 net/core/lwt_bpf.c fl4.flowi4_flags = FLOWI_FLAG_ANYSRC; fl4 211 net/core/lwt_bpf.c fl4.flowi4_proto = iph->protocol; fl4 212 net/core/lwt_bpf.c fl4.daddr = iph->daddr; fl4 213 net/core/lwt_bpf.c fl4.saddr = iph->saddr; fl4 215 net/core/lwt_bpf.c rt = ip_route_output_key(net, &fl4); fl4 45 net/dccp/ipv4.c struct flowi4 *fl4; fl4 70 net/dccp/ipv4.c fl4 = &inet->cork.fl.u.ip4; fl4 71 net/dccp/ipv4.c rt = ip_route_connect(fl4, nexthop, inet->inet_saddr, fl4 84 net/dccp/ipv4.c daddr = fl4->daddr; fl4 87 net/dccp/ipv4.c inet->inet_saddr = fl4->saddr; fl4 106 net/dccp/ipv4.c rt = ip_route_newports(fl4, rt, orig_sport, orig_dport, fl4 457 net/dccp/ipv4.c struct flowi4 fl4 = { fl4 467 net/dccp/ipv4.c security_skb_classify_flow(skb, flowi4_to_flowi(&fl4)); fl4 468 net/dccp/ipv4.c rt = ip_route_output_flow(net, &fl4, sk); fl4 482 net/dccp/ipv4.c struct flowi4 fl4; fl4 484 net/dccp/ipv4.c dst = inet_csk_route_req(sk, &fl4, req); fl4 1193 net/ipv4/af_inet.c struct flowi4 *fl4; fl4 1204 net/ipv4/af_inet.c fl4 = &inet->cork.fl.u.ip4; fl4 1205 net/ipv4/af_inet.c rt = ip_route_connect(fl4, daddr, 0, RT_CONN_FLAGS(sk), fl4 1213 net/ipv4/af_inet.c new_saddr = fl4->saddr; fl4 1242 net/ipv4/af_inet.c struct flowi4 *fl4; fl4 1256 net/ipv4/af_inet.c fl4 = &inet->cork.fl.u.ip4; fl4 1257 net/ipv4/af_inet.c rt = ip_route_output_ports(sock_net(sk), fl4, sk, daddr, inet->inet_saddr, fl4 24 net/ipv4/datagram.c struct flowi4 *fl4; fl4 47 net/ipv4/datagram.c fl4 = &inet->cork.fl.u.ip4; fl4 48 net/ipv4/datagram.c rt = ip_route_connect(fl4, usin->sin_addr.s_addr, saddr, fl4 65 net/ipv4/datagram.c inet->inet_saddr = fl4->saddr; /* Update source address */ fl4 67 net/ipv4/datagram.c inet->inet_rcv_saddr = fl4->saddr; fl4 71 net/ipv4/datagram.c inet->inet_daddr = fl4->daddr; fl4 106 net/ipv4/datagram.c struct flowi4 fl4; fl4 119 net/ipv4/datagram.c rt = ip_route_output_ports(sock_net(sk), &fl4, sk, daddr, fl4 158 net/ipv4/devinet.c struct flowi4 fl4 = { .daddr = addr }; fl4 167 net/ipv4/devinet.c !fib_table_lookup(local, &fl4, &res, FIB_LOOKUP_NOREF) && fl4 219 net/ipv4/fib_frontend.c struct flowi4 fl4 = { .daddr = addr }; fl4 234 net/ipv4/fib_frontend.c if (!fib_table_lookup(table, &fl4, &res, FIB_LOOKUP_NOREF)) { fl4 301 net/ipv4/fib_frontend.c struct flowi4 fl4 = { fl4 309 net/ipv4/fib_frontend.c if (!fib_lookup(net, &fl4, &res, 0)) fl4 361 net/ipv4/fib_frontend.c struct flowi4 fl4; fl4 364 net/ipv4/fib_frontend.c fl4.flowi4_oif = 0; fl4 365 net/ipv4/fib_frontend.c fl4.flowi4_iif = l3mdev_master_ifindex_rcu(dev); fl4 366 net/ipv4/fib_frontend.c if (!fl4.flowi4_iif) fl4 367 net/ipv4/fib_frontend.c fl4.flowi4_iif = oif ? : LOOPBACK_IFINDEX; fl4 368 net/ipv4/fib_frontend.c fl4.daddr = src; fl4 369 net/ipv4/fib_frontend.c fl4.saddr = dst; fl4 370 net/ipv4/fib_frontend.c fl4.flowi4_tos = tos; fl4 371 net/ipv4/fib_frontend.c fl4.flowi4_scope = RT_SCOPE_UNIVERSE; fl4 372 net/ipv4/fib_frontend.c fl4.flowi4_tun_key.tun_id = 0; fl4 373 net/ipv4/fib_frontend.c fl4.flowi4_flags = 0; fl4 374 net/ipv4/fib_frontend.c fl4.flowi4_uid = sock_net_uid(net, NULL); fl4 378 net/ipv4/fib_frontend.c fl4.flowi4_mark = IN_DEV_SRC_VMARK(idev) ? skb->mark : 0; fl4 379 net/ipv4/fib_frontend.c if (!fib4_rules_early_flow_dissect(net, skb, &fl4, &flkeys)) { fl4 380 net/ipv4/fib_frontend.c fl4.flowi4_proto = 0; fl4 381 net/ipv4/fib_frontend.c fl4.fl4_sport = 0; fl4 382 net/ipv4/fib_frontend.c fl4.fl4_dport = 0; fl4 385 net/ipv4/fib_frontend.c if (fib_lookup(net, &fl4, &res, 0)) fl4 406 net/ipv4/fib_frontend.c fl4.flowi4_oif = dev->ifindex; fl4 409 net/ipv4/fib_frontend.c if (fib_lookup(net, &fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE) == 0) { fl4 1332 net/ipv4/fib_frontend.c struct flowi4 fl4 = { fl4 1349 net/ipv4/fib_frontend.c frn->err = fib_table_lookup(tb, &fl4, &res, FIB_LOOKUP_NOREF); fl4 174 net/ipv4/fib_rules.c struct flowi4 *fl4 = &fl->u.ip4; fl4 175 net/ipv4/fib_rules.c __be32 daddr = fl4->daddr; fl4 176 net/ipv4/fib_rules.c __be32 saddr = fl4->saddr; fl4 182 net/ipv4/fib_rules.c if (r->tos && (r->tos != fl4->flowi4_tos)) fl4 185 net/ipv4/fib_rules.c if (rule->ip_proto && (rule->ip_proto != fl4->flowi4_proto)) fl4 189 net/ipv4/fib_rules.c !fib_rule_port_inrange(&rule->sport_range, fl4->fl4_sport)) fl4 193 net/ipv4/fib_rules.c !fib_rule_port_inrange(&rule->dport_range, fl4->fl4_dport)) fl4 1092 net/ipv4/fib_semantics.c struct flowi4 fl4 = { fl4 1100 net/ipv4/fib_semantics.c if (fl4.flowi4_scope < RT_SCOPE_LINK) fl4 1101 net/ipv4/fib_semantics.c fl4.flowi4_scope = RT_SCOPE_LINK; fl4 1107 net/ipv4/fib_semantics.c err = fib_table_lookup(tbl, &fl4, &res, fl4 1116 net/ipv4/fib_semantics.c err = fib_lookup(net, &fl4, &res, fl4 2191 net/ipv4/fib_semantics.c struct flowi4 *fl4, const struct sk_buff *skb) fl4 2193 net/ipv4/fib_semantics.c if (fl4->flowi4_oif && !(fl4->flowi4_flags & FLOWI_FLAG_SKIP_NH_OIF)) fl4 2198 net/ipv4/fib_semantics.c int h = fib_multipath_hash(net, fl4, skb, NULL); fl4 2207 net/ipv4/fib_semantics.c fib_select_default(fl4, res); fl4 2210 net/ipv4/fib_semantics.c if (!fl4->saddr) fl4 2211 net/ipv4/fib_semantics.c fl4->saddr = fib_result_prefsrc(net, res); fl4 1063 net/ipv4/fou.c struct flowi4 *fl4, u8 *protocol, __be16 sport) fl4 1076 net/ipv4/fou.c fl4->saddr, fl4->daddr, skb->len); fl4 1082 net/ipv4/fou.c u8 *protocol, struct flowi4 *fl4) fl4 1093 net/ipv4/fou.c fou_build_udp(skb, e, fl4, protocol, sport); fl4 1099 net/ipv4/fou.c u8 *protocol, struct flowi4 *fl4) fl4 1110 net/ipv4/fou.c fou_build_udp(skb, e, fl4, protocol, sport); fl4 311 net/ipv4/icmp.c struct flowi4 *fl4, int type, int code) fl4 326 net/ipv4/icmp.c peer = inet_getpeer_v4(net->ipv4.peers, fl4->daddr, vif, 1); fl4 364 net/ipv4/icmp.c struct flowi4 *fl4, fl4 371 net/ipv4/icmp.c if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, fl4 390 net/ipv4/icmp.c ip_push_pending_frames(sk, fl4); fl4 403 net/ipv4/icmp.c struct flowi4 fl4; fl4 439 net/ipv4/icmp.c memset(&fl4, 0, sizeof(fl4)); fl4 440 net/ipv4/icmp.c fl4.daddr = daddr; fl4 441 net/ipv4/icmp.c fl4.saddr = saddr; fl4 442 net/ipv4/icmp.c fl4.flowi4_mark = mark; fl4 443 net/ipv4/icmp.c fl4.flowi4_uid = sock_net_uid(net, NULL); fl4 444 net/ipv4/icmp.c fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos); fl4 445 net/ipv4/icmp.c fl4.flowi4_proto = IPPROTO_ICMP; fl4 446 net/ipv4/icmp.c fl4.flowi4_oif = l3mdev_master_ifindex(skb->dev); fl4 447 net/ipv4/icmp.c security_skb_classify_flow(skb, flowi4_to_flowi(&fl4)); fl4 448 net/ipv4/icmp.c rt = ip_route_output_key(net, &fl4); fl4 451 net/ipv4/icmp.c if (icmpv4_xrlim_allow(net, rt, &fl4, type, code)) fl4 452 net/ipv4/icmp.c icmp_push_reply(icmp_param, &fl4, &ipc, &rt); fl4 461 net/ipv4/icmp.c struct flowi4 *fl4, fl4 472 net/ipv4/icmp.c memset(fl4, 0, sizeof(*fl4)); fl4 473 net/ipv4/icmp.c fl4->daddr = (param->replyopts.opt.opt.srr ? fl4 475 net/ipv4/icmp.c fl4->saddr = saddr; fl4 476 net/ipv4/icmp.c fl4->flowi4_mark = mark; fl4 477 net/ipv4/icmp.c fl4->flowi4_uid = sock_net_uid(net, NULL); fl4 478 net/ipv4/icmp.c fl4->flowi4_tos = RT_TOS(tos); fl4 479 net/ipv4/icmp.c fl4->flowi4_proto = IPPROTO_ICMP; fl4 480 net/ipv4/icmp.c fl4->fl4_icmp_type = type; fl4 481 net/ipv4/icmp.c fl4->fl4_icmp_code = code; fl4 482 net/ipv4/icmp.c fl4->flowi4_oif = l3mdev_master_ifindex(skb_dst(skb_in)->dev); fl4 484 net/ipv4/icmp.c security_skb_classify_flow(skb_in, flowi4_to_flowi(fl4)); fl4 485 net/ipv4/icmp.c rt = ip_route_output_key_hash(net, fl4, skb_in); fl4 493 net/ipv4/icmp.c flowi4_to_flowi(fl4), NULL, 0); fl4 540 net/ipv4/icmp.c memcpy(fl4, &fl4_dec, sizeof(*fl4)); fl4 577 net/ipv4/icmp.c struct flowi4 fl4; fl4 717 net/ipv4/icmp.c rt = icmp_route_lookup(net, &fl4, skb_in, iph, saddr, tos, mark, fl4 723 net/ipv4/icmp.c if (!icmpv4_xrlim_allow(net, rt, &fl4, type, code)) fl4 739 net/ipv4/icmp.c icmp_push_reply(&icmp_param, &fl4, &ipc, &rt); fl4 332 net/ipv4/igmp.c const struct flowi4 *fl4) fl4 341 net/ipv4/igmp.c if (fl4->saddr == ifa->ifa_local) fl4 342 net/ipv4/igmp.c return fl4->saddr; fl4 355 net/ipv4/igmp.c struct flowi4 fl4; fl4 371 net/ipv4/igmp.c rt = ip_route_output_ports(net, &fl4, NULL, IGMPV3_ALL_MCR, 0, fl4 394 net/ipv4/igmp.c pip->daddr = fl4.daddr; fl4 397 net/ipv4/igmp.c pip->saddr = igmpv3_get_srcaddr(dev, &fl4); fl4 734 net/ipv4/igmp.c struct flowi4 fl4; fl4 749 net/ipv4/igmp.c rt = ip_route_output_ports(net, &fl4, NULL, dst, 0, fl4 778 net/ipv4/igmp.c iph->saddr = fl4.saddr; fl4 567 net/ipv4/inet_connection_sock.c struct flowi4 *fl4, fl4 578 net/ipv4/inet_connection_sock.c flowi4_init_output(fl4, ireq->ir_iif, ireq->ir_mark, fl4 584 net/ipv4/inet_connection_sock.c security_req_classify_flow(req, flowi4_to_flowi(fl4)); fl4 585 net/ipv4/inet_connection_sock.c rt = ip_route_output_flow(net, fl4, sk); fl4 610 net/ipv4/inet_connection_sock.c struct flowi4 *fl4; fl4 614 net/ipv4/inet_connection_sock.c fl4 = &newinet->cork.fl.u.ip4; fl4 616 net/ipv4/inet_connection_sock.c flowi4_init_output(fl4, ireq->ir_iif, ireq->ir_mark, fl4 622 net/ipv4/inet_connection_sock.c security_req_classify_flow(req, flowi4_to_flowi(fl4)); fl4 623 net/ipv4/inet_connection_sock.c rt = ip_route_output_flow(net, fl4, sk); fl4 1083 net/ipv4/inet_connection_sock.c struct flowi4 *fl4; fl4 1090 net/ipv4/inet_connection_sock.c fl4 = &fl->u.ip4; fl4 1091 net/ipv4/inet_connection_sock.c rt = ip_route_output_ports(sock_net(sk), fl4, sk, daddr, fl4 573 net/ipv4/ip_gre.c struct flowi4 fl4; fl4 579 net/ipv4/ip_gre.c ip_tunnel_init_flow(&fl4, IPPROTO_GRE, key->u.ipv4.dst, key->u.ipv4.src, fl4 582 net/ipv4/ip_gre.c rt = ip_route_output_key(dev_net(dev), &fl4); fl4 587 net/ipv4/ip_gre.c info->key.u.ipv4.src = fl4.saddr; fl4 859 net/ipv4/ip_gre.c struct flowi4 fl4; fl4 862 net/ipv4/ip_gre.c rt = ip_route_output_gre(t->net, &fl4, fl4 444 net/ipv4/ip_output.c static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) fl4 446 net/ipv4/ip_output.c BUILD_BUG_ON(offsetof(typeof(*fl4), daddr) != fl4 447 net/ipv4/ip_output.c offsetof(typeof(*fl4), saddr) + sizeof(fl4->saddr)); fl4 448 net/ipv4/ip_output.c memcpy(&iph->saddr, &fl4->saddr, fl4 449 net/ipv4/ip_output.c sizeof(fl4->saddr) + sizeof(fl4->daddr)); fl4 459 net/ipv4/ip_output.c struct flowi4 *fl4; fl4 469 net/ipv4/ip_output.c fl4 = &fl->u.ip4; fl4 488 net/ipv4/ip_output.c rt = ip_route_output_ports(net, fl4, sk, fl4 516 net/ipv4/ip_output.c ip_copy_addrs(iph, fl4); fl4 954 net/ipv4/ip_output.c struct flowi4 *fl4, fl4 998 net/ipv4/ip_output.c ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, fl4 1296 net/ipv4/ip_output.c int ip_append_data(struct sock *sk, struct flowi4 *fl4, fl4 1317 net/ipv4/ip_output.c return __ip_append_data(sk, fl4, &sk->sk_write_queue, &inet->cork.base, fl4 1322 net/ipv4/ip_output.c ssize_t ip_append_page(struct sock *sk, struct flowi4 *fl4, struct page *page, fl4 1361 net/ipv4/ip_output.c ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, fl4 1466 net/ipv4/ip_output.c struct flowi4 *fl4, fl4 1531 net/ipv4/ip_output.c ip_copy_addrs(iph, fl4); fl4 1573 net/ipv4/ip_output.c int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4) fl4 1577 net/ipv4/ip_output.c skb = ip_finish_skb(sk, fl4); fl4 1606 net/ipv4/ip_output.c struct flowi4 *fl4, fl4 1628 net/ipv4/ip_output.c err = __ip_append_data(sk, fl4, &queue, cork, fl4 1636 net/ipv4/ip_output.c return __ip_make_skb(sk, fl4, &queue, cork); fl4 1664 net/ipv4/ip_output.c struct flowi4 fl4; fl4 1689 net/ipv4/ip_output.c flowi4_init_output(&fl4, oif, fl4 1697 net/ipv4/ip_output.c security_skb_classify_flow(skb, flowi4_to_flowi(&fl4)); fl4 1698 net/ipv4/ip_output.c rt = ip_route_output_key(net, &fl4); fl4 1707 net/ipv4/ip_output.c sk->sk_mark = fl4.flowi4_mark; fl4 1708 net/ipv4/ip_output.c err = ip_append_data(sk, &fl4, ip_reply_glue_bits, arg->iov->iov_base, fl4 1722 net/ipv4/ip_output.c ip_push_pending_frames(sk, &fl4); fl4 290 net/ipv4/ip_tunnel.c struct flowi4 fl4; fl4 293 net/ipv4/ip_tunnel.c ip_tunnel_init_flow(&fl4, iph->protocol, iph->daddr, fl4 297 net/ipv4/ip_tunnel.c rt = ip_route_output_key(tunnel->net, &fl4); fl4 552 net/ipv4/ip_tunnel.c struct flowi4 fl4; fl4 571 net/ipv4/ip_tunnel.c ip_tunnel_init_flow(&fl4, proto, key->u.ipv4.dst, key->u.ipv4.src, fl4 579 net/ipv4/ip_tunnel.c rt = dst_cache_get_ip4(&tun_info->dst_cache, &fl4.saddr); fl4 581 net/ipv4/ip_tunnel.c rt = ip_route_output_key(tunnel->net, &fl4); fl4 588 net/ipv4/ip_tunnel.c fl4.saddr); fl4 626 net/ipv4/ip_tunnel.c iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, proto, tos, ttl, fl4 648 net/ipv4/ip_tunnel.c struct flowi4 fl4; fl4 731 net/ipv4/ip_tunnel.c ip_tunnel_init_flow(&fl4, protocol, dst, tnl_params->saddr, fl4 735 net/ipv4/ip_tunnel.c if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0) fl4 742 net/ipv4/ip_tunnel.c &fl4.saddr); fl4 745 net/ipv4/ip_tunnel.c &fl4.saddr) : NULL; fl4 749 net/ipv4/ip_tunnel.c rt = ip_route_output_key(tunnel->net, &fl4); fl4 757 net/ipv4/ip_tunnel.c fl4.saddr); fl4 760 net/ipv4/ip_tunnel.c fl4.saddr); fl4 814 net/ipv4/ip_tunnel.c iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, protocol, tos, ttl, fl4 522 net/ipv4/ipmr.c struct flowi4 fl4 = { fl4 529 net/ipv4/ipmr.c err = ipmr_fib_lookup(net, &fl4, &mrt); fl4 1845 net/ipv4/ipmr.c struct flowi4 fl4; fl4 1864 net/ipv4/ipmr.c rt = ip_route_output_ports(net, &fl4, NULL, fl4 1873 net/ipv4/ipmr.c rt = ip_route_output_ports(net, &fl4, NULL, iph->daddr, 0, fl4 2073 net/ipv4/ipmr.c struct flowi4 fl4 = { fl4 2087 net/ipv4/ipmr.c err = ipmr_fib_lookup(net, &fl4, &mrt); fl4 24 net/ipv4/netfilter.c struct flowi4 fl4 = {}; fl4 41 net/ipv4/netfilter.c fl4.daddr = iph->daddr; fl4 42 net/ipv4/netfilter.c fl4.saddr = saddr; fl4 43 net/ipv4/netfilter.c fl4.flowi4_tos = RT_TOS(iph->tos); fl4 44 net/ipv4/netfilter.c fl4.flowi4_oif = sk ? sk->sk_bound_dev_if : 0; fl4 45 net/ipv4/netfilter.c if (!fl4.flowi4_oif) fl4 46 net/ipv4/netfilter.c fl4.flowi4_oif = l3mdev_master_ifindex(dev); fl4 47 net/ipv4/netfilter.c fl4.flowi4_mark = skb->mark; fl4 48 net/ipv4/netfilter.c fl4.flowi4_flags = flags; fl4 49 net/ipv4/netfilter.c rt = ip_route_output_key(net, &fl4); fl4 62 net/ipv4/netfilter.c xfrm_decode_session(skb, flowi4_to_flowi(&fl4), AF_INET) == 0) { fl4 65 net/ipv4/netfilter.c dst = xfrm_lookup(net, dst, flowi4_to_flowi(&fl4), sk, 0); fl4 32 net/ipv4/netfilter/ipt_rpfilter.c static bool rpfilter_lookup_reverse(struct net *net, struct flowi4 *fl4, fl4 38 net/ipv4/netfilter/ipt_rpfilter.c if (fib_lookup(net, fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE)) fl4 28 net/ipv4/netfilter/nf_dup_ipv4.c struct flowi4 fl4; fl4 30 net/ipv4/netfilter/nf_dup_ipv4.c memset(&fl4, 0, sizeof(fl4)); fl4 32 net/ipv4/netfilter/nf_dup_ipv4.c fl4.flowi4_oif = oif; fl4 34 net/ipv4/netfilter/nf_dup_ipv4.c fl4.daddr = gw->s_addr; fl4 35 net/ipv4/netfilter/nf_dup_ipv4.c fl4.flowi4_tos = RT_TOS(iph->tos); fl4 36 net/ipv4/netfilter/nf_dup_ipv4.c fl4.flowi4_scope = RT_SCOPE_UNIVERSE; fl4 37 net/ipv4/netfilter/nf_dup_ipv4.c fl4.flowi4_flags = FLOWI_FLAG_KNOWN_NH; fl4 38 net/ipv4/netfilter/nf_dup_ipv4.c rt = ip_route_output_key(net, &fl4); fl4 65 net/ipv4/netfilter/nft_fib_ipv4.c struct flowi4 fl4 = { fl4 107 net/ipv4/netfilter/nft_fib_ipv4.c fl4.flowi4_mark = pkt->skb->mark; fl4 109 net/ipv4/netfilter/nft_fib_ipv4.c fl4.flowi4_tos = iph->tos & DSCP_BITS; fl4 112 net/ipv4/netfilter/nft_fib_ipv4.c fl4.daddr = iph->daddr; fl4 113 net/ipv4/netfilter/nft_fib_ipv4.c fl4.saddr = get_saddr(iph->saddr); fl4 115 net/ipv4/netfilter/nft_fib_ipv4.c fl4.daddr = iph->saddr; fl4 116 net/ipv4/netfilter/nft_fib_ipv4.c fl4.saddr = get_saddr(iph->daddr); fl4 121 net/ipv4/netfilter/nft_fib_ipv4.c if (fib_lookup(nft_net(pkt), &fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE)) fl4 635 net/ipv4/ping.c struct flowi4 *fl4) fl4 646 net/ipv4/ping.c return ip_push_pending_frames(sk, fl4); fl4 697 net/ipv4/ping.c struct flowi4 fl4; fl4 784 net/ipv4/ping.c flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, fl4 789 net/ipv4/ping.c security_sk_classify_flow(sk, flowi4_to_flowi(&fl4)); fl4 790 net/ipv4/ping.c rt = ip_route_output_flow(net, &fl4, sk); fl4 809 net/ipv4/ping.c ipc.addr = fl4.daddr; fl4 822 net/ipv4/ping.c err = ip_append_data(sk, &fl4, ping_getfrag, &pfh, len, fl4 827 net/ipv4/ping.c err = ping_v4_push_pending_frames(sk, &pfh, &fl4); fl4 843 net/ipv4/ping.c dst_confirm_neigh(&rt->dst, &fl4.daddr); fl4 343 net/ipv4/raw.c static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, fl4 358 net/ipv4/raw.c ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, fl4 414 net/ipv4/raw.c iph->saddr = fl4->saddr; fl4 447 net/ipv4/raw.c static int raw_probe_proto_opt(struct raw_frag_vec *rfv, struct flowi4 *fl4) fl4 451 net/ipv4/raw.c if (fl4->flowi4_proto != IPPROTO_ICMP) fl4 461 net/ipv4/raw.c fl4->fl4_icmp_type = rfv->hdr.icmph.type; fl4 462 net/ipv4/raw.c fl4->fl4_icmp_code = rfv->hdr.icmph.code; fl4 504 net/ipv4/raw.c struct flowi4 fl4; fl4 626 net/ipv4/raw.c flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, fl4 637 net/ipv4/raw.c err = raw_probe_proto_opt(&rfv, &fl4); fl4 642 net/ipv4/raw.c security_sk_classify_flow(sk, flowi4_to_flowi(&fl4)); fl4 643 net/ipv4/raw.c rt = ip_route_output_flow(net, &fl4, sk); fl4 659 net/ipv4/raw.c err = raw_send_hdrinc(sk, &fl4, msg, len, fl4 664 net/ipv4/raw.c ipc.addr = fl4.daddr; fl4 666 net/ipv4/raw.c err = ip_append_data(sk, &fl4, raw_getfrag, fl4 672 net/ipv4/raw.c err = ip_push_pending_frames(sk, &fl4); fl4 690 net/ipv4/raw.c dst_confirm_neigh(&rt->dst, &fl4.daddr); fl4 524 net/ipv4/route.c static void __build_flow_key(const struct net *net, struct flowi4 *fl4, fl4 538 net/ipv4/route.c flowi4_init_output(fl4, oif, mark, tos, fl4 545 net/ipv4/route.c static void build_skb_flow_key(struct flowi4 *fl4, const struct sk_buff *skb, fl4 555 net/ipv4/route.c __build_flow_key(net, fl4, sk, iph, oif, tos, prot, mark, 0); fl4 558 net/ipv4/route.c static void build_sk_flow_key(struct flowi4 *fl4, const struct sock *sk) fl4 568 net/ipv4/route.c flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, fl4 576 net/ipv4/route.c static void ip_rt_build_flow_key(struct flowi4 *fl4, const struct sock *sk, fl4 580 net/ipv4/route.c build_skb_flow_key(fl4, skb, sk); fl4 582 net/ipv4/route.c build_sk_flow_key(fl4, sk); fl4 735 net/ipv4/route.c static void __ip_do_redirect(struct rtable *rt, struct sk_buff *skb, struct flowi4 *fl4, fl4 787 net/ipv4/route.c if (fib_lookup(net, fl4, &res, 0) == 0) { fl4 790 net/ipv4/route.c update_or_create_fnhe(nhc, fl4->daddr, new_gw, fl4 821 net/ipv4/route.c struct flowi4 fl4; fl4 831 net/ipv4/route.c __build_flow_key(net, &fl4, sk, iph, oif, tos, prot, mark, 0); fl4 832 net/ipv4/route.c __ip_do_redirect(rt, skb, &fl4, true); fl4 1012 net/ipv4/route.c static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu) fl4 1035 net/ipv4/route.c if (fib_lookup(dev_net(dst->dev), fl4, &res, 0) == 0) { fl4 1038 net/ipv4/route.c update_or_create_fnhe(nhc, fl4->daddr, 0, mtu, lock, fl4 1049 net/ipv4/route.c struct flowi4 fl4; fl4 1051 net/ipv4/route.c ip_rt_build_flow_key(&fl4, sk, skb); fl4 1052 net/ipv4/route.c __ip_rt_update_pmtu(rt, &fl4, mtu); fl4 1059 net/ipv4/route.c struct flowi4 fl4; fl4 1063 net/ipv4/route.c __build_flow_key(net, &fl4, NULL, iph, oif, fl4 1065 net/ipv4/route.c rt = __ip_route_output_key(net, &fl4); fl4 1067 net/ipv4/route.c __ip_rt_update_pmtu(rt, &fl4, mtu); fl4 1076 net/ipv4/route.c struct flowi4 fl4; fl4 1079 net/ipv4/route.c __build_flow_key(sock_net(sk), &fl4, sk, iph, 0, 0, 0, 0, 0); fl4 1081 net/ipv4/route.c if (!fl4.flowi4_mark) fl4 1082 net/ipv4/route.c fl4.flowi4_mark = IP4_REPLY_MARK(sock_net(sk), skb->mark); fl4 1084 net/ipv4/route.c rt = __ip_route_output_key(sock_net(sk), &fl4); fl4 1086 net/ipv4/route.c __ip_rt_update_pmtu(rt, &fl4, mtu); fl4 1094 net/ipv4/route.c struct flowi4 fl4; fl4 1112 net/ipv4/route.c __build_flow_key(net, &fl4, sk, iph, 0, 0, 0, 0, 0); fl4 1116 net/ipv4/route.c rt = ip_route_output_flow(sock_net(sk), &fl4, sk); fl4 1123 net/ipv4/route.c __ip_rt_update_pmtu((struct rtable *) xfrm_dst_path(&rt->dst), &fl4, mtu); fl4 1129 net/ipv4/route.c rt = ip_route_output_flow(sock_net(sk), &fl4, sk); fl4 1149 net/ipv4/route.c struct flowi4 fl4; fl4 1152 net/ipv4/route.c __build_flow_key(net, &fl4, NULL, iph, oif, fl4 1154 net/ipv4/route.c rt = __ip_route_output_key(net, &fl4); fl4 1156 net/ipv4/route.c __ip_do_redirect(rt, skb, &fl4, false); fl4 1165 net/ipv4/route.c struct flowi4 fl4; fl4 1169 net/ipv4/route.c __build_flow_key(net, &fl4, sk, iph, 0, 0, 0, 0, 0); fl4 1170 net/ipv4/route.c rt = __ip_route_output_key(net, &fl4); fl4 1172 net/ipv4/route.c __ip_do_redirect(rt, skb, &fl4, false); fl4 1262 net/ipv4/route.c struct flowi4 fl4 = { fl4 1272 net/ipv4/route.c if (fib_lookup(dev_net(rt->dst.dev), &fl4, &res, 0) == 0) fl4 1916 net/ipv4/route.c int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4, fl4 1919 net/ipv4/route.c u32 multipath_hash = fl4 ? fl4->flowi4_multipath_hash : 0; fl4 1930 net/ipv4/route.c hash_keys.addrs.v4addrs.src = fl4->saddr; fl4 1931 net/ipv4/route.c hash_keys.addrs.v4addrs.dst = fl4->daddr; fl4 1960 net/ipv4/route.c hash_keys.addrs.v4addrs.src = fl4->saddr; fl4 1961 net/ipv4/route.c hash_keys.addrs.v4addrs.dst = fl4->daddr; fl4 1962 net/ipv4/route.c hash_keys.ports.src = fl4->fl4_sport; fl4 1963 net/ipv4/route.c hash_keys.ports.dst = fl4->fl4_dport; fl4 1964 net/ipv4/route.c hash_keys.basic.ip_proto = fl4->flowi4_proto; fl4 1993 net/ipv4/route.c hash_keys.addrs.v4addrs.src = fl4->saddr; fl4 1994 net/ipv4/route.c hash_keys.addrs.v4addrs.dst = fl4->daddr; fl4 2048 net/ipv4/route.c struct flowi4 fl4; fl4 2062 net/ipv4/route.c fl4.flowi4_tun_key.tun_id = tun_info->key.tun_id; fl4 2064 net/ipv4/route.c fl4.flowi4_tun_key.tun_id = 0; fl4 2098 net/ipv4/route.c fl4.flowi4_oif = 0; fl4 2099 net/ipv4/route.c fl4.flowi4_iif = dev->ifindex; fl4 2100 net/ipv4/route.c fl4.flowi4_mark = skb->mark; fl4 2101 net/ipv4/route.c fl4.flowi4_tos = tos; fl4 2102 net/ipv4/route.c fl4.flowi4_scope = RT_SCOPE_UNIVERSE; fl4 2103 net/ipv4/route.c fl4.flowi4_flags = 0; fl4 2104 net/ipv4/route.c fl4.daddr = daddr; fl4 2105 net/ipv4/route.c fl4.saddr = saddr; fl4 2106 net/ipv4/route.c fl4.flowi4_uid = sock_net_uid(net, NULL); fl4 2108 net/ipv4/route.c if (fib4_rules_early_flow_dissect(net, skb, &fl4, &_flkeys)) { fl4 2111 net/ipv4/route.c fl4.flowi4_proto = 0; fl4 2112 net/ipv4/route.c fl4.fl4_sport = 0; fl4 2113 net/ipv4/route.c fl4.fl4_dport = 0; fl4 2116 net/ipv4/route.c err = fib_lookup(net, &fl4, res, 0); fl4 2313 net/ipv4/route.c const struct flowi4 *fl4, int orig_oif, fl4 2329 net/ipv4/route.c if (ipv4_is_loopback(fl4->saddr) && fl4 2334 net/ipv4/route.c if (ipv4_is_lbcast(fl4->daddr)) fl4 2336 net/ipv4/route.c else if (ipv4_is_multicast(fl4->daddr)) fl4 2338 net/ipv4/route.c else if (ipv4_is_zeronet(fl4->daddr)) fl4 2350 net/ipv4/route.c if (!ip_check_mc_rcu(in_dev, fl4->daddr, fl4->saddr, fl4 2351 net/ipv4/route.c fl4->flowi4_proto)) fl4 2381 net/ipv4/route.c fnhe = find_exception(nhc, fl4->daddr); fl4 2387 net/ipv4/route.c if (unlikely(fl4->flowi4_flags & fl4 2422 net/ipv4/route.c !ipv4_is_local_multicast(fl4->daddr)) { fl4 2430 net/ipv4/route.c rt_set_nexthop(rth, fl4->daddr, res, fnhe, fi, type, 0, do_cache); fl4 2440 net/ipv4/route.c struct rtable *ip_route_output_key_hash(struct net *net, struct flowi4 *fl4, fl4 2443 net/ipv4/route.c __u8 tos = RT_FL_TOS(fl4); fl4 2452 net/ipv4/route.c fl4->flowi4_iif = LOOPBACK_IFINDEX; fl4 2453 net/ipv4/route.c fl4->flowi4_tos = tos & IPTOS_RT_MASK; fl4 2454 net/ipv4/route.c fl4->flowi4_scope = ((tos & RTO_ONLINK) ? fl4 2458 net/ipv4/route.c rth = ip_route_output_key_hash_rcu(net, fl4, &res, skb); fl4 2465 net/ipv4/route.c struct rtable *ip_route_output_key_hash_rcu(struct net *net, struct flowi4 *fl4, fl4 2470 net/ipv4/route.c int orig_oif = fl4->flowi4_oif; fl4 2475 net/ipv4/route.c if (fl4->saddr) { fl4 2476 net/ipv4/route.c if (ipv4_is_multicast(fl4->saddr) || fl4 2477 net/ipv4/route.c ipv4_is_lbcast(fl4->saddr) || fl4 2478 net/ipv4/route.c ipv4_is_zeronet(fl4->saddr)) { fl4 2493 net/ipv4/route.c if (fl4->flowi4_oif == 0 && fl4 2494 net/ipv4/route.c (ipv4_is_multicast(fl4->daddr) || fl4 2495 net/ipv4/route.c ipv4_is_lbcast(fl4->daddr))) { fl4 2497 net/ipv4/route.c dev_out = __ip_dev_find(net, fl4->saddr, false); fl4 2516 net/ipv4/route.c fl4->flowi4_oif = dev_out->ifindex; fl4 2520 net/ipv4/route.c if (!(fl4->flowi4_flags & FLOWI_FLAG_ANYSRC)) { fl4 2522 net/ipv4/route.c if (!__ip_dev_find(net, fl4->saddr, false)) fl4 2528 net/ipv4/route.c if (fl4->flowi4_oif) { fl4 2529 net/ipv4/route.c dev_out = dev_get_by_index_rcu(net, fl4->flowi4_oif); fl4 2539 net/ipv4/route.c if (ipv4_is_local_multicast(fl4->daddr) || fl4 2540 net/ipv4/route.c ipv4_is_lbcast(fl4->daddr) || fl4 2541 net/ipv4/route.c fl4->flowi4_proto == IPPROTO_IGMP) { fl4 2542 net/ipv4/route.c if (!fl4->saddr) fl4 2543 net/ipv4/route.c fl4->saddr = inet_select_addr(dev_out, 0, fl4 2547 net/ipv4/route.c if (!fl4->saddr) { fl4 2548 net/ipv4/route.c if (ipv4_is_multicast(fl4->daddr)) fl4 2549 net/ipv4/route.c fl4->saddr = inet_select_addr(dev_out, 0, fl4 2550 net/ipv4/route.c fl4->flowi4_scope); fl4 2551 net/ipv4/route.c else if (!fl4->daddr) fl4 2552 net/ipv4/route.c fl4->saddr = inet_select_addr(dev_out, 0, fl4 2557 net/ipv4/route.c if (!fl4->daddr) { fl4 2558 net/ipv4/route.c fl4->daddr = fl4->saddr; fl4 2559 net/ipv4/route.c if (!fl4->daddr) fl4 2560 net/ipv4/route.c fl4->daddr = fl4->saddr = htonl(INADDR_LOOPBACK); fl4 2562 net/ipv4/route.c fl4->flowi4_oif = LOOPBACK_IFINDEX; fl4 2568 net/ipv4/route.c err = fib_lookup(net, fl4, res, 0); fl4 2572 net/ipv4/route.c if (fl4->flowi4_oif && fl4 2573 net/ipv4/route.c (ipv4_is_multicast(fl4->daddr) || fl4 2574 net/ipv4/route.c !netif_index_is_l3_master(net, fl4->flowi4_oif))) { fl4 2593 net/ipv4/route.c if (fl4->saddr == 0) fl4 2594 net/ipv4/route.c fl4->saddr = inet_select_addr(dev_out, 0, fl4 2604 net/ipv4/route.c if (!fl4->saddr) { fl4 2606 net/ipv4/route.c fl4->saddr = res->fi->fib_prefsrc; fl4 2608 net/ipv4/route.c fl4->saddr = fl4->daddr; fl4 2620 net/ipv4/route.c fl4->flowi4_oif = dev_out->ifindex; fl4 2625 net/ipv4/route.c fib_select_path(net, res, fl4, skb); fl4 2628 net/ipv4/route.c fl4->flowi4_oif = dev_out->ifindex; fl4 2632 net/ipv4/route.c rth = __mkroute_output(res, fl4, orig_oif, dev_out, flags); fl4 2737 net/ipv4/route.c struct rtable *rt, u32 table_id, struct flowi4 *fl4, fl4 2755 net/ipv4/route.c r->rtm_tos = fl4 ? fl4->flowi4_tos : 0; fl4 2783 net/ipv4/route.c if (fl4 && !rt_is_input_route(rt) && fl4 2784 net/ipv4/route.c fl4->saddr != src) { fl4 2785 net/ipv4/route.c if (nla_put_in_addr(skb, RTA_PREFSRC, fl4->saddr)) fl4 2825 net/ipv4/route.c if (fl4) { fl4 2826 net/ipv4/route.c if (fl4->flowi4_mark && fl4 2827 net/ipv4/route.c nla_put_u32(skb, RTA_MARK, fl4->flowi4_mark)) fl4 2830 net/ipv4/route.c if (!uid_eq(fl4->flowi4_uid, INVALID_UID) && fl4 2833 net/ipv4/route.c fl4->flowi4_uid))) fl4 2842 net/ipv4/route.c fl4->saddr, fl4->daddr, fl4 2852 net/ipv4/route.c if (nla_put_u32(skb, RTA_IIF, fl4->flowi4_iif)) fl4 3087 net/ipv4/route.c struct flowi4 fl4 = {}; fl4 3126 net/ipv4/route.c fl4.daddr = dst; fl4 3127 net/ipv4/route.c fl4.saddr = src; fl4 3128 net/ipv4/route.c fl4.flowi4_tos = rtm->rtm_tos; fl4 3129 net/ipv4/route.c fl4.flowi4_oif = tb[RTA_OIF] ? nla_get_u32(tb[RTA_OIF]) : 0; fl4 3130 net/ipv4/route.c fl4.flowi4_mark = mark; fl4 3131 net/ipv4/route.c fl4.flowi4_uid = uid; fl4 3133 net/ipv4/route.c fl4.fl4_sport = sport; fl4 3135 net/ipv4/route.c fl4.fl4_dport = dport; fl4 3136 net/ipv4/route.c fl4.flowi4_proto = ip_proto; fl4 3149 net/ipv4/route.c fl4.flowi4_iif = iif; /* for rt_fill_info */ fl4 3159 net/ipv4/route.c fl4.flowi4_iif = LOOPBACK_IFINDEX; fl4 3161 net/ipv4/route.c rt = ip_route_output_key_hash_rcu(net, &fl4, &res, skb); fl4 3194 net/ipv4/route.c fl4.flowi4_tos, res.fi, 0); fl4 3196 net/ipv4/route.c err = rt_fill_info(net, dst, src, rt, table_id, &fl4, skb, fl4 297 net/ipv4/syncookies.c struct flowi4 fl4; fl4 375 net/ipv4/syncookies.c flowi4_init_output(&fl4, ireq->ir_iif, ireq->ir_mark, fl4 380 net/ipv4/syncookies.c security_req_classify_flow(req, flowi4_to_flowi(&fl4)); fl4 381 net/ipv4/syncookies.c rt = ip_route_output_key(sock_net(sk), &fl4); fl4 403 net/ipv4/syncookies.c inet_sk(ret)->cork.fl.u.ip4 = fl4; fl4 206 net/ipv4/tcp_ipv4.c struct flowi4 *fl4; fl4 229 net/ipv4/tcp_ipv4.c fl4 = &inet->cork.fl.u.ip4; fl4 230 net/ipv4/tcp_ipv4.c rt = ip_route_connect(fl4, nexthop, inet->inet_saddr, fl4 247 net/ipv4/tcp_ipv4.c daddr = fl4->daddr; fl4 250 net/ipv4/tcp_ipv4.c inet->inet_saddr = fl4->saddr; fl4 282 net/ipv4/tcp_ipv4.c rt = ip_route_newports(fl4, rt, orig_sport, orig_dport, fl4 945 net/ipv4/tcp_ipv4.c struct flowi4 fl4; fl4 950 net/ipv4/tcp_ipv4.c if (!dst && (dst = inet_csk_route_req(sk, &fl4, req)) == NULL) fl4 814 net/ipv4/udp.c static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4, fl4 832 net/ipv4/udp.c uh->dest = fl4->fl4_dport; fl4 878 net/ipv4/udp.c udp4_hwcsum(skb, fl4->saddr, fl4->daddr); fl4 885 net/ipv4/udp.c uh->check = csum_tcpudp_magic(fl4->saddr, fl4->daddr, len, fl4 911 net/ipv4/udp.c struct flowi4 *fl4 = &inet->cork.fl.u.ip4; fl4 915 net/ipv4/udp.c skb = ip_finish_skb(sk, fl4); fl4 919 net/ipv4/udp.c err = udp_send_skb(skb, fl4, &inet->cork.base); fl4 971 net/ipv4/udp.c struct flowi4 *fl4; fl4 998 net/ipv4/udp.c fl4 = &inet->cork.fl.u.ip4; fl4 1135 net/ipv4/udp.c fl4 = &fl4_stack; fl4 1137 net/ipv4/udp.c flowi4_init_output(fl4, ipc.oif, ipc.sockc.mark, tos, fl4 1143 net/ipv4/udp.c security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); fl4 1144 net/ipv4/udp.c rt = ip_route_output_flow(net, fl4, sk); fl4 1165 net/ipv4/udp.c saddr = fl4->saddr; fl4 1167 net/ipv4/udp.c daddr = ipc.addr = fl4->daddr; fl4 1173 net/ipv4/udp.c skb = ip_make_skb(sk, fl4, getfrag, msg, ulen, fl4 1178 net/ipv4/udp.c err = udp_send_skb(skb, fl4, &cork); fl4 1195 net/ipv4/udp.c fl4 = &inet->cork.fl.u.ip4; fl4 1196 net/ipv4/udp.c fl4->daddr = daddr; fl4 1197 net/ipv4/udp.c fl4->saddr = saddr; fl4 1198 net/ipv4/udp.c fl4->fl4_dport = dport; fl4 1199 net/ipv4/udp.c fl4->fl4_sport = inet->inet_sport; fl4 1204 net/ipv4/udp.c err = ip_append_data(sk, fl4, getfrag, msg, ulen, fl4 1237 net/ipv4/udp.c dst_confirm_neigh(&rt->dst, &fl4->daddr); fl4 20 net/ipv4/xfrm4_policy.c static struct dst_entry *__xfrm4_dst_lookup(struct net *net, struct flowi4 *fl4, fl4 28 net/ipv4/xfrm4_policy.c memset(fl4, 0, sizeof(*fl4)); fl4 29 net/ipv4/xfrm4_policy.c fl4->daddr = daddr->a4; fl4 30 net/ipv4/xfrm4_policy.c fl4->flowi4_tos = tos; fl4 31 net/ipv4/xfrm4_policy.c fl4->flowi4_oif = l3mdev_master_ifindex_by_index(net, oif); fl4 32 net/ipv4/xfrm4_policy.c fl4->flowi4_mark = mark; fl4 34 net/ipv4/xfrm4_policy.c fl4->saddr = saddr->a4; fl4 36 net/ipv4/xfrm4_policy.c fl4->flowi4_flags = FLOWI_FLAG_SKIP_NH_OIF; fl4 38 net/ipv4/xfrm4_policy.c rt = __ip_route_output_key(net, fl4); fl4 50 net/ipv4/xfrm4_policy.c struct flowi4 fl4; fl4 52 net/ipv4/xfrm4_policy.c return __xfrm4_dst_lookup(net, &fl4, tos, oif, saddr, daddr, mark); fl4 60 net/ipv4/xfrm4_policy.c struct flowi4 fl4; fl4 62 net/ipv4/xfrm4_policy.c dst = __xfrm4_dst_lookup(net, &fl4, 0, oif, NULL, daddr, mark); fl4 66 net/ipv4/xfrm4_policy.c saddr->a4 = fl4.saddr; fl4 75 net/ipv4/xfrm4_policy.c const struct flowi4 *fl4 = &fl->u.ip4; fl4 77 net/ipv4/xfrm4_policy.c xdst->u.rt.rt_iif = fl4->flowi4_iif; fl4 571 net/ipv6/ip6_tunnel.c struct flowi4 fl4; fl4 612 net/ipv6/ip6_tunnel.c rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, eiph->saddr, fl4 622 net/ipv6/ip6_tunnel.c rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, fl4 828 net/ipv6/sit.c struct flowi4 fl4; fl4 899 net/ipv6/sit.c flowi4_init_output(&fl4, tunnel->parms.link, tunnel->fwmark, fl4 904 net/ipv6/sit.c rt = dst_cache_get_ip4(&tunnel->dst_cache, &fl4.saddr); fl4 906 net/ipv6/sit.c rt = ip_route_output_flow(tunnel->net, &fl4, NULL); fl4 911 net/ipv6/sit.c dst_cache_set_ip4(&tunnel->dst_cache, &rt->dst, fl4.saddr); fl4 990 net/ipv6/sit.c if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0) { fl4 997 net/ipv6/sit.c iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, protocol, tos, ttl, fl4 1064 net/ipv6/sit.c struct flowi4 fl4; fl4 1070 net/ipv6/sit.c struct rtable *rt = ip_route_output_ports(tunnel->net, &fl4, fl4 412 net/l2tp/l2tp_ip.c struct flowi4 *fl4; fl4 468 net/l2tp/l2tp_ip.c fl4 = &inet->cork.fl.u.ip4; fl4 486 net/l2tp/l2tp_ip.c rt = ip_route_output_ports(sock_net(sk), fl4, sk, fl4 126 net/netfilter/ipvs/ip_vs_xmit.c struct flowi4 fl4; fl4 130 net/netfilter/ipvs/ip_vs_xmit.c memset(&fl4, 0, sizeof(fl4)); fl4 131 net/netfilter/ipvs/ip_vs_xmit.c fl4.daddr = daddr; fl4 132 net/netfilter/ipvs/ip_vs_xmit.c fl4.flowi4_flags = (rt_mode & IP_VS_RT_MODE_KNOWN_NH) ? fl4 136 net/netfilter/ipvs/ip_vs_xmit.c rt = ip_route_output_key(net, &fl4); fl4 142 net/netfilter/ipvs/ip_vs_xmit.c flowi4_update_output(&fl4, 0, 0, daddr, 0); fl4 147 net/netfilter/ipvs/ip_vs_xmit.c } else if (!*saddr && rt_mode & IP_VS_RT_MODE_CONNECT && fl4.saddr) { fl4 149 net/netfilter/ipvs/ip_vs_xmit.c *saddr = fl4.saddr; fl4 150 net/netfilter/ipvs/ip_vs_xmit.c flowi4_update_output(&fl4, 0, 0, daddr, fl4.saddr); fl4 154 net/netfilter/ipvs/ip_vs_xmit.c *saddr = fl4.saddr; fl4 62 net/netfilter/nf_nat_core.c struct flowi4 *fl4 = &fl->u.ip4; fl4 65 net/netfilter/nf_nat_core.c fl4->daddr = t->dst.u3.ip; fl4 71 net/netfilter/nf_nat_core.c fl4->fl4_dport = t->dst.u.all; fl4 77 net/netfilter/nf_nat_core.c fl4->saddr = t->src.u3.ip; fl4 83 net/netfilter/nf_nat_core.c fl4->fl4_sport = t->src.u.all; fl4 52 net/netfilter/xt_TCPMSS.c struct flowi4 *fl4 = &fl.u.ip4; fl4 53 net/netfilter/xt_TCPMSS.c memset(fl4, 0, sizeof(*fl4)); fl4 54 net/netfilter/xt_TCPMSS.c fl4->daddr = ip_hdr(skb)->saddr; fl4 159 net/rxrpc/peer_object.c struct flowi4 *fl4 = &fl.u.ip4; fl4 170 net/rxrpc/peer_object.c net, fl4, NULL, fl4 281 net/sctp/protocol.c static void sctp_v4_dst_saddr(union sctp_addr *saddr, struct flowi4 *fl4, fl4 286 net/sctp/protocol.c saddr->v4.sin_addr.s_addr = fl4->saddr; fl4 413 net/sctp/protocol.c struct flowi4 *fl4 = &_fl.u.ip4; fl4 424 net/sctp/protocol.c fl4->daddr = daddr->v4.sin_addr.s_addr; fl4 425 net/sctp/protocol.c fl4->fl4_dport = daddr->v4.sin_port; fl4 426 net/sctp/protocol.c fl4->flowi4_proto = IPPROTO_SCTP; fl4 428 net/sctp/protocol.c fl4->flowi4_tos = RT_CONN_FLAGS_TOS(asoc->base.sk, tos); fl4 429 net/sctp/protocol.c fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if; fl4 430 net/sctp/protocol.c fl4->fl4_sport = htons(asoc->base.bind_addr.port); fl4 433 net/sctp/protocol.c fl4->saddr = saddr->v4.sin_addr.s_addr; fl4 434 net/sctp/protocol.c if (!fl4->fl4_sport) fl4 435 net/sctp/protocol.c fl4->fl4_sport = saddr->v4.sin_port; fl4 438 net/sctp/protocol.c pr_debug("%s: dst:%pI4, src:%pI4 - ", __func__, &fl4->daddr, fl4 439 net/sctp/protocol.c &fl4->saddr); fl4 441 net/sctp/protocol.c rt = ip_route_output_key(sock_net(sk), fl4); fl4 460 net/sctp/protocol.c sctp_v4_dst_saddr(&dst_saddr, fl4, htons(bp->port)); fl4 492 net/sctp/protocol.c fl4->fl4_sport = laddr->a.v4.sin_port; fl4 493 net/sctp/protocol.c flowi4_update_output(fl4, fl4 499 net/sctp/protocol.c rt = ip_route_output_key(sock_net(sk), fl4); fl4 508 net/sctp/protocol.c if (!odev || odev->ifindex != fl4->flowi4_oif) { fl4 196 net/xfrm/xfrm_policy.c const struct flowi4 *fl4 = &fl->u.ip4; fl4 198 net/xfrm/xfrm_policy.c return addr4_match(fl4->daddr, sel->daddr.a4, sel->prefixlen_d) && fl4 199 net/xfrm/xfrm_policy.c addr4_match(fl4->saddr, sel->saddr.a4, sel->prefixlen_s) && fl4 200 net/xfrm/xfrm_policy.c !((xfrm_flowi_dport(fl, &fl4->uli) ^ sel->dport) & sel->dport_mask) && fl4 201 net/xfrm/xfrm_policy.c !((xfrm_flowi_sport(fl, &fl4->uli) ^ sel->sport) & sel->sport_mask) && fl4 202 net/xfrm/xfrm_policy.c (fl4->flowi4_proto == sel->proto || !sel->proto) && fl4 203 net/xfrm/xfrm_policy.c (fl4->flowi4_oif == sel->ifindex || !sel->ifindex); fl4 3268 net/xfrm/xfrm_policy.c struct flowi4 *fl4 = &fl->u.ip4; fl4 3274 net/xfrm/xfrm_policy.c memset(fl4, 0, sizeof(struct flowi4)); fl4 3275 net/xfrm/xfrm_policy.c fl4->flowi4_mark = skb->mark; fl4 3276 net/xfrm/xfrm_policy.c fl4->flowi4_oif = reverse ? skb->skb_iif : oif; fl4 3278 net/xfrm/xfrm_policy.c fl4->flowi4_proto = iph->protocol; fl4 3279 net/xfrm/xfrm_policy.c fl4->daddr = reverse ? iph->saddr : iph->daddr; fl4 3280 net/xfrm/xfrm_policy.c fl4->saddr = reverse ? iph->daddr : iph->saddr; fl4 3281 net/xfrm/xfrm_policy.c fl4->flowi4_tos = iph->tos; fl4 3297 net/xfrm/xfrm_policy.c fl4->fl4_sport = ports[!!reverse]; fl4 3298 net/xfrm/xfrm_policy.c fl4->fl4_dport = ports[!reverse]; fl4 3309 net/xfrm/xfrm_policy.c fl4->fl4_icmp_type = icmp[0]; fl4 3310 net/xfrm/xfrm_policy.c fl4->fl4_icmp_code = icmp[1]; fl4 3321 net/xfrm/xfrm_policy.c fl4->fl4_ipsec_spi = ehdr[0]; fl4 3332 net/xfrm/xfrm_policy.c fl4->fl4_ipsec_spi = ah_hdr[1]; fl4 3343 net/xfrm/xfrm_policy.c fl4->fl4_ipsec_spi = htonl(ntohs(ipcomp_hdr[1])); fl4 3359 net/xfrm/xfrm_policy.c fl4->fl4_gre_key = gre_hdr[1]; fl4 3364 net/xfrm/xfrm_policy.c fl4->fl4_ipsec_spi = 0; fl4 854 net/xfrm/xfrm_state.c const struct flowi4 *fl4 = &fl->u.ip4; fl4 856 net/xfrm/xfrm_state.c sel->daddr.a4 = fl4->daddr; fl4 857 net/xfrm/xfrm_state.c sel->saddr.a4 = fl4->saddr; fl4 858 net/xfrm/xfrm_state.c sel->dport = xfrm_flowi_dport(fl, &fl4->uli); fl4 860 net/xfrm/xfrm_state.c sel->sport = xfrm_flowi_sport(fl, &fl4->uli); fl4 865 net/xfrm/xfrm_state.c sel->proto = fl4->flowi4_proto; fl4 866 net/xfrm/xfrm_state.c sel->ifindex = fl4->flowi4_oif;