Home
last modified time | relevance | path

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

1234

/linux/net/ipv6/
H A Dinet6_connection_sock.c28 struct flowi6 *fl6, in inet6_csk_route_req() argument
37 memset(fl6, 0, sizeof(*fl6)); in inet6_csk_route_req()
38 fl6->flowi6_proto = proto; in inet6_csk_route_req()
39 fl6->daddr = ireq->ir_v6_rmt_addr; in inet6_csk_route_req()
41 final_p = fl6_update_dst(fl6, rcu_dereference(np->opt), &final); in inet6_csk_route_req()
43 fl6->saddr = ireq->ir_v6_loc_addr; in inet6_csk_route_req()
44 fl6->flowi6_oif = ireq->ir_iif; in inet6_csk_route_req()
45 fl6->flowi6_mark = ireq->ir_mark; in inet6_csk_route_req()
46 fl6->fl6_dport = ireq->ir_rmt_port; in inet6_csk_route_req()
47 fl6->fl6_sport = htons(ireq->ir_num); in inet6_csk_route_req()
[all …]
H A Dicmp.c196 struct flowi6 *fl6, bool apply_ratelimit) in icmpv6_xrlim_allow() argument
210 dst = ip6_route_output(net, sk, fl6); in icmpv6_xrlim_allow()
225 peer = inet_getpeer_v6(net->ipv6.peers, &fl6->daddr, 1); in icmpv6_xrlim_allow()
240 struct flowi6 *fl6) in icmpv6_rt_has_prefsrc() argument
246 dst = ip6_route_output(net, sk, fl6); in icmpv6_rt_has_prefsrc()
276 void icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in icmpv6_push_pending_frames() argument
293 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames()
294 &fl6->daddr, in icmpv6_push_pending_frames()
295 len, fl6->flowi6_proto, in icmpv6_push_pending_frames()
306 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl6->saddr, in icmpv6_push_pending_frames()
[all …]
H A Dping.c70 struct flowi6 fl6; in ping_v6_sendmsg() local
82 memset(&fl6, 0, sizeof(fl6)); in ping_v6_sendmsg()
93 fl6.flowlabel = u->sin6_flowinfo & IPV6_FLOWINFO_MASK; in ping_v6_sendmsg()
100 fl6.flowlabel = np->flow_label; in ping_v6_sendmsg()
125 fl6.flowi6_oif = oif; in ping_v6_sendmsg()
133 err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6, &ipc6); in ping_v6_sendmsg()
143 fl6.flowi6_proto = IPPROTO_ICMPV6; in ping_v6_sendmsg()
144 fl6.saddr = np->saddr; in ping_v6_sendmsg()
145 fl6.daddr = *daddr; in ping_v6_sendmsg()
146 fl6.flowi6_mark = ipc6.sockc.mark; in ping_v6_sendmsg()
[all …]
H A Dip6_udp_tunnel.c146 struct flowi6 fl6; in udp_tunnel6_dst_lookup() local
155 memset(&fl6, 0, sizeof(fl6)); in udp_tunnel6_dst_lookup()
156 fl6.flowi6_mark = skb->mark; in udp_tunnel6_dst_lookup()
157 fl6.flowi6_proto = IPPROTO_UDP; in udp_tunnel6_dst_lookup()
158 fl6.flowi6_oif = oif; in udp_tunnel6_dst_lookup()
159 fl6.daddr = key->u.ipv6.dst; in udp_tunnel6_dst_lookup()
160 fl6.saddr = key->u.ipv6.src; in udp_tunnel6_dst_lookup()
161 fl6.fl6_sport = sport; in udp_tunnel6_dst_lookup()
162 fl6.fl6_dport = dport; in udp_tunnel6_dst_lookup()
163 fl6.flowlabel = ip6_make_flowinfo(dsfield, key->label); in udp_tunnel6_dst_lookup()
[all …]
H A Draw.c510 static int rawv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6, in rawv6_push_pending_frames() argument
579 csum = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in rawv6_push_pending_frames()
580 total_len, fl6->flowi6_proto, tmp_csum); in rawv6_push_pending_frames()
582 if (csum == 0 && fl6->flowi6_proto == IPPROTO_UDP) in rawv6_push_pending_frames()
594 struct flowi6 *fl6, struct dst_entry **dstp, in rawv6_send_hdrinc() argument
606 ipv6_local_error(sk, EMSGSIZE, fl6, rt->dst.dev->mtu); in rawv6_send_hdrinc()
688 static int rawv6_probe_proto_opt(struct raw6_frag_vec *rfv, struct flowi6 *fl6) in rawv6_probe_proto_opt() argument
691 switch (fl6->flowi6_proto) { in rawv6_probe_proto_opt()
696 fl6->fl6_icmp_type = rfv->c[0]; in rawv6_probe_proto_opt()
697 fl6->fl6_icmp_code = rfv->c[1]; in rawv6_probe_proto_opt()
[all …]
H A Ddatagram.c41 static void ip6_datagram_flow_key_init(struct flowi6 *fl6, 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_mark = sk->sk_mark; in ip6_datagram_flow_key_init()
53 fl6->fl6_dport = inet->inet_dport; in ip6_datagram_flow_key_init()
54 fl6->fl6_sport = inet->inet_sport; in ip6_datagram_flow_key_init()
55 fl6->flowlabel = ip6_make_flowinfo(np->tclass, np->flow_label); in ip6_datagram_flow_key_init()
56 fl6->flowi6_uid = sk->sk_uid; in ip6_datagram_flow_key_init()
[all …]
H A Dsyncookies.c229 struct flowi6 fl6; in cookie_v6_check() local
230 memset(&fl6, 0, sizeof(fl6)); in cookie_v6_check()
231 fl6.flowi6_proto = IPPROTO_TCP; in cookie_v6_check()
232 fl6.daddr = ireq->ir_v6_rmt_addr; in cookie_v6_check()
233 final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); in cookie_v6_check()
234 fl6.saddr = ireq->ir_v6_loc_addr; in cookie_v6_check()
235 fl6.flowi6_oif = ireq->ir_iif; in cookie_v6_check()
236 fl6.flowi6_mark = ireq->ir_mark; in cookie_v6_check()
237 fl6.fl6_dport = ireq->ir_rmt_port; in cookie_v6_check()
238 fl6.fl6_sport = inet_sk(sk)->inet_sport; in cookie_v6_check()
[all …]
H A Dxfrm6_output.c21 struct flowi6 fl6; in xfrm6_local_rxpmtu() local
24 fl6.flowi6_oif = sk->sk_bound_dev_if; in xfrm6_local_rxpmtu()
25 fl6.daddr = ipv6_hdr(skb)->daddr; in xfrm6_local_rxpmtu()
27 ipv6_local_rxpmtu(sk, &fl6, mtu); in xfrm6_local_rxpmtu()
32 struct flowi6 fl6; in xfrm6_local_error() local
37 fl6.fl6_dport = inet_sk(sk)->inet_dport; in xfrm6_local_error()
38 fl6.daddr = hdr->daddr; in xfrm6_local_error()
40 ipv6_local_error(sk, EMSGSIZE, &fl6, mtu); in xfrm6_local_error()
H A Dudp.c1222 static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6, in udp_v6_send_skb() argument
1238 uh->source = fl6->fl6_sport; in udp_v6_send_skb()
1239 uh->dest = fl6->fl6_dport; in udp_v6_send_skb()
1280 udp6_hwcsum_outgoing(sk, skb, &fl6->saddr, &fl6->daddr, len); in udp_v6_send_skb()
1286 uh->check = csum_ipv6_magic(&fl6->saddr, &fl6->daddr, in udp_v6_send_skb()
1287 len, fl6->flowi6_proto, csum); in udp_v6_send_skb()
1339 struct flowi6 *fl6 = &cork.fl.u.ip6; in udpv6_sendmsg() local
1431 memset(fl6, 0, sizeof(*fl6)); in udpv6_sendmsg()
1437 fl6->fl6_dport = sin6->sin6_port; in udpv6_sendmsg()
1441 fl6->flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in udpv6_sendmsg()
[all …]
H A Dip6_gre.c637 struct flowi6 *fl6, __u8 *dsfield, in prepare_ip6gre_xmit_ipv4() argument
646 memcpy(fl6, &t->fl.u.ip6, sizeof(*fl6)); in prepare_ip6gre_xmit_ipv4()
654 fl6->flowi6_mark = skb->mark; in prepare_ip6gre_xmit_ipv4()
656 fl6->flowi6_mark = t->parms.fwmark; in prepare_ip6gre_xmit_ipv4()
658 fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL); in prepare_ip6gre_xmit_ipv4()
663 struct flowi6 *fl6, __u8 *dsfield, in prepare_ip6gre_xmit_ipv6() argument
688 memcpy(fl6, &t->fl.u.ip6, sizeof(*fl6)); in prepare_ip6gre_xmit_ipv6()
696 fl6->flowlabel |= ip6_flowlabel(ipv6h); in prepare_ip6gre_xmit_ipv6()
699 fl6->flowi6_mark = skb->mark; in prepare_ip6gre_xmit_ipv6()
701 fl6->flowi6_mark = t->parms.fwmark; in prepare_ip6gre_xmit_ipv6()
[all …]
H A Dfib6_rules.c65 int fib6_lookup(struct net *net, int oif, struct flowi6 *fl6, in fib6_lookup() argument
78 l3mdev_update_flow(net, flowi6_to_flowi(fl6)); in fib6_lookup()
81 flowi6_to_flowi(fl6), flags, &arg); in fib6_lookup()
84 fl6, res, flags); in fib6_lookup()
87 oif, fl6, res, flags); in fib6_lookup()
93 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6, in fib6_rule_lookup() argument
107 l3mdev_update_flow(net, flowi6_to_flowi(fl6)); in fib6_rule_lookup()
110 flowi6_to_flowi(fl6), flags, &arg); in fib6_rule_lookup()
118 net, net->ipv6.fib6_local_tbl, fl6, skb, flags); in fib6_rule_lookup()
123 net, net->ipv6.fib6_main_tbl, fl6, skb, flags); in fib6_rule_lookup()
[all …]
H A Dip6_output.c267 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, in ip6_xmit() argument
272 struct in6_addr *first_hop = &fl6->daddr; in ip6_xmit()
280 u8 proto = fl6->flowi6_proto; in ip6_xmit()
309 &fl6->saddr); in ip6_xmit()
338 ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, in ip6_xmit()
339 ip6_autoflowlabel(net, sk), fl6)); in ip6_xmit()
345 hdr->saddr = fl6->saddr; in ip6_xmit()
375 ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); in ip6_xmit()
1061 const struct flowi6 *fl6) in ip6_sk_dst_check() argument
1092 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, np->daddr_cache) || in ip6_sk_dst_check()
[all …]
H A Dxfrm6_policy.c31 struct flowi6 fl6; in xfrm6_dst_lookup() local
35 memset(&fl6, 0, sizeof(fl6)); in xfrm6_dst_lookup()
36 fl6.flowi6_l3mdev = l3mdev_master_ifindex_by_index(net, oif); in xfrm6_dst_lookup()
37 fl6.flowi6_mark = mark; 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()
H A Droute.c413 struct flowi6 *fl6, int oif, bool have_oif_match, in fib6_select_path() argument
431 if (!fl6->mp_hash && in fib6_select_path()
433 fl6->mp_hash = rt6_multipath_hash(net, fl6, skb, NULL); in fib6_select_path()
436 nexthop_path_fib6_result(res, fl6->mp_hash); in fib6_select_path()
440 if (fl6->mp_hash <= atomic_read(&match->fib6_nh->fib_nh_upper_bound)) in fib6_select_path()
449 if (fl6->mp_hash > nh_upper_bound) in fib6_select_path()
1216 struct flowi6 *fl6, in ip6_pol_route_lookup() argument
1225 fn = fib6_node_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route_lookup()
1231 rt6_device_match(net, &res, &fl6->saddr, fl6->flowi6_oif, in ip6_pol_route_lookup()
1235 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route_lookup()
[all …]
H A Dfou6.c22 struct flowi6 *fl6, u8 *protocol, __be16 sport) in fou6_build_udp() argument
35 &fl6->saddr, &fl6->daddr, skb->len); in fou6_build_udp()
41 u8 *protocol, struct flowi6 *fl6) in fou6_build_header() argument
52 fou6_build_udp(skb, e, fl6, protocol, sport); in fou6_build_header()
58 u8 *protocol, struct flowi6 *fl6) in gue6_build_header() argument
69 fou6_build_udp(skb, e, fl6, protocol, sport); in gue6_build_header()
/linux/net/ipv6/netfilter/
H A Dnft_fib_ipv6.c22 static int nft_fib6_flowi_init(struct flowi6 *fl6, const struct nft_fib *priv, in nft_fib6_flowi_init() argument
30 fl6->daddr = iph->daddr; in nft_fib6_flowi_init()
31 fl6->saddr = iph->saddr; in nft_fib6_flowi_init()
35 fl6->flowi6_iif = nft_out(pkt)->ifindex; 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()
45 fl6->flowi6_l3mdev = l3mdev_master_ifindex_rcu(dev); in nft_fib6_flowi_init()
48 if (ipv6_addr_type(&fl6->saddr) & IPV6_ADDR_UNICAST) in nft_fib6_flowi_init()
[all …]
H A Dnf_dup_ipv6.c24 struct flowi6 fl6; in nf_dup_ipv6_route() local
26 memset(&fl6, 0, sizeof(fl6)); in nf_dup_ipv6_route()
28 fl6.flowi6_oif = oif; in nf_dup_ipv6_route()
30 fl6.daddr = *gw; in nf_dup_ipv6_route()
31 fl6.flowlabel = (__force __be32)(((iph->flow_lbl[0] & 0xF) << 16) | in nf_dup_ipv6_route()
33 fl6.flowi6_flags = FLOWI_FLAG_KNOWN_NH; in nf_dup_ipv6_route()
34 dst = ip6_route_output(net, NULL, &fl6); in nf_dup_ipv6_route()
H A Dnf_reject_ipv6.c288 struct flowi6 fl6; in nf_send_reset6() local
300 memset(&fl6, 0, sizeof(fl6)); in nf_send_reset6()
301 fl6.flowi6_proto = IPPROTO_TCP; in nf_send_reset6()
302 fl6.saddr = oip6h->daddr; in nf_send_reset6()
303 fl6.daddr = oip6h->saddr; in nf_send_reset6()
304 fl6.fl6_sport = otcph->dest; in nf_send_reset6()
305 fl6.fl6_dport = otcph->source; in nf_send_reset6()
308 nf_ip6_route(net, &dst, flowi6_to_flowi(&fl6), false); in nf_send_reset6()
314 fl6.flowi6_oif = l3mdev_master_ifindex(skb_dst(oldskb)->dev); in nf_send_reset6()
315 fl6.flowi6_mark = IP6_REPLY_MARK(net, oldskb->mark); in nf_send_reset6()
[all …]
/linux/net/dccp/
H A Dipv6.c203 struct flowi6 fl6; in dccp_v6_send_response() local
207 memset(&fl6, 0, sizeof(fl6)); in dccp_v6_send_response()
208 fl6.flowi6_proto = IPPROTO_DCCP; in dccp_v6_send_response()
209 fl6.daddr = ireq->ir_v6_rmt_addr; in dccp_v6_send_response()
210 fl6.saddr = ireq->ir_v6_loc_addr; in dccp_v6_send_response()
211 fl6.flowlabel = 0; in dccp_v6_send_response()
212 fl6.flowi6_oif = ireq->ir_iif; in dccp_v6_send_response()
213 fl6.fl6_dport = ireq->ir_rmt_port; in dccp_v6_send_response()
214 fl6 in dccp_v6_send_response()
265 struct flowi6 fl6; dccp_v6_ctl_send_reset() local
477 struct flowi6 fl6; dccp_v6_request_recv_sock() local
829 struct flowi6 fl6; dccp_v6_connect() local
[all...]
/linux/net/l2tp/
H A Dl2tp_ip6.c527 struct flowi6 fl6; in l2tp_ip6_sendmsg() local
545 memset(&fl6, 0, sizeof(fl6)); in l2tp_ip6_sendmsg()
547 fl6.flowi6_mark = READ_ONCE(sk->sk_mark); in l2tp_ip6_sendmsg()
548 fl6.flowi6_uid = sk->sk_uid; in l2tp_ip6_sendmsg()
561 fl6.flowlabel = lsa->l2tp_flowinfo & IPV6_FLOWINFO_MASK; in l2tp_ip6_sendmsg()
562 if (fl6.flowlabel & IPV6_FLOWLABEL_MASK) { in l2tp_ip6_sendmsg()
563 flowlabel = fl6_sock_lookup(sk, fl6.flowlabel); in l2tp_ip6_sendmsg()
579 fl6.flowi6_oif = lsa->l2tp_scope_id; in l2tp_ip6_sendmsg()
585 fl6.flowlabel = np->flow_label; in l2tp_ip6_sendmsg()
588 if (fl6.flowi6_oif == 0) in l2tp_ip6_sendmsg()
[all …]
/linux/drivers/net/ethernet/chelsio/libcxgb/
H A Dlibcxgb_cm.c129 struct flowi6 fl6; in cxgb_find_route6() local
131 memset(&fl6, 0, sizeof(fl6)); in cxgb_find_route6()
132 memcpy(&fl6.daddr, peer_ip, 16); in cxgb_find_route6()
133 memcpy(&fl6.saddr, local_ip, 16); in cxgb_find_route6()
134 if (ipv6_addr_type(&fl6.daddr) & IPV6_ADDR_LINKLOCAL) in cxgb_find_route6()
135 fl6.flowi6_oif = sin6_scope_id; in cxgb_find_route6()
136 dst = ip6_route_output(&init_net, NULL, &fl6); in cxgb_find_route6()
/linux/net/sctp/
H A Dipv6.c223 struct flowi6 *fl6 = &t->fl.u.ip6; in sctp_v6_xmit() local
230 skb->len, &fl6->saddr, &fl6->daddr); in sctp_v6_xmit()
236 IP6_ECN_flow_xmit(sk, fl6->flowlabel); in sctp_v6_xmit()
248 res = ip6_xmit(sk, skb, fl6, sk->sk_mark, in sctp_v6_xmit()
262 label = ip6_make_flowlabel(sock_net(sk), skb, fl6->flowlabel, true, fl6); in sctp_v6_xmit()
264 return udp_tunnel6_xmit_skb(dst, sk, skb, NULL, &fl6->saddr, in sctp_v6_xmit()
265 &fl6->daddr, tclass, ip6_dst_hoplimit(dst), in sctp_v6_xmit()
278 struct flowi6 *fl6 = &_fl.u.ip6; in sctp_v6_get_dst() local
289 fl6->daddr = daddr->v6.sin6_addr; in sctp_v6_get_dst()
290 fl6->fl6_dport = daddr->v6.sin6_port; in sctp_v6_get_dst()
[all …]
/linux/net/xfrm/
H A Dxfrm_nat_keepalive.c73 struct flowi6 fl6; in nat_keepalive_send_ipv6() local
84 memset(&fl6, 0, sizeof(fl6)); in nat_keepalive_send_ipv6()
85 fl6.flowi6_mark = skb->mark; in nat_keepalive_send_ipv6()
86 fl6.saddr = ka->saddr.in6; in nat_keepalive_send_ipv6()
87 fl6.daddr = ka->daddr.in6; in nat_keepalive_send_ipv6()
88 fl6.flowi6_proto = IPPROTO_UDP; in nat_keepalive_send_ipv6()
89 fl6.fl6_sport = ka->encap_sport; in nat_keepalive_send_ipv6()
90 fl6.fl6_dport = ka->encap_dport; in nat_keepalive_send_ipv6()
94 dst = ipv6_stub->ipv6_dst_lookup_flow(net, sk, &fl6, NULL); in nat_keepalive_send_ipv6()
99 err = ipv6_stub->ip6_xmit(sk, skb, &fl6, skb->mark, NULL, 0, 0); in nat_keepalive_send_ipv6()
/linux/include/net/
H A Dip6_fib.h435 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
442 int fib6_lookup(struct net *net, int oif, struct flowi6 *fl6,
447 int oif, struct flowi6 *fl6, struct fib6_result *res,
451 struct flowi6 *fl6, int oif, bool have_oif_match,
591 struct flowi6 *fl6,
596 struct flowi6 *fl6,
601 struct flowi6 *fl6,
606 struct flowi6 *fl6,
612 struct flowi6 *fl6, in pol_lookup_func() argument
621 net, table, fl6, skb, flags); in pol_lookup_func()
[all …]
/linux/net/ipv6/ila/
H A Dila_lwt.c66 struct flowi6 fl6; in ila_output()
72 memset(&fl6, 0, sizeof(fl6)); in ila_output()
73 fl6.flowi6_oif = orig_dst->dev->ifindex; in ila_output()
74 fl6.flowi6_iif = LOOPBACK_IFINDEX; in ila_output()
75 fl6.daddr = *rt6_nexthop(dst_rt6_info(orig_dst), in ila_output()
78 dst = ip6_route_output(net, NULL, &fl6); in ila_output()
85 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); in ila_output()
93 dst_cache_set_ip6(&ilwt->dst_cache, dst, &fl6.saddr); in ila_output()
64 struct flowi6 fl6; ila_output() local

1234