Home
last modified time | relevance | path

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

12

/net/ipv6/
Dinet6_connection_sock.c32 struct flowi6 *fl6, in inet6_csk_route_req() argument
41 memset(fl6, 0, sizeof(*fl6)); in inet6_csk_route_req()
42 fl6->flowi6_proto = proto; in inet6_csk_route_req()
43 fl6->daddr = ireq->ir_v6_rmt_addr; in inet6_csk_route_req()
45 final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); in inet6_csk_route_req()
47 fl6->saddr = ireq->ir_v6_loc_addr; in inet6_csk_route_req()
48 fl6->flowi6_oif = ireq->ir_iif; in inet6_csk_route_req()
49 fl6->flowi6_mark = ireq->ir_mark; in inet6_csk_route_req()
50 fl6->fl6_dport = ireq->ir_rmt_port; in inet6_csk_route_req()
51 fl6->fl6_sport = htons(ireq->ir_num); in inet6_csk_route_req()
[all …]
Dicmp.c197 struct flowi6 *fl6) in icmpv6_xrlim_allow() argument
211 dst = ip6_route_output(net, sk, fl6); in icmpv6_xrlim_allow()
226 peer = inet_getpeer_v6(net->ipv6.peers, &fl6->daddr, 1); in icmpv6_xrlim_allow()
253 int icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in icmpv6_push_pending_frames() argument
271 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames()
272 &fl6->daddr, in icmpv6_push_pending_frames()
273 len, fl6->flowi6_proto, in icmpv6_push_pending_frames()
284 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames()
285 &fl6->daddr, in icmpv6_push_pending_frames()
286 len, fl6->flowi6_proto, in icmpv6_push_pending_frames()
[all …]
Dping.c59 struct flowi6 fl6; in ping_v6_sendmsg() local
109 memset(&fl6, 0, sizeof(fl6)); in ping_v6_sendmsg()
111 fl6.flowi6_proto = IPPROTO_ICMPV6; in ping_v6_sendmsg()
112 fl6.saddr = np->saddr; in ping_v6_sendmsg()
113 fl6.daddr = *daddr; in ping_v6_sendmsg()
114 fl6.flowi6_oif = oif; in ping_v6_sendmsg()
115 fl6.flowi6_mark = sk->sk_mark; in ping_v6_sendmsg()
116 fl6.flowi6_uid = sk->sk_uid; in ping_v6_sendmsg()
117 fl6.fl6_icmp_type = user_icmph.icmp6_type; in ping_v6_sendmsg()
118 fl6.fl6_icmp_code = user_icmph.icmp6_code; 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 = l3mdev_master_ifindex_by_index(net, oif); in xfrm6_dst_lookup()
40 fl6.flowi6_flags = FLOWI_FLAG_SKIP_NH_OIF; in xfrm6_dst_lookup()
41 fl6.flowi6_mark = mark; in xfrm6_dst_lookup()
42 memcpy(&fl6.daddr, daddr, sizeof(fl6.daddr)); in xfrm6_dst_lookup()
44 memcpy(&fl6.saddr, saddr, sizeof(fl6.saddr)); in xfrm6_dst_lookup()
46 dst = ip6_route_output(net, NULL, &fl6); in xfrm6_dst_lookup()
123 struct flowi6 *fl6 = &fl->u.ip6; in _decode_session6() local
141 memset(fl6, 0, sizeof(struct flowi6)); in _decode_session6()
[all …]
Draw.c544 static int rawv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in rawv6_push_pending_frames() argument
609 csum = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in rawv6_push_pending_frames()
610 total_len, fl6->flowi6_proto, tmp_csum); in rawv6_push_pending_frames()
612 if (csum == 0 && fl6->flowi6_proto == IPPROTO_UDP) in rawv6_push_pending_frames()
624 struct flowi6 *fl6, struct dst_entry **dstp, in rawv6_send_hdrinc() argument
637 ipv6_local_error(sk, EMSGSIZE, fl6, rt->dst.dev->mtu); in rawv6_send_hdrinc()
716 static int rawv6_probe_proto_opt(struct raw6_frag_vec *rfv, struct flowi6 *fl6) in rawv6_probe_proto_opt() argument
719 switch (fl6->flowi6_proto) { in rawv6_probe_proto_opt()
724 fl6->fl6_icmp_type = rfv->c[0]; in rawv6_probe_proto_opt()
725 fl6->fl6_icmp_code = rfv->c[1]; in rawv6_probe_proto_opt()
[all …]
Ddatagram.c43 static void ip6_datagram_flow_key_init(struct flowi6 *fl6, struct sock *sk) in ip6_datagram_flow_key_init() argument
48 memset(fl6, 0, sizeof(*fl6)); in ip6_datagram_flow_key_init()
49 fl6->flowi6_proto = sk->sk_protocol; in ip6_datagram_flow_key_init()
50 fl6->daddr = sk->sk_v6_daddr; in ip6_datagram_flow_key_init()
51 fl6->saddr = np->saddr; in ip6_datagram_flow_key_init()
52 fl6->flowi6_oif = sk->sk_bound_dev_if; in ip6_datagram_flow_key_init()
53 fl6->flowi6_mark = sk->sk_mark; in ip6_datagram_flow_key_init()
54 fl6->fl6_dport = inet->inet_dport; in ip6_datagram_flow_key_init()
55 fl6->fl6_sport = inet->inet_sport; in ip6_datagram_flow_key_init()
56 fl6->flowlabel = np->flow_label; in ip6_datagram_flow_key_init()
[all …]
Dudp.c1044 static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6) in udp_v6_send_skb() argument
1058 uh->source = fl6->fl6_sport; in udp_v6_send_skb()
1059 uh->dest = fl6->fl6_dport; in udp_v6_send_skb()
1069 udp6_hwcsum_outgoing(sk, skb, &fl6->saddr, &fl6->daddr, len); in udp_v6_send_skb()
1075 uh->check = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in udp_v6_send_skb()
1076 len, fl6->flowi6_proto, csum); in udp_v6_send_skb()
1099 struct flowi6 fl6; in udp_v6_push_pending_frames() local
1108 fl6 = inet_sk(sk)->cork.fl.u.ip6; in udp_v6_push_pending_frames()
1114 err = udp_v6_send_skb(skb, &fl6); in udp_v6_push_pending_frames()
1133 struct flowi6 fl6; in udpv6_sendmsg() local
[all …]
Dsyncookies.c228 struct flowi6 fl6; in cookie_v6_check() local
229 memset(&fl6, 0, sizeof(fl6)); in cookie_v6_check()
230 fl6.flowi6_proto = IPPROTO_TCP; in cookie_v6_check()
231 fl6.daddr = ireq->ir_v6_rmt_addr; in cookie_v6_check()
232 final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); in cookie_v6_check()
233 fl6.saddr = ireq->ir_v6_loc_addr; in cookie_v6_check()
234 fl6.flowi6_oif = ireq->ir_iif; in cookie_v6_check()
235 fl6.flowi6_mark = ireq->ir_mark; in cookie_v6_check()
236 fl6.fl6_dport = ireq->ir_rmt_port; in cookie_v6_check()
237 fl6.fl6_sport = inet_sk(sk)->inet_sport; in cookie_v6_check()
[all …]
Droute.c452 struct flowi6 *fl6, int oif, in rt6_multipath_select() argument
461 if (!fl6->mp_hash) in rt6_multipath_select()
462 fl6->mp_hash = rt6_multipath_hash(fl6, NULL); in rt6_multipath_select()
464 route_choosen = fl6->mp_hash % (match->rt6i_nsiblings + 1); in rt6_multipath_select()
871 struct flowi6 *fl6, int flags) in ip6_pol_route_lookup() argument
876 if (fl6->flowi6_flags & FLOWI_FLAG_SKIP_NH_OIF) in ip6_pol_route_lookup()
880 fn = fib6_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route_lookup()
883 rt = rt6_device_match(net, rt, &fl6->saddr, fl6->flowi6_oif, flags); in ip6_pol_route_lookup()
884 if (rt->rt6i_nsiblings && fl6->flowi6_oif == 0) in ip6_pol_route_lookup()
885 rt = rt6_multipath_select(rt, fl6, fl6->flowi6_oif, flags); in ip6_pol_route_lookup()
[all …]
Dip6_output.c191 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, in ip6_xmit() argument
196 struct in6_addr *first_hop = &fl6->daddr; in ip6_xmit()
200 u8 proto = fl6->flowi6_proto; in ip6_xmit()
231 &fl6->saddr); in ip6_xmit()
246 ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, in ip6_xmit()
247 ip6_autoflowlabel(net, np), fl6)); in ip6_xmit()
253 hdr->saddr = fl6->saddr; in ip6_xmit()
284 ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); in ip6_xmit()
906 const struct flowi6 *fl6) in ip6_sk_dst_check() argument
937 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || in ip6_sk_dst_check()
[all …]
Dfou6.c20 struct flowi6 *fl6, u8 *protocol, __be16 sport) in fou6_build_udp() argument
33 &fl6->saddr, &fl6->daddr, skb->len); in fou6_build_udp()
39 u8 *protocol, struct flowi6 *fl6) in fou6_build_header() argument
50 fou6_build_udp(skb, e, fl6, protocol, sport); in fou6_build_header()
56 u8 *protocol, struct flowi6 *fl6) in gue6_build_header() argument
67 fou6_build_udp(skb, e, fl6, protocol, sport); in gue6_build_header()
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()
Dtcp_ipv6.c128 struct flowi6 fl6; in tcp_v6_connect() local
140 memset(&fl6, 0, sizeof(fl6)); in tcp_v6_connect()
143 fl6.flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; in tcp_v6_connect()
144 IP6_ECN_flow_init(fl6.flowlabel); in tcp_v6_connect()
145 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in tcp_v6_connect()
147 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in tcp_v6_connect()
197 np->flow_label = fl6.flowlabel; in tcp_v6_connect()
241 fl6.flowi6_proto = IPPROTO_TCP; in tcp_v6_connect()
242 fl6.daddr = sk->sk_v6_daddr; in tcp_v6_connect()
243 fl6.saddr = saddr ? *saddr : np->saddr; in tcp_v6_connect()
[all …]
Dip6_tunnel.c1039 struct flowi6 *fl6, int encap_limit, __u32 *pmtu, in ip6_tnl_xmit() argument
1085 memcpy(&fl6->daddr, addr6, sizeof(fl6->daddr)); in ip6_tnl_xmit()
1100 if (!ip6_tnl_xmit_ctl(t, &fl6->saddr, &fl6->daddr)) in ip6_tnl_xmit()
1106 fl6->flowlabel = ip6_make_flowinfo(dsfield, fl6->flowlabel); in ip6_tnl_xmit()
1108 dst = ip6_route_output(net, NULL, fl6); in ip6_tnl_xmit()
1112 dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), NULL, 0); in ip6_tnl_xmit()
1120 &fl6->daddr, 0, &fl6->saddr)) in ip6_tnl_xmit()
1185 dst_cache_set_ip6(&t->dst_cache, ndst, &fl6->saddr); in ip6_tnl_xmit()
1199 err = ip6_tnl_encap(skb, t, &proto, fl6); in ip6_tnl_xmit()
1212 ip6_make_flowlabel(net, skb, fl6->flowlabel, true, fl6)); in ip6_tnl_xmit()
[all …]
Dxfrm6_state.c27 const struct flowi6 *fl6 = &fl->u.ip6; in __xfrm6_init_tempsel() local
31 *(struct in6_addr *)&sel->daddr = fl6->daddr; in __xfrm6_init_tempsel()
32 *(struct in6_addr *)&sel->saddr = fl6->saddr; in __xfrm6_init_tempsel()
33 sel->dport = xfrm_flowi_dport(fl, &fl6->uli); in __xfrm6_init_tempsel()
35 sel->sport = xfrm_flowi_sport(fl, &fl6->uli); in __xfrm6_init_tempsel()
40 sel->proto = fl6->flowi6_proto; in __xfrm6_init_tempsel()
41 sel->ifindex = fl6->flowi6_oif; in __xfrm6_init_tempsel()
Dfib6_rules.c63 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, in fib6_rule_lookup() argument
73 l3mdev_update_flow(net, flowi6_to_flowi(fl6)); in fib6_rule_lookup()
76 flowi6_to_flowi(fl6), flags, &arg); in fib6_rule_lookup()
83 rt = lookup(net, net->ipv6.fib6_local_tbl, fl6, flags); in fib6_rule_lookup()
87 rt = lookup(net, net->ipv6.fib6_main_tbl, fl6, flags); in fib6_rule_lookup()
203 struct flowi6 *fl6 = &fl->u.ip6; in fib6_rule_match() local
206 !ipv6_prefix_equal(&fl6->daddr, &r->dst.addr, r->dst.plen)) in fib6_rule_match()
216 if (!ipv6_prefix_equal(&fl6->saddr, &r->src.addr, in fib6_rule_match()
223 if (r->tclass && r->tclass != ip6_tclass(fl6->flowlabel)) in fib6_rule_match()
Dip6_gre.c505 struct flowi6 *fl6, int encap_limit, in __gre6_xmit() argument
516 fl6->daddr = ((struct ipv6hdr *)skb->data)->daddr; in __gre6_xmit()
518 fl6->daddr = tunnel->parms.raddr; in __gre6_xmit()
532 return ip6_tnl_xmit(skb, dev, dsfield, fl6, encap_limit, pmtu, in __gre6_xmit()
541 struct flowi6 fl6; in ip6gre_xmit_ipv4() local
551 memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6)); in ip6gre_xmit_ipv4()
558 fl6.flowi6_mark = skb->mark; in ip6gre_xmit_ipv4()
560 fl6.flowi6_mark = t->parms.fwmark; in ip6gre_xmit_ipv4()
562 fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); in ip6gre_xmit_ipv4()
568 err = __gre6_xmit(skb, dev, dsfield, &fl6, encap_limit, &mtu, in ip6gre_xmit_ipv4()
[all …]
/net/ipv6/netfilter/
Dnft_fib_ipv6.c26 static int nft_fib6_flowi_init(struct flowi6 *fl6, const struct nft_fib *priv, in nft_fib6_flowi_init() argument
34 fl6->daddr = iph->daddr; in nft_fib6_flowi_init()
35 fl6->saddr = iph->saddr; in nft_fib6_flowi_init()
37 fl6->daddr = iph->saddr; in nft_fib6_flowi_init()
38 fl6->saddr = iph->daddr; in nft_fib6_flowi_init()
41 if (ipv6_addr_type(&fl6->daddr) & IPV6_ADDR_LINKLOCAL) { in nft_fib6_flowi_init()
43 fl6->flowi6_oif = get_ifindex(dev ? dev : pkt->skb->dev); in nft_fib6_flowi_init()
46 if (ipv6_addr_type(&fl6->saddr) & IPV6_ADDR_UNICAST) in nft_fib6_flowi_init()
50 fl6->flowi6_mark = pkt->skb->mark; in nft_fib6_flowi_init()
52 fl6->flowlabel = (*(__be32 *)iph) & IPV6_FLOWINFO_MASK; in nft_fib6_flowi_init()
[all …]
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 fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; in nf_dup_ipv6_route()
37 dst = ip6_route_output(net, NULL, &fl6); in nf_dup_ipv6_route()
Dnf_reject_ipv6.c141 struct flowi6 fl6; in nf_send_reset6() local
153 memset(&fl6, 0, sizeof(fl6)); in nf_send_reset6()
154 fl6.flowi6_proto = IPPROTO_TCP; in nf_send_reset6()
155 fl6.saddr = oip6h->daddr; in nf_send_reset6()
156 fl6.daddr = oip6h->saddr; in nf_send_reset6()
157 fl6.fl6_sport = otcph->dest; in nf_send_reset6()
158 fl6.fl6_dport = otcph->source; in nf_send_reset6()
159 fl6.flowi6_oif = l3mdev_master_ifindex(skb_dst(oldskb)->dev); in nf_send_reset6()
160 fl6.flowi6_mark = IP6_REPLY_MARK(net, oldskb->mark); in nf_send_reset6()
161 security_skb_classify_flow(oldskb, flowi6_to_flowi(&fl6)); in nf_send_reset6()
[all …]
Dip6t_rpfilter.c41 struct flowi6 fl6 = { in rpfilter_lookup_reverse6() local
50 memcpy(&fl6.saddr, &iph->daddr, sizeof(struct in6_addr)); in rpfilter_lookup_reverse6()
56 fl6.flowi6_mark = flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; in rpfilter_lookup_reverse6()
60 fl6.flowi6_oif = dev->ifindex; in rpfilter_lookup_reverse6()
64 fl6.flowi6_oif = dev->ifindex; in rpfilter_lookup_reverse6()
66 rt = (void *) ip6_route_lookup(net, &fl6, lookup_flags); in rpfilter_lookup_reverse6()
/net/l2tp/
Dl2tp_ip6.c509 struct flowi6 fl6; in l2tp_ip6_sendmsg() local
530 memset(&fl6, 0, sizeof(fl6)); in l2tp_ip6_sendmsg()
532 fl6.flowi6_mark = sk->sk_mark; in l2tp_ip6_sendmsg()
533 fl6.flowi6_uid = sk->sk_uid; in l2tp_ip6_sendmsg()
548 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg()
549 if (fl6.flowlabel&IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg()
550 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg()
567 fl6.flowi6_oif = lsa->l2tp_scope_id; in l2tp_ip6_sendmsg()
573 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg()
576 if (fl6.flowi6_oif == 0) in l2tp_ip6_sendmsg()
[all …]
/net/dccp/
Dipv6.c195 struct flowi6 fl6; in dccp_v6_send_response() local
199 memset(&fl6, 0, sizeof(fl6)); in dccp_v6_send_response()
200 fl6.flowi6_proto = IPPROTO_DCCP; in dccp_v6_send_response()
201 fl6.daddr = ireq->ir_v6_rmt_addr; in dccp_v6_send_response()
202 fl6.saddr = ireq->ir_v6_loc_addr; in dccp_v6_send_response()
203 fl6.flowlabel = 0; in dccp_v6_send_response()
204 fl6.flowi6_oif = ireq->ir_iif; in dccp_v6_send_response()
205 fl6.fl6_dport = ireq->ir_rmt_port; in dccp_v6_send_response()
206 fl6.fl6_sport = htons(ireq->ir_num); in dccp_v6_send_response()
207 security_req_classify_flow(req, flowi6_to_flowi(&fl6)); in dccp_v6_send_response()
[all …]
/net/ipv6/ila/
Dila_lwt.c61 struct flowi6 fl6; in ila_output() local
67 memset(&fl6, 0, sizeof(fl6)); in ila_output()
68 fl6.flowi6_oif = orig_dst->dev->ifindex; in ila_output()
69 fl6.flowi6_iif = LOOPBACK_IFINDEX; in ila_output()
70 fl6.daddr = *rt6_nexthop((struct rt6_info *)orig_dst, in ila_output()
73 dst = ip6_route_output(net, NULL, &fl6); in ila_output()
80 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in ila_output()
87 dst_cache_set_ip6(&ilwt->dst_cache, dst, &fl6.saddr); in ila_output()
/net/sctp/
Dipv6.c210 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()
224 res = ip6_xmit(sk, skb, fl6, sk->sk_mark, rcu_dereference(np->opt), in sctp_v6_xmit()
238 struct flowi6 *fl6 = &fl->u.ip6; in sctp_v6_get_dst() local
248 memset(fl6, 0, sizeof(struct flowi6)); in sctp_v6_get_dst()
249 fl6->daddr = daddr->v6.sin6_addr; in sctp_v6_get_dst()
250 fl6->fl6_dport = daddr->v6.sin6_port; in sctp_v6_get_dst()
251 fl6->flowi6_proto = IPPROTO_SCTP; in sctp_v6_get_dst()
253 fl6->flowi6_oif = daddr->v6.sin6_scope_id; in sctp_v6_get_dst()
[all …]

12