/linux-4.4.14/include/net/ |
D | route.h | 139 struct flowi4 fl4 = { in ip_route_output() local 145 return ip_route_output_key(net, &fl4); in ip_route_output() 148 static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi4 *fl4, in ip_route_output_ports() argument 154 flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos, in ip_route_output_ports() 159 security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); in ip_route_output_ports() 160 return ip_route_output_flow(net, fl4, sk); in ip_route_output_ports() 163 static inline struct rtable *ip_route_output_gre(struct net *net, struct flowi4 *fl4, in ip_route_output_gre() argument 167 memset(fl4, 0, sizeof(*fl4)); in ip_route_output_gre() 168 fl4->flowi4_oif = oif; in ip_route_output_gre() 169 fl4->daddr = daddr; in ip_route_output_gre() [all …]
|
D | flow.h | 93 static inline void flowi4_init_output(struct flowi4 *fl4, int oif, in flowi4_init_output() argument 99 fl4->flowi4_oif = oif; in flowi4_init_output() 100 fl4->flowi4_iif = LOOPBACK_IFINDEX; in flowi4_init_output() 101 fl4->flowi4_mark = mark; in flowi4_init_output() 102 fl4->flowi4_tos = tos; in flowi4_init_output() 103 fl4->flowi4_scope = scope; in flowi4_init_output() 104 fl4->flowi4_proto = proto; in flowi4_init_output() 105 fl4->flowi4_flags = flags; in flowi4_init_output() 106 fl4->flowi4_secid = 0; in flowi4_init_output() 107 fl4->flowi4_tun_key.tun_id = 0; in flowi4_init_output() [all …]
|
D | l3mdev.h | 31 const struct flowi4 *fl4); 33 struct flowi4 *fl4); 88 const struct flowi4 *fl4) in l3mdev_get_rtable() argument 91 return dev->l3mdev_ops->l3mdev_get_rtable(dev, fl4); in l3mdev_get_rtable() 116 struct flowi4 *fl4) in l3mdev_get_saddr() argument 128 rc = dev->l3mdev_ops->l3mdev_get_saddr(dev, fl4); in l3mdev_get_saddr() 196 const struct flowi4 *fl4) in l3mdev_get_rtable() argument 207 struct flowi4 *fl4) in l3mdev_get_saddr() argument
|
D | fou.h | 15 u8 *protocol, struct flowi4 *fl4); 17 u8 *protocol, struct flowi4 *fl4);
|
D | ip.h | 120 int ip_append_data(struct sock *sk, struct flowi4 *fl4, 129 ssize_t ip_append_page(struct sock *sk, struct flowi4 *fl4, struct page *page, 131 struct sk_buff *__ip_make_skb(struct sock *sk, struct flowi4 *fl4, 135 int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4); 137 struct sk_buff *ip_make_skb(struct sock *sk, struct flowi4 *fl4, 144 static inline struct sk_buff *ip_finish_skb(struct sock *sk, struct flowi4 *fl4) in ip_finish_skb() argument 146 return __ip_make_skb(sk, fl4, &sk->sk_write_queue, &inet_sk(sk)->cork.base); in ip_finish_skb()
|
D | ip_tunnels.h | 169 u8 *protocol, struct flowi4 *fl4); 232 u8 *protocol, struct flowi4 *fl4);
|
D | inet_connection_sock.h | 267 struct dst_entry *inet_csk_route_req(const struct sock *sk, struct flowi4 *fl4,
|
D | ip_fib.h | 334 struct flowi4 *fl4, int mp_hash);
|
/linux-4.4.14/net/ipv4/ |
D | xfrm4_policy.c | 22 static struct dst_entry *__xfrm4_dst_lookup(struct net *net, struct flowi4 *fl4, in __xfrm4_dst_lookup() argument 29 memset(fl4, 0, sizeof(*fl4)); in __xfrm4_dst_lookup() 30 fl4->daddr = daddr->a4; in __xfrm4_dst_lookup() 31 fl4->flowi4_tos = tos; in __xfrm4_dst_lookup() 32 fl4->flowi4_oif = oif; in __xfrm4_dst_lookup() 34 fl4->saddr = saddr->a4; in __xfrm4_dst_lookup() 36 fl4->flowi4_flags = FLOWI_FLAG_SKIP_NH_OIF; in __xfrm4_dst_lookup() 38 rt = __ip_route_output_key(net, fl4); in __xfrm4_dst_lookup() 49 struct flowi4 fl4; in xfrm4_dst_lookup() local 51 return __xfrm4_dst_lookup(net, &fl4, tos, oif, saddr, daddr); in xfrm4_dst_lookup() [all …]
|
D | route.c | 504 static void __build_flow_key(struct flowi4 *fl4, const struct sock *sk, in __build_flow_key() argument 517 flowi4_init_output(fl4, oif, mark, tos, in __build_flow_key() 523 static void build_skb_flow_key(struct flowi4 *fl4, const struct sk_buff *skb, in build_skb_flow_key() argument 532 __build_flow_key(fl4, sk, iph, oif, tos, prot, mark, 0); in build_skb_flow_key() 535 static void build_sk_flow_key(struct flowi4 *fl4, const struct sock *sk) in build_sk_flow_key() argument 545 flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, in build_sk_flow_key() 553 static void ip_rt_build_flow_key(struct flowi4 *fl4, const struct sock *sk, in ip_rt_build_flow_key() argument 557 build_skb_flow_key(fl4, skb, sk); in ip_rt_build_flow_key() 559 build_sk_flow_key(fl4, sk); in ip_rt_build_flow_key() 705 static void __ip_do_redirect(struct rtable *rt, struct sk_buff *skb, struct flowi4 *fl4, in __ip_do_redirect() argument [all …]
|
D | icmp.c | 290 struct flowi4 *fl4, int type, int code) in icmpv4_xrlim_allow() argument 315 peer = inet_getpeer_v4(net->ipv4.peers, fl4->daddr, vif, 1); in icmpv4_xrlim_allow() 355 struct flowi4 *fl4, in icmp_push_reply() argument 362 if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, in icmp_push_reply() 381 ip_push_pending_frames(sk, fl4); in icmp_push_reply() 394 struct flowi4 fl4; in icmp_reply() local 424 memset(&fl4, 0, sizeof(fl4)); in icmp_reply() 425 fl4.daddr = daddr; in icmp_reply() 426 fl4.saddr = saddr; in icmp_reply() 427 fl4.flowi4_mark = mark; in icmp_reply() [all …]
|
D | datagram.c | 27 struct flowi4 *fl4; in __ip4_datagram_connect() local 50 fl4 = &inet->cork.fl.u.ip4; in __ip4_datagram_connect() 51 rt = ip_route_connect(fl4, usin->sin_addr.s_addr, saddr, in __ip4_datagram_connect() 68 inet->inet_saddr = fl4->saddr; /* Update source address */ in __ip4_datagram_connect() 70 inet->inet_rcv_saddr = fl4->saddr; in __ip4_datagram_connect() 74 inet->inet_daddr = fl4->daddr; in __ip4_datagram_connect() 108 struct flowi4 fl4; in ip4_datagram_release_cb() local 121 rt = ip_route_output_ports(sock_net(sk), &fl4, sk, daddr, in ip4_datagram_release_cb()
|
D | netfilter.c | 24 struct flowi4 fl4 = {}; in ip_route_me_harder() local 39 fl4.daddr = iph->daddr; in ip_route_me_harder() 40 fl4.saddr = saddr; in ip_route_me_harder() 41 fl4.flowi4_tos = RT_TOS(iph->tos); in ip_route_me_harder() 42 fl4.flowi4_oif = skb->sk ? skb->sk->sk_bound_dev_if : 0; in ip_route_me_harder() 43 fl4.flowi4_mark = skb->mark; in ip_route_me_harder() 44 fl4.flowi4_flags = flags; in ip_route_me_harder() 45 rt = ip_route_output_key(net, &fl4); in ip_route_me_harder() 58 xfrm_decode_session(skb, flowi4_to_flowi(&fl4), AF_INET) == 0) { in ip_route_me_harder() 61 dst = xfrm_lookup(net, dst, flowi4_to_flowi(&fl4), skb->sk, 0); in ip_route_me_harder()
|
D | xfrm4_state.c | 27 const struct flowi4 *fl4 = &fl->u.ip4; in __xfrm4_init_tempsel() local 29 sel->daddr.a4 = fl4->daddr; in __xfrm4_init_tempsel() 30 sel->saddr.a4 = fl4->saddr; in __xfrm4_init_tempsel() 31 sel->dport = xfrm_flowi_dport(fl, &fl4->uli); in __xfrm4_init_tempsel() 33 sel->sport = xfrm_flowi_sport(fl, &fl4->uli); in __xfrm4_init_tempsel() 38 sel->proto = fl4->flowi4_proto; in __xfrm4_init_tempsel() 39 sel->ifindex = fl4->flowi4_oif; in __xfrm4_init_tempsel()
|
D | ip_output.c | 371 static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) in ip_copy_addrs() argument 373 BUILD_BUG_ON(offsetof(typeof(*fl4), daddr) != in ip_copy_addrs() 374 offsetof(typeof(*fl4), saddr) + sizeof(fl4->saddr)); in ip_copy_addrs() 375 memcpy(&iph->saddr, &fl4->saddr, in ip_copy_addrs() 376 sizeof(fl4->saddr) + sizeof(fl4->daddr)); in ip_copy_addrs() 385 struct flowi4 *fl4; in ip_queue_xmit() local 395 fl4 = &fl->u.ip4; in ip_queue_xmit() 414 rt = ip_route_output_ports(net, fl4, sk, in ip_queue_xmit() 442 ip_copy_addrs(iph, fl4); in ip_queue_xmit() 866 struct flowi4 *fl4, in __ip_append_data() argument [all …]
|
D | ip_tunnel.c | 348 static inline void init_tunnel_flow(struct flowi4 *fl4, in init_tunnel_flow() argument 353 memset(fl4, 0, sizeof(*fl4)); in init_tunnel_flow() 354 fl4->flowi4_oif = oif; in init_tunnel_flow() 355 fl4->daddr = daddr; in init_tunnel_flow() 356 fl4->saddr = saddr; in init_tunnel_flow() 357 fl4->flowi4_tos = tos; in init_tunnel_flow() 358 fl4->flowi4_proto = proto; in init_tunnel_flow() 359 fl4->fl4_gre_key = key; in init_tunnel_flow() 375 struct flowi4 fl4; in ip_tunnel_bind_dev() local 378 init_tunnel_flow(&fl4, iph->protocol, iph->daddr, in ip_tunnel_bind_dev() [all …]
|
D | fib_frontend.c | 218 struct flowi4 fl4 = { .daddr = addr }; in __inet_dev_addr_type() local 233 if (!fib_table_lookup(table, &fl4, &res, FIB_LOOKUP_NOREF)) { in __inet_dev_addr_type() 298 struct flowi4 fl4 = { in fib_compute_spec_dst() local 305 if (!fib_lookup(net, &fl4, &res, 0)) in fib_compute_spec_dst() 328 struct flowi4 fl4; in __fib_validate_source() local 332 fl4.flowi4_oif = 0; in __fib_validate_source() 333 fl4.flowi4_iif = l3mdev_master_ifindex_rcu(dev); in __fib_validate_source() 334 if (!fl4.flowi4_iif) in __fib_validate_source() 335 fl4.flowi4_iif = oif ? : LOOPBACK_IFINDEX; in __fib_validate_source() 336 fl4.daddr = src; in __fib_validate_source() [all …]
|
D | raw.c | 338 static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, in raw_send_hdrinc() argument 353 ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, in raw_send_hdrinc() 402 iph->saddr = fl4->saddr; in raw_send_hdrinc() 435 static int raw_probe_proto_opt(struct raw_frag_vec *rfv, struct flowi4 *fl4) in raw_probe_proto_opt() argument 439 if (fl4->flowi4_proto != IPPROTO_ICMP) in raw_probe_proto_opt() 449 fl4->fl4_icmp_type = rfv->hdr.icmph.type; in raw_probe_proto_opt() 450 fl4->fl4_icmp_code = rfv->hdr.icmph.code; in raw_probe_proto_opt() 492 struct flowi4 fl4; in raw_sendmsg() local 599 flowi4_init_output(&fl4, ipc.oif, sk->sk_mark, tos, in raw_sendmsg() 607 err = l3mdev_get_saddr(net, ipc.oif, &fl4); in raw_sendmsg() [all …]
|
D | inet_connection_sock.c | 410 struct flowi4 *fl4, in inet_csk_route_req() argument 418 flowi4_init_output(fl4, ireq->ir_iif, ireq->ir_mark, in inet_csk_route_req() 424 security_req_classify_flow(req, flowi4_to_flowi(fl4)); in inet_csk_route_req() 425 rt = ip_route_output_flow(net, fl4, sk); in inet_csk_route_req() 448 struct flowi4 *fl4; in inet_csk_route_child_sock() local 451 fl4 = &newinet->cork.fl.u.ip4; in inet_csk_route_child_sock() 455 flowi4_init_output(fl4, ireq->ir_iif, ireq->ir_mark, in inet_csk_route_child_sock() 461 security_req_classify_flow(req, flowi4_to_flowi(fl4)); in inet_csk_route_child_sock() 462 rt = ip_route_output_flow(net, fl4, sk); in inet_csk_route_child_sock() 926 struct flowi4 *fl4; in inet_csk_rebuild_route() local [all …]
|
D | syncookies.c | 308 struct flowi4 fl4; in cookie_v4_check() local 374 flowi4_init_output(&fl4, sk->sk_bound_dev_if, ireq->ir_mark, in cookie_v4_check() 379 security_req_classify_flow(req, flowi4_to_flowi(&fl4)); in cookie_v4_check() 380 rt = ip_route_output_key(sock_net(sk), &fl4); in cookie_v4_check() 402 inet_sk(ret)->cork.fl.u.ip4 = fl4; in cookie_v4_check()
|
D | udp.c | 799 static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4) in udp_send_skb() argument 815 uh->dest = fl4->fl4_dport; in udp_send_skb() 829 udp4_hwcsum(skb, fl4->saddr, fl4->daddr); in udp_send_skb() 836 uh->check = csum_tcpudp_magic(fl4->saddr, fl4->daddr, len, in udp_send_skb() 862 struct flowi4 *fl4 = &inet->cork.fl.u.ip4; in udp_push_pending_frames() local 866 skb = ip_finish_skb(sk, fl4); in udp_push_pending_frames() 870 err = udp_send_skb(skb, fl4); in udp_push_pending_frames() 884 struct flowi4 *fl4; in udp_sendmsg() local 916 fl4 = &inet->cork.fl.u.ip4; in udp_sendmsg() 1023 fl4 = &fl4_stack; in udp_sendmsg() [all …]
|
D | fib_rules.c | 138 struct flowi4 *fl4 = &fl->u.ip4; in fib4_rule_match() local 139 __be32 daddr = fl4->daddr; in fib4_rule_match() 140 __be32 saddr = fl4->saddr; in fib4_rule_match() 146 if (r->tos && (r->tos != fl4->flowi4_tos)) in fib4_rule_match()
|
D | fib_semantics.c | 758 struct flowi4 fl4 = { in fib_check_nh() local 766 if (fl4.flowi4_scope < RT_SCOPE_LINK) in fib_check_nh() 767 fl4.flowi4_scope = RT_SCOPE_LINK; in fib_check_nh() 773 err = fib_table_lookup(tbl, &fl4, &res, in fib_check_nh() 782 err = fib_lookup(net, &fl4, &res, in fib_check_nh() 1583 struct flowi4 *fl4, int mp_hash) in fib_select_path() argument 1586 if (res->fi->fib_nhs > 1 && fl4->flowi4_oif == 0) { in fib_select_path() 1588 mp_hash = get_hash_from_flowi4(fl4) >> 1; in fib_select_path() 1596 res->type == RTN_UNICAST && !fl4->flowi4_oif) in fib_select_path() 1597 fib_select_default(fl4, res); in fib_select_path() [all …]
|
D | fou.c | 765 struct flowi4 *fl4, u8 *protocol, __be16 sport) in fou_build_udp() argument 779 fl4->saddr, fl4->daddr, skb->len); in fou_build_udp() 785 u8 *protocol, struct flowi4 *fl4) in fou_build_header() argument 798 fou_build_udp(skb, e, fl4, protocol, sport); in fou_build_header() 805 u8 *protocol, struct flowi4 *fl4) in gue_build_header() argument 877 fou_build_udp(skb, e, fl4, protocol, sport); in gue_build_header()
|
D | ping.c | 644 struct flowi4 *fl4) in ping_v4_push_pending_frames() argument 653 return ip_push_pending_frames(sk, fl4); in ping_v4_push_pending_frames() 700 struct flowi4 fl4; in ping_v4_sendmsg() local 792 flowi4_init_output(&fl4, ipc.oif, sk->sk_mark, tos, in ping_v4_sendmsg() 796 security_sk_classify_flow(sk, flowi4_to_flowi(&fl4)); in ping_v4_sendmsg() 797 rt = ip_route_output_flow(net, &fl4, sk); in ping_v4_sendmsg() 816 ipc.addr = fl4.daddr; in ping_v4_sendmsg() 829 err = ip_append_data(sk, &fl4, ping_getfrag, &pfh, len, in ping_v4_sendmsg() 834 err = ping_v4_push_pending_frames(sk, &pfh, &fl4); in ping_v4_sendmsg()
|
D | af_inet.c | 1105 struct flowi4 *fl4; in inet_sk_reselect_saddr() local 1116 fl4 = &inet->cork.fl.u.ip4; in inet_sk_reselect_saddr() 1117 rt = ip_route_connect(fl4, daddr, 0, RT_CONN_FLAGS(sk), in inet_sk_reselect_saddr() 1125 new_saddr = fl4->saddr; in inet_sk_reselect_saddr() 1155 struct flowi4 *fl4; in inet_sk_rebuild_header() local 1169 fl4 = &inet->cork.fl.u.ip4; in inet_sk_rebuild_header() 1170 rt = ip_route_output_ports(sock_net(sk), fl4, sk, daddr, inet->inet_saddr, in inet_sk_rebuild_header()
|
D | tcp_ipv4.c | 148 struct flowi4 *fl4; in tcp_v4_connect() local 170 fl4 = &inet->cork.fl.u.ip4; in tcp_v4_connect() 171 rt = ip_route_connect(fl4, nexthop, inet->inet_saddr, in tcp_v4_connect() 188 daddr = fl4->daddr; in tcp_v4_connect() 191 inet->inet_saddr = fl4->saddr; in tcp_v4_connect() 203 !tp->rx_opt.ts_recent_stamp && fl4->daddr == daddr) in tcp_v4_connect() 227 rt = ip_route_newports(fl4, rt, orig_sport, orig_dport, in tcp_v4_connect() 834 struct flowi4 fl4; in tcp_v4_send_synack() local 839 if (!dst && (dst = inet_csk_route_req(sk, &fl4, req)) == NULL) in tcp_v4_send_synack()
|
D | ip_gre.c | 587 struct flowi4 fl4; in gre_fill_metadata_dst() local 592 rt = gre_get_rt(skb, dev, &fl4, &info->key); in gre_fill_metadata_dst() 597 info->key.u.ipv4.src = fl4.saddr; in gre_fill_metadata_dst() 773 struct flowi4 fl4; in ipgre_open() local 776 rt = ip_route_output_gre(t->net, &fl4, in ipgre_open()
|
D | igmp.c | 332 struct flowi4 fl4; in igmpv3_newpack() local 348 rt = ip_route_output_ports(net, &fl4, NULL, IGMPV3_ALL_MCR, 0, in igmpv3_newpack() 371 pip->daddr = fl4.daddr; in igmpv3_newpack() 372 pip->saddr = fl4.saddr; in igmpv3_newpack() 682 struct flowi4 fl4; in igmp_send_report() local 697 rt = ip_route_output_ports(net, &fl4, NULL, dst, 0, in igmp_send_report() 726 iph->saddr = fl4.saddr; in igmp_send_report()
|
D | ipmr.c | 454 struct flowi4 fl4 = { in reg_vif_xmit() local 461 err = ipmr_fib_lookup(net, &fl4, &mrt); in reg_vif_xmit() 1699 struct flowi4 fl4; in ipmr_queue_xmit() local 1717 rt = ip_route_output_ports(net, &fl4, NULL, in ipmr_queue_xmit() 1726 rt = ip_route_output_ports(net, &fl4, NULL, iph->daddr, 0, in ipmr_queue_xmit() 1927 struct flowi4 fl4 = { in ipmr_rt_fib_lookup() local 1941 err = ipmr_fib_lookup(net, &fl4, &mrt); in ipmr_rt_fib_lookup()
|
D | devinet.c | 157 struct flowi4 fl4 = { .daddr = addr }; in __ip_dev_find() local 166 !fib_table_lookup(local, &fl4, &res, FIB_LOOKUP_NOREF) && in __ip_dev_find()
|
/linux-4.4.14/net/ipv4/netfilter/ |
D | nf_dup_ipv4.c | 31 struct flowi4 fl4; in nf_dup_ipv4_route() local 33 memset(&fl4, 0, sizeof(fl4)); in nf_dup_ipv4_route() 35 fl4.flowi4_oif = oif; in nf_dup_ipv4_route() 37 fl4.daddr = gw->s_addr; in nf_dup_ipv4_route() 38 fl4.flowi4_tos = RT_TOS(iph->tos); in nf_dup_ipv4_route() 39 fl4.flowi4_scope = RT_SCOPE_UNIVERSE; in nf_dup_ipv4_route() 40 fl4.flowi4_flags = FLOWI_FLAG_KNOWN_NH; in nf_dup_ipv4_route() 41 rt = ip_route_output_key(net, &fl4); in nf_dup_ipv4_route()
|
D | ipt_rpfilter.c | 35 static bool rpfilter_lookup_reverse(struct net *net, struct flowi4 *fl4, in rpfilter_lookup_reverse() argument 42 if (fib_lookup(net, fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE)) in rpfilter_lookup_reverse()
|
D | nf_nat_l3proto_ipv4.c | 39 struct flowi4 *fl4 = &fl->u.ip4; in nf_nat_ipv4_decode_session() local 42 fl4->daddr = t->dst.u3.ip; in nf_nat_ipv4_decode_session() 48 fl4->fl4_dport = t->dst.u.all; in nf_nat_ipv4_decode_session() 54 fl4->saddr = t->src.u3.ip; in nf_nat_ipv4_decode_session() 60 fl4->fl4_sport = t->src.u.all; in nf_nat_ipv4_decode_session()
|
/linux-4.4.14/drivers/net/ |
D | vrf.c | 269 static int vrf_send_v4_prep(struct sk_buff *skb, struct flowi4 *fl4, in vrf_send_v4_prep() argument 275 rt = ip_route_output_flow(dev_net(vrf_dev), fl4, NULL); in vrf_send_v4_prep() 297 struct flowi4 fl4 = { in vrf_process_v4_outbound() local 307 if (vrf_send_v4_prep(skb, &fl4, vrf_dev)) in vrf_process_v4_outbound() 791 const struct flowi4 *fl4) in vrf_get_rtable() argument 795 if (!(fl4->flowi4_flags & FLOWI_FLAG_L3MDEV_SRC)) { in vrf_get_rtable() 806 static int vrf_get_saddr(struct net_device *dev, struct flowi4 *fl4) in vrf_get_saddr() argument 810 u32 orig_tos = fl4->flowi4_tos; in vrf_get_saddr() 811 u8 flags = fl4->flowi4_flags; in vrf_get_saddr() 812 u8 scope = fl4->flowi4_scope; in vrf_get_saddr() [all …]
|
D | geneve.c | 713 struct flowi4 *fl4, in geneve_get_v4_rt() argument 720 memset(fl4, 0, sizeof(*fl4)); in geneve_get_v4_rt() 721 fl4->flowi4_mark = skb->mark; in geneve_get_v4_rt() 722 fl4->flowi4_proto = IPPROTO_UDP; in geneve_get_v4_rt() 725 fl4->daddr = info->key.u.ipv4.dst; in geneve_get_v4_rt() 726 fl4->saddr = info->key.u.ipv4.src; in geneve_get_v4_rt() 727 fl4->flowi4_tos = RT_TOS(info->key.tos); in geneve_get_v4_rt() 736 fl4->flowi4_tos = RT_TOS(tos); in geneve_get_v4_rt() 737 fl4->daddr = geneve->remote.sin.sin_addr.s_addr; in geneve_get_v4_rt() 740 rt = ip_route_output_key(geneve->net, fl4); in geneve_get_v4_rt() [all …]
|
D | vxlan.c | 1926 struct flowi4 fl4; in vxlan_xmit_one() local 2007 memset(&fl4, 0, sizeof(fl4)); in vxlan_xmit_one() 2008 fl4.flowi4_oif = rdst ? rdst->remote_ifindex : 0; in vxlan_xmit_one() 2009 fl4.flowi4_tos = RT_TOS(tos); in vxlan_xmit_one() 2010 fl4.flowi4_mark = skb->mark; in vxlan_xmit_one() 2011 fl4.flowi4_proto = IPPROTO_UDP; in vxlan_xmit_one() 2012 fl4.daddr = dst->sin.sin_addr.s_addr; in vxlan_xmit_one() 2013 fl4.saddr = vxlan->cfg.saddr.sin.sin_addr.s_addr; in vxlan_xmit_one() 2015 rt = ip_route_output_key(vxlan->net, &fl4); in vxlan_xmit_one() 2047 err = vxlan_xmit_skb(rt, sk, skb, fl4.saddr, in vxlan_xmit_one() [all …]
|
/linux-4.4.14/net/sctp/ |
D | protocol.c | 299 static void sctp_v4_dst_saddr(union sctp_addr *saddr, struct flowi4 *fl4, in sctp_v4_dst_saddr() argument 304 saddr->v4.sin_addr.s_addr = fl4->saddr; in sctp_v4_dst_saddr() 428 struct flowi4 *fl4 = &fl->u.ip4; in sctp_v4_get_dst() local 435 memset(fl4, 0x0, sizeof(struct flowi4)); in sctp_v4_get_dst() 436 fl4->daddr = daddr->v4.sin_addr.s_addr; in sctp_v4_get_dst() 437 fl4->fl4_dport = daddr->v4.sin_port; in sctp_v4_get_dst() 438 fl4->flowi4_proto = IPPROTO_SCTP; in sctp_v4_get_dst() 440 fl4->flowi4_tos = RT_CONN_FLAGS(asoc->base.sk); in sctp_v4_get_dst() 441 fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if; in sctp_v4_get_dst() 442 fl4->fl4_sport = htons(asoc->base.bind_addr.port); in sctp_v4_get_dst() [all …]
|
/linux-4.4.14/net/core/ |
D | flow_dissector.c | 717 __u32 __skb_get_hash_flowi4(struct sk_buff *skb, const struct flowi4 *fl4) in __skb_get_hash_flowi4() argument 723 keys.addrs.v4addrs.src = fl4->saddr; in __skb_get_hash_flowi4() 724 keys.addrs.v4addrs.dst = fl4->daddr; in __skb_get_hash_flowi4() 726 keys.ports.src = fl4->fl4_sport; in __skb_get_hash_flowi4() 727 keys.ports.dst = fl4->fl4_dport; in __skb_get_hash_flowi4() 728 keys.keyid.keyid = fl4->fl4_gre_key; in __skb_get_hash_flowi4() 729 keys.basic.ip_proto = fl4->flowi4_proto; in __skb_get_hash_flowi4() 822 __u32 __get_hash_from_flowi4(const struct flowi4 *fl4, struct flow_keys *keys) in __get_hash_from_flowi4() argument 826 keys->addrs.v4addrs.src = fl4->saddr; in __get_hash_from_flowi4() 827 keys->addrs.v4addrs.dst = fl4->daddr; in __get_hash_from_flowi4() [all …]
|
/linux-4.4.14/drivers/infiniband/core/ |
D | addr.c | 231 struct flowi4 fl4; in addr4_resolve() local 234 memset(&fl4, 0, sizeof(fl4)); in addr4_resolve() 235 fl4.daddr = dst_ip; in addr4_resolve() 236 fl4.saddr = src_ip; in addr4_resolve() 237 fl4.flowi4_oif = addr->bound_dev_if; in addr4_resolve() 238 rt = ip_route_output_key(addr->net, &fl4); in addr4_resolve() 244 src_in->sin_addr.s_addr = fl4.saddr; in addr4_resolve() 259 ret = dst_fetch_ha(&rt->dst, addr, &fl4.daddr); in addr4_resolve()
|
D | cma.c | 1112 struct flowi4 fl4; in validate_ipv4_net_dev() local 1122 memset(&fl4, 0, sizeof(fl4)); in validate_ipv4_net_dev() 1123 fl4.flowi4_iif = net_dev->ifindex; in validate_ipv4_net_dev() 1124 fl4.daddr = daddr; in validate_ipv4_net_dev() 1125 fl4.saddr = saddr; in validate_ipv4_net_dev() 1128 err = fib_lookup(dev_net(net_dev), &fl4, &res, 0); in validate_ipv4_net_dev()
|
/linux-4.4.14/net/dccp/ |
D | ipv4.c | 49 struct flowi4 *fl4; in dccp_v4_connect() local 74 fl4 = &inet->cork.fl.u.ip4; in dccp_v4_connect() 75 rt = ip_route_connect(fl4, nexthop, inet->inet_saddr, in dccp_v4_connect() 88 daddr = fl4->daddr; in dccp_v4_connect() 91 inet->inet_saddr = fl4->saddr; in dccp_v4_connect() 110 rt = ip_route_newports(fl4, rt, orig_sport, orig_dport, in dccp_v4_connect() 452 struct flowi4 fl4 = { in dccp_v4_route_skb() local 462 security_skb_classify_flow(skb, flowi4_to_flowi(&fl4)); in dccp_v4_route_skb() 463 rt = ip_route_output_flow(net, &fl4, sk); in dccp_v4_route_skb() 477 struct flowi4 fl4; in dccp_v4_send_response() local [all …]
|
/linux-4.4.14/net/netfilter/ |
D | xt_TCPMSS.c | 56 struct flowi4 *fl4 = &fl.u.ip4; in tcpmss_reverse_mtu() local 57 memset(fl4, 0, sizeof(*fl4)); in tcpmss_reverse_mtu() 58 fl4->daddr = ip_hdr(skb)->saddr; in tcpmss_reverse_mtu()
|
/linux-4.4.14/net/netfilter/ipvs/ |
D | ip_vs_xmit.c | 127 struct flowi4 fl4; in do_output_route4() local 131 memset(&fl4, 0, sizeof(fl4)); in do_output_route4() 132 fl4.daddr = daddr; in do_output_route4() 133 fl4.flowi4_flags = (rt_mode & IP_VS_RT_MODE_KNOWN_NH) ? in do_output_route4() 137 rt = ip_route_output_key(net, &fl4); in do_output_route4() 143 flowi4_update_output(&fl4, 0, 0, daddr, 0); in do_output_route4() 148 } else if (!*saddr && rt_mode & IP_VS_RT_MODE_CONNECT && fl4.saddr) { in do_output_route4() 150 *saddr = fl4.saddr; in do_output_route4() 151 flowi4_update_output(&fl4, 0, 0, daddr, fl4.saddr); in do_output_route4() 155 *saddr = fl4.saddr; in do_output_route4()
|
/linux-4.4.14/drivers/net/ppp/ |
D | pptp.c | 179 struct flowi4 fl4; in pptp_xmit() local 194 rt = ip_route_output_ports(net, &fl4, NULL, in pptp_xmit() 275 iph->daddr = fl4.daddr; in pptp_xmit() 276 iph->saddr = fl4.saddr; in pptp_xmit() 457 struct flowi4 fl4; in pptp_connect() local 490 rt = ip_route_output_ports(sock_net(sk), &fl4, sk, in pptp_connect()
|
/linux-4.4.14/net/rxrpc/ |
D | ar-peer.c | 39 struct flowi4 fl4; in rxrpc_assess_MTU_size() local 43 rt = ip_route_output_ports(&init_net, &fl4, NULL, in rxrpc_assess_MTU_size()
|
/linux-4.4.14/net/l2tp/ |
D | l2tp_ip.c | 396 struct flowi4 *fl4; in l2tp_ip_sendmsg() local 452 fl4 = &inet->cork.fl.u.ip4; in l2tp_ip_sendmsg() 470 rt = ip_route_output_ports(sock_net(sk), fl4, sk, in l2tp_ip_sendmsg()
|
/linux-4.4.14/net/ipv6/ |
D | sit.c | 818 struct flowi4 fl4; in ipip6_tunnel_xmit() local 893 rt = ip_route_output_ports(tunnel->net, &fl4, NULL, in ipip6_tunnel_xmit() 979 if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0) { in ipip6_tunnel_xmit() 986 err = iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, in ipip6_tunnel_xmit() 1047 struct flowi4 fl4; in ipip6_tunnel_bind_dev() local 1053 struct rtable *rt = ip_route_output_ports(tunnel->net, &fl4, in ipip6_tunnel_bind_dev()
|
D | ip6_tunnel.c | 638 struct flowi4 fl4; in ip4ip6_err() local 682 rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, in ip4ip6_err() 695 rt = ip_route_output_ports(dev_net(skb->dev), &fl4, NULL, in ip4ip6_err()
|
/linux-4.4.14/drivers/net/ethernet/sun/ |
D | sunvnet.c | 1280 struct flowi4 fl4; in vnet_start_xmit() local 1283 memset(&fl4, 0, sizeof(fl4)); in vnet_start_xmit() 1284 fl4.flowi4_oif = dev->ifindex; in vnet_start_xmit() 1285 fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos); in vnet_start_xmit() 1286 fl4.daddr = ip_hdr(skb)->daddr; in vnet_start_xmit() 1287 fl4.saddr = ip_hdr(skb)->saddr; in vnet_start_xmit() 1289 rt = ip_route_output_key(dev_net(dev), &fl4); in vnet_start_xmit()
|
/linux-4.4.14/drivers/net/ipvlan/ |
D | ipvlan_core.c | 352 struct flowi4 fl4 = { in ipvlan_process_v4_outbound() local 360 rt = ip_route_output_flow(net, &fl4, NULL); in ipvlan_process_v4_outbound()
|
/linux-4.4.14/net/xfrm/ |
D | xfrm_policy.c | 65 const struct flowi4 *fl4 = &fl->u.ip4; in __xfrm4_selector_match() local 67 return addr4_match(fl4->daddr, sel->daddr.a4, sel->prefixlen_d) && in __xfrm4_selector_match() 68 addr4_match(fl4->saddr, sel->saddr.a4, sel->prefixlen_s) && in __xfrm4_selector_match() 69 !((xfrm_flowi_dport(fl, &fl4->uli) ^ sel->dport) & sel->dport_mask) && in __xfrm4_selector_match() 70 !((xfrm_flowi_sport(fl, &fl4->uli) ^ sel->sport) & sel->sport_mask) && in __xfrm4_selector_match() 71 (fl4->flowi4_proto == sel->proto || !sel->proto) && in __xfrm4_selector_match() 72 (fl4->flowi4_oif == sel->ifindex || !sel->ifindex); in __xfrm4_selector_match()
|
/linux-4.4.14/drivers/scsi/cxgbi/ |
D | libcxgbi.c | 583 static struct rtable *find_route_ipv4(struct flowi4 *fl4, in find_route_ipv4() argument 589 rt = ip_route_output_ports(&init_net, fl4, NULL, daddr, saddr, in find_route_ipv4() 605 struct flowi4 fl4; in cxgbi_check_route() local 611 rt = find_route_ipv4(&fl4, 0, daddr->sin_addr.s_addr, 0, daddr->sin_port, 0); in cxgbi_check_route() 669 csk->saddr.sin_addr.s_addr = fl4.saddr; in cxgbi_check_route()
|
/linux-4.4.14/include/linux/ |
D | skbuff.h | 1058 static inline __u32 skb_get_hash_flowi4(struct sk_buff *skb, const struct flowi4 *fl4) in skb_get_hash_flowi4() argument 1062 __u32 hash = __get_hash_from_flowi4(fl4, &keys); in skb_get_hash_flowi4()
|
/linux-4.4.14/drivers/infiniband/hw/cxgb3/ |
D | iwch_cm.c | 340 struct flowi4 fl4; in find_route() local 342 rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip, in find_route()
|
/linux-4.4.14/drivers/infiniband/hw/cxgb4/ |
D | cm.c | 418 struct flowi4 fl4; in find_route() local 421 rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip, in find_route()
|