/net/ipv6/ |
D | ip6_flowlabel.c | 67 struct ip6_flowlabel *fl; in __fl_lookup() local 69 for (fl=fl_ht[FL_HASH(label)]; fl; fl = fl->next) { in __fl_lookup() 70 if (fl->label == label && fl->fl_net == net) in __fl_lookup() 71 return fl; in __fl_lookup() 78 struct ip6_flowlabel *fl; in fl_lookup() local 81 fl = __fl_lookup(net, label); in fl_lookup() 82 if (fl) in fl_lookup() 83 atomic_inc(&fl->users); in fl_lookup() 85 return fl; in fl_lookup() 89 static void fl_free(struct ip6_flowlabel *fl) in fl_free() argument [all …]
|
D | icmp.c | 165 struct flowi *fl) in icmpv6_xrlim_allow() argument 184 dst = ip6_route_output(net, sk, fl); in icmpv6_xrlim_allow() 222 static int icmpv6_push_pending_frames(struct sock *sk, struct flowi *fl, struct icmp6hdr *thdr, int… in icmpv6_push_pending_frames() argument 238 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl->fl6_src, in icmpv6_push_pending_frames() 239 &fl->fl6_dst, in icmpv6_push_pending_frames() 240 len, fl->proto, in icmpv6_push_pending_frames() 251 icmp6h->icmp6_cksum = csum_ipv6_magic(&fl->fl6_src, in icmpv6_push_pending_frames() 252 &fl->fl6_dst, in icmpv6_push_pending_frames() 253 len, fl->proto, in icmpv6_push_pending_frames() 320 struct flowi fl; in icmpv6_send() local [all …]
|
D | xfrm6_policy.c | 34 struct flowi fl = {}; in xfrm6_dst_lookup() local 38 memcpy(&fl.fl6_dst, daddr, sizeof(fl.fl6_dst)); in xfrm6_dst_lookup() 40 memcpy(&fl.fl6_src, saddr, sizeof(fl.fl6_src)); in xfrm6_dst_lookup() 42 dst = ip6_route_output(net, NULL, &fl); in xfrm6_dst_lookup() 72 __xfrm6_find_bundle(struct flowi *fl, struct xfrm_policy *policy) in __xfrm6_find_bundle() argument 83 &fl->fl6_dst, in __xfrm6_find_bundle() 86 &fl->fl6_src, in __xfrm6_find_bundle() 90 xfrm_bundle_ok(policy, xdst, fl, AF_INET6, in __xfrm6_find_bundle() 101 static int xfrm6_get_tos(struct flowi *fl) in xfrm6_get_tos() argument 147 _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse) in _decode_session6() argument [all …]
|
D | inet6_connection_sock.c | 186 struct flowi fl; in inet6_csk_xmit() local 190 memset(&fl, 0, sizeof(fl)); in inet6_csk_xmit() 191 fl.proto = sk->sk_protocol; in inet6_csk_xmit() 192 ipv6_addr_copy(&fl.fl6_dst, &np->daddr); in inet6_csk_xmit() 193 ipv6_addr_copy(&fl.fl6_src, &np->saddr); in inet6_csk_xmit() 194 fl.fl6_flowlabel = np->flow_label; in inet6_csk_xmit() 195 IP6_ECN_flow_xmit(sk, fl.fl6_flowlabel); in inet6_csk_xmit() 196 fl.oif = sk->sk_bound_dev_if; in inet6_csk_xmit() 197 fl.fl_ip_sport = inet->sport; in inet6_csk_xmit() 198 fl.fl_ip_dport = inet->dport; in inet6_csk_xmit() [all …]
|
D | datagram.c | 42 struct flowi fl; in ip6_datagram_connect() local 60 memset(&fl, 0, sizeof(fl)); in ip6_datagram_connect() 62 fl.fl6_flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; in ip6_datagram_connect() 63 if (fl.fl6_flowlabel&IPV6_FLOWLABEL_MASK) { in ip6_datagram_connect() 64 flowlabel = fl6_sock_lookup(sk, fl.fl6_flowlabel); in ip6_datagram_connect() 137 np->flow_label = fl.fl6_flowlabel; in ip6_datagram_connect() 146 fl.proto = sk->sk_protocol; in ip6_datagram_connect() 147 ipv6_addr_copy(&fl.fl6_dst, &np->daddr); in ip6_datagram_connect() 148 ipv6_addr_copy(&fl.fl6_src, &np->saddr); in ip6_datagram_connect() 149 fl.oif = sk->sk_bound_dev_if; in ip6_datagram_connect() [all …]
|
D | udp.c | 620 struct flowi *fl = &inet->cork.fl; in udp_v6_push_pending_frames() local 633 uh->source = fl->fl_ip_sport; in udp_v6_push_pending_frames() 634 uh->dest = fl->fl_ip_dport; in udp_v6_push_pending_frames() 644 uh->check = csum_ipv6_magic(&fl->fl6_src, &fl->fl6_dst, in udp_v6_push_pending_frames() 645 up->len, fl->proto, csum ); in udp_v6_push_pending_frames() 670 struct flowi fl; in udpv6_sendmsg() local 752 memset(&fl, 0, sizeof(fl)); in udpv6_sendmsg() 758 fl.fl_ip_dport = sin6->sin6_port; in udpv6_sendmsg() 762 fl.fl6_flowlabel = sin6->sin6_flowinfo&IPV6_FLOWINFO_MASK; in udpv6_sendmsg() 763 if (fl.fl6_flowlabel&IPV6_FLOWLABEL_MASK) { in udpv6_sendmsg() [all …]
|
D | tcp_ipv6.c | 129 struct flowi fl; in tcp_v6_connect() local 140 memset(&fl, 0, sizeof(fl)); in tcp_v6_connect() 143 fl.fl6_flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK; in tcp_v6_connect() 144 IP6_ECN_flow_init(fl.fl6_flowlabel); in tcp_v6_connect() 145 if (fl.fl6_flowlabel&IPV6_FLOWLABEL_MASK) { in tcp_v6_connect() 147 flowlabel = fl6_sock_lookup(sk, fl.fl6_flowlabel); in tcp_v6_connect() 193 np->flow_label = fl.fl6_flowlabel; in tcp_v6_connect() 241 fl.proto = IPPROTO_TCP; in tcp_v6_connect() 242 ipv6_addr_copy(&fl.fl6_dst, &np->daddr); in tcp_v6_connect() 243 ipv6_addr_copy(&fl.fl6_src, in tcp_v6_connect() [all …]
|
D | raw.c | 525 static int rawv6_push_pending_frames(struct sock *sk, struct flowi *fl, in rawv6_push_pending_frames() argument 587 csum = csum_ipv6_magic(&fl->fl6_src, in rawv6_push_pending_frames() 588 &fl->fl6_dst, in rawv6_push_pending_frames() 589 total_len, fl->proto, tmp_csum); in rawv6_push_pending_frames() 591 if (csum == 0 && fl->proto == IPPROTO_UDP) in rawv6_push_pending_frames() 604 struct flowi *fl, struct rt6_info *rt, in rawv6_send_hdrinc() argument 613 ipv6_local_error(sk, EMSGSIZE, fl, rt->u.dst.dev->mtu); in rawv6_send_hdrinc() 659 static int rawv6_probe_proto_opt(struct flowi *fl, struct msghdr *msg) in rawv6_probe_proto_opt() argument 676 switch (fl->proto) { in rawv6_probe_proto_opt() 691 if (get_user(fl->fl_icmp_type, type) || in rawv6_probe_proto_opt() [all …]
|
D | syncookies.c | 242 struct flowi fl; in cookie_v6_check() local 243 memset(&fl, 0, sizeof(fl)); in cookie_v6_check() 244 fl.proto = IPPROTO_TCP; in cookie_v6_check() 245 ipv6_addr_copy(&fl.fl6_dst, &ireq6->rmt_addr); in cookie_v6_check() 248 ipv6_addr_copy(&final, &fl.fl6_dst); in cookie_v6_check() 249 ipv6_addr_copy(&fl.fl6_dst, rt0->addr); in cookie_v6_check() 252 ipv6_addr_copy(&fl.fl6_src, &ireq6->loc_addr); in cookie_v6_check() 253 fl.oif = sk->sk_bound_dev_if; in cookie_v6_check() 254 fl.fl_ip_dport = inet_rsk(req)->rmt_port; in cookie_v6_check() 255 fl.fl_ip_sport = inet_sk(sk)->sport; in cookie_v6_check() [all …]
|
D | ip6_tunnel.c | 500 struct flowi fl; in ip4ip6_err() local 542 memset(&fl, 0, sizeof(fl)); in ip4ip6_err() 543 fl.fl4_dst = eiph->saddr; in ip4ip6_err() 544 fl.fl4_tos = RT_TOS(eiph->tos); in ip4ip6_err() 545 fl.proto = IPPROTO_IPIP; in ip4ip6_err() 546 if (ip_route_output_key(dev_net(skb->dev), &rt, &fl)) in ip4ip6_err() 555 fl.fl4_dst = eiph->daddr; in ip4ip6_err() 556 fl.fl4_src = eiph->saddr; in ip4ip6_err() 557 fl.fl4_tos = eiph->tos; in ip4ip6_err() 558 if (ip_route_output_key(dev_net(skb->dev), &rt, &fl) || in ip4ip6_err() [all …]
|
D | xfrm6_state.c | 23 __xfrm6_init_tempsel(struct xfrm_state *x, struct flowi *fl, in __xfrm6_init_tempsel() argument 29 ipv6_addr_copy((struct in6_addr *)&x->sel.daddr, &fl->fl6_dst); in __xfrm6_init_tempsel() 30 ipv6_addr_copy((struct in6_addr *)&x->sel.saddr, &fl->fl6_src); in __xfrm6_init_tempsel() 31 x->sel.dport = xfrm_flowi_dport(fl); in __xfrm6_init_tempsel() 33 x->sel.sport = xfrm_flowi_sport(fl); in __xfrm6_init_tempsel() 38 x->sel.proto = fl->proto; in __xfrm6_init_tempsel() 39 x->sel.ifindex = fl->oif; in __xfrm6_init_tempsel()
|
D | ip6_output.c | 198 int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, in ip6_xmit() argument 203 struct in6_addr *first_hop = &fl->fl6_dst; in ip6_xmit() 206 u8 proto = fl->proto; in ip6_xmit() 264 *(__be32 *)hdr = htonl(0x60000000 | (tclass << 20)) | fl->fl6_flowlabel; in ip6_xmit() 270 ipv6_addr_copy(&hdr->saddr, &fl->fl6_src); in ip6_xmit() 900 struct flowi *fl) in ip6_sk_dst_check() argument 925 if (ip6_rt_check(&rt->rt6i_dst, &fl->fl6_dst, np->daddr_cache) || in ip6_sk_dst_check() 927 ip6_rt_check(&rt->rt6i_src, &fl->fl6_src, np->saddr_cache) || in ip6_sk_dst_check() 929 (fl->oif && fl->oif != dst->dev->ifindex)) { in ip6_sk_dst_check() 939 struct dst_entry **dst, struct flowi *fl) in ip6_dst_lookup_tail() argument [all …]
|
D | netfilter.c | 18 struct flowi fl = { in ip6_route_me_harder() local 27 dst = ip6_route_output(net, skb->sk, &fl); in ip6_route_me_harder() 31 xfrm_decode_session(skb, &fl, AF_INET6) == 0) in ip6_route_me_harder() 32 if (xfrm_lookup(net, &skb->dst, &fl, skb->sk, 0)) in ip6_route_me_harder() 91 static int nf_ip6_route(struct dst_entry **dst, struct flowi *fl) in nf_ip6_route() argument 93 *dst = ip6_route_output(&init_net, NULL, fl); in nf_ip6_route()
|
D | route.c | 543 struct flowi *fl, int flags) in ip6_pol_route_lookup() argument 549 fn = fib6_lookup(&table->tb6_root, &fl->fl6_dst, &fl->fl6_src); in ip6_pol_route_lookup() 552 rt = rt6_device_match(net, rt, &fl->fl6_src, fl->oif, flags); in ip6_pol_route_lookup() 553 BACKTRACK(net, &fl->fl6_src); in ip6_pol_route_lookup() 564 struct flowi fl = { in rt6_lookup() local 576 memcpy(&fl.fl6_src, saddr, sizeof(*saddr)); in rt6_lookup() 580 dst = fib6_rule_lookup(net, &fl, flags, ip6_pol_route_lookup); in rt6_lookup() 701 struct flowi *fl, int flags) in ip6_pol_route() argument 716 fn = fib6_lookup(&table->tb6_root, &fl->fl6_dst, &fl->fl6_src); in ip6_pol_route() 721 BACKTRACK(net, &fl->fl6_src); in ip6_pol_route() [all …]
|
/net/ipv4/ |
D | xfrm4_policy.c | 25 struct flowi fl = { in xfrm4_dst_lookup() local 38 fl.fl4_src = saddr->a4; in xfrm4_dst_lookup() 40 err = __ip_route_output_key(net, &rt, &fl); in xfrm4_dst_lookup() 64 __xfrm4_find_bundle(struct flowi *fl, struct xfrm_policy *policy) in __xfrm4_find_bundle() argument 71 if (xdst->u.rt.fl.oif == fl->oif && /*XXX*/ in __xfrm4_find_bundle() 72 xdst->u.rt.fl.fl4_dst == fl->fl4_dst && in __xfrm4_find_bundle() 73 xdst->u.rt.fl.fl4_src == fl->fl4_src && in __xfrm4_find_bundle() 74 xdst->u.rt.fl.fl4_tos == fl->fl4_tos && in __xfrm4_find_bundle() 75 xfrm_bundle_ok(policy, xdst, fl, AF_INET, 0)) { in __xfrm4_find_bundle() 84 static int xfrm4_get_tos(struct flowi *fl) in xfrm4_get_tos() argument [all …]
|
D | netfilter.c | 18 struct flowi fl = {}; in ip_route_me_harder() local 33 fl.nl_u.ip4_u.daddr = iph->daddr; in ip_route_me_harder() 35 fl.nl_u.ip4_u.saddr = iph->saddr; in ip_route_me_harder() 36 fl.nl_u.ip4_u.tos = RT_TOS(iph->tos); in ip_route_me_harder() 37 fl.oif = skb->sk ? skb->sk->sk_bound_dev_if : 0; in ip_route_me_harder() 38 fl.mark = skb->mark; in ip_route_me_harder() 39 fl.flags = skb->sk ? inet_sk_flowi_flags(skb->sk) : 0; in ip_route_me_harder() 40 if (ip_route_output_key(net, &rt, &fl) != 0) in ip_route_me_harder() 49 fl.nl_u.ip4_u.daddr = iph->saddr; in ip_route_me_harder() 50 if (ip_route_output_key(net, &rt, &fl) != 0) in ip_route_me_harder() [all …]
|
D | route.c | 392 r->fl.fl4_tos, in rt_cache_seq_show() 627 rth->fl.iif && rth->u.dst.rt_next; in rt_fast_clean() 672 if (!rt->fl.iif || in rt_score() 835 !compare_hash_inputs(&(*rthp)->fl, in rt_check_expire() 836 &rth->fl)) in rt_check_expire() 844 !compare_hash_inputs(&(*rthp)->fl, in rt_check_expire() 845 &rth->fl)) in rt_check_expire() 1100 if (compare_keys(&rth->fl, &rt->fl) && compare_netns(rth, rt)) { in rt_intern_hash() 1146 if (*rthp && compare_hash_inputs(&(*rthp)->fl, &rt->fl)) in rt_intern_hash() 1176 if (rt->rt_type == RTN_UNICAST || rt->fl.iif == 0) { in rt_intern_hash() [all …]
|
D | xfrm4_state.c | 24 __xfrm4_init_tempsel(struct xfrm_state *x, struct flowi *fl, in __xfrm4_init_tempsel() argument 28 x->sel.daddr.a4 = fl->fl4_dst; in __xfrm4_init_tempsel() 29 x->sel.saddr.a4 = fl->fl4_src; in __xfrm4_init_tempsel() 30 x->sel.dport = xfrm_flowi_dport(fl); in __xfrm4_init_tempsel() 32 x->sel.sport = xfrm_flowi_sport(fl); in __xfrm4_init_tempsel() 37 x->sel.proto = fl->proto; in __xfrm4_init_tempsel() 38 x->sel.ifindex = fl->oif; in __xfrm4_init_tempsel()
|
D | icmp.c | 384 struct flowi fl = { .nl_u = { .ip4_u = in icmp_reply() local 389 security_skb_classify_flow(skb, &fl); in icmp_reply() 390 if (ip_route_output_key(net, &rt, &fl)) in icmp_reply() 503 if (rt->fl.iif && in icmp_send() 505 dev = dev_get_by_index(net, rt->fl.iif); in icmp_send() 537 struct flowi fl = { in icmp_send() local 558 security_skb_classify_flow(skb_in, &fl); in icmp_send() 559 if (__ip_route_output_key(net, &rt, &fl)) in icmp_send() 565 err = xfrm_lookup(net, (struct dst_entry **)&rt, &fl, NULL, 0); in icmp_send() 578 if (xfrm_decode_session_reverse(skb_in, &fl, AF_INET)) in icmp_send() [all …]
|
/net/dccp/ |
D | ipv6.c | 150 struct flowi fl; in dccp_v6_err() local 156 memset(&fl, 0, sizeof(fl)); in dccp_v6_err() 157 fl.proto = IPPROTO_DCCP; in dccp_v6_err() 158 ipv6_addr_copy(&fl.fl6_dst, &np->daddr); in dccp_v6_err() 159 ipv6_addr_copy(&fl.fl6_src, &np->saddr); in dccp_v6_err() 160 fl.oif = sk->sk_bound_dev_if; in dccp_v6_err() 161 fl.fl_ip_dport = inet->dport; in dccp_v6_err() 162 fl.fl_ip_sport = inet->sport; in dccp_v6_err() 163 security_sk_classify_flow(sk, &fl); in dccp_v6_err() 165 err = ip6_dst_lookup(sk, &dst, &fl); in dccp_v6_err() [all …]
|
/net/decnet/ |
D | dn_route.c | 288 if (compare_keys(&rth->fl, &rt->fl)) { in dn_insert_route() 868 struct flowi fl = { .nl_u = { .dn_u = in dn_route_output_slow() local 938 if (!fl.fld_dst) { in dn_route_output_slow() 939 fl.fld_dst = fl.fld_src; in dn_route_output_slow() 946 if (!fl.fld_dst) { in dn_route_output_slow() 947 fl.fld_dst = in dn_route_output_slow() 948 fl.fld_src = dnet_select_source(dev_out, 0, in dn_route_output_slow() 950 if (!fl.fld_dst) in dn_route_output_slow() 953 fl.oif = init_net.loopback_dev->ifindex; in dn_route_output_slow() 962 le16_to_cpu(fl.fld_dst), le16_to_cpu(fl.fld_src), in dn_route_output_slow() [all …]
|
/net/xfrm/ |
D | xfrm_policy.c | 58 __xfrm4_selector_match(struct xfrm_selector *sel, struct flowi *fl) in __xfrm4_selector_match() argument 60 return addr_match(&fl->fl4_dst, &sel->daddr, sel->prefixlen_d) && in __xfrm4_selector_match() 61 addr_match(&fl->fl4_src, &sel->saddr, sel->prefixlen_s) && in __xfrm4_selector_match() 62 !((xfrm_flowi_dport(fl) ^ sel->dport) & sel->dport_mask) && in __xfrm4_selector_match() 63 !((xfrm_flowi_sport(fl) ^ sel->sport) & sel->sport_mask) && in __xfrm4_selector_match() 64 (fl->proto == sel->proto || !sel->proto) && in __xfrm4_selector_match() 65 (fl->oif == sel->ifindex || !sel->ifindex); in __xfrm4_selector_match() 69 __xfrm6_selector_match(struct xfrm_selector *sel, struct flowi *fl) in __xfrm6_selector_match() argument 71 return addr_match(&fl->fl6_dst, &sel->daddr, sel->prefixlen_d) && in __xfrm6_selector_match() 72 addr_match(&fl->fl6_src, &sel->saddr, sel->prefixlen_s) && in __xfrm6_selector_match() [all …]
|
/net/ipv6/netfilter/ |
D | ip6t_REJECT.c | 48 struct flowi fl; in send_reset() local 90 memset(&fl, 0, sizeof(fl)); in send_reset() 91 fl.proto = IPPROTO_TCP; in send_reset() 92 ipv6_addr_copy(&fl.fl6_src, &oip6h->daddr); in send_reset() 93 ipv6_addr_copy(&fl.fl6_dst, &oip6h->saddr); in send_reset() 94 fl.fl_ip_sport = otcph.dest; in send_reset() 95 fl.fl_ip_dport = otcph.source; in send_reset() 96 security_skb_classify_flow(oldskb, &fl); in send_reset() 97 dst = ip6_route_output(net, NULL, &fl); in send_reset() 100 if (dst->error || xfrm_lookup(net, &dst, &fl, NULL, 0)) in send_reset()
|
/net/rxrpc/ |
D | ar-peer.c | 38 struct flowi fl; in rxrpc_assess_MTU_size() local 43 memset(&fl, 0, sizeof(fl)); in rxrpc_assess_MTU_size() 47 fl.oif = 0; in rxrpc_assess_MTU_size() 48 fl.proto = IPPROTO_UDP, in rxrpc_assess_MTU_size() 49 fl.nl_u.ip4_u.saddr = 0; in rxrpc_assess_MTU_size() 50 fl.nl_u.ip4_u.daddr = peer->srx.transport.sin.sin_addr.s_addr; in rxrpc_assess_MTU_size() 51 fl.nl_u.ip4_u.tos = 0; in rxrpc_assess_MTU_size() 53 fl.uli_u.ports.sport = htons(7001); in rxrpc_assess_MTU_size() 54 fl.uli_u.ports.dport = htons(7000); in rxrpc_assess_MTU_size() 60 ret = ip_route_output_key(&init_net, &rt, &fl); in rxrpc_assess_MTU_size()
|
/net/sctp/ |
D | ipv6.c | 202 struct flowi fl; in sctp_v6_xmit() local 204 memset(&fl, 0, sizeof(fl)); in sctp_v6_xmit() 206 fl.proto = sk->sk_protocol; in sctp_v6_xmit() 211 ipv6_addr_copy(&fl.fl6_dst, &transport->ipaddr.v6.sin6_addr); in sctp_v6_xmit() 212 ipv6_addr_copy(&fl.fl6_src, &transport->saddr.v6.sin6_addr); in sctp_v6_xmit() 214 fl.fl6_flowlabel = np->flow_label; in sctp_v6_xmit() 215 IP6_ECN_flow_xmit(sk, fl.fl6_flowlabel); in sctp_v6_xmit() 216 if (ipv6_addr_type(&fl.fl6_src) & IPV6_ADDR_LINKLOCAL) in sctp_v6_xmit() 217 fl.oif = transport->saddr.v6.sin6_scope_id; in sctp_v6_xmit() 219 fl.oif = sk->sk_bound_dev_if; in sctp_v6_xmit() [all …]
|