bpf: make common crypto API for TC/XDP programs
authorVadim Fedorenko <vadfed@meta.com>
Mon, 22 Apr 2024 22:50:21 +0000 (15:50 -0700)
committerMartin KaFai Lau <martin.lau@kernel.org>
Wed, 24 Apr 2024 23:01:10 +0000 (16:01 -0700)
commit3e1c6f35409f9e447bf37f64840f5b65576bfb78
tree6ff5c59d598f975728cfdd1f4d29407d4b6cae01
parent95c07d58250ca3ed01855c20be568cf04e15382f
bpf: make common crypto API for TC/XDP programs

Add crypto API support to BPF to be able to decrypt or encrypt packets
in TC/XDP BPF programs. Special care should be taken for initialization
part of crypto algo because crypto alloc) doesn't work with preemtion
disabled, it can be run only in sleepable BPF program. Also async crypto
is not supported because of the very same issue - TC/XDP BPF programs
are not sleepable.

Signed-off-by: Vadim Fedorenko <vadfed@meta.com>
Link: https://lore.kernel.org/r/20240422225024.2847039-2-vadfed@meta.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
include/linux/bpf.h
include/linux/bpf_crypto.h [new file with mode: 0644]
kernel/bpf/Makefile
kernel/bpf/crypto.c [new file with mode: 0644]
kernel/bpf/helpers.c
kernel/bpf/verifier.c