| /linux/net/ipv4/ |
| H A D | route.c | 510 static void __build_flow_key(const struct net *net, struct flowi4 *fl4, in __build_flow_key() argument 526 flowi4_init_output(fl4, oif, mark, tos & INET_DSCP_MASK, scope, in __build_flow_key() 531 static void build_skb_flow_key(struct flowi4 *fl4, const struct sk_buff *skb, in build_skb_flow_key() argument 541 __build_flow_key(net, fl4, sk, iph, oif, tos, prot, mark, 0); in build_skb_flow_key() 544 static void build_sk_flow_key(struct flowi4 *fl4, const struct sock *sk) in build_sk_flow_key() argument 554 flowi4_init_output(fl4, sk->sk_bound_dev_if, READ_ONCE(sk->sk_mark), in build_sk_flow_key() 565 static void ip_rt_build_flow_key(struct flowi4 *fl4, const struct sock *sk, in ip_rt_build_flow_key() argument 569 build_skb_flow_key(fl4, skb, sk); in ip_rt_build_flow_key() 571 build_sk_flow_key(fl4, sk); in ip_rt_build_flow_key() 744 static void __ip_do_redirect(struct rtable *rt, struct sk_buff *skb, struct flowi4 *fl4, in __ip_do_redirect() argument [all …]
|
| H A D | datagram.c | 23 struct flowi4 *fl4; in __ip4_datagram_connect() local 48 fl4 = &inet->cork.fl.u.ip4; in __ip4_datagram_connect() 49 rt = ip_route_connect(fl4, usin->sin_addr.s_addr, saddr, oif, in __ip4_datagram_connect() 66 inet->inet_daddr = fl4->daddr; in __ip4_datagram_connect() 69 inet->inet_saddr = fl4->saddr; in __ip4_datagram_connect() 71 inet->inet_rcv_saddr = fl4->saddr; in __ip4_datagram_connect() 106 struct flowi4 fl4; in ip4_datagram_release_cb() local 117 inet_sk_init_flowi4(inet, &fl4); in ip4_datagram_release_cb() 118 rt = ip_route_output_flow(sock_net(sk), &fl4, sk); in ip4_datagram_release_cb()
|
| H A D | icmp.c | 310 struct flowi4 *fl4, int type, int code, in icmpv4_xrlim_allow() argument 327 peer = inet_getpeer_v4(net->ipv4.peers, fl4->daddr, in icmpv4_xrlim_allow() 371 struct flowi4 *fl4, in icmp_push_reply() argument 376 if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, in icmp_push_reply() 395 ip_push_pending_frames(sk, fl4); in icmp_push_reply() 409 struct flowi4 fl4; in icmp_reply() local 443 memset(&fl4, 0, sizeof(fl4)); in icmp_reply() 444 fl4.daddr = daddr; in icmp_reply() 445 fl4 in icmp_reply() 481 icmp_route_lookup(struct net * net,struct flowi4 * fl4,struct sk_buff * skb_in,const struct iphdr * iph,__be32 saddr,dscp_t dscp,u32 mark,int type,int code,struct icmp_bxm * param) icmp_route_lookup() argument 605 struct flowi4 fl4; __icmp_send() local [all...] |
| H A D | ip_output.c | 453 static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) in ip_copy_addrs() argument 455 BUILD_BUG_ON(offsetof(typeof(*fl4), daddr) != in ip_copy_addrs() 456 offsetof(typeof(*fl4), saddr) + sizeof(fl4->saddr)); in ip_copy_addrs() 458 iph->saddr = fl4->saddr; in ip_copy_addrs() 459 iph->daddr = fl4->daddr; in ip_copy_addrs() 469 struct flowi4 *fl4; in __ip_queue_xmit() local 479 fl4 = &fl->u.ip4; in __ip_queue_xmit() 487 inet_sk_init_flowi4(inet, fl4); in __ip_queue_xmit() 490 fl4->flowi4_dscp = inet_dsfield_to_dscp(tos); in __ip_queue_xmit() 496 rt = ip_route_output_flow(net, fl4, sk); in __ip_queue_xmit() [all …]
|
| H A D | ip_tunnel.c | 293 struct flowi4 fl4; in ip_tunnel_bind_dev() local 296 ip_tunnel_init_flow(&fl4, iph->protocol, iph->daddr, in ip_tunnel_bind_dev() 300 rt = ip_route_output_key(tunnel->net, &fl4); in ip_tunnel_bind_dev() 580 struct flowi4 fl4; in ip_md_tunnel_xmit() local 599 ip_tunnel_init_flow(&fl4, proto, key->u.ipv4.dst, key->u.ipv4.src, in ip_md_tunnel_xmit() 607 if (ip_tunnel_encap(skb, &tun_info->encap, &proto, &fl4) < 0) in ip_md_tunnel_xmit() 612 rt = dst_cache_get_ip4(&tun_info->dst_cache, &fl4.saddr); in ip_md_tunnel_xmit() 614 rt = ip_route_output_key(tunnel->net, &fl4); in ip_md_tunnel_xmit() 621 fl4.saddr); in ip_md_tunnel_xmit() 656 iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, proto, tos, ttl, in ip_md_tunnel_xmit() [all …]
|
| H A D | fib_semantics.c | 1182 struct flowi4 fl4 = { in fib_check_nh_v4_gw() local 1190 if (fl4.flowi4_scope < RT_SCOPE_LINK) in fib_check_nh_v4_gw() 1191 fl4.flowi4_scope = RT_SCOPE_LINK; in fib_check_nh_v4_gw() 1197 err = fib_table_lookup(tbl, &fl4, &res, in fib_check_nh_v4_gw() 1206 err = fib_lookup(net, &fl4, &res, in fib_check_nh_v4_gw() 2166 const struct flowi4 *fl4) in fib_select_multipath() argument 2180 saddr = fl4 ? fl4->saddr : 0; in fib_select_multipath() 2210 struct flowi4 *fl4, const struct sk_buff *skb) in fib_select_path() argument 2212 if (fl4->flowi4_oif) in fib_select_path() 2217 int h = fib_multipath_hash(net, fl4, skb, NULL); in fib_select_path() [all …]
|
| H A D | udp.c | 1117 static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4, in udp_send_skb() argument 1135 uh->dest = fl4->fl4_dport; in udp_send_skb() 1182 udp4_hwcsum(skb, fl4->saddr, fl4->daddr); in udp_send_skb() 1189 uh->check = csum_tcpudp_magic(fl4->saddr, fl4->daddr, len, in udp_send_skb() 1216 struct flowi4 *fl4 = &inet->cork.fl.u.ip4; in udp_push_pending_frames() local 1220 skb = ip_finish_skb(sk, fl4); in udp_push_pending_frames() 1224 err = udp_send_skb(skb, fl4, &inet->cork.base); in udp_push_pending_frames() 1276 struct flowi4 *fl4; in udp_sendmsg() local 1304 fl4 = &inet->cork.fl.u.ip4; in udp_sendmsg() 1441 fl4 = &fl4_stack; in udp_sendmsg() [all …]
|
| H A D | igmp.c | 335 const struct flowi4 *fl4) in igmpv3_get_srcaddr() argument 344 if (fl4->saddr == ifa->ifa_local) in igmpv3_get_srcaddr() 345 return fl4->saddr; in igmpv3_get_srcaddr() 358 struct flowi4 fl4; in igmpv3_newpack() local 375 rt = ip_route_output_ports(net, &fl4, NULL, IGMPV3_ALL_MCR, 0, in igmpv3_newpack() 398 pip->daddr = fl4.daddr; in igmpv3_newpack() 401 pip->saddr = igmpv3_get_srcaddr(dev, &fl4); in igmpv3_newpack() 739 struct flowi4 fl4; in igmp_send_report() local 755 rt = ip_route_output_ports(net, &fl4, NULL, dst, 0, in igmp_send_report() 784 iph->saddr = fl4.saddr; in igmp_send_report()
|
| H A D | ip_gre.c | 632 struct flowi4 fl4; in gre_fill_metadata_dst() local 638 ip_tunnel_init_flow(&fl4, IPPROTO_GRE, key->u.ipv4.dst, key->u.ipv4.src, in gre_fill_metadata_dst() 642 rt = ip_route_output_key(dev_net(dev), &fl4); in gre_fill_metadata_dst() 647 info->key.u.ipv4.src = fl4.saddr; in gre_fill_metadata_dst() 933 struct flowi4 fl4 = { in ipgre_open() local 944 rt = ip_route_output_key(t->net, &fl4); in ipgre_open()
|
| /linux/include/net/ |
| H A D | ip_tunnels.h | 349 static inline void ip_tunnel_init_flow(struct flowi4 *fl4, in ip_tunnel_init_flow() argument 357 memset(fl4, 0, sizeof(*fl4)); in ip_tunnel_init_flow() 360 fl4->flowi4_l3mdev = l3mdev_master_upper_ifindex_by_index(net, oif); in ip_tunnel_init_flow() 362 fl4->flowi4_oif = fl4->flowi4_l3mdev ? 0 : oif; in ip_tunnel_init_flow() 365 fl4->daddr = daddr; in ip_tunnel_init_flow() 366 fl4->saddr = saddr; in ip_tunnel_init_flow() 367 fl4->flowi4_dscp = inet_dsfield_to_dscp(tos); in ip_tunnel_init_flow() 368 fl4->flowi4_proto = proto; in ip_tunnel_init_flow() 369 fl4->fl4_gre_key = key; in ip_tunnel_init_flow() 370 fl4->flowi4_mark = mark; in ip_tunnel_init_flow() [all …]
|
| /linux/net/xfrm/ |
| H A D | xfrm_nat_keepalive.c | 46 struct flowi4 fl4; in nat_keepalive_send_ipv4() 52 flowi4_init_output(&fl4, 0 /* oif */, skb->mark, tos, in nat_keepalive_send_ipv4() 57 rt = ip_route_output_key(net, &fl4); in nat_keepalive_send_ipv4() 66 err = ip_build_and_send_pkt(skb, sk, fl4.saddr, fl4.daddr, NULL, tos); 42 struct flowi4 fl4; nat_keepalive_send_ipv4() local
|
| H A D | xfrm_state.c | 1037 const struct flowi4 *fl4 = &fl->u.ip4; in __xfrm4_init_tempsel() local 1039 sel->daddr.a4 = fl4->daddr; in __xfrm4_init_tempsel() 1040 sel->saddr.a4 = fl4->saddr; in __xfrm4_init_tempsel() 1041 sel->dport = xfrm_flowi_dport(fl, &fl4->uli); in __xfrm4_init_tempsel() 1043 sel->sport = xfrm_flowi_sport(fl, &fl4->uli); in __xfrm4_init_tempsel() 1048 sel->proto = fl4->flowi4_proto; in __xfrm4_init_tempsel() 1049 sel->ifindex = fl4->flowi4_oif; in __xfrm4_init_tempsel()
|
| /linux/net/dccp/ |
| H A D | ipv4.c | |
| /linux/net/netfilter/ |
| H A D | xt_TCPMSS.c | 52 struct flowi4 *fl4 = &fl.u.ip4; in tcpmss_reverse_mtu() local 53 memset(fl4, 0, sizeof(*fl4)); in tcpmss_reverse_mtu() 54 fl4->daddr = ip_hdr(skb)->saddr; in tcpmss_reverse_mtu()
|
| H A D | nf_nat_core.c | 65 struct flowi4 *fl4 = &fl->u.ip4; in nf_nat_ipv4_decode_session() local 68 fl4->daddr = t->dst.u3.ip; in nf_nat_ipv4_decode_session() 73 fl4->fl4_dport = t->dst.u.all; in nf_nat_ipv4_decode_session() 79 fl4->saddr = t->src.u3.ip; in nf_nat_ipv4_decode_session() 84 fl4->fl4_sport = t->src.u.all; in nf_nat_ipv4_decode_session()
|
| /linux/net/netfilter/ipvs/ |
| H A D | ip_vs_xmit.c | 125 struct flowi4 fl4; in do_output_route4() 128 memset(&fl4, 0, sizeof(fl4)); in do_output_route4() 129 fl4.daddr = daddr; in do_output_route4() 130 fl4.flowi4_flags = (rt_mode & IP_VS_RT_MODE_KNOWN_NH) ? in do_output_route4() 134 rt = ip_route_output_key(net, &fl4); in do_output_route4() 139 if (rt_mode & IP_VS_RT_MODE_CONNECT && fl4.saddr) { in do_output_route4() 141 flowi4_update_output(&fl4, 0, daddr, fl4.saddr); in do_output_route4() 146 *ret_saddr = fl4 in do_output_route4() 126 struct flowi4 fl4; do_output_route4() local [all...] |
| /linux/drivers/net/ethernet/chelsio/libcxgb/ |
| H A D | libcxgb_cm.c | 98 struct flowi4 fl4; in cxgb_find_route() local 101 rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip, in cxgb_find_route()
|
| /linux/drivers/net/ethernet/marvell/prestera/ |
| H A D | prestera_router.c | 250 struct flowi4 fl4; in prestera_util_kern_get_route() local 255 memset(&fl4, 0, sizeof(fl4)); in prestera_util_kern_get_route() 256 fl4.daddr = *addr; in prestera_util_kern_get_route() 257 return fib_lookup(&init_net, &fl4, res, 0 /* FIB_LOOKUP_NOREF */); in prestera_util_kern_get_route()
|
| /linux/net/rxrpc/ |
| H A D | peer_object.c | 158 struct flowi4 *fl4 = &fl.u.ip4; in rxrpc_assess_MTU_size() local 174 net, fl4, NULL, in rxrpc_assess_MTU_size()
|
| /linux/net/smc/ |
| H A D | smc_ib.c | 201 struct flowi4 fl4 = { in smc_ib_find_route() local 208 rt = ip_route_output_flow(net, &fl4, NULL); in smc_ib_find_route() 213 neigh = dst_neigh_lookup(&rt->dst, &fl4.daddr); in smc_ib_find_route()
|
| /linux/drivers/net/ethernet/mellanox/mlxsw/ |
| H A D | spectrum_span.c | 419 struct flowi4 fl4; in mlxsw_sp_span_gretap4_route() local 425 ip_tunnel_init_flow(&fl4, parms.iph.protocol, *daddrp, *saddrp, in mlxsw_sp_span_gretap4_route() 428 rt = ip_route_output_key(tun->net, &fl4); in mlxsw_sp_span_gretap4_route() 436 *saddrp = fl4.saddr; in mlxsw_sp_span_gretap4_route()
|
| /linux/net/core/ |
| H A D | filter.c | 2374 struct flowi4 fl4 = { in __bpf_redirect_neigh_v4() local 2385 rt = ip_route_output_flow(net, &fl4, NULL); in __bpf_redirect_neigh_v4() 6097 struct flowi4 fl4; in bpf_ipv4_fib_lookup() local 6111 fl4.flowi4_iif = 1; in bpf_ipv4_fib_lookup() 6112 fl4.flowi4_oif = params->ifindex; in bpf_ipv4_fib_lookup() 6114 fl4.flowi4_iif = params->ifindex; in bpf_ipv4_fib_lookup() 6115 fl4.flowi4_oif = 0; in bpf_ipv4_fib_lookup() 6117 fl4.flowi4_dscp = inet_dsfield_to_dscp(params->tos); in bpf_ipv4_fib_lookup() 6118 fl4.flowi4_scope = RT_SCOPE_UNIVERSE; in bpf_ipv4_fib_lookup() 6119 fl4.flowi4_flags = 0; in bpf_ipv4_fib_lookup() [all …]
|
| /linux/drivers/scsi/cxgbi/ |
| H A D | libcxgbi.c | 588 static struct rtable *find_route_ipv4(struct flowi4 *fl4, in find_route_ipv4() argument 595 rt = ip_route_output_ports(&init_net, fl4, NULL, daddr, saddr, in find_route_ipv4() 612 struct flowi4 fl4; in cxgbi_check_route() local 618 rt = find_route_ipv4(&fl4, 0, daddr->sin_addr.s_addr, 0, in cxgbi_check_route() 689 csk->saddr.sin_addr.s_addr = fl4.saddr; in cxgbi_check_route()
|
| /linux/net/ipv6/ |
| H A D | ip6_tunnel.c | 570 struct flowi4 fl4; in ip4ip6_err() local 611 rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, eiph->saddr, in ip4ip6_err() 622 rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, in ip4ip6_err()
|
| /linux/drivers/infiniband/core/ |
| H A D | cma.c | 1596 struct flowi4 fl4; in validate_ipv4_net_dev() local 1606 memset(&fl4, 0, sizeof(fl4)); in validate_ipv4_net_dev() 1607 fl4.flowi4_oif = net_dev->ifindex; in validate_ipv4_net_dev() 1608 fl4.daddr = daddr; in validate_ipv4_net_dev() 1609 fl4.saddr = saddr; in validate_ipv4_net_dev() 1612 err = fib_lookup(dev_net(net_dev), &fl4, &res, 0); in validate_ipv4_net_dev()
|