diff options
author | 2024-01-15 12:55:12 -0800 | |
---|---|---|
committer | 2024-01-23 14:40:24 -0800 | |
commit | 695751e31a63efd2bbe6779873adf1e4deb00cd5 (patch) | |
tree | 41904868bb6f47e98aa75ab19e148d03c52514a2 /net/core/sock.c | |
parent | bpf: tcp: Handle BPF SYN Cookie in skb_steal_sock(). (diff) | |
download | wireguard-linux-695751e31a63efd2bbe6779873adf1e4deb00cd5.tar.xz wireguard-linux-695751e31a63efd2bbe6779873adf1e4deb00cd5.zip |
bpf: tcp: Handle BPF SYN Cookie in cookie_v[46]_check().
We will support arbitrary SYN Cookie with BPF in the following
patch.
If BPF prog validates ACK and kfunc allocates a reqsk, it will
be carried to cookie_[46]_check() as skb->sk. If skb->sk is not
NULL, we call cookie_bpf_check().
Then, we clear skb->sk and skb->destructor, which are needed not
to hold refcnt for reqsk and the listener. See the following patch
for details.
After that, we finish initialisation for the remaining fields with
cookie_tcp_reqsk_init().
Note that the server side WScale is set only for non-BPF SYN Cookie.
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240115205514.68364-5-kuniyu@amazon.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'net/core/sock.c')
0 files changed, 0 insertions, 0 deletions