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. v2: - Extend selftests/bpf/progs/bpf_flow.c to exercise new ret code Shmulik Ladkani (4): flow_dissector: Make 'bpf_flow_dissect' return the bpf program retcode bpf/flow_dissector: Introduce BPF_FLOW_DISSECTOR_CONTINUE retcode for flow-dissector bpf progs bpf: test_run: Propagate bpf_flow_dissect's retval to user's bpf_attr.test.retval selftests/bpf: test BPF_FLOW_DISSECTOR_CONTINUE include/linux/skbuff.h | 4 +- include/uapi/linux/bpf.h | 5 +++ net/core/flow_dissector.c | 16 ++++--- tools/include/uapi/linux/bpf.h | 5 +++ .../selftests/bpf/prog_tests/flow_dissector.c | 44 ++++++++++++++++++- .../prog_tests/flow_dissector_load_bytes.c | 2 +- tools/testing/selftests/bpf/progs/bpf_flow.c | 15 +++++++ .../selftests/bpf/test_flow_dissector.sh | 8 ++++ 8 files changed, 89 insertions(+), 10 deletions(-) -- 2.37.2