/linux-master/net/ipv4/netfilter/ |
H A D | nf_dup_ipv4.c | 28 struct flowi4 fl4; local 30 memset(&fl4, 0, sizeof(fl4)); 32 fl4.flowi4_oif = oif; 34 fl4.daddr = gw->s_addr; 35 fl4.flowi4_tos = RT_TOS(iph->tos); 36 fl4.flowi4_scope = RT_SCOPE_UNIVERSE; 37 fl4.flowi4_flags = FLOWI_FLAG_KNOWN_NH; 38 rt = ip_route_output_key(net, &fl4);
|
H A D | nft_fib_ipv4.c | 65 struct flowi4 fl4 = { local 88 fl4.flowi4_l3mdev = l3mdev_master_ifindex_rcu(oif); 111 fl4.flowi4_mark = pkt->skb->mark; 113 fl4.flowi4_tos = iph->tos & DSCP_BITS; 116 fl4.daddr = iph->daddr; 117 fl4.saddr = get_saddr(iph->saddr); 121 fl4.flowi4_iif = nft_out(pkt)->ifindex; 123 fl4.daddr = iph->saddr; 124 fl4.saddr = get_saddr(iph->daddr); 129 if (fib_lookup(nft_net(pkt), &fl4, [all...] |
H A D | ipt_rpfilter.c | 32 static bool rpfilter_lookup_reverse(struct net *net, struct flowi4 *fl4, argument 37 if (fib_lookup(net, fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE))
|
/linux-master/net/ipv4/ |
H A D | netfilter.c | 24 struct flowi4 fl4 = {}; local 44 fl4.daddr = iph->daddr; 45 fl4.saddr = saddr; 46 fl4.flowi4_tos = RT_TOS(iph->tos); 47 fl4.flowi4_oif = sk ? sk->sk_bound_dev_if : 0; 48 fl4.flowi4_l3mdev = l3mdev_master_ifindex(dev); 49 fl4.flowi4_mark = skb->mark; 50 fl4.flowi4_flags = flags; 51 fib4_rules_early_flow_dissect(net, skb, &fl4, &flkeys); 52 rt = ip_route_output_key(net, &fl4); [all...] |
H A D | xfrm4_policy.c | 20 static struct dst_entry *__xfrm4_dst_lookup(struct net *net, struct flowi4 *fl4, argument 28 memset(fl4, 0, sizeof(*fl4)); 29 fl4->daddr = daddr->a4; 30 fl4->flowi4_tos = tos; 31 fl4->flowi4_l3mdev = l3mdev_master_ifindex_by_index(net, oif); 32 fl4->flowi4_mark = mark; 34 fl4->saddr = saddr->a4; 36 rt = __ip_route_output_key(net, fl4); 48 struct flowi4 fl4; local 58 struct flowi4 fl4; local 73 const struct flowi4 *fl4 = &fl->u.ip4; local [all...] |
H A D | udp_tunnel_core.c | 216 struct flowi4 fl4; local 226 memset(&fl4, 0, sizeof(fl4)); 227 fl4.flowi4_mark = skb->mark; 228 fl4.flowi4_proto = IPPROTO_UDP; 229 fl4.flowi4_oif = oif; 230 fl4.daddr = key->u.ipv4.dst; 231 fl4.saddr = key->u.ipv4.src; 232 fl4.fl4_dport = dport; 233 fl4 [all...] |
H A D | datagram.c | 23 struct flowi4 *fl4; local 48 fl4 = &inet->cork.fl.u.ip4; 49 rt = ip_route_connect(fl4, usin->sin_addr.s_addr, saddr, oif, 65 inet->inet_saddr = fl4->saddr; /* Update source address */ 67 inet->inet_rcv_saddr = fl4->saddr; 71 inet->inet_daddr = fl4->daddr; 106 struct flowi4 fl4; local 119 rt = ip_route_output_ports(sock_net(sk), &fl4, sk, daddr,
|
H A D | route.c | 501 static void ip_rt_fix_tos(struct flowi4 *fl4) argument 503 __u8 tos = RT_FL_TOS(fl4); 505 fl4->flowi4_tos = tos & IPTOS_RT_MASK; 507 fl4->flowi4_scope = RT_SCOPE_LINK; 510 static void __build_flow_key(const struct net *net, struct flowi4 *fl4, argument 526 flowi4_init_output(fl4, oif, mark, tos & IPTOS_RT_MASK, scope, 531 static void build_skb_flow_key(struct flowi4 *fl4, const struct sk_buff *skb, argument 541 __build_flow_key(net, fl4, sk, iph, oif, tos, prot, mark, 0); 544 static void build_sk_flow_key(struct flowi4 *fl4, const struct sock *sk) argument 554 flowi4_init_output(fl4, s 564 ip_rt_build_flow_key(struct flowi4 *fl4, const struct sock *sk, const struct sk_buff *skb) argument 738 __ip_do_redirect(struct rtable *rt, struct sk_buff *skb, struct flowi4 *fl4, bool kill_route) argument 826 struct flowi4 fl4; local 1019 __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu) argument 1060 struct flowi4 fl4; local 1075 struct flowi4 fl4; local 1092 struct flowi4 fl4; local 1095 __build_flow_key(sock_net(sk), &fl4, sk, iph, 0, 0, 0, 0, 0); local 1110 struct flowi4 fl4; local 1165 struct flowi4 fl4; local 1180 struct flowi4 fl4; local 1281 struct flowi4 fl4 = { local 2011 fib_multipath_custom_hash_fl4(const struct net *net, const struct flowi4 *fl4) argument 2037 fib_multipath_hash(const struct net *net, const struct flowi4 *fl4, const struct sk_buff *skb, struct flow_keys *flkeys) argument 2233 struct flowi4 fl4; local 2501 __mkroute_output(const struct fib_result *res, const struct flowi4 *fl4, int orig_oif, struct net_device *dev_out, unsigned int flags) argument 2627 ip_route_output_key_hash(struct net *net, struct flowi4 *fl4, const struct sk_buff *skb) argument 2649 ip_route_output_key_hash_rcu(struct net *net, struct flowi4 *fl4, struct fib_result *res, const struct sk_buff *skb) argument 2887 rt_fill_info(struct net *net, __be32 dst, __be32 src, struct rtable *rt, u32 table_id, struct flowi4 *fl4, struct sk_buff *skb, u32 portid, u32 seq, unsigned int flags) argument 3241 struct flowi4 fl4 = {}; local [all...] |
H A D | icmp.c | 309 struct flowi4 *fl4, int type, int code) 324 peer = inet_getpeer_v4(net->ipv4.peers, fl4->daddr, vif, 1); 366 struct flowi4 *fl4, 371 if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, 390 ip_push_pending_frames(sk, fl4); 403 struct flowi4 fl4; 439 memset(&fl4, 0, sizeof(fl4)); 440 fl4.daddr = daddr; 441 fl4 307 icmpv4_xrlim_allow(struct net *net, struct rtable *rt, struct flowi4 *fl4, int type, int code) argument 363 icmp_push_reply(struct sock *sk, struct icmp_bxm *icmp_param, struct flowi4 *fl4, struct ipcm_cookie *ipc, struct rtable **rt) argument 402 struct flowi4 fl4; local 476 icmp_route_lookup(struct net *net, struct flowi4 *fl4, struct sk_buff *skb_in, const struct iphdr *iph, __be32 saddr, u8 tos, u32 mark, int type, int code, struct icmp_bxm *param) argument 595 struct flowi4 fl4; local [all...] |
H A D | raw.c | 326 static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, argument 341 ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport, 398 iph->saddr = fl4->saddr; 431 static int raw_probe_proto_opt(struct raw_frag_vec *rfv, struct flowi4 *fl4) argument 435 if (fl4->flowi4_proto != IPPROTO_ICMP) 445 fl4->fl4_icmp_type = rfv->hdr.icmph.type; 446 fl4->fl4_icmp_code = rfv->hdr.icmph.code; 488 struct flowi4 fl4; local 609 flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope, 619 err = raw_probe_proto_opt(&rfv, &fl4); [all...] |
H A D | ip_output.c | 443 * iph->saddr = fl4->saddr; 444 * iph->daddr = fl4->daddr; 446 static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4) argument 448 BUILD_BUG_ON(offsetof(typeof(*fl4), daddr) != 449 offsetof(typeof(*fl4), saddr) + sizeof(fl4->saddr)); 451 iph->saddr = fl4->saddr; 452 iph->daddr = fl4->daddr; 462 struct flowi4 *fl4; local 472 fl4 951 __ip_append_data(struct sock *sk, struct flowi4 *fl4, struct sk_buff_head *queue, struct inet_cork *cork, struct page_frag *pfrag, int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int transhdrlen, unsigned int flags) argument 1344 ip_append_data(struct sock *sk, struct flowi4 *fl4, int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int transhdrlen, struct ipcm_cookie *ipc, struct rtable **rtp, unsigned int flags) argument 1383 __ip_make_skb(struct sock *sk, struct flowi4 *fl4, struct sk_buff_head *queue, struct inet_cork *cork) argument 1503 ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4) argument 1535 ip_make_skb(struct sock *sk, struct flowi4 *fl4, int getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb), void *from, int length, int transhdrlen, struct ipcm_cookie *ipc, struct rtable **rtp, struct inet_cork *cork, unsigned int flags) argument 1594 struct flowi4 fl4; local [all...] |
H A D | fib_rules.c | 181 struct flowi4 *fl4 = &fl->u.ip4; local 182 __be32 daddr = fl4->daddr; 183 __be32 saddr = fl4->saddr; 189 if (r->dscp && r->dscp != inet_dsfield_to_dscp(fl4->flowi4_tos)) 192 if (rule->ip_proto && (rule->ip_proto != fl4->flowi4_proto)) 196 !fib_rule_port_inrange(&rule->sport_range, fl4->fl4_sport)) 200 !fib_rule_port_inrange(&rule->dport_range, fl4->fl4_dport))
|
H A D | fib_frontend.c | 210 struct flowi4 fl4 = { .daddr = addr }; local 225 if (!fib_table_lookup(table, &fl4, &res, FIB_LOOKUP_NOREF)) { 292 struct flowi4 fl4 = { local 300 if (!fib_lookup(net, &fl4, &res, 0)) 352 struct flowi4 fl4; local 355 fl4.flowi4_oif = 0; 356 fl4.flowi4_l3mdev = l3mdev_master_ifindex_rcu(dev); 357 fl4.flowi4_iif = oif ? : LOOPBACK_IFINDEX; 358 fl4.daddr = src; 359 fl4 1348 struct flowi4 fl4 = { local [all...] |
H A D | ip_tunnel.c | 291 struct flowi4 fl4; local 294 ip_tunnel_init_flow(&fl4, iph->protocol, iph->daddr, 298 rt = ip_route_output_key(tunnel->net, &fl4); 592 struct flowi4 fl4; local 611 ip_tunnel_init_flow(&fl4, proto, key->u.ipv4.dst, key->u.ipv4.src, 619 if (ip_tunnel_encap(skb, &tun_info->encap, &proto, &fl4) < 0) 624 rt = dst_cache_get_ip4(&tun_info->dst_cache, &fl4.saddr); 626 rt = ip_route_output_key(tunnel->net, &fl4); 633 fl4.saddr); 668 iptunnel_xmit(NULL, rt, skb, fl4 691 struct flowi4 fl4; local [all...] |
H A D | syncookies.c | 407 struct flowi4 fl4; local 452 flowi4_init_output(&fl4, ireq->ir_iif, ireq->ir_mark, 457 security_req_classify_flow(req, flowi4_to_flowi_common(&fl4)); 458 rt = ip_route_output_key(net, &fl4); 492 inet_sk(ret)->cork.fl.u.ip4 = fl4;
|
/linux-master/include/net/ |
H A D | flow.h | 93 static inline void flowi4_init_output(struct flowi4 *fl4, int oif, argument 100 fl4->flowi4_oif = oif; 101 fl4->flowi4_iif = LOOPBACK_IFINDEX; 102 fl4->flowi4_l3mdev = 0; 103 fl4->flowi4_mark = mark; 104 fl4->flowi4_tos = tos; 105 fl4->flowi4_scope = scope; 106 fl4->flowi4_proto = proto; 107 fl4->flowi4_flags = flags; 108 fl4 119 flowi4_update_output(struct flowi4 *fl4, int oif, __be32 daddr, __be32 saddr) argument 173 flowi4_to_flowi(struct flowi4 *fl4) argument 178 flowi4_to_flowi_common(struct flowi4 *fl4) argument [all...] |
H A D | route.h | 147 struct flowi4 fl4 = { local 153 return ip_route_output_key(net, &fl4); 156 static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi4 *fl4, argument 162 flowi4_init_output(fl4, oif, sk ? READ_ONCE(sk->sk_mark) : 0, tos, 167 security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4)); 168 return ip_route_output_flow(net, fl4, sk); 171 static inline struct rtable *ip_route_output_gre(struct net *net, struct flowi4 *fl4, argument 175 memset(fl4, 0, sizeof(*fl4)); 176 fl4 285 ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32 src, int oif, u8 protocol, __be16 sport, __be16 dport, const struct sock *sk) argument 300 ip_route_connect(struct flowi4 *fl4, __be32 dst, __be32 src, int oif, u8 protocol, __be16 sport, __be16 dport, const struct sock *sk) argument 321 ip_route_newports(struct flowi4 *fl4, struct rtable *rt, __be16 orig_sport, __be16 orig_dport, __be16 sport, __be16 dport, const struct sock *sk) argument [all...] |
H A D | ip_tunnels.h | 252 static inline void ip_tunnel_init_flow(struct flowi4 *fl4, argument 260 memset(fl4, 0, sizeof(*fl4)); 263 fl4->flowi4_l3mdev = l3mdev_master_upper_ifindex_by_index_rcu(net, oif); 265 fl4->flowi4_oif = fl4->flowi4_l3mdev ? 0 : oif; 268 fl4->daddr = daddr; 269 fl4->saddr = saddr; 270 fl4->flowi4_tos = tos; 271 fl4 417 ip_tunnel_encap(struct sk_buff *skb, struct ip_tunnel_encap *e, u8 *protocol, struct flowi4 *fl4) argument [all...] |
/linux-master/drivers/net/ |
H A D | gtp.c | 238 static struct rtable *ip4_route_output_gtp(struct flowi4 *fl4, argument 242 memset(fl4, 0, sizeof(*fl4)); 243 fl4->flowi4_oif = sk->sk_bound_dev_if; 244 fl4->daddr = daddr; 245 fl4->saddr = saddr; 246 fl4->flowi4_tos = ip_sock_rt_tos(sk); 247 fl4->flowi4_scope = ip_sock_rt_scope(sk); 248 fl4->flowi4_proto = sk->sk_protocol; 250 return ip_route_output_key(sock_net(sk), fl4); 300 struct flowi4 fl4; local 480 struct flowi4 fl4; local 764 struct flowi4 fl4; member in struct:gtp_pktinfo 785 gtp_set_pktinfo_ipv4(struct gtp_pktinfo *pktinfo, struct sock *sk, struct iphdr *iph, struct pdp_ctx *pctx, struct rtable *rt, struct flowi4 *fl4, struct net_device *dev) argument 805 struct flowi4 fl4; local 1720 struct flowi4 fl4; local [all...] |
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/en/ |
H A D | tc_tun.c | 21 struct flowi4 fl4; member in union:mlx5e_tc_tun_route_attr::__anon34 124 attr->fl.fl4.flowi4_oif = uplink_dev->ifindex; 129 attr->fl.fl4.flowi4_oif = tunnel->get_remote_ifindex(dev); 132 rt = ip_route_output_key(dev_net(dev), &attr->fl.fl4); 156 n = dst_neigh_lookup(&rt->dst, &attr->fl.fl4.daddr); 239 attr.fl.fl4.flowi4_tos = tun_key->tos & ~INET_ECN_MASK; 240 attr.fl.fl4.daddr = tun_key->u.ipv4.dst; 241 attr.fl.fl4.saddr = tun_key->u.ipv4.src; 294 ip->daddr = attr.fl.fl4.daddr; 295 ip->saddr = attr.fl.fl4 [all...] |
/linux-master/net/core/ |
H A D | lwt_bpf.c | 201 struct flowi4 fl4 = {}; local 204 fl4.flowi4_oif = oif; 205 fl4.flowi4_mark = skb->mark; 206 fl4.flowi4_uid = sock_net_uid(net, sk); 207 fl4.flowi4_tos = RT_TOS(iph->tos); 208 fl4.flowi4_flags = FLOWI_FLAG_ANYSRC; 209 fl4.flowi4_proto = iph->protocol; 210 fl4.daddr = iph->daddr; 211 fl4.saddr = iph->saddr; 213 rt = ip_route_output_key(net, &fl4); [all...] |
/linux-master/drivers/net/ppp/ |
H A D | pptp.c | 133 struct flowi4 *fl4) 139 flowi4_init_output(fl4, sk->sk_bound_dev_if, sk->sk_mark, 0, 144 security_sk_classify_flow(sk, flowi4_to_flowi_common(fl4)); 146 return ip_route_output_flow(net, fl4, sk); 157 struct flowi4 fl4; local 172 rt = pptp_route_output(po, &fl4); 247 iph->daddr = fl4.daddr; 248 iph->saddr = fl4.saddr; 422 struct flowi4 fl4; local 455 rt = pptp_route_output(po, &fl4); 132 pptp_route_output(const struct pppox_sock *po, struct flowi4 *fl4) argument [all...] |
/linux-master/net/sctp/ |
H A D | protocol.c | 287 static void sctp_v4_dst_saddr(union sctp_addr *saddr, struct flowi4 *fl4, argument 292 saddr->v4.sin_addr.s_addr = fl4->saddr; 423 struct flowi4 *fl4 = &_fl.u.ip4; local 434 fl4->daddr = daddr->v4.sin_addr.s_addr; 435 fl4->fl4_dport = daddr->v4.sin_port; 436 fl4->flowi4_proto = IPPROTO_SCTP; 438 fl4->flowi4_tos = RT_TOS(tos); 439 fl4->flowi4_scope = ip_sock_rt_scope(asoc->base.sk); 440 fl4->flowi4_oif = asoc->base.sk->sk_bound_dev_if; 441 fl4 1057 struct flowi4 *fl4 = &t->fl.u.ip4; local [all...] |
/linux-master/drivers/net/ethernet/chelsio/libcxgb/ |
H A D | libcxgb_cm.c | 98 struct flowi4 fl4; local 101 rt = ip_route_output_ports(&init_net, &fl4, NULL, peer_ip, local_ip,
|
/linux-master/net/netfilter/ |
H A D | xt_TCPMSS.c | 52 struct flowi4 *fl4 = &fl.u.ip4; local 53 memset(fl4, 0, sizeof(*fl4)); 54 fl4->daddr = ip_hdr(skb)->saddr;
|