/linux-4.4.14/net/ipv6/ |
D | inet6_connection_sock.c | 69 struct flowi6 *fl6, in inet6_csk_route_req() argument 78 memset(fl6, 0, sizeof(*fl6)); in inet6_csk_route_req() 79 fl6->flowi6_proto = proto; in inet6_csk_route_req() 80 fl6->daddr = ireq->ir_v6_rmt_addr; in inet6_csk_route_req() 82 final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); in inet6_csk_route_req() 84 fl6->saddr = ireq->ir_v6_loc_addr; in inet6_csk_route_req() 85 fl6->flowi6_oif = ireq->ir_iif; in inet6_csk_route_req() 86 fl6->flowi6_mark = ireq->ir_mark; in inet6_csk_route_req() 87 fl6->fl6_dport = ireq->ir_rmt_port; in inet6_csk_route_req() 88 fl6->fl6_sport = htons(ireq->ir_num); in inet6_csk_route_req() [all …]
|
D | icmp.c | 174 struct flowi6 *fl6) in icmpv6_xrlim_allow() argument 193 dst = ip6_route_output(net, sk, fl6); in icmpv6_xrlim_allow() 211 &fl6->daddr, 1); in icmpv6_xrlim_allow() 239 int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in icmpv6_push_pending_frames() argument 257 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames() 258 &fl6->daddr, in icmpv6_push_pending_frames() 259 len, fl6->flowi6_proto, in icmpv6_push_pending_frames() 270 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames() 271 &fl6->daddr, in icmpv6_push_pending_frames() 272 len, fl6->flowi6_proto, in icmpv6_push_pending_frames() [all …]
|
D | ping.c | 88 struct flowi6 fl6; in ping_v6_sendmsg() local 132 memset(&fl6, 0, sizeof(fl6)); in ping_v6_sendmsg() 134 fl6.flowi6_proto = IPPROTO_ICMPV6; in ping_v6_sendmsg() 135 fl6.saddr = np->saddr; in ping_v6_sendmsg() 136 fl6.daddr = *daddr; in ping_v6_sendmsg() 137 fl6.flowi6_mark = sk->sk_mark; in ping_v6_sendmsg() 138 fl6.fl6_icmp_type = user_icmph.icmp6_type; in ping_v6_sendmsg() 139 fl6.fl6_icmp_code = user_icmph.icmp6_code; in ping_v6_sendmsg() 140 security_sk_classify_flow(sk, flowi6_to_flowi(&fl6)); in ping_v6_sendmsg() 142 if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) in ping_v6_sendmsg() [all …]
|
D | xfrm6_policy.c | 34 struct flowi6 fl6; in xfrm6_dst_lookup() local 38 memset(&fl6, 0, sizeof(fl6)); in xfrm6_dst_lookup() 39 fl6.flowi6_oif = oif; in xfrm6_dst_lookup() 40 fl6.flowi6_flags = FLOWI_FLAG_SKIP_NH_OIF; in xfrm6_dst_lookup() 41 memcpy(&fl6.daddr, daddr, sizeof(fl6.daddr)); in xfrm6_dst_lookup() 43 memcpy(&fl6.saddr, saddr, sizeof(fl6.saddr)); in xfrm6_dst_lookup() 45 dst = ip6_route_output(net, NULL, &fl6); in xfrm6_dst_lookup() 121 struct flowi6 *fl6 = &fl->u.ip6; in _decode_session6() local 139 memset(fl6, 0, sizeof(struct flowi6)); in _decode_session6() 140 fl6->flowi6_mark = skb->mark; in _decode_session6() [all …]
|
D | datagram.c | 50 struct flowi6 fl6; in __ip6_datagram_connect() local 69 memset(&fl6, 0, sizeof(fl6)); in __ip6_datagram_connect() 71 fl6.flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; in __ip6_datagram_connect() 72 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in __ip6_datagram_connect() 73 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in __ip6_datagram_connect() 148 np->flow_label = fl6.flowlabel; in __ip6_datagram_connect() 157 fl6.flowi6_proto = sk->sk_protocol; in __ip6_datagram_connect() 158 fl6.daddr = sk->sk_v6_daddr; in __ip6_datagram_connect() 159 fl6.saddr = np->saddr; in __ip6_datagram_connect() 160 fl6.flowi6_oif = sk->sk_bound_dev_if; in __ip6_datagram_connect() [all …]
|
D | raw.c | 537 static int rawv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in rawv6_push_pending_frames() argument 598 csum = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in rawv6_push_pending_frames() 599 total_len, fl6->flowi6_proto, tmp_csum); in rawv6_push_pending_frames() 601 if (csum == 0 && fl6->flowi6_proto == IPPROTO_UDP) in rawv6_push_pending_frames() 613 struct flowi6 *fl6, struct dst_entry **dstp, in rawv6_send_hdrinc() argument 626 ipv6_local_error(sk, EMSGSIZE, fl6, rt->dst.dev->mtu); in rawv6_send_hdrinc() 682 static int rawv6_probe_proto_opt(struct raw6_frag_vec *rfv, struct flowi6 *fl6) in rawv6_probe_proto_opt() argument 685 switch (fl6->flowi6_proto) { in rawv6_probe_proto_opt() 690 fl6->fl6_icmp_type = rfv->c[0]; in rawv6_probe_proto_opt() 691 fl6->fl6_icmp_code = rfv->c[1]; in rawv6_probe_proto_opt() [all …]
|
D | syncookies.c | 221 struct flowi6 fl6; in cookie_v6_check() local 222 memset(&fl6, 0, sizeof(fl6)); in cookie_v6_check() 223 fl6.flowi6_proto = IPPROTO_TCP; in cookie_v6_check() 224 fl6.daddr = ireq->ir_v6_rmt_addr; in cookie_v6_check() 225 final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); in cookie_v6_check() 226 fl6.saddr = ireq->ir_v6_loc_addr; in cookie_v6_check() 227 fl6.flowi6_oif = sk->sk_bound_dev_if; in cookie_v6_check() 228 fl6.flowi6_mark = ireq->ir_mark; in cookie_v6_check() 229 fl6.fl6_dport = ireq->ir_rmt_port; in cookie_v6_check() 230 fl6.fl6_sport = inet_sk(sk)->inet_sport; in cookie_v6_check() [all …]
|
D | udp.c | 1025 static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6) in udp_v6_send_skb() argument 1039 uh->source = fl6->fl6_sport; in udp_v6_send_skb() 1040 uh->dest = fl6->fl6_dport; in udp_v6_send_skb() 1050 udp6_hwcsum_outgoing(sk, skb, &fl6->saddr, &fl6->daddr, len); in udp_v6_send_skb() 1056 uh->check = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in udp_v6_send_skb() 1057 len, fl6->flowi6_proto, csum); in udp_v6_send_skb() 1079 struct flowi6 fl6; in udp_v6_push_pending_frames() local 1088 fl6 = inet_sk(sk)->cork.fl.u.ip6; in udp_v6_push_pending_frames() 1094 err = udp_v6_send_skb(skb, &fl6); in udp_v6_push_pending_frames() 1113 struct flowi6 fl6; in udpv6_sendmsg() local [all …]
|
D | ip6_output.c | 157 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, in ip6_xmit() argument 162 struct in6_addr *first_hop = &fl6->daddr; in ip6_xmit() 165 u8 proto = fl6->flowi6_proto; in ip6_xmit() 213 ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, in ip6_xmit() 214 np->autoflowlabel, fl6)); in ip6_xmit() 220 hdr->saddr = fl6->saddr; in ip6_xmit() 243 ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); in ip6_xmit() 859 const struct flowi6 *fl6) in ip6_sk_dst_check() argument 890 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || in ip6_sk_dst_check() 892 ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || in ip6_sk_dst_check() [all …]
|
D | xfrm6_output.c | 49 struct flowi6 fl6; in xfrm6_local_rxpmtu() local 52 fl6.flowi6_oif = sk->sk_bound_dev_if; in xfrm6_local_rxpmtu() 53 fl6.daddr = ipv6_hdr(skb)->daddr; in xfrm6_local_rxpmtu() 55 ipv6_local_rxpmtu(sk, &fl6, mtu); in xfrm6_local_rxpmtu() 60 struct flowi6 fl6; in xfrm6_local_error() local 65 fl6.fl6_dport = inet_sk(sk)->inet_dport; in xfrm6_local_error() 66 fl6.daddr = hdr->daddr; in xfrm6_local_error() 68 ipv6_local_error(sk, EMSGSIZE, &fl6, mtu); in xfrm6_local_error()
|
D | route.c | 431 const struct flowi6 *fl6) in rt6_info_hash_nhsfn() argument 433 return get_hash_from_flowi6(fl6) % candidate_count; in rt6_info_hash_nhsfn() 437 struct flowi6 *fl6, int oif, in rt6_multipath_select() argument 443 route_choosen = rt6_info_hash_nhsfn(match->rt6i_nsiblings + 1, fl6); in rt6_multipath_select() 849 struct flowi6 *fl6, int flags) in ip6_pol_route_lookup() argument 855 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route_lookup() 858 rt = rt6_device_match(net, rt, &fl6->saddr, fl6->flowi6_oif, flags); in ip6_pol_route_lookup() 859 if (rt->rt6i_nsiblings && fl6->flowi6_oif == 0) in ip6_pol_route_lookup() 860 rt = rt6_multipath_select(rt, fl6, fl6->flowi6_oif, flags); in ip6_pol_route_lookup() 862 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route_lookup() [all …]
|
D | xfrm6_state.c | 26 const struct flowi6 *fl6 = &fl->u.ip6; in __xfrm6_init_tempsel() local 30 *(struct in6_addr *)&sel->daddr = fl6->daddr; in __xfrm6_init_tempsel() 31 *(struct in6_addr *)&sel->saddr = fl6->saddr; in __xfrm6_init_tempsel() 32 sel->dport = xfrm_flowi_dport(fl, &fl6->uli); in __xfrm6_init_tempsel() 34 sel->sport = xfrm_flowi_sport(fl, &fl6->uli); in __xfrm6_init_tempsel() 39 sel->proto = fl6->flowi6_proto; in __xfrm6_init_tempsel() 40 sel->ifindex = fl6->flowi6_oif; in __xfrm6_init_tempsel()
|
D | tcp_ipv6.c | 123 struct flowi6 fl6; in tcp_v6_connect() local 134 memset(&fl6, 0, sizeof(fl6)); in tcp_v6_connect() 137 fl6.flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; in tcp_v6_connect() 138 IP6_ECN_flow_init(fl6.flowlabel); in tcp_v6_connect() 139 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in tcp_v6_connect() 141 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in tcp_v6_connect() 186 np->flow_label = fl6.flowlabel; in tcp_v6_connect() 230 fl6.flowi6_proto = IPPROTO_TCP; in tcp_v6_connect() 231 fl6.daddr = sk->sk_v6_daddr; in tcp_v6_connect() 232 fl6.saddr = saddr ? *saddr : np->saddr; in tcp_v6_connect() [all …]
|
D | ip6_gre.c | 605 struct flowi6 *fl6, in ip6gre_xmit2() argument 630 fl6->daddr = ipv6h->daddr; in ip6gre_xmit2() 633 fl6->daddr = tunnel->parms.raddr; in ip6gre_xmit2() 636 if (!fl6->flowi6_mark) in ip6gre_xmit2() 640 dst = ip6_route_output(net, NULL, fl6); in ip6gre_xmit2() 644 dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), NULL, 0); in ip6gre_xmit2() 705 if (!fl6->flowi6_mark && ndst) in ip6gre_xmit2() 729 ip6_make_flowlabel(net, skb, fl6->flowlabel, true, fl6)); in ip6gre_xmit2() 732 ipv6h->saddr = fl6->saddr; in ip6gre_xmit2() 733 ipv6h->daddr = fl6->daddr; in ip6gre_xmit2() [all …]
|
D | ip6_tunnel.c | 1033 struct flowi6 *fl6, in ip6_tnl_xmit2() argument 1069 memcpy(&fl6->daddr, addr6, sizeof(fl6->daddr)); in ip6_tnl_xmit2() 1071 } else if (!fl6->flowi6_mark) in ip6_tnl_xmit2() 1074 if (!ip6_tnl_xmit_ctl(t, &fl6->saddr, &fl6->daddr)) in ip6_tnl_xmit2() 1078 dst = ip6_route_output(net, NULL, fl6); in ip6_tnl_xmit2() 1082 dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), NULL, 0); in ip6_tnl_xmit2() 1135 if (!fl6->flowi6_mark && ndst) in ip6_tnl_xmit2() 1141 proto = fl6->flowi6_proto; in ip6_tnl_xmit2() 1156 ip6_make_flowlabel(net, skb, fl6->flowlabel, true, fl6)); in ip6_tnl_xmit2() 1159 ipv6h->saddr = fl6->saddr; in ip6_tnl_xmit2() [all …]
|
D | af_inet6.c | 654 struct flowi6 fl6; in inet6_sk_rebuild_header() local 656 memset(&fl6, 0, sizeof(fl6)); in inet6_sk_rebuild_header() 657 fl6.flowi6_proto = sk->sk_protocol; in inet6_sk_rebuild_header() 658 fl6.daddr = sk->sk_v6_daddr; in inet6_sk_rebuild_header() 659 fl6.saddr = np->saddr; in inet6_sk_rebuild_header() 660 fl6.flowlabel = np->flow_label; in inet6_sk_rebuild_header() 661 fl6.flowi6_oif = sk->sk_bound_dev_if; in inet6_sk_rebuild_header() 662 fl6.flowi6_mark = sk->sk_mark; in inet6_sk_rebuild_header() 663 fl6.fl6_dport = inet->inet_dport; in inet6_sk_rebuild_header() 664 fl6.fl6_sport = inet->inet_sport; in inet6_sk_rebuild_header() [all …]
|
D | fib6_rules.c | 32 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, in fib6_rule_lookup() argument 42 flowi6_to_flowi(fl6), flags, &arg); in fib6_rule_lookup() 164 struct flowi6 *fl6 = &fl->u.ip6; in fib6_rule_match() local 167 !ipv6_prefix_equal(&fl6->daddr, &r->dst.addr, r->dst.plen)) in fib6_rule_match() 177 if (!ipv6_prefix_equal(&fl6->saddr, &r->src.addr, in fib6_rule_match() 184 if (r->tclass && r->tclass != ip6_tclass(fl6->flowlabel)) in fib6_rule_match()
|
D | netfilter.c | 26 struct flowi6 fl6 = { in ip6_route_me_harder() local 34 dst = ip6_route_output(net, skb->sk, &fl6); in ip6_route_me_harder() 50 xfrm_decode_session(skb, flowi6_to_flowi(&fl6), AF_INET6) == 0) { in ip6_route_me_harder() 52 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), skb->sk, 0); in ip6_route_me_harder()
|
D | mip6.c | 213 const struct flowi6 *fl6 = &fl->u.ip6; in mip6_destopt_reject() local 220 if (unlikely(fl6->flowi6_proto == IPPROTO_MH && in mip6_destopt_reject() 221 fl6->fl6_mh_type <= IP6_MH_TYPE_MAX)) in mip6_destopt_reject() 246 sel.proto = fl6->flowi6_proto; in mip6_destopt_reject() 247 sel.dport = xfrm_flowi_dport(fl, &fl6->uli); in mip6_destopt_reject() 250 sel.sport = xfrm_flowi_sport(fl, &fl6->uli); in mip6_destopt_reject() 253 sel.ifindex = fl6->flowi6_oif; in mip6_destopt_reject()
|
D | ndisc.c | 445 struct flowi6 fl6; in ndisc_send_skb() local 448 icmpv6_flow_init(sk, &fl6, type, saddr, daddr, oif); in ndisc_send_skb() 450 fl6.flowi6_flags |= FLOWI_FLAG_L3MDEV_SRC; in ndisc_send_skb() 451 dst = icmp6_dst_alloc(skb->dev, &fl6); in ndisc_send_skb() 1496 struct flowi6 fl6; in ndisc_send_redirect() local 1515 icmpv6_flow_init(sk, &fl6, NDISC_REDIRECT, in ndisc_send_redirect() 1519 fl6.flowi6_flags |= FLOWI_FLAG_L3MDEV_SRC; in ndisc_send_redirect() 1521 dst = ip6_route_output(net, NULL, &fl6); in ndisc_send_redirect() 1526 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in ndisc_send_redirect()
|
D | ipv6_sockglue.c | 473 struct flowi6 fl6; in do_ipv6_setsockopt() local 476 memset(&fl6, 0, sizeof(fl6)); in do_ipv6_setsockopt() 477 fl6.flowi6_oif = sk->sk_bound_dev_if; in do_ipv6_setsockopt() 478 fl6.flowi6_mark = sk->sk_mark; in do_ipv6_setsockopt() 505 retv = ip6_datagram_send_ctl(net, sk, &msg, &fl6, opt, &junk, in do_ipv6_setsockopt()
|
D | ip6mr.c | 629 struct flowi6 fl6 = { in pim6_rcv() local 656 if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) in pim6_rcv() 698 struct flowi6 fl6 = { in reg_vif_xmit() local 705 err = ip6mr_fib_lookup(net, &fl6, &mrt); in reg_vif_xmit() 1638 struct flowi6 fl6 = { in mroute6_socket() local 1644 if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) in mroute6_socket() 2005 struct flowi6 fl6; in ip6mr_forward2() local 2023 fl6 = (struct flowi6) { in ip6mr_forward2() 2028 dst = ip6_route_output(net, NULL, &fl6); in ip6mr_forward2() 2182 struct flowi6 fl6 = { in ip6_mr_input() local [all …]
|
D | exthdrs.c | 864 struct in6_addr *fl6_update_dst(struct flowi6 *fl6, in fl6_update_dst() argument 871 *orig = fl6->daddr; in fl6_update_dst() 872 fl6->daddr = *((struct rt0_hdr *)opt->srcrt)->addr; in fl6_update_dst()
|
D | mcast.c | 1613 struct flowi6 fl6; in mld_sendpack() local 1630 icmpv6_flow_init(net->ipv6.igmp_sk, &fl6, ICMPV6_MLD2_REPORT, in mld_sendpack() 1633 dst = icmp6_dst_alloc(skb->dev, &fl6); in mld_sendpack() 1945 struct flowi6 fl6; in igmp6_send() local 1999 icmpv6_flow_init(sk, &fl6, type, in igmp6_send() 2002 dst = icmp6_dst_alloc(skb->dev, &fl6); in igmp6_send()
|
D | ip6_fib.c | 286 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, in fib6_rule_lookup() argument 291 rt = lookup(net, net->ipv6.fib6_main_tbl, fl6, flags); in fib6_rule_lookup()
|
/linux-4.4.14/net/dccp/ |
D | ipv6.c | 190 struct flowi6 fl6; in dccp_v6_send_response() local 194 memset(&fl6, 0, sizeof(fl6)); in dccp_v6_send_response() 195 fl6.flowi6_proto = IPPROTO_DCCP; in dccp_v6_send_response() 196 fl6.daddr = ireq->ir_v6_rmt_addr; in dccp_v6_send_response() 197 fl6.saddr = ireq->ir_v6_loc_addr; in dccp_v6_send_response() 198 fl6.flowlabel = 0; in dccp_v6_send_response() 199 fl6.flowi6_oif = ireq->ir_iif; in dccp_v6_send_response() 200 fl6.fl6_dport = ireq->ir_rmt_port; in dccp_v6_send_response() 201 fl6.fl6_sport = htons(ireq->ir_num); in dccp_v6_send_response() 202 security_req_classify_flow(req, flowi6_to_flowi(&fl6)); in dccp_v6_send_response() [all …]
|
/linux-4.4.14/net/ipv6/netfilter/ |
D | nf_dup_ipv6.c | 27 struct flowi6 fl6; in nf_dup_ipv6_route() local 29 memset(&fl6, 0, sizeof(fl6)); in nf_dup_ipv6_route() 31 fl6.flowi6_oif = oif; in nf_dup_ipv6_route() 33 fl6.daddr = *gw; in nf_dup_ipv6_route() 34 fl6.flowlabel = (__force __be32)(((iph->flow_lbl[0] & 0xF) << 16) | in nf_dup_ipv6_route() 36 dst = ip6_route_output(net, NULL, &fl6); in nf_dup_ipv6_route()
|
D | nf_reject_ipv6.c | 142 struct flowi6 fl6; in nf_send_reset6() local 154 memset(&fl6, 0, sizeof(fl6)); in nf_send_reset6() 155 fl6.flowi6_proto = IPPROTO_TCP; in nf_send_reset6() 156 fl6.saddr = oip6h->daddr; in nf_send_reset6() 157 fl6.daddr = oip6h->saddr; in nf_send_reset6() 158 fl6.fl6_sport = otcph->dest; in nf_send_reset6() 159 fl6.fl6_dport = otcph->source; in nf_send_reset6() 160 security_skb_classify_flow(oldskb, flowi6_to_flowi(&fl6)); in nf_send_reset6() 161 dst = ip6_route_output(net, NULL, &fl6); in nf_send_reset6() 166 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in nf_send_reset6()
|
D | ip6t_rpfilter.c | 35 struct flowi6 fl6 = { in rpfilter_lookup_reverse6() local 44 memcpy(&fl6.saddr, &iph->daddr, sizeof(struct in6_addr)); in rpfilter_lookup_reverse6() 50 fl6.flowi6_mark = flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; in rpfilter_lookup_reverse6() 52 fl6.flowi6_oif = dev->ifindex; in rpfilter_lookup_reverse6() 56 rt = (void *) ip6_route_lookup(net, &fl6, lookup_flags); in rpfilter_lookup_reverse6()
|
D | ip6t_SYNPROXY.c | 48 struct flowi6 fl6; in synproxy_send_tcp() local 55 memset(&fl6, 0, sizeof(fl6)); in synproxy_send_tcp() 56 fl6.flowi6_proto = IPPROTO_TCP; in synproxy_send_tcp() 57 fl6.saddr = niph->saddr; in synproxy_send_tcp() 58 fl6.daddr = niph->daddr; in synproxy_send_tcp() 59 fl6.fl6_sport = nth->source; in synproxy_send_tcp() 60 fl6.fl6_dport = nth->dest; in synproxy_send_tcp() 61 security_skb_classify_flow((struct sk_buff *)skb, flowi6_to_flowi(&fl6)); in synproxy_send_tcp() 62 dst = ip6_route_output(net, NULL, &fl6); in synproxy_send_tcp() 67 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in synproxy_send_tcp()
|
D | nf_nat_l3proto_ipv6.c | 38 struct flowi6 *fl6 = &fl->u.ip6; in nf_nat_ipv6_decode_session() local 41 fl6->daddr = t->dst.u3.in6; in nf_nat_ipv6_decode_session() 47 fl6->fl6_dport = t->dst.u.all; in nf_nat_ipv6_decode_session() 53 fl6->saddr = t->src.u3.in6; in nf_nat_ipv6_decode_session() 59 fl6->fl6_sport = t->src.u.all; in nf_nat_ipv6_decode_session()
|
/linux-4.4.14/net/l2tp/ |
D | l2tp_ip6.c | 495 struct flowi6 fl6; in l2tp_ip6_sendmsg() local 517 memset(&fl6, 0, sizeof(fl6)); in l2tp_ip6_sendmsg() 519 fl6.flowi6_mark = sk->sk_mark; in l2tp_ip6_sendmsg() 530 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg() 531 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg() 532 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg() 549 fl6.flowi6_oif = lsa->l2tp_scope_id; in l2tp_ip6_sendmsg() 555 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg() 558 if (fl6.flowi6_oif == 0) in l2tp_ip6_sendmsg() 559 fl6.flowi6_oif = sk->sk_bound_dev_if; in l2tp_ip6_sendmsg() [all …]
|
/linux-4.4.14/include/net/ |
D | l3mdev.h | 37 const struct flowi6 *fl6); 138 const struct flowi6 *fl6) in l3mdev_get_rt6_dst() argument 141 return dev->l3mdev_ops->l3mdev_get_rt6_dst(dev, fl6); in l3mdev_get_rt6_dst() 148 const struct flowi6 *fl6) in l3mdev_rt6_dst_by_oif() argument 153 dev = dev_get_by_index(net, fl6->flowi6_oif); in l3mdev_rt6_dst_by_oif() 155 dst = l3mdev_get_rt6_dst(dev, fl6); in l3mdev_rt6_dst_by_oif() 214 const struct flowi6 *fl6) in l3mdev_get_rt6_dst() argument 220 const struct flowi6 *fl6) in l3mdev_rt6_dst_by_oif() argument
|
D | ip6_route.h | 68 struct flowi6 *fl6, int flags); 72 struct flowi6 *fl6) in ip6_route_output() argument 74 return ip6_route_output_flags(net, sk, fl6, 0); in ip6_route_output() 77 struct dst_entry *ip6_route_lookup(struct net *net, struct flowi6 *fl6, 96 struct dst_entry *icmp6_dst_alloc(struct net_device *dev, struct flowi6 *fl6);
|
D | ipv6.h | 293 int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, 701 static inline int ip6_sk_dst_hoplimit(struct ipv6_pinfo *np, struct flowi6 *fl6, in ip6_sk_dst_hoplimit() argument 706 if (ipv6_addr_is_multicast(&fl6->daddr)) in ip6_sk_dst_hoplimit() 743 struct flowi6 *fl6) in ip6_make_flowlabel() argument 753 hash = skb_get_hash_flowi6(skb, fl6); in ip6_make_flowlabel() 785 struct flowi6 *fl6) in ip6_make_flowlabel() argument 835 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, 844 int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, 861 struct flowi6 *fl6, struct rt6_info *rt, 871 struct flowi6 *fl6); [all …]
|
D | flow.h | 187 static inline struct flowi *flowi6_to_flowi(struct flowi6 *fl6) in flowi6_to_flowi() argument 189 return container_of(fl6, struct flowi, u.ip6); in flowi6_to_flowi() 248 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys); 250 static inline __u32 get_hash_from_flowi6(const struct flowi6 *fl6) in get_hash_from_flowi6() argument 254 return __get_hash_from_flowi6(fl6, &keys); in get_hash_from_flowi6()
|
D | inet6_connection_sock.h | 28 struct dst_entry *inet6_csk_route_req(const struct sock *sk, struct flowi6 *fl6,
|
D | transp_v6.h | 44 struct flowi6 *fl6, struct ipv6_txoptions *opt,
|
D | ip6_fib.h | 261 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
|
D | addrconf.h | 193 struct dst_entry **dst, struct flowi6 *fl6);
|
/linux-4.4.14/net/sctp/ |
D | ipv6.c | 211 struct flowi6 *fl6 = &transport->fl.u.ip6; in sctp_v6_xmit() local 215 skb->len, &fl6->saddr, &fl6->daddr); in sctp_v6_xmit() 217 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in sctp_v6_xmit() 225 res = ip6_xmit(sk, skb, fl6, rcu_dereference(np->opt), np->tclass); in sctp_v6_xmit() 238 struct flowi6 *fl6 = &fl->u.ip6; in sctp_v6_get_dst() local 250 memset(fl6, 0, sizeof(struct flowi6)); in sctp_v6_get_dst() 251 fl6->daddr = daddr->v6.sin6_addr; in sctp_v6_get_dst() 252 fl6->fl6_dport = daddr->v6.sin6_port; in sctp_v6_get_dst() 253 fl6->flowi6_proto = IPPROTO_SCTP; in sctp_v6_get_dst() 255 fl6->flowi6_oif = daddr->v6.sin6_scope_id; in sctp_v6_get_dst() [all …]
|
/linux-4.4.14/drivers/infiniband/core/ |
D | addr.c | 271 struct flowi6 fl6; in addr6_resolve() local 275 memset(&fl6, 0, sizeof fl6); in addr6_resolve() 276 fl6.daddr = dst_in->sin6_addr; in addr6_resolve() 277 fl6.saddr = src_in->sin6_addr; in addr6_resolve() 278 fl6.flowi6_oif = addr->bound_dev_if; in addr6_resolve() 280 dst = ip6_route_output(addr->net, NULL, &fl6); in addr6_resolve() 284 if (ipv6_addr_any(&fl6.saddr)) { in addr6_resolve() 286 &fl6.daddr, 0, &fl6.saddr); in addr6_resolve() 291 src_in->sin6_addr = fl6.saddr; in addr6_resolve() 307 ret = dst_fetch_ha(dst, addr, &fl6.daddr); in addr6_resolve()
|
/linux-4.4.14/net/core/ |
D | flow_dissector.c | 693 __u32 __skb_get_hash_flowi6(struct sk_buff *skb, const struct flowi6 *fl6) in __skb_get_hash_flowi6() argument 699 memcpy(&keys.addrs.v6addrs.src, &fl6->saddr, in __skb_get_hash_flowi6() 701 memcpy(&keys.addrs.v6addrs.dst, &fl6->daddr, in __skb_get_hash_flowi6() 704 keys.ports.src = fl6->fl6_sport; in __skb_get_hash_flowi6() 705 keys.ports.dst = fl6->fl6_dport; in __skb_get_hash_flowi6() 706 keys.keyid.keyid = fl6->fl6_gre_key; in __skb_get_hash_flowi6() 707 keys.tags.flow_label = (__force u32)fl6->flowlabel; in __skb_get_hash_flowi6() 708 keys.basic.ip_proto = fl6->flowi6_proto; in __skb_get_hash_flowi6() 803 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys) in __get_hash_from_flowi6() argument 807 memcpy(&keys->addrs.v6addrs.src, &fl6->saddr, in __get_hash_from_flowi6() [all …]
|
/linux-4.4.14/drivers/net/ |
D | geneve.c | 756 struct flowi6 *fl6, in geneve_get_v6_dst() argument 764 memset(fl6, 0, sizeof(*fl6)); in geneve_get_v6_dst() 765 fl6->flowi6_mark = skb->mark; in geneve_get_v6_dst() 766 fl6->flowi6_proto = IPPROTO_UDP; in geneve_get_v6_dst() 769 fl6->daddr = info->key.u.ipv6.dst; in geneve_get_v6_dst() 770 fl6->saddr = info->key.u.ipv6.src; in geneve_get_v6_dst() 771 fl6->flowi6_tos = RT_TOS(info->key.tos); in geneve_get_v6_dst() 780 fl6->flowi6_tos = RT_TOS(prio); in geneve_get_v6_dst() 781 fl6->daddr = geneve->remote.sin6.sin6_addr; in geneve_get_v6_dst() 784 if (ipv6_stub->ipv6_dst_lookup(geneve->net, gs6->sock->sk, &dst, fl6)) { in geneve_get_v6_dst() [all …]
|
D | vrf.c | 227 struct flowi6 fl6 = { in vrf_process_v6_outbound() local 242 dst = ip6_route_output(net, NULL, &fl6); in vrf_process_v6_outbound() 842 const struct flowi6 *fl6) in vrf_get_rt6_dst() argument 846 if (!(fl6->flowi6_flags & FLOWI_FLAG_L3MDEV_SRC)) { in vrf_get_rt6_dst()
|
D | vxlan.c | 1852 struct flowi6 fl6; in vxlan6_get_route() local 1855 memset(&fl6, 0, sizeof(fl6)); in vxlan6_get_route() 1856 fl6.flowi6_oif = oif; in vxlan6_get_route() 1857 fl6.daddr = *daddr; in vxlan6_get_route() 1858 fl6.saddr = vxlan->cfg.saddr.sin6.sin6_addr; in vxlan6_get_route() 1859 fl6.flowi6_mark = skb->mark; in vxlan6_get_route() 1860 fl6.flowi6_proto = IPPROTO_UDP; in vxlan6_get_route() 1864 &ndst, &fl6); in vxlan6_get_route() 1868 *saddr = fl6.saddr; in vxlan6_get_route()
|
/linux-4.4.14/net/netfilter/ |
D | xt_TCPMSS.c | 60 struct flowi6 *fl6 = &fl.u.ip6; in tcpmss_reverse_mtu() local 62 memset(fl6, 0, sizeof(*fl6)); in tcpmss_reverse_mtu() 63 fl6->daddr = ipv6_hdr(skb)->saddr; in tcpmss_reverse_mtu()
|
/linux-4.4.14/include/linux/ |
D | icmpv6.h | 40 struct flowi6 *fl6,
|
D | skbuff.h | 1042 __u32 __skb_get_hash_flowi6(struct sk_buff *skb, const struct flowi6 *fl6); 1044 static inline __u32 skb_get_hash_flowi6(struct sk_buff *skb, const struct flowi6 *fl6) in skb_get_hash_flowi6() argument 1048 __u32 hash = __get_hash_from_flowi6(fl6, &keys); in skb_get_hash_flowi6()
|
/linux-4.4.14/net/netfilter/ipvs/ |
D | ip_vs_xmit.c | 370 struct flowi6 fl6 = { in __ip_vs_route_output_v6() local 375 fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; in __ip_vs_route_output_v6() 377 dst = ip6_route_output(net, NULL, &fl6); in __ip_vs_route_output_v6() 382 if (ipv6_addr_any(&fl6.saddr) && in __ip_vs_route_output_v6() 384 &fl6.daddr, 0, &fl6.saddr) < 0) in __ip_vs_route_output_v6() 387 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in __ip_vs_route_output_v6() 393 *ret_saddr = fl6.saddr; in __ip_vs_route_output_v6()
|
D | ip_vs_ctl.c | 79 struct flowi6 fl6 = { in __ip_vs_addr_is_local_v6() local 82 struct dst_entry *dst = ip6_route_output(net, NULL, &fl6); in __ip_vs_addr_is_local_v6()
|
/linux-4.4.14/net/tipc/ |
D | udp_media.c | 198 struct flowi6 fl6 = { in tipc_udp_send_msg() local 205 &fl6); in tipc_udp_send_msg()
|
/linux-4.4.14/net/mpls/ |
D | af_mpls.c | 471 struct flowi6 fl6; in inet6_fib_lookup_dev() local 477 memset(&fl6, 0, sizeof(fl6)); in inet6_fib_lookup_dev() 478 memcpy(&fl6.daddr, addr, sizeof(struct in6_addr)); in inet6_fib_lookup_dev() 479 err = ipv6_stub->ipv6_dst_lookup(net, NULL, &dst, &fl6); in inet6_fib_lookup_dev()
|
/linux-4.4.14/drivers/net/ipvlan/ |
D | ipvlan_core.c | 390 struct flowi6 fl6 = { in ipvlan_process_v6_outbound() local 400 dst = ip6_route_output(net, NULL, &fl6); in ipvlan_process_v6_outbound()
|
/linux-4.4.14/net/xfrm/ |
D | xfrm_policy.c | 78 const struct flowi6 *fl6 = &fl->u.ip6; in __xfrm6_selector_match() local 80 return addr_match(&fl6->daddr, &sel->daddr, sel->prefixlen_d) && in __xfrm6_selector_match() 81 addr_match(&fl6->saddr, &sel->saddr, sel->prefixlen_s) && in __xfrm6_selector_match() 82 !((xfrm_flowi_dport(fl, &fl6->uli) ^ sel->dport) & sel->dport_mask) && in __xfrm6_selector_match() 83 !((xfrm_flowi_sport(fl, &fl6->uli) ^ sel->sport) & sel->sport_mask) && in __xfrm6_selector_match() 84 (fl6->flowi6_proto == sel->proto || !sel->proto) && in __xfrm6_selector_match() 85 (fl6->flowi6_oif == sel->ifindex || !sel->ifindex); in __xfrm6_selector_match()
|
/linux-4.4.14/drivers/infiniband/hw/cxgb4/ |
D | cm.c | 392 struct flowi6 fl6; in find_route6() local 394 memset(&fl6, 0, sizeof(fl6)); in find_route6() 395 memcpy(&fl6.daddr, peer_ip, 16); in find_route6() 396 memcpy(&fl6.saddr, local_ip, 16); in find_route6() 397 if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) in find_route6() 398 fl6.flowi6_oif = sin6_scope_id; in find_route6() 399 dst = ip6_route_output(&init_net, NULL, &fl6); in find_route6()
|
/linux-4.4.14/drivers/net/ethernet/broadcom/ |
D | cnic.c | 3697 struct flowi6 fl6; in cnic_get_v6_route() local 3699 memset(&fl6, 0, sizeof(fl6)); in cnic_get_v6_route() 3700 fl6.daddr = dst_addr->sin6_addr; in cnic_get_v6_route() 3701 if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) in cnic_get_v6_route() 3702 fl6.flowi6_oif = dst_addr->sin6_scope_id; in cnic_get_v6_route() 3704 *dst = ip6_route_output(&init_net, NULL, &fl6); in cnic_get_v6_route()
|