/linux-4.1.27/net/ipv6/ |
D | inet6_connection_sock.c | 69 struct flowi6 *fl6, in inet6_csk_route_req() argument 77 memset(fl6, 0, sizeof(*fl6)); in inet6_csk_route_req() 78 fl6->flowi6_proto = IPPROTO_TCP; in inet6_csk_route_req() 79 fl6->daddr = ireq->ir_v6_rmt_addr; in inet6_csk_route_req() 81 final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); in inet6_csk_route_req() 83 fl6->saddr = ireq->ir_v6_loc_addr; in inet6_csk_route_req() 84 fl6->flowi6_oif = ireq->ir_iif; in inet6_csk_route_req() 85 fl6->flowi6_mark = ireq->ir_mark; in inet6_csk_route_req() 86 fl6->fl6_dport = ireq->ir_rmt_port; in inet6_csk_route_req() 87 fl6->fl6_sport = htons(ireq->ir_num); in inet6_csk_route_req() [all …]
|
D | icmp.c | 173 struct flowi6 *fl6) in icmpv6_xrlim_allow() argument 192 dst = ip6_route_output(net, sk, fl6); in icmpv6_xrlim_allow() 238 int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in icmpv6_push_pending_frames() argument 256 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames() 257 &fl6->daddr, in icmpv6_push_pending_frames() 258 len, fl6->flowi6_proto, in icmpv6_push_pending_frames() 269 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames() 270 &fl6->daddr, in icmpv6_push_pending_frames() 271 len, fl6->flowi6_proto, in icmpv6_push_pending_frames() 326 struct flowi6 *fl6) in icmpv6_route_lookup() argument [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 | 33 struct flowi6 fl6; in xfrm6_dst_lookup() local 37 memset(&fl6, 0, sizeof(fl6)); in xfrm6_dst_lookup() 38 memcpy(&fl6.daddr, daddr, sizeof(fl6.daddr)); in xfrm6_dst_lookup() 40 memcpy(&fl6.saddr, saddr, sizeof(fl6.saddr)); in xfrm6_dst_lookup() 42 dst = ip6_route_output(net, NULL, &fl6); in xfrm6_dst_lookup() 129 struct flowi6 *fl6 = &fl->u.ip6; in _decode_session6() local 147 memset(fl6, 0, sizeof(struct flowi6)); in _decode_session6() 148 fl6->flowi6_mark = skb->mark; in _decode_session6() 149 fl6->flowi6_oif = reverse ? skb->skb_iif : oif; in _decode_session6() 151 fl6->daddr = reverse ? hdr->saddr : hdr->daddr; 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 | 536 static int rawv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in rawv6_push_pending_frames() argument 597 csum = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in rawv6_push_pending_frames() 598 total_len, fl6->flowi6_proto, tmp_csum); in rawv6_push_pending_frames() 600 if (csum == 0 && fl6->flowi6_proto == IPPROTO_UDP) in rawv6_push_pending_frames() 612 struct flowi6 *fl6, struct dst_entry **dstp, in rawv6_send_hdrinc() argument 624 ipv6_local_error(sk, EMSGSIZE, fl6, rt->dst.dev->mtu); in rawv6_send_hdrinc() 680 static int rawv6_probe_proto_opt(struct raw6_frag_vec *rfv, struct flowi6 *fl6) in rawv6_probe_proto_opt() argument 683 switch (fl6->flowi6_proto) { in rawv6_probe_proto_opt() 688 fl6->fl6_icmp_type = rfv->c[0]; in rawv6_probe_proto_opt() 689 fl6->fl6_icmp_code = rfv->c[1]; in rawv6_probe_proto_opt() [all …]
|
D | syncookies.c | 241 struct flowi6 fl6; in cookie_v6_check() local 242 memset(&fl6, 0, sizeof(fl6)); in cookie_v6_check() 243 fl6.flowi6_proto = IPPROTO_TCP; in cookie_v6_check() 244 fl6.daddr = ireq->ir_v6_rmt_addr; in cookie_v6_check() 245 final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); in cookie_v6_check() 246 fl6.saddr = ireq->ir_v6_loc_addr; in cookie_v6_check() 247 fl6.flowi6_oif = sk->sk_bound_dev_if; in cookie_v6_check() 248 fl6.flowi6_mark = ireq->ir_mark; in cookie_v6_check() 249 fl6.fl6_dport = ireq->ir_rmt_port; in cookie_v6_check() 250 fl6.fl6_sport = inet_sk(sk)->inet_sport; in cookie_v6_check() [all …]
|
D | udp.c | 1024 static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6) in udp_v6_send_skb() argument 1038 uh->source = fl6->fl6_sport; in udp_v6_send_skb() 1039 uh->dest = fl6->fl6_dport; in udp_v6_send_skb() 1049 udp6_hwcsum_outgoing(sk, skb, &fl6->saddr, &fl6->daddr, len); in udp_v6_send_skb() 1055 uh->check = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in udp_v6_send_skb() 1056 len, fl6->flowi6_proto, csum); in udp_v6_send_skb() 1078 struct flowi6 fl6; in udp_v6_push_pending_frames() local 1087 fl6 = inet_sk(sk)->cork.fl.u.ip6; in udp_v6_push_pending_frames() 1093 err = udp_v6_send_skb(skb, &fl6); in udp_v6_push_pending_frames() 1112 struct flowi6 fl6; in udpv6_sendmsg() local [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 | 379 const struct flowi6 *fl6) in rt6_info_hash_nhsfn() argument 381 unsigned int val = fl6->flowi6_proto; in rt6_info_hash_nhsfn() 383 val ^= ipv6_addr_hash(&fl6->daddr); in rt6_info_hash_nhsfn() 384 val ^= ipv6_addr_hash(&fl6->saddr); in rt6_info_hash_nhsfn() 387 switch (fl6->flowi6_proto) { in rt6_info_hash_nhsfn() 391 val ^= (__force u16)fl6->fl6_sport; in rt6_info_hash_nhsfn() 392 val ^= (__force u16)fl6->fl6_dport; in rt6_info_hash_nhsfn() 396 val ^= (__force u16)fl6->fl6_icmp_type; in rt6_info_hash_nhsfn() 397 val ^= (__force u16)fl6->fl6_icmp_code; in rt6_info_hash_nhsfn() 401 val ^= (__force u32)fl6->flowlabel; in rt6_info_hash_nhsfn() [all …]
|
D | ip6_output.c | 156 int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, in ip6_xmit() argument 161 struct in6_addr *first_hop = &fl6->daddr; in ip6_xmit() 164 u8 proto = fl6->flowi6_proto; in ip6_xmit() 209 ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, in ip6_xmit() 216 hdr->saddr = fl6->saddr; in ip6_xmit() 232 ipv6_local_error(sk, EMSGSIZE, fl6, mtu); in ip6_xmit() 838 const struct flowi6 *fl6) in ip6_sk_dst_check() argument 869 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || in ip6_sk_dst_check() 871 ip6_rt_check(&rt->rt6i_src, &fl6->saddr, np->saddr_cache) || in ip6_sk_dst_check() 873 (fl6->flowi6_oif && fl6->flowi6_oif != dst->dev->ifindex)) { in ip6_sk_dst_check() [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 | 125 struct flowi6 fl6; in tcp_v6_connect() local 136 memset(&fl6, 0, sizeof(fl6)); in tcp_v6_connect() 139 fl6.flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; in tcp_v6_connect() 140 IP6_ECN_flow_init(fl6.flowlabel); in tcp_v6_connect() 141 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in tcp_v6_connect() 143 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in tcp_v6_connect() 188 np->flow_label = fl6.flowlabel; in tcp_v6_connect() 232 fl6.flowi6_proto = IPPROTO_TCP; in tcp_v6_connect() 233 fl6.daddr = sk->sk_v6_daddr; in tcp_v6_connect() 234 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 ndst = ip6_route_output(net, NULL, fl6); in ip6gre_xmit2() 644 ndst = xfrm_lookup(net, ndst, flowi6_to_flowi(fl6), NULL, 0); in ip6gre_xmit2() 705 if (fl6->flowi6_mark) { in ip6gre_xmit2() 732 ip6_make_flowlabel(net, skb, fl6->flowlabel, false)); in ip6gre_xmit2() 735 ipv6h->saddr = fl6->saddr; in ip6gre_xmit2() 736 ipv6h->daddr = fl6->daddr; in ip6gre_xmit2() [all …]
|
D | ip6_tunnel.c | 974 struct flowi6 *fl6, in ip6_tnl_xmit2() argument 1010 memcpy(&fl6->daddr, addr6, sizeof(fl6->daddr)); in ip6_tnl_xmit2() 1012 } else if (!fl6->flowi6_mark) in ip6_tnl_xmit2() 1015 if (!ip6_tnl_xmit_ctl(t, &fl6->saddr, &fl6->daddr)) in ip6_tnl_xmit2() 1019 ndst = ip6_route_output(net, NULL, fl6); in ip6_tnl_xmit2() 1023 ndst = xfrm_lookup(net, ndst, flowi6_to_flowi(fl6), NULL, 0); in ip6_tnl_xmit2() 1075 if (fl6->flowi6_mark) { in ip6_tnl_xmit2() 1083 proto = fl6->flowi6_proto; in ip6_tnl_xmit2() 1098 ip6_make_flowlabel(net, skb, fl6->flowlabel, false)); in ip6_tnl_xmit2() 1101 ipv6h->saddr = fl6->saddr; in ip6_tnl_xmit2() [all …]
|
D | af_inet6.c | 651 struct flowi6 fl6; in inet6_sk_rebuild_header() local 653 memset(&fl6, 0, sizeof(fl6)); in inet6_sk_rebuild_header() 654 fl6.flowi6_proto = sk->sk_protocol; in inet6_sk_rebuild_header() 655 fl6.daddr = sk->sk_v6_daddr; in inet6_sk_rebuild_header() 656 fl6.saddr = np->saddr; in inet6_sk_rebuild_header() 657 fl6.flowlabel = np->flow_label; in inet6_sk_rebuild_header() 658 fl6.flowi6_oif = sk->sk_bound_dev_if; in inet6_sk_rebuild_header() 659 fl6.flowi6_mark = sk->sk_mark; in inet6_sk_rebuild_header() 660 fl6.fl6_dport = inet->inet_dport; in inet6_sk_rebuild_header() 661 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 41 flowi6_to_flowi(fl6), flags, &arg); in fib6_rule_lookup() 153 struct flowi6 *fl6 = &fl->u.ip6; in fib6_rule_match() local 156 !ipv6_prefix_equal(&fl6->daddr, &r->dst.addr, r->dst.plen)) in fib6_rule_match() 166 if (!ipv6_prefix_equal(&fl6->saddr, &r->src.addr, in fib6_rule_match() 173 if (r->tclass && r->tclass != ip6_tclass(fl6->flowlabel)) in fib6_rule_match()
|
D | netfilter.c | 27 struct flowi6 fl6 = { in ip6_route_me_harder() local 35 dst = ip6_route_output(net, skb->sk, &fl6); in ip6_route_me_harder() 51 xfrm_decode_session(skb, flowi6_to_flowi(&fl6), AF_INET6) == 0) { in ip6_route_me_harder() 53 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), skb->sk, 0); in ip6_route_me_harder()
|
D | mip6.c | 215 const struct flowi6 *fl6 = &fl->u.ip6; in mip6_destopt_reject() local 222 if (unlikely(fl6->flowi6_proto == IPPROTO_MH && in mip6_destopt_reject() 223 fl6->fl6_mh_type <= IP6_MH_TYPE_MAX)) in mip6_destopt_reject() 248 sel.proto = fl6->flowi6_proto; in mip6_destopt_reject() 249 sel.dport = xfrm_flowi_dport(fl, &fl6->uli); in mip6_destopt_reject() 252 sel.sport = xfrm_flowi_sport(fl, &fl6->uli); in mip6_destopt_reject() 255 sel.ifindex = fl6->flowi6_oif; in mip6_destopt_reject()
|
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 | 630 struct flowi6 fl6 = { in pim6_rcv() local 657 if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) in pim6_rcv() 699 struct flowi6 fl6 = { in reg_vif_xmit() local 706 err = ip6mr_fib_lookup(net, &fl6, &mrt); in reg_vif_xmit() 1643 struct flowi6 fl6 = { in mroute6_socket() local 1649 if (ip6mr_fib_lookup(net, &fl6, &mrt) < 0) in mroute6_socket() 2010 struct flowi6 fl6; in ip6mr_forward2() local 2028 fl6 = (struct flowi6) { in ip6mr_forward2() 2033 dst = ip6_route_output(net, NULL, &fl6); in ip6mr_forward2() 2187 struct flowi6 fl6 = { in ip6_mr_input() local [all …]
|
D | ndisc.c | 443 struct flowi6 fl6; in ndisc_send_skb() local 445 icmpv6_flow_init(sk, &fl6, type, saddr, daddr, skb->dev->ifindex); in ndisc_send_skb() 446 dst = icmp6_dst_alloc(skb->dev, &fl6); in ndisc_send_skb() 1470 struct flowi6 fl6; in ndisc_send_redirect() local 1488 icmpv6_flow_init(sk, &fl6, NDISC_REDIRECT, in ndisc_send_redirect() 1491 dst = ip6_route_output(net, NULL, &fl6); in ndisc_send_redirect() 1496 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in ndisc_send_redirect()
|
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 | 1614 struct flowi6 fl6; in mld_sendpack() local 1631 icmpv6_flow_init(net->ipv6.igmp_sk, &fl6, ICMPV6_MLD2_REPORT, in mld_sendpack() 1634 dst = icmp6_dst_alloc(skb->dev, &fl6); in mld_sendpack() 1946 struct flowi6 fl6; in igmp6_send() local 2000 icmpv6_flow_init(sk, &fl6, type, in igmp6_send() 2003 dst = icmp6_dst_alloc(skb->dev, &fl6); in igmp6_send()
|
D | ip6_fib.c | 255 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, in fib6_rule_lookup() argument 258 return (struct dst_entry *) lookup(net, net->ipv6.fib6_main_tbl, fl6, flags); in fib6_rule_lookup()
|
/linux-4.1.27/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.1.27/net/l2tp/ |
D | l2tp_ip6.c | 493 struct flowi6 fl6; in l2tp_ip6_sendmsg() local 515 memset(&fl6, 0, sizeof(fl6)); in l2tp_ip6_sendmsg() 517 fl6.flowi6_mark = sk->sk_mark; in l2tp_ip6_sendmsg() 528 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg() 529 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg() 530 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg() 547 fl6.flowi6_oif = lsa->l2tp_scope_id; in l2tp_ip6_sendmsg() 553 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg() 556 if (fl6.flowi6_oif == 0) in l2tp_ip6_sendmsg() 557 fl6.flowi6_oif = sk->sk_bound_dev_if; in l2tp_ip6_sendmsg() [all …]
|
/linux-4.1.27/net/ipv6/netfilter/ |
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(dev_net(dev), &fl6, lookup_flags); in rpfilter_lookup_reverse6()
|
D | ip6t_SYNPROXY.c | 47 struct flowi6 fl6; in synproxy_send_tcp() local 54 memset(&fl6, 0, sizeof(fl6)); in synproxy_send_tcp() 55 fl6.flowi6_proto = IPPROTO_TCP; in synproxy_send_tcp() 56 fl6.saddr = niph->saddr; in synproxy_send_tcp() 57 fl6.daddr = niph->daddr; in synproxy_send_tcp() 58 fl6.fl6_sport = nth->source; in synproxy_send_tcp() 59 fl6.fl6_dport = nth->dest; in synproxy_send_tcp() 60 security_skb_classify_flow((struct sk_buff *)skb, flowi6_to_flowi(&fl6)); in synproxy_send_tcp() 61 dst = ip6_route_output(net, NULL, &fl6); in synproxy_send_tcp() 66 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.1.27/net/sctp/ |
D | ipv6.c | 211 struct flowi6 *fl6 = &transport->fl.u.ip6; in sctp_v6_xmit() local 214 skb->len, &fl6->saddr, &fl6->daddr); in sctp_v6_xmit() 216 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in sctp_v6_xmit() 223 return ip6_xmit(sk, skb, fl6, np->opt, np->tclass); in sctp_v6_xmit() 234 struct flowi6 *fl6 = &fl->u.ip6; in sctp_v6_get_dst() local 246 memset(fl6, 0, sizeof(struct flowi6)); in sctp_v6_get_dst() 247 fl6->daddr = daddr->v6.sin6_addr; in sctp_v6_get_dst() 248 fl6->fl6_dport = daddr->v6.sin6_port; in sctp_v6_get_dst() 249 fl6->flowi6_proto = IPPROTO_SCTP; in sctp_v6_get_dst() 251 fl6->flowi6_oif = daddr->v6.sin6_scope_id; in sctp_v6_get_dst() [all …]
|
/linux-4.1.27/drivers/infiniband/core/ |
D | addr.c | 272 struct flowi6 fl6; in addr6_resolve() local 276 memset(&fl6, 0, sizeof fl6); in addr6_resolve() 277 fl6.daddr = dst_in->sin6_addr; in addr6_resolve() 278 fl6.saddr = src_in->sin6_addr; in addr6_resolve() 279 fl6.flowi6_oif = addr->bound_dev_if; in addr6_resolve() 281 dst = ip6_route_output(&init_net, NULL, &fl6); in addr6_resolve() 285 if (ipv6_addr_any(&fl6.saddr)) { in addr6_resolve() 287 &fl6.daddr, 0, &fl6.saddr); in addr6_resolve() 292 src_in->sin6_addr = fl6.saddr; in addr6_resolve() 308 ret = dst_fetch_ha(dst, addr, &fl6.daddr); in addr6_resolve()
|
/linux-4.1.27/net/netfilter/ |
D | xt_TEE.c | 144 struct flowi6 fl6; in tee_tg_route6() local 146 memset(&fl6, 0, sizeof(fl6)); in tee_tg_route6() 150 fl6.flowi6_oif = info->priv->oif; in tee_tg_route6() 152 fl6.daddr = info->gw.in6; in tee_tg_route6() 153 fl6.flowlabel = ((iph->flow_lbl[0] & 0xF) << 16) | in tee_tg_route6() 155 dst = ip6_route_output(net, NULL, &fl6); in tee_tg_route6()
|
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.1.27/include/net/ |
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 | 291 int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, 698 static inline int ip6_sk_dst_hoplimit(struct ipv6_pinfo *np, struct flowi6 *fl6, in ip6_sk_dst_hoplimit() argument 703 if (ipv6_addr_is_multicast(&fl6->daddr)) in ip6_sk_dst_hoplimit() 795 int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, 804 int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, 821 struct flowi6 *fl6, struct rt6_info *rt, 830 int ip6_dst_lookup(struct sock *sk, struct dst_entry **dst, struct flowi6 *fl6); 831 struct dst_entry *ip6_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, 833 struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, 877 struct in6_addr *fl6_update_dst(struct flowi6 *fl6, [all …]
|
D | inet6_connection_sock.h | 28 struct dst_entry *inet6_csk_route_req(struct sock *sk, struct flowi6 *fl6,
|
D | transp_v6.h | 44 struct flowi6 *fl6, struct ipv6_txoptions *opt,
|
D | flow.h | 175 static inline struct flowi *flowi6_to_flowi(struct flowi6 *fl6) in flowi6_to_flowi() argument 177 return container_of(fl6, struct flowi, u.ip6); in flowi6_to_flowi()
|
D | ip6_fib.h | 285 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
|
D | addrconf.h | 161 struct flowi6 *fl6);
|
/linux-4.1.27/include/linux/ |
D | icmpv6.h | 40 struct flowi6 *fl6,
|
/linux-4.1.27/net/netfilter/ipvs/ |
D | ip_vs_xmit.c | 369 struct flowi6 fl6 = { in __ip_vs_route_output_v6() local 373 dst = ip6_route_output(net, NULL, &fl6); in __ip_vs_route_output_v6() 378 if (ipv6_addr_any(&fl6.saddr) && in __ip_vs_route_output_v6() 380 &fl6.daddr, 0, &fl6.saddr) < 0) in __ip_vs_route_output_v6() 383 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in __ip_vs_route_output_v6() 389 *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.1.27/net/tipc/ |
D | udp_media.c | 192 struct flowi6 fl6 = { in tipc_udp_send_msg() local 198 err = ipv6_stub->ipv6_dst_lookup(ub->ubsock->sk, &ndst, &fl6); in tipc_udp_send_msg()
|
/linux-4.1.27/drivers/net/ |
D | vxlan.c | 1977 struct flowi6 fl6; in vxlan_xmit_one() local 1980 memset(&fl6, 0, sizeof(fl6)); in vxlan_xmit_one() 1981 fl6.flowi6_oif = rdst->remote_ifindex; in vxlan_xmit_one() 1982 fl6.daddr = dst->sin6.sin6_addr; in vxlan_xmit_one() 1983 fl6.saddr = vxlan->saddr.sin6.sin6_addr; in vxlan_xmit_one() 1984 fl6.flowi6_proto = IPPROTO_UDP; in vxlan_xmit_one() 1986 if (ipv6_stub->ipv6_dst_lookup(sk, &ndst, &fl6)) { in vxlan_xmit_one() 2021 err = vxlan6_xmit_skb(ndst, sk, skb, dev, &fl6.saddr, &fl6.daddr, in vxlan_xmit_one()
|
/linux-4.1.27/drivers/net/ipvlan/ |
D | ipvlan_core.c | 381 struct flowi6 fl6 = { in ipvlan_process_v6_outbound() local 391 dst = ip6_route_output(dev_net(dev), NULL, &fl6); in ipvlan_process_v6_outbound()
|
/linux-4.1.27/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.1.27/drivers/infiniband/hw/cxgb4/ |
D | cm.c | 381 struct flowi6 fl6; in find_route6() local 383 memset(&fl6, 0, sizeof(fl6)); in find_route6() 384 memcpy(&fl6.daddr, peer_ip, 16); in find_route6() 385 memcpy(&fl6.saddr, local_ip, 16); in find_route6() 386 if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) in find_route6() 387 fl6.flowi6_oif = sin6_scope_id; in find_route6() 388 dst = ip6_route_output(&init_net, NULL, &fl6); in find_route6()
|
/linux-4.1.27/drivers/net/ethernet/broadcom/ |
D | cnic.c | 3686 struct flowi6 fl6; in cnic_get_v6_route() local 3688 memset(&fl6, 0, sizeof(fl6)); in cnic_get_v6_route() 3689 fl6.daddr = dst_addr->sin6_addr; in cnic_get_v6_route() 3690 if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) in cnic_get_v6_route() 3691 fl6.flowi6_oif = dst_addr->sin6_scope_id; in cnic_get_v6_route() 3693 *dst = ip6_route_output(&init_net, NULL, &fl6); in cnic_get_v6_route()
|