Home
last modified time | relevance | path

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

123

/linux/net/ipv6/
H A Dicmp.c196 struct flowi6 *fl6, bool apply_ratelimit) 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); 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 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 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_uid(sk); in ip6_datagram_flow_key_init()
[all …]
H A Dsyncookies.c235 struct flowi6 fl6; in cookie_v6_check() local
236 memset(&fl6, 0, sizeof(fl6)); in cookie_v6_check()
237 fl6.flowi6_proto = IPPROTO_TCP; in cookie_v6_check()
238 fl6.daddr = ireq->ir_v6_rmt_addr; in cookie_v6_check()
239 final_p = fl6_update_dst(&fl6, rcu_dereference(np->opt), &final); in cookie_v6_check()
240 fl6.saddr = ireq->ir_v6_loc_addr; in cookie_v6_check()
241 fl6.flowi6_oif = ireq->ir_iif; in cookie_v6_check()
242 fl6.flowi6_mark = ireq->ir_mark; in cookie_v6_check()
243 fl6.fl6_dport = ireq->ir_rmt_port; in cookie_v6_check()
244 fl6.fl6_sport = inet_sk(sk)->inet_sport; in cookie_v6_check()
[all …]
H A Dxfrm6_policy.c28 struct flowi6 fl6; in xfrm6_dst_lookup() local
32 memset(&fl6, 0, sizeof(fl6)); in xfrm6_dst_lookup()
33 fl6.flowi6_l3mdev = l3mdev_master_ifindex_by_index(params->net, in xfrm6_dst_lookup()
35 fl6.flowi6_mark = params->mark; in xfrm6_dst_lookup()
36 memcpy(&fl6.daddr, params->daddr, sizeof(fl6.daddr)); in xfrm6_dst_lookup()
38 memcpy(&fl6.saddr, params->saddr, sizeof(fl6.saddr)); in xfrm6_dst_lookup()
40 fl6.flowi4_proto = params->ipproto; in xfrm6_dst_lookup()
41 fl6.uli = params->uli; in xfrm6_dst_lookup()
43 dst = ip6_route_output(params->net, NULL, &fl6); in xfrm6_dst_lookup()
H A Dip6_gre.c609 struct flowi6 *fl6, __u8 *dsfield, in prepare_ip6gre_xmit_ipv4() argument
618 memcpy(fl6, &t->fl.u.ip6, sizeof(*fl6)); in prepare_ip6gre_xmit_ipv4()
626 fl6->flowi6_mark = skb->mark; in prepare_ip6gre_xmit_ipv4()
628 fl6->flowi6_mark = t->parms.fwmark; in prepare_ip6gre_xmit_ipv4()
630 fl6->flowi6_uid = sock_net_uid(dev_net(dev), NULL); in prepare_ip6gre_xmit_ipv4()
635 struct flowi6 *fl6, __u8 *dsfield, in prepare_ip6gre_xmit_ipv6() argument
660 memcpy(fl6, &t->fl.u.ip6, sizeof(*fl6)); in prepare_ip6gre_xmit_ipv6()
668 fl6->flowlabel |= ip6_flowlabel(ipv6h); in prepare_ip6gre_xmit_ipv6()
671 fl6->flowi6_mark = skb->mark; in prepare_ip6gre_xmit_ipv6()
673 fl6->flowi6_mark = t->parms.fwmark; in prepare_ip6gre_xmit_ipv6()
[all …]
H A Dip6_output.c289 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, in ip6_xmit() argument
293 struct in6_addr *first_hop = &fl6->daddr; in ip6_xmit()
300 u8 proto = fl6->flowi6_proto; in ip6_xmit()
331 &fl6->saddr); in ip6_xmit()
349 ip6_flow_hdr(hdr, tclass, ip6_make_flowlabel(net, skb, fl6->flowlabel, in ip6_xmit()
350 ip6_autoflowlabel(net, sk), fl6)); in ip6_xmit()
356 hdr->saddr = fl6->saddr; in ip6_xmit()
390 ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); in ip6_xmit()
1089 const struct flowi6 *fl6) in ip6_sk_dst_check() argument
1120 if (ip6_rt_check(&rt->rt6i_dst, &fl6->daddr, in ip6_sk_dst_check()
[all …]
H A Dtcp_ipv6.c146 struct flowi6 *fl6; in tcp_v6_connect() local
156 fl6 = &inet_sk(sk)->cork.fl.u.ip6; in tcp_v6_connect()
157 memset(fl6, 0, sizeof(*fl6)); in tcp_v6_connect()
160 fl6->flowlabel = usin->sin6_flowinfo & IPV6_FLOWINFO_MASK; in tcp_v6_connect()
161 IP6_ECN_flow_init(fl6->flowlabel); in tcp_v6_connect()
162 if (fl6->flowlabel & IPV6_FLOWLABEL_MASK) { in tcp_v6_connect()
164 flowlabel = fl6_sock_lookup(sk, fl6->flowlabel); in tcp_v6_connect()
213 np->flow_label = fl6->flowlabel; in tcp_v6_connect()
261 fl6->flowi6_proto = IPPROTO_TCP; in tcp_v6_connect()
262 fl6->daddr = sk->sk_v6_daddr; in tcp_v6_connect()
[all …]
H A Droute.c439 struct flowi6 *fl6, int oif, bool have_oif_match, in fib6_select_path() argument
458 if (!fl6->mp_hash && in fib6_select_path()
460 fl6->mp_hash = rt6_multipath_hash(net, fl6, skb, NULL); in fib6_select_path()
463 nexthop_path_fib6_result(res, fl6->mp_hash); in fib6_select_path()
471 hash = fl6->mp_hash; in fib6_select_path()
1254 struct flowi6 *fl6, in ip6_pol_route_lookup() argument
1263 fn = fib6_node_lookup(&table->tb6_root, &fl6->daddr, &fl6->saddr); in ip6_pol_route_lookup()
1269 rt6_device_match(net, &res, &fl6->saddr, fl6->flowi6_oif, in ip6_pol_route_lookup()
1273 fn = fib6_backtrack(fn, &fl6->saddr); in ip6_pol_route_lookup()
1284 fib6_select_path(net, &res, fl6, fl6->flowi6_oif, in ip6_pol_route_lookup()
[all …]
H A Drpl_iptunnel.c223 struct flowi6 fl6; in rpl_output() local
225 memset(&fl6, 0, sizeof(fl6)); in rpl_output()
226 fl6.daddr = hdr->daddr; in rpl_output()
227 fl6.saddr = hdr->saddr; in rpl_output()
228 fl6.flowlabel = ip6_flowinfo(hdr); in rpl_output()
229 fl6.flowi6_mark = skb->mark; in rpl_output()
230 fl6.flowi6_proto = hdr->nexthdr; in rpl_output()
232 dst = ip6_route_output(net, NULL, &fl6); in rpl_output()
241 dst_cache_set_ip6(&rlwt->cache, dst, &fl6.saddr); in rpl_output()
H A Dip6_tunnel.c1098 struct flowi6 *fl6, int encap_limit, __u32 *pmtu, in ip6_tnl_xmit() argument
1146 memcpy(&fl6->daddr, addr6, sizeof(fl6->daddr)); in ip6_tnl_xmit()
1155 memcpy(&fl6->daddr, &rt->rt_gw6, sizeof(fl6->daddr)); in ip6_tnl_xmit()
1169 if (!ip6_tnl_xmit_ctl(t, &fl6->saddr, &fl6->daddr)) in ip6_tnl_xmit()
1175 fl6->flowlabel = ip6_make_flowinfo(dsfield, fl6->flowlabel); in ip6_tnl_xmit()
1177 dst = ip6_route_output(net, NULL, fl6); in ip6_tnl_xmit()
1181 dst = xfrm_lookup(net, dst, flowi6_to_flowi(fl6), NULL, 0); in ip6_tnl_xmit()
1187 if (t->parms.collect_md && ipv6_addr_any(&fl6->saddr) && in ip6_tnl_xmit()
1189 &fl6->daddr, 0, &fl6->saddr)) in ip6_tnl_xmit()
1254 dst_cache_set_ip6(&t->dst_cache, ndst, &fl6->saddr); in ip6_tnl_xmit()
[all …]
H A Dioam6_iptunnel.c408 struct flowi6 fl6; in ioam6_output() local
410 memset(&fl6, 0, sizeof(fl6)); in ioam6_output()
411 fl6.daddr = hdr->daddr; in ioam6_output()
412 fl6.saddr = hdr->saddr; in ioam6_output()
413 fl6.flowlabel = ip6_flowinfo(hdr); in ioam6_output()
414 fl6.flowi6_mark = skb->mark; in ioam6_output()
415 fl6.flowi6_proto = hdr->nexthdr; in ioam6_output()
417 dst = ip6_route_output(net, NULL, &fl6); in ioam6_output()
432 &ilwt->null_dst, &fl6.saddr); in ioam6_output()
434 dst_cache_set_ip6(&ilwt->cache, dst, &fl6.saddr); in ioam6_output()
H A Daf_inet6.c807 struct flowi6 *fl6; in inet6_sk_rebuild_header() local
813 fl6 = &inet->cork.fl.u.ip6; in inet6_sk_rebuild_header()
814 memset(fl6, 0, sizeof(*fl6)); in inet6_sk_rebuild_header()
815 fl6->flowi6_proto = sk->sk_protocol; in inet6_sk_rebuild_header()
816 fl6->daddr = sk->sk_v6_daddr; in inet6_sk_rebuild_header()
817 fl6->saddr = np->saddr; in inet6_sk_rebuild_header()
818 fl6->flowlabel = np->flow_label; in inet6_sk_rebuild_header()
819 fl6->flowi6_oif = sk->sk_bound_dev_if; in inet6_sk_rebuild_header()
820 fl6->flowi6_mark = sk->sk_mark; in inet6_sk_rebuild_header()
821 fl6->fl6_dport = inet->inet_dport; in inet6_sk_rebuild_header()
[all …]
H A Dmip6.c201 const struct flowi6 *fl6 = &fl->u.ip6; in mip6_destopt_reject() local
208 if (unlikely(fl6->flowi6_proto == IPPROTO_MH && in mip6_destopt_reject()
209 fl6->fl6_mh_type <= IP6_MH_TYPE_MAX)) in mip6_destopt_reject()
234 sel.proto = fl6->flowi6_proto; in mip6_destopt_reject()
235 sel.dport = xfrm_flowi_dport(fl, &fl6->uli); in mip6_destopt_reject()
238 sel.sport = xfrm_flowi_sport(fl, &fl6->uli); in mip6_destopt_reject()
241 sel.ifindex = fl6->flowi6_oif; in mip6_destopt_reject()
/linux/net/dccp/
H A Dipv6.c
/linux/net/ipv6/netfilter/
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 Dip6t_rpfilter.c38 struct flowi6 fl6 = { in rpfilter_lookup_reverse6() local
49 memcpy(&fl6.saddr, &iph->daddr, sizeof(struct in6_addr)); in rpfilter_lookup_reverse6()
55 fl6.flowi6_mark = flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; in rpfilter_lookup_reverse6()
59 fl6.flowi6_oif = dev->ifindex; in rpfilter_lookup_reverse6()
61 fl6.flowi6_oif = dev->ifindex; in rpfilter_lookup_reverse6()
63 rt = (void *)ip6_route_lookup(net, &fl6, skb, lookup_flags); in rpfilter_lookup_reverse6()
/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()
265 udp_tunnel6_xmit_skb(dst, sk, skb, NULL, &fl6->saddr, &fl6->daddr, in sctp_v6_xmit()
281 struct flowi6 *fl6 in sctp_v6_get_dst()
279 struct flowi6 *fl6 = &_fl.u.ip6; sctp_v6_get_dst() local
446 struct flowi6 *fl6 = &fl->u.ip6; sctp_v6_get_saddr() local
[all...]
/linux/net/xfrm/
H A Dxfrm_nat_keepalive.c79 struct flowi6 fl6; in nat_keepalive_send_ipv6() local
90 memset(&fl6, 0, sizeof(fl6)); in nat_keepalive_send_ipv6()
91 fl6.flowi6_mark = skb->mark; in nat_keepalive_send_ipv6()
92 fl6.saddr = ka->saddr.in6; in nat_keepalive_send_ipv6()
93 fl6.daddr = ka->daddr.in6; in nat_keepalive_send_ipv6()
94 fl6.flowi6_proto = IPPROTO_UDP; in nat_keepalive_send_ipv6()
95 fl6.fl6_sport = ka->encap_sport; in nat_keepalive_send_ipv6()
96 fl6.fl6_dport = ka->encap_dport; in nat_keepalive_send_ipv6()
101 dst = ip6_dst_lookup_flow(net, sk, &fl6, NULL); in nat_keepalive_send_ipv6()
108 err = ip6_xmit(sk, skb, &fl6, skb->mark, NULL, 0, 0); in nat_keepalive_send_ipv6()
/linux/net/ipv6/ila/
H A Dila_lwt.c66 struct flowi6 fl6; in ila_output() local
72 memset(&fl6, 0, sizeof(fl6)); in ila_output()
73 fl6.flowi6_oif = dst_dev(orig_dst)->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()
94 dst_cache_set_ip6(&ilwt->dst_cache, dst, &fl6.saddr); in ila_output()
/linux/include/net/
H A Dip6_fib.h436 struct dst_entry *fib6_rule_lookup(struct net *net, struct flowi6 *fl6,
443 int fib6_lookup(struct net *net, int oif, struct flowi6 *fl6,
448 int oif, struct flowi6 *fl6, struct fib6_result *res,
452 struct flowi6 *fl6, int oif, bool have_oif_match,
642 struct flowi6 *fl6,
647 struct flowi6 *fl6,
652 struct flowi6 *fl6,
657 struct flowi6 *fl6,
663 struct flowi6 *fl6, in pol_lookup_func() argument
672 net, table, fl6, skb, flags); in pol_lookup_func()
[all …]
H A Dipv6.h428 void icmpv6_push_pending_frames(struct sock *sk, struct flowi6 *fl6,
828 static inline int ip6_sk_dst_hoplimit(struct ipv6_pinfo *np, struct flowi6 *fl6, in ip6_sk_dst_hoplimit() argument
833 if (ipv6_addr_is_multicast(&fl6->daddr)) in ip6_sk_dst_hoplimit()
879 struct flowi6 *fl6) in ip6_make_flowlabel() argument
897 hash = skb_get_hash_flowi6(skb, fl6); in ip6_make_flowlabel()
928 struct flowi6 *fl6) in ip6_make_flowlabel() argument
992 static inline __be32 flowi6_get_flowlabel(const struct flowi6 *fl6) in flowi6_get_flowlabel() argument
994 return fl6->flowlabel & IPV6_FLOWLABEL_MASK; in flowi6_get_flowlabel()
1015 int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
1024 struct ipcm6_cookie *ipc6, struct flowi6 *fl6,
[all …]
H A Dip6_tunnel.h72 u8 *protocol, struct flowi6 *fl6);
110 u8 *protocol, struct flowi6 *fl6) in ip6_tnl_encap() argument
124 ret = ops->build_header(skb, &t->encap, protocol, fl6); in ip6_tnl_encap()
146 struct flowi6 *fl6, int encap_limit, __u32 *pmtu, __u8 proto);
/linux/net/rxrpc/
H A Dpeer_object.c160 struct flowi6 *fl6 = &fl.u.ip6; in rxrpc_assess_MTU_size() local
186 fl6->flowi6_iif = LOOPBACK_IFINDEX; in rxrpc_assess_MTU_size()
187 fl6->flowi6_scope = RT_SCOPE_UNIVERSE; in rxrpc_assess_MTU_size()
188 fl6->flowi6_proto = IPPROTO_UDP; in rxrpc_assess_MTU_size()
189 memcpy(&fl6->daddr, &peer->srx.transport.sin6.sin6_addr, in rxrpc_assess_MTU_size()
191 fl6->fl6_dport = htons(7001); in rxrpc_assess_MTU_size()
192 fl6->fl6_sport = htons(7000); in rxrpc_assess_MTU_size()
193 dst = ip6_route_output(net, NULL, fl6); in rxrpc_assess_MTU_size()

123