OSDN Git Service

sock_map: Update sock type checks for UDP
authorCong Wang <cong.wang@bytedance.com>
Wed, 31 Mar 2021 02:32:35 +0000 (19:32 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 1 Apr 2021 17:56:14 +0000 (10:56 -0700)
Now UDP supports sockmap and redirection, we can safely update
the sock type checks for it accordingly.

Signed-off-by: Cong Wang <cong.wang@bytedance.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20210331023237.41094-15-xiyou.wangcong@gmail.com
net/core/sock_map.c

index 2915c7c..3d190d2 100644 (file)
@@ -535,7 +535,10 @@ static bool sk_is_udp(const struct sock *sk)
 
 static bool sock_map_redirect_allowed(const struct sock *sk)
 {
-       return sk_is_tcp(sk) && sk->sk_state != TCP_LISTEN;
+       if (sk_is_tcp(sk))
+               return sk->sk_state != TCP_LISTEN;
+       else
+               return sk->sk_state == TCP_ESTABLISHED;
 }
 
 static bool sock_map_sk_is_suitable(const struct sock *sk)