• Home
  • Raw
  • Download

Lines Matching refs:fl

165 				     struct flowi *fl)  in icmpv6_xrlim_allow()  argument
184 dst = ip6_route_output(net, sk, fl); in icmpv6_xrlim_allow()
222 static int icmpv6_push_pending_frames(struct sock *sk, struct flowi *fl, struct icmp6hdr *thdr, int… in icmpv6_push_pending_frames() argument
238 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl->fl6_src, in icmpv6_push_pending_frames()
239 &fl->fl6_dst, in icmpv6_push_pending_frames()
240 len, fl->proto, in icmpv6_push_pending_frames()
251 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl->fl6_src, in icmpv6_push_pending_frames()
252 &fl->fl6_dst, in icmpv6_push_pending_frames()
253 len, fl->proto, in icmpv6_push_pending_frames()
320 struct flowi fl; in icmpv6_send() local
388 memset(&fl, 0, sizeof(fl)); in icmpv6_send()
389 fl.proto = IPPROTO_ICMPV6; in icmpv6_send()
390 ipv6_addr_copy(&fl.fl6_dst, &hdr->saddr); in icmpv6_send()
392 ipv6_addr_copy(&fl.fl6_src, saddr); in icmpv6_send()
393 fl.oif = iif; in icmpv6_send()
394 fl.fl_icmp_type = type; in icmpv6_send()
395 fl.fl_icmp_code = code; in icmpv6_send()
396 security_skb_classify_flow(skb, &fl); in icmpv6_send()
403 if (!icmpv6_xrlim_allow(sk, type, &fl)) in icmpv6_send()
411 if (!fl.oif && ipv6_addr_is_multicast(&fl.fl6_dst)) in icmpv6_send()
412 fl.oif = np->mcast_oif; in icmpv6_send()
414 err = ip6_dst_lookup(sk, &dst, &fl); in icmpv6_send()
430 err = xfrm_lookup(net, &dst, &fl, sk, 0); in icmpv6_send()
465 if (ipv6_addr_is_multicast(&fl.fl6_dst)) in icmpv6_send()
492 hlimit, tclass, NULL, &fl, (struct rt6_info*)dst, in icmpv6_send()
498 err = icmpv6_push_pending_frames(sk, &fl, &tmp_hdr, len + sizeof(struct icmp6hdr)); in icmpv6_send()
520 struct flowi fl; in icmpv6_echo_reply() local
535 memset(&fl, 0, sizeof(fl)); in icmpv6_echo_reply()
536 fl.proto = IPPROTO_ICMPV6; in icmpv6_echo_reply()
537 ipv6_addr_copy(&fl.fl6_dst, &ipv6_hdr(skb)->saddr); in icmpv6_echo_reply()
539 ipv6_addr_copy(&fl.fl6_src, saddr); in icmpv6_echo_reply()
540 fl.oif = skb->dev->ifindex; in icmpv6_echo_reply()
541 fl.fl_icmp_type = ICMPV6_ECHO_REPLY; in icmpv6_echo_reply()
542 security_skb_classify_flow(skb, &fl); in icmpv6_echo_reply()
549 if (!fl.oif && ipv6_addr_is_multicast(&fl.fl6_dst)) in icmpv6_echo_reply()
550 fl.oif = np->mcast_oif; in icmpv6_echo_reply()
552 err = ip6_dst_lookup(sk, &dst, &fl); in icmpv6_echo_reply()
555 if ((err = xfrm_lookup(net, &dst, &fl, sk, 0)) < 0) in icmpv6_echo_reply()
558 if (ipv6_addr_is_multicast(&fl.fl6_dst)) in icmpv6_echo_reply()
576 sizeof(struct icmp6hdr), hlimit, tclass, NULL, &fl, in icmpv6_echo_reply()
583 err = icmpv6_push_pending_frames(sk, &fl, &tmp_hdr, skb->len + sizeof(struct icmp6hdr)); in icmpv6_echo_reply()
782 void icmpv6_flow_init(struct sock *sk, struct flowi *fl, in icmpv6_flow_init() argument
788 memset(fl, 0, sizeof(*fl)); in icmpv6_flow_init()
789 ipv6_addr_copy(&fl->fl6_src, saddr); in icmpv6_flow_init()
790 ipv6_addr_copy(&fl->fl6_dst, daddr); in icmpv6_flow_init()
791 fl->proto = IPPROTO_ICMPV6; in icmpv6_flow_init()
792 fl->fl_icmp_type = type; in icmpv6_flow_init()
793 fl->fl_icmp_code = 0; in icmpv6_flow_init()
794 fl->oif = oif; in icmpv6_flow_init()
795 security_sk_classify_flow(sk, fl); in icmpv6_flow_init()