• Home
  • Raw
  • Download

Lines Matching refs:fl6

197 			       struct flowi6 *fl6)  in icmpv6_xrlim_allow()  argument
211 dst = ip6_route_output(net, sk, fl6); in icmpv6_xrlim_allow()
226 peer = inet_getpeer_v6(net->ipv6.peers, &fl6->daddr, 1); in icmpv6_xrlim_allow()
253 int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in icmpv6_push_pending_frames() argument
271 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames()
272 &fl6->daddr, in icmpv6_push_pending_frames()
273 len, fl6->flowi6_proto, in icmpv6_push_pending_frames()
284 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames()
285 &fl6->daddr, in icmpv6_push_pending_frames()
286 len, fl6->flowi6_proto, in icmpv6_push_pending_frames()
341 struct flowi6 *fl6) in icmpv6_route_lookup() argument
347 err = ip6_dst_lookup(net, sk, &dst, fl6); in icmpv6_route_lookup()
355 if (ipv6_anycast_destination(dst, &fl6->daddr)) { in icmpv6_route_lookup()
364 dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), sk, 0); in icmpv6_route_lookup()
435 struct flowi6 fl6; in icmp6_send() local
518 memset(&fl6, 0, sizeof(fl6)); in icmp6_send()
519 fl6.flowi6_proto = IPPROTO_ICMPV6; in icmp6_send()
520 fl6.daddr = hdr->saddr; in icmp6_send()
524 fl6.saddr = *saddr; in icmp6_send()
525 fl6.flowi6_mark = mark; in icmp6_send()
526 fl6.flowi6_oif = iif; in icmp6_send()
527 fl6.fl6_icmp_type = type; in icmp6_send()
528 fl6.fl6_icmp_code = code; in icmp6_send()
529 fl6.flowi6_uid = sock_net_uid(net, NULL); in icmp6_send()
530 fl6.mp_hash = rt6_multipath_hash(&fl6, skb); in icmp6_send()
531 security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); in icmp6_send()
540 if (!icmpv6_xrlim_allow(sk, type, &fl6)) in icmp6_send()
548 if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) in icmp6_send()
549 fl6.flowi6_oif = np->mcast_oif; in icmp6_send()
550 else if (!fl6.flowi6_oif) in icmp6_send()
551 fl6.flowi6_oif = np->ucast_oif; in icmp6_send()
554 fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel); in icmp6_send()
556 dst = icmpv6_route_lookup(net, skb, sk, &fl6); in icmp6_send()
560 ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); in icmp6_send()
582 &ipc6, &fl6, (struct rt6_info *)dst, in icmp6_send()
588 err = icmpv6_push_pending_frames(sk, &fl6, &tmp_hdr, in icmp6_send()
682 struct flowi6 fl6; in icmpv6_echo_reply() local
700 memset(&fl6, 0, sizeof(fl6)); in icmpv6_echo_reply()
701 fl6.flowi6_proto = IPPROTO_ICMPV6; in icmpv6_echo_reply()
702 fl6.daddr = ipv6_hdr(skb)->saddr; in icmpv6_echo_reply()
704 fl6.saddr = *saddr; in icmpv6_echo_reply()
705 fl6.flowi6_oif = icmp6_iif(skb); in icmpv6_echo_reply()
706 fl6.fl6_icmp_type = ICMPV6_ECHO_REPLY; in icmpv6_echo_reply()
707 fl6.flowi6_mark = mark; in icmpv6_echo_reply()
708 fl6.flowi6_uid = sock_net_uid(net, NULL); in icmpv6_echo_reply()
709 security_skb_classify_flow(skb, flowi6_to_flowi(&fl6)); in icmpv6_echo_reply()
718 if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) in icmpv6_echo_reply()
719 fl6.flowi6_oif = np->mcast_oif; in icmpv6_echo_reply()
720 else if (!fl6.flowi6_oif) in icmpv6_echo_reply()
721 fl6.flowi6_oif = np->ucast_oif; in icmpv6_echo_reply()
723 err = ip6_dst_lookup(net, sk, &dst, &fl6); in icmpv6_echo_reply()
726 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), sk, 0); in icmpv6_echo_reply()
736 ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst); in icmpv6_echo_reply()
742 sizeof(struct icmp6hdr), &ipc6, &fl6, in icmpv6_echo_reply()
750 err = icmpv6_push_pending_frames(sk, &fl6, &tmp_hdr, in icmpv6_echo_reply()
947 void icmpv6_flow_init(struct sock *sk, struct flowi6 *fl6, in icmpv6_flow_init() argument
953 memset(fl6, 0, sizeof(*fl6)); in icmpv6_flow_init()
954 fl6->saddr = *saddr; in icmpv6_flow_init()
955 fl6->daddr = *daddr; in icmpv6_flow_init()
956 fl6->flowi6_proto = IPPROTO_ICMPV6; in icmpv6_flow_init()
957 fl6->fl6_icmp_type = type; in icmpv6_flow_init()
958 fl6->fl6_icmp_code = 0; in icmpv6_flow_init()
959 fl6->flowi6_oif = oif; in icmpv6_flow_init()
960 security_sk_classify_flow(sk, flowi6_to_flowi(fl6)); in icmpv6_flow_init()