Lines Matching refs:fl4

309 			       struct flowi4 *fl4, int type, int code,  in icmpv4_xrlim_allow()  argument
326 peer = inet_getpeer_v4(net->ipv4.peers, fl4->daddr, in icmpv4_xrlim_allow()
370 struct flowi4 *fl4, in icmp_push_reply() argument
375 if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param, in icmp_push_reply()
394 ip_push_pending_frames(sk, fl4); in icmp_push_reply()
408 struct flowi4 fl4; in icmp_reply() local
442 memset(&fl4, 0, sizeof(fl4)); in icmp_reply()
443 fl4.daddr = daddr; in icmp_reply()
444 fl4.saddr = saddr; in icmp_reply()
445 fl4.flowi4_mark = mark; in icmp_reply()
446 fl4.flowi4_uid = sock_net_uid(net, NULL); in icmp_reply()
447 fl4.flowi4_tos = inet_dscp_to_dsfield(ip4h_dscp(ip_hdr(skb))); in icmp_reply()
448 fl4.flowi4_proto = IPPROTO_ICMP; in icmp_reply()
449 fl4.flowi4_oif = l3mdev_master_ifindex(skb->dev); in icmp_reply()
450 security_skb_classify_flow(skb, flowi4_to_flowi_common(&fl4)); in icmp_reply()
451 rt = ip_route_output_key(net, &fl4); in icmp_reply()
454 if (icmpv4_xrlim_allow(net, rt, &fl4, type, code, apply_ratelimit)) in icmp_reply()
455 icmp_push_reply(sk, icmp_param, &fl4, &ipc, &rt); in icmp_reply()
480 static struct rtable *icmp_route_lookup(struct net *net, struct flowi4 *fl4, in icmp_route_lookup() argument
492 memset(fl4, 0, sizeof(*fl4)); in icmp_route_lookup()
493 fl4->daddr = (param->replyopts.opt.opt.srr ? in icmp_route_lookup()
495 fl4->saddr = saddr; in icmp_route_lookup()
496 fl4->flowi4_mark = mark; in icmp_route_lookup()
497 fl4->flowi4_uid = sock_net_uid(net, NULL); in icmp_route_lookup()
498 fl4->flowi4_tos = inet_dscp_to_dsfield(dscp); in icmp_route_lookup()
499 fl4->flowi4_proto = IPPROTO_ICMP; in icmp_route_lookup()
500 fl4->fl4_icmp_type = type; in icmp_route_lookup()
501 fl4->fl4_icmp_code = code; in icmp_route_lookup()
503 fl4->flowi4_oif = l3mdev_master_ifindex(route_lookup_dev); in icmp_route_lookup()
505 security_skb_classify_flow(skb_in, flowi4_to_flowi_common(fl4)); in icmp_route_lookup()
506 rt = ip_route_output_key_hash(net, fl4, skb_in); in icmp_route_lookup()
514 flowi4_to_flowi(fl4), NULL, 0); in icmp_route_lookup()
520 fl4->daddr) == RTN_LOCAL) in icmp_route_lookup()
565 memcpy(fl4, &fl4_dec, sizeof(*fl4)); in icmp_route_lookup()
603 struct flowi4 fl4; in __icmp_send() local
746 rt = icmp_route_lookup(net, &fl4, skb_in, iph, saddr, in __icmp_send()
753 if (!icmpv4_xrlim_allow(net, rt, &fl4, type, code, apply_ratelimit)) in __icmp_send()
778 if (!fl4.saddr) in __icmp_send()
779 fl4.saddr = htonl(INADDR_DUMMY); in __icmp_send()
783 icmp_push_reply(sk, &icmp_param, &fl4, &ipc, &rt); in __icmp_send()