]> git.baikalelectronics.ru Git - kernel.git/commit
bpf, flow_dissector: Introduce BPF_FLOW_DISSECTOR_CONTINUE retcode for bpf progs
authorShmulik Ladkani <shmulik.ladkani@gmail.com>
Sun, 21 Aug 2022 11:35:17 +0000 (14:35 +0300)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 23 Aug 2022 20:47:55 +0000 (22:47 +0200)
commitffbe508937f52584e14d9814e34cc2fae9a6dff7
treec22bbbb2f28198da8019dd4bd27170aa29981845
parentd02b9dce2c0dbd863b3a828c77acd0dfb0cdb8fc
bpf, flow_dissector: Introduce BPF_FLOW_DISSECTOR_CONTINUE retcode for bpf progs

Currently, attaching BPF_PROG_TYPE_FLOW_DISSECTOR programs completely
replaces the flow-dissector logic with custom dissection logic. This
forces implementors to write programs that handle dissection for any
flows expected in the namespace.

It makes sense for flow-dissector BPF programs to just augment the
dissector with custom logic (e.g. dissecting certain flows or custom
protocols), while enjoying the broad capabilities of the standard
dissector for any other traffic.

Introduce BPF_FLOW_DISSECTOR_CONTINUE retcode. Flow-dissector BPF
programs may return this to indicate no dissection was made, and
fallback to the standard dissector is requested.

Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Stanislav Fomichev <sdf@google.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20220821113519.116765-3-shmulik.ladkani@gmail.com
include/uapi/linux/bpf.h
net/core/flow_dissector.c
tools/include/uapi/linux/bpf.h