Home
last modified time | relevance | path

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

/linux-4.4.14/net/ipv6/
Dinet6_connection_sock.c69 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 …]
Dicmp.c174 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 …]
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.c34 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 …]
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.c537 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 …]
Dsyncookies.c221 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 …]
Dudp.c1025 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 …]
Dip6_output.c157 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 …]
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.c431 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 …]
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.c123 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 …]
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 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 …]
Dip6_tunnel.c1033 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 …]
Daf_inet6.c654 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 …]
Dfib6_rules.c32 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()
Dnetfilter.c26 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()
Dmip6.c213 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()
Dndisc.c445 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()
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.c629 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 …]
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.c1613 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()
Dip6_fib.c286 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/
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.4.14/net/ipv6/netfilter/
Dnf_dup_ipv6.c27 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()
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(net, &fl6, lookup_flags); in rpfilter_lookup_reverse6()
Dip6t_SYNPROXY.c48 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()
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.4.14/net/l2tp/
Dl2tp_ip6.c495 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/
Dl3mdev.h37 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
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.h293 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 …]
Dflow.h187 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()
Dinet6_connection_sock.h28 struct dst_entry *inet6_csk_route_req(const struct sock *sk, struct flowi6 *fl6,
Dtransp_v6.h44 struct flowi6 *fl6, struct ipv6_txoptions *opt,
Dip6_fib.h261 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
Daddrconf.h193 struct dst_entry **dst, struct flowi6 *fl6);
/linux-4.4.14/net/sctp/
Dipv6.c211 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/
Daddr.c271 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/
Dflow_dissector.c693 __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/
Dgeneve.c756 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 …]
Dvrf.c227 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()
Dvxlan.c1852 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/
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.4.14/include/linux/
Dicmpv6.h40 struct flowi6 *fl6,
Dskbuff.h1042 __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/
Dip_vs_xmit.c370 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()
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.4.14/net/tipc/
Dudp_media.c198 struct flowi6 fl6 = { in tipc_udp_send_msg() local
205 &fl6); in tipc_udp_send_msg()
/linux-4.4.14/net/mpls/
Daf_mpls.c471 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/
Dipvlan_core.c390 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/
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.4.14/drivers/infiniband/hw/cxgb4/
Dcm.c392 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/
Dcnic.c3697 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()