Home
last modified time | relevance | path

Searched refs:fl6 (Results 1 – 51 of 51) sorted by relevance

/linux-4.1.27/net/ipv6/
Dinet6_connection_sock.c69 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 …]
Dicmp.c173 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 …]
Dping.c88 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 …]
Dxfrm6_policy.c33 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 …]
Ddatagram.c50 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 …]
Draw.c536 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 …]
Dsyncookies.c241 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 …]
Dudp.c1024 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 …]
Dxfrm6_output.c49 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()
Droute.c379 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 …]
Dip6_output.c156 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 …]
Dxfrm6_state.c26 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()
Dtcp_ipv6.c125 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 …]
Dip6_gre.c605 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 …]
Dip6_tunnel.c974 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 …]
Daf_inet6.c651 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 …]
Dfib6_rules.c32 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()
Dnetfilter.c27 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()
Dmip6.c215 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()
Dipv6_sockglue.c473 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()
Dip6mr.c630 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 …]
Dndisc.c443 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()
Dexthdrs.c864 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()
Dmcast.c1614 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()
Dip6_fib.c255 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/
Dipv6.c190 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/
Dl2tp_ip6.c493 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/
Dnf_reject_ipv6.c142 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()
Dip6t_rpfilter.c35 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()
Dip6t_SYNPROXY.c47 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()
Dnf_nat_l3proto_ipv6.c38 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/
Dipv6.c211 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/
Daddr.c272 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/
Dxt_TEE.c144 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()
Dxt_TCPMSS.c60 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/
Dip6_route.h68 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);
Dipv6.h291 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 …]
Dinet6_connection_sock.h28 struct dst_entry *inet6_csk_route_req(struct sock *sk, struct flowi6 *fl6,
Dtransp_v6.h44 struct flowi6 *fl6, struct ipv6_txoptions *opt,
Dflow.h175 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()
Dip6_fib.h285 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
Daddrconf.h161 struct flowi6 *fl6);
/linux-4.1.27/include/linux/
Dicmpv6.h40 struct flowi6 *fl6,
/linux-4.1.27/net/netfilter/ipvs/
Dip_vs_xmit.c369 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()
Dip_vs_ctl.c79 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/
Dudp_media.c192 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/
Dvxlan.c1977 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/
Dipvlan_core.c381 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/
Dxfrm_policy.c78 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/
Dcm.c381 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/
Dcnic.c3686 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()