On Tue, 16 Jul 2019 at 08:59, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > > + return -EINVAL; > > + > > + if (sk->sk_protocol != IPPROTO_TCP || sk->sk_state != TCP_LISTEN) > > + return -EINVAL; > > + > > + if (!sock_net(sk)->ipv4.sysctl_tcp_syncookies) > > + return -EINVAL; > > + > > + if (!th->syn || th->ack || th->fin || th->rst) > > + return -EINVAL; > > + > > + switch (sk->sk_family) { > > This is strange, because a dual stack listener will have sk->sk_family set to AF_INET6. > > What really matters here is if the packet is IPv4 or IPv6. > > So you need to look at iph->version instead. > > Then look if the socket family allows this packet to be processed > (For example AF_INET6 sockets might prevent IPv4 packets, see sk->sk_ipv6only ) Does this apply for (the existing) tcp_check_syn_cookie as well? -- Lorenz Bauer | Systems Engineer 6th Floor, County Hall/The Riverside Building, SE1 7PB, UK www.cloudflare.com