Home
last modified time | relevance | path

Searched refs:fl4 (Results 1 – 25 of 60) sorted by relevance

123

/linux-6.12.1/include/net/
Dflow.h93 static inline void flowi4_init_output(struct flowi4 *fl4, int oif, in flowi4_init_output() argument
100 fl4->flowi4_oif = oif; in flowi4_init_output()
101 fl4->flowi4_iif = LOOPBACK_IFINDEX; in flowi4_init_output()
102 fl4->flowi4_l3mdev = 0; in flowi4_init_output()
103 fl4->flowi4_mark = mark; in flowi4_init_output()
104 fl4->flowi4_tos = tos; in flowi4_init_output()
105 fl4->flowi4_scope = scope; in flowi4_init_output()
106 fl4->flowi4_proto = proto; in flowi4_init_output()
107 fl4->flowi4_flags = flags; in flowi4_init_output()
108 fl4->flowi4_secid = 0; in flowi4_init_output()
[all …]
Droute.h162 struct flowi4 fl4 = { in ip_route_output() local
170 return ip_route_output_key(net, &fl4); in ip_route_output()
173 static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi4 *fl4, in ip_route_output_ports() argument
179 flowi4_init_output(fl4, oif, sk ? READ_ONCE(sk->sk_mark) : 0, tos, in ip_route_output_ports()
184 security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4)); in ip_route_output_ports()
185 return ip_route_output_flow(net, fl4, sk); in ip_route_output_ports()
188 static inline struct rtable *ip_route_output_gre(struct net *net, struct flowi4 *fl4, in ip_route_output_gre() argument
192 memset(fl4, 0, sizeof(*fl4)); in ip_route_output_gre()
193 fl4->flowi4_oif = oif; in ip_route_output_gre()
194 fl4->daddr = daddr; in ip_route_output_gre()
[all …]
Dip_tunnels.h346 static inline void ip_tunnel_init_flow(struct flowi4 *fl4, in ip_tunnel_init_flow() argument
354 memset(fl4, 0, sizeof(*fl4)); in ip_tunnel_init_flow()
357 fl4->flowi4_l3mdev = l3mdev_master_upper_ifindex_by_index(net, oif); in ip_tunnel_init_flow()
359 fl4->flowi4_oif = fl4->flowi4_l3mdev ? 0 : oif; in ip_tunnel_init_flow()
362 fl4->daddr = daddr; in ip_tunnel_init_flow()
363 fl4->saddr = saddr; in ip_tunnel_init_flow()
364 fl4->flowi4_tos = tos; in ip_tunnel_init_flow()
365 fl4->flowi4_proto = proto; in ip_tunnel_init_flow()
366 fl4->fl4_gre_key = key; in ip_tunnel_init_flow()
367 fl4->flowi4_mark = mark; in ip_tunnel_init_flow()
[all …]
Dip_fib.h357 struct flowi4 *fl4, in fib4_rules_early_flow_dissect() argument
418 struct flowi4 *fl4, in fib4_rules_early_flow_dissect() argument
430 fl4->fl4_sport = flkeys->ports.src; in fib4_rules_early_flow_dissect()
431 fl4->fl4_dport = flkeys->ports.dst; in fib4_rules_early_flow_dissect()
432 fl4->flowi4_proto = flkeys->basic.ip_proto; in fib4_rules_early_flow_dissect()
439 static inline bool fib_dscp_masked_match(dscp_t dscp, const struct flowi4 *fl4) in fib_dscp_masked_match() argument
441 return dscp == inet_dsfield_to_dscp(RT_TOS(fl4->flowi4_tos)); in fib_dscp_masked_match()
529 int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4,
564 struct flowi4 *fl4, const struct sk_buff *skb);
/linux-6.12.1/net/ipv4/
Dnetfilter.c25 struct flowi4 fl4 = {}; in ip_route_me_harder() local
45 fl4.daddr = iph->daddr; in ip_route_me_harder()
46 fl4.saddr = saddr; in ip_route_me_harder()
47 fl4.flowi4_tos = iph->tos & INET_DSCP_MASK; in ip_route_me_harder()
48 fl4.flowi4_oif = sk ? sk->sk_bound_dev_if : 0; in ip_route_me_harder()
49 fl4.flowi4_l3mdev = l3mdev_master_ifindex(dev); in ip_route_me_harder()
50 fl4.flowi4_mark = skb->mark; in ip_route_me_harder()
51 fl4.flowi4_flags = flags; in ip_route_me_harder()
52 fib4_rules_early_flow_dissect(net, skb, &fl4, &flkeys); in ip_route_me_harder()
53 rt = ip_route_output_key(net, &fl4); in ip_route_me_harder()
[all …]
Dxfrm4_policy.c20 static struct dst_entry *__xfrm4_dst_lookup(struct flowi4 *fl4, in __xfrm4_dst_lookup() argument
25 memset(fl4, 0, sizeof(*fl4)); in __xfrm4_dst_lookup()
26 fl4->daddr = params->daddr->a4; in __xfrm4_dst_lookup()
27 fl4->flowi4_tos = params->tos; in __xfrm4_dst_lookup()
28 fl4->flowi4_l3mdev = l3mdev_master_ifindex_by_index(params->net, in __xfrm4_dst_lookup()
30 fl4->flowi4_mark = params->mark; in __xfrm4_dst_lookup()
32 fl4->saddr = params->saddr->a4; in __xfrm4_dst_lookup()
33 fl4->flowi4_proto = params->ipproto; in __xfrm4_dst_lookup()
34 fl4->uli = params->uli; in __xfrm4_dst_lookup()
36 rt = __ip_route_output_key(params->net, fl4); in __xfrm4_dst_lookup()
[all …]
Droute.c499 static void __build_flow_key(const struct net *net, struct flowi4 *fl4, in __build_flow_key() argument
515 flowi4_init_output(fl4, oif, mark, tos & INET_DSCP_MASK, scope, in __build_flow_key()
520 static void build_skb_flow_key(struct flowi4 *fl4, const struct sk_buff *skb, in build_skb_flow_key() argument
530 __build_flow_key(net, fl4, sk, iph, oif, tos, prot, mark, 0); in build_skb_flow_key()
533 static void build_sk_flow_key(struct flowi4 *fl4, const struct sock *sk) in build_sk_flow_key() argument
543 flowi4_init_output(fl4, sk->sk_bound_dev_if, READ_ONCE(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()
727 static void __ip_do_redirect(struct rtable *rt, struct sk_buff *skb, struct flowi4 *fl4, in __ip_do_redirect() argument
[all …]
Dudp_tunnel_core.c218 struct flowi4 fl4; in udp_tunnel_dst_lookup() local
228 memset(&fl4, 0, sizeof(fl4)); in udp_tunnel_dst_lookup()
229 fl4.flowi4_mark = skb->mark; in udp_tunnel_dst_lookup()
230 fl4.flowi4_proto = IPPROTO_UDP; in udp_tunnel_dst_lookup()
231 fl4.flowi4_oif = oif; in udp_tunnel_dst_lookup()
232 fl4.daddr = key->u.ipv4.dst; in udp_tunnel_dst_lookup()
233 fl4.saddr = key->u.ipv4.src; in udp_tunnel_dst_lookup()
234 fl4.fl4_dport = dport; in udp_tunnel_dst_lookup()
235 fl4.fl4_sport = sport; in udp_tunnel_dst_lookup()
236 fl4.flowi4_tos = tos & INET_DSCP_MASK; in udp_tunnel_dst_lookup()
[all …]
Dicmp.c309 struct flowi4 *fl4, int type, int code, in icmpv4_xrlim_allow() argument
325 peer = inet_getpeer_v4(net->ipv4.peers, fl4->daddr, vif, 1); in icmpv4_xrlim_allow()
369 struct flowi4 *fl4, in icmp_push_reply() argument
374 if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, in icmp_push_reply()
393 ip_push_pending_frames(sk, fl4); in icmp_push_reply()
407 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.saddr = saddr; in icmp_reply()
446 fl4.flowi4_mark = mark; in icmp_reply()
[all …]
Ddatagram.c23 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()
65 inet->inet_saddr = fl4->saddr; /* Update source address */ in __ip4_datagram_connect()
67 inet->inet_rcv_saddr = fl4->saddr; in __ip4_datagram_connect()
71 inet->inet_daddr = fl4->daddr; in __ip4_datagram_connect()
106 struct flowi4 fl4; in ip4_datagram_release_cb() local
119 rt = ip_route_output_ports(sock_net(sk), &fl4, sk, daddr, in ip4_datagram_release_cb()
Dfib_frontend.c210 struct flowi4 fl4 = { .daddr = addr }; in __inet_dev_addr_type() local
225 if (!fib_table_lookup(table, &fl4, &res, FIB_LOOKUP_NOREF)) { in __inet_dev_addr_type()
292 struct flowi4 fl4 = { in fib_compute_spec_dst() local
300 if (!fib_lookup(net, &fl4, &res, 0)) in fib_compute_spec_dst()
352 struct flowi4 fl4; in __fib_validate_source() local
355 fl4.flowi4_oif = 0; in __fib_validate_source()
356 fl4.flowi4_l3mdev = l3mdev_master_ifindex_rcu(dev); in __fib_validate_source()
357 fl4.flowi4_iif = oif ? : LOOPBACK_IFINDEX; in __fib_validate_source()
358 fl4.daddr = src; in __fib_validate_source()
359 fl4.saddr = dst; in __fib_validate_source()
[all …]
Dip_output.c447 static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) in ip_copy_addrs() argument
449 BUILD_BUG_ON(offsetof(typeof(*fl4), daddr) != in ip_copy_addrs()
450 offsetof(typeof(*fl4), saddr) + sizeof(fl4->saddr)); in ip_copy_addrs()
452 iph->saddr = fl4->saddr; in ip_copy_addrs()
453 iph->daddr = fl4->daddr; in ip_copy_addrs()
463 struct flowi4 *fl4; in __ip_queue_xmit() local
473 fl4 = &fl->u.ip4; in __ip_queue_xmit()
492 rt = ip_route_output_ports(net, fl4, sk, in __ip_queue_xmit()
520 ip_copy_addrs(iph, fl4); in __ip_queue_xmit()
953 struct flowi4 *fl4, in __ip_append_data() argument
[all …]
Draw.c326 static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, in raw_send_hdrinc() argument
341 ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, in raw_send_hdrinc()
398 iph->saddr = fl4->saddr; in raw_send_hdrinc()
431 static int raw_probe_proto_opt(struct raw_frag_vec *rfv, struct flowi4 *fl4) in raw_probe_proto_opt() argument
435 if (fl4->flowi4_proto != IPPROTO_ICMP) in raw_probe_proto_opt()
445 fl4->fl4_icmp_type = rfv->hdr.icmph.type; in raw_probe_proto_opt()
446 fl4->fl4_icmp_code = rfv->hdr.icmph.code; in raw_probe_proto_opt()
488 struct flowi4 fl4; in raw_sendmsg() local
609 flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope, in raw_sendmsg()
615 fl4.fl4_icmp_type = 0; in raw_sendmsg()
[all …]
Dfib_rules.c182 struct flowi4 *fl4 = &fl->u.ip4; in fib4_rule_match() local
183 __be32 daddr = fl4->daddr; in fib4_rule_match()
184 __be32 saddr = fl4->saddr; in fib4_rule_match()
195 if (r->dscp_full && r->dscp != inet_dsfield_to_dscp(fl4->flowi4_tos)) in fib4_rule_match()
198 !fib_dscp_masked_match(r->dscp, fl4)) in fib4_rule_match()
201 if (rule->ip_proto && (rule->ip_proto != fl4->flowi4_proto)) in fib4_rule_match()
205 !fib_rule_port_inrange(&rule->sport_range, fl4->fl4_sport)) in fib4_rule_match()
209 !fib_rule_port_inrange(&rule->dport_range, fl4->fl4_dport)) in fib4_rule_match()
Dip_tunnel.c292 struct flowi4 fl4; in ip_tunnel_bind_dev() local
295 ip_tunnel_init_flow(&fl4, iph->protocol, iph->daddr, in ip_tunnel_bind_dev()
299 rt = ip_route_output_key(tunnel->net, &fl4); in ip_tunnel_bind_dev()
593 struct flowi4 fl4; in ip_md_tunnel_xmit() local
612 ip_tunnel_init_flow(&fl4, proto, key->u.ipv4.dst, key->u.ipv4.src, in ip_md_tunnel_xmit()
620 if (ip_tunnel_encap(skb, &tun_info->encap, &proto, &fl4) < 0) in ip_md_tunnel_xmit()
625 rt = dst_cache_get_ip4(&tun_info->dst_cache, &fl4.saddr); in ip_md_tunnel_xmit()
627 rt = ip_route_output_key(tunnel->net, &fl4); in ip_md_tunnel_xmit()
634 fl4.saddr); in ip_md_tunnel_xmit()
669 iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, proto, tos, ttl, in ip_md_tunnel_xmit()
[all …]
/linux-6.12.1/net/ipv4/netfilter/
Dnf_dup_ipv4.c29 struct flowi4 fl4; in nf_dup_ipv4_route() local
31 memset(&fl4, 0, sizeof(fl4)); in nf_dup_ipv4_route()
33 fl4.flowi4_oif = oif; in nf_dup_ipv4_route()
35 fl4.daddr = gw->s_addr; in nf_dup_ipv4_route()
36 fl4.flowi4_tos = iph->tos & INET_DSCP_MASK; in nf_dup_ipv4_route()
37 fl4.flowi4_scope = RT_SCOPE_UNIVERSE; in nf_dup_ipv4_route()
38 fl4.flowi4_flags = FLOWI_FLAG_KNOWN_NH; in nf_dup_ipv4_route()
39 rt = ip_route_output_key(net, &fl4); in nf_dup_ipv4_route()
Dnft_fib_ipv4.c64 struct flowi4 fl4 = { in nft_fib4_eval() local
108 fl4.flowi4_mark = pkt->skb->mark; in nft_fib4_eval()
110 fl4.flowi4_tos = iph->tos & INET_DSCP_MASK; in nft_fib4_eval()
113 fl4.daddr = iph->daddr; in nft_fib4_eval()
114 fl4.saddr = get_saddr(iph->saddr); in nft_fib4_eval()
118 fl4.flowi4_iif = nft_out(pkt)->ifindex; in nft_fib4_eval()
120 fl4.daddr = iph->saddr; in nft_fib4_eval()
121 fl4.saddr = get_saddr(iph->daddr); in nft_fib4_eval()
126 if (fib_lookup(nft_net(pkt), &fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE)) in nft_fib4_eval()
/linux-6.12.1/net/sctp/
Dprotocol.c288 static void sctp_v4_dst_saddr(union sctp_addr *saddr, struct flowi4 *fl4, in sctp_v4_dst_saddr() argument
293 saddr->v4.sin_addr.s_addr = fl4->saddr; in sctp_v4_dst_saddr()
424 struct flowi4 *fl4 = &_fl.u.ip4; in sctp_v4_get_dst() local
435 fl4->daddr = daddr->v4.sin_addr.s_addr; in sctp_v4_get_dst()
436 fl4->fl4_dport = daddr->v4.sin_port; in sctp_v4_get_dst()
437 fl4->flowi4_proto = IPPROTO_SCTP; in sctp_v4_get_dst()
439 fl4->flowi4_tos = tos & INET_DSCP_MASK; in sctp_v4_get_dst()
440 fl4->flowi4_scope = ip_sock_rt_scope(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-6.12.1/drivers/net/ethernet/mellanox/mlx5/core/en/
Dtc_tun.c21 struct flowi4 fl4; member
124 attr->fl.fl4.flowi4_oif = uplink_dev->ifindex; in mlx5e_route_lookup_ipv4_get()
129 attr->fl.fl4.flowi4_oif = tunnel->get_remote_ifindex(dev); in mlx5e_route_lookup_ipv4_get()
132 rt = ip_route_output_key(dev_net(dev), &attr->fl.fl4); in mlx5e_route_lookup_ipv4_get()
156 n = dst_neigh_lookup(&rt->dst, &attr->fl.fl4.daddr); in mlx5e_route_lookup_ipv4_get()
239 attr.fl.fl4.flowi4_tos = tun_key->tos & ~INET_ECN_MASK; in mlx5e_tc_tun_create_header_ipv4()
240 attr.fl.fl4.daddr = tun_key->u.ipv4.dst; in mlx5e_tc_tun_create_header_ipv4()
241 attr.fl.fl4.saddr = tun_key->u.ipv4.src; in mlx5e_tc_tun_create_header_ipv4()
294 ip->daddr = attr.fl.fl4.daddr; in mlx5e_tc_tun_create_header_ipv4()
295 ip->saddr = attr.fl.fl4.saddr; in mlx5e_tc_tun_create_header_ipv4()
[all …]
/linux-6.12.1/net/core/
Dlwt_bpf.c203 struct flowi4 fl4 = {}; in bpf_lwt_xmit_reroute() local
206 fl4.flowi4_oif = oif; in bpf_lwt_xmit_reroute()
207 fl4.flowi4_mark = skb->mark; in bpf_lwt_xmit_reroute()
208 fl4.flowi4_uid = sock_net_uid(net, sk); in bpf_lwt_xmit_reroute()
209 fl4.flowi4_tos = iph->tos & INET_DSCP_MASK; in bpf_lwt_xmit_reroute()
210 fl4.flowi4_flags = FLOWI_FLAG_ANYSRC; in bpf_lwt_xmit_reroute()
211 fl4.flowi4_proto = iph->protocol; in bpf_lwt_xmit_reroute()
212 fl4.daddr = iph->daddr; in bpf_lwt_xmit_reroute()
213 fl4.saddr = iph->saddr; in bpf_lwt_xmit_reroute()
215 rt = ip_route_output_key(net, &fl4); in bpf_lwt_xmit_reroute()
/linux-6.12.1/drivers/net/
Dgtp.c345 static struct rtable *ip4_route_output_gtp(struct flowi4 *fl4, in ip4_route_output_gtp() argument
349 memset(fl4, 0, sizeof(*fl4)); in ip4_route_output_gtp()
350 fl4->flowi4_oif = sk->sk_bound_dev_if; in ip4_route_output_gtp()
351 fl4->daddr = daddr; in ip4_route_output_gtp()
352 fl4->saddr = saddr; in ip4_route_output_gtp()
353 fl4->flowi4_tos = ip_sock_rt_tos(sk); in ip4_route_output_gtp()
354 fl4->flowi4_scope = ip_sock_rt_scope(sk); in ip4_route_output_gtp()
355 fl4->flowi4_proto = sk->sk_protocol; in ip4_route_output_gtp()
357 return ip_route_output_key(sock_net(sk), fl4); in ip4_route_output_gtp()
426 struct flowi4 fl4; in gtp0_send_echo_resp_ip() local
[all …]
Damt.c620 struct flowi4 fl4; in amt_send_discovery() local
632 rt = ip_route_output_ports(amt->net, &fl4, sock->sk, in amt_send_discovery()
709 struct flowi4 fl4; in amt_send_request() local
721 rt = ip_route_output_ports(amt->net, &fl4, sock->sk, in amt_send_request()
1003 struct flowi4 fl4; in amt_send_membership_update() local
1017 memset(&fl4, 0, sizeof(struct flowi4)); in amt_send_membership_update()
1018 fl4.flowi4_oif = amt->stream_dev->ifindex; in amt_send_membership_update()
1019 fl4.daddr = amt->remote_ip; in amt_send_membership_update()
1020 fl4.saddr = amt->local_ip; in amt_send_membership_update()
1021 fl4.flowi4_tos = AMT_TOS; in amt_send_membership_update()
[all …]
/linux-6.12.1/drivers/net/ppp/
Dpptp.c133 struct flowi4 *fl4) in pptp_route_output() argument
139 flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, 0, in pptp_route_output()
144 security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4)); in pptp_route_output()
146 return ip_route_output_flow(net, fl4, sk); in pptp_route_output()
157 struct flowi4 fl4; in pptp_xmit() local
172 rt = pptp_route_output(po, &fl4); in pptp_xmit()
247 iph->daddr = fl4.daddr; in pptp_xmit()
248 iph->saddr = fl4.saddr; in pptp_xmit()
422 struct flowi4 fl4; in pptp_connect() local
455 rt = pptp_route_output(po, &fl4); in pptp_connect()
/linux-6.12.1/net/xfrm/
Dxfrm_nat_keepalive.c42 struct flowi4 fl4; in nat_keepalive_send_ipv4() local
48 flowi4_init_output(&fl4, 0 /* oif */, skb->mark, tos, in nat_keepalive_send_ipv4()
53 rt = ip_route_output_key(net, &fl4); in nat_keepalive_send_ipv4()
61 err = ip_build_and_send_pkt(skb, sk, fl4.saddr, fl4.daddr, NULL, tos); in nat_keepalive_send_ipv4()
/linux-6.12.1/net/dccp/
Dipv4.c53 struct flowi4 *fl4; in dccp_v4_connect() local
78 fl4 = &inet->cork.fl.u.ip4; in dccp_v4_connect()
79 rt = ip_route_connect(fl4, nexthop, inet->inet_saddr, in dccp_v4_connect()
91 daddr = fl4->daddr; in dccp_v4_connect()
94 err = inet_bhash2_update_saddr(sk, &fl4->saddr, AF_INET); in dccp_v4_connect()
120 rt = ip_route_newports(fl4, rt, orig_sport, orig_dport, in dccp_v4_connect()
472 struct flowi4 fl4 = { in dccp_v4_route_skb() local
483 security_skb_classify_flow(skb, flowi4_to_flowi_common(&fl4)); in dccp_v4_route_skb()
484 rt = ip_route_output_flow(net, &fl4, sk); in dccp_v4_route_skb()
498 struct flowi4 fl4; in dccp_v4_send_response() local
[all …]

123