linux/tools/testing/selftests/bpf/prog_tests
Petar Penkov 9840a4ffcf selftests/bpf: fix race in flow dissector tests
Since the "last_dissection" map holds only the flow keys for the most
recent packet, there is a small race in the skb-less flow dissector
tests if a new packet comes between transmitting the test packet, and
reading its keys from the map. If this happens, the test packet keys
will be overwritten and the test will fail.

Changing the "last_dissection" map to a hash map, keyed on the
source/dest port pair resolves this issue. Additionally, let's clear the
last test results from the map between tests to prevent previous test
cases from interfering with the following test cases.

Fixes: 0905beec9f ("selftests/bpf: run flow dissector tests in skb-less mode")
Signed-off-by: Petar Penkov <ppenkov@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-08-13 16:31:10 +02:00
..
.gitignore
attach_probe.c selftests/bpf: fix perf_buffer on s390 2019-07-16 18:41:00 -07:00
bpf_obj_id.c selftests/bpf: abstract away test log output 2019-07-27 22:36:19 -07:00
bpf_verif_scale.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
core_reloc.c selftests/bpf: add CO-RE relocs misc tests 2019-08-07 14:43:49 -07:00
flow_dissector_load_bytes.c selftests/bpf: add flow dissector bpf_skb_load_bytes helper test 2019-04-23 18:36:34 +02:00
flow_dissector.c selftests/bpf: fix race in flow dissector tests 2019-08-13 16:31:10 +02:00
get_stack_raw_tp.c selftests/bpf: abstract away test log output 2019-07-27 22:36:19 -07:00
global_data.c bpf, selftest: test global data/bss/rodata sections 2019-04-09 17:05:47 -07:00
l4lb_all.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
map_lock.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
obj_name.c selftests: bpf: break up test_progs - misc 2019-03-02 11:10:40 -08:00
perf_buffer.c selftests/bpf: fix perf_buffer on s390 2019-07-16 18:41:00 -07:00
pkt_access.c
pkt_md_access.c
prog_run_xattr.c selftests: bpf: break up test_progs - misc 2019-03-02 11:10:40 -08:00
queue_stack_map.c selftests: bpf: break up test_progs - misc 2019-03-02 11:10:40 -08:00
raw_tp_writable_reject_nbd_invalid.c selftests: bpf: test writable buffers in raw tps 2019-04-26 19:04:19 -07:00
raw_tp_writable_test_run.c selftests: bpf: test writable buffers in raw tps 2019-04-26 19:04:19 -07:00
reference_tracking.c selftest/bpf: centralize libbpf logging management for test_progs 2019-07-27 22:36:19 -07:00
send_signal.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
signal_pending.c selftests: bpf: test_progs: initialize duration in singal_pending test 2019-03-07 10:46:25 +01:00
skb_ctx.c selftests: bpf: add selftest for __sk_buff context in BPF_PROG_TEST_RUN 2019-04-11 10:21:41 +02:00
spinlock.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
stacktrace_build_id_nmi.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
stacktrace_build_id.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
stacktrace_map_raw_tp.c selftests/bpf: convert existing tracepoint tests to new APIs 2019-07-05 22:37:31 +02:00
stacktrace_map.c selftests/bpf: convert existing tracepoint tests to new APIs 2019-07-05 22:37:31 +02:00
task_fd_query_rawtp.c selftests: bpf: break up test_progs - tracepoint 2019-03-02 11:10:40 -08:00
task_fd_query_tp.c selftests: bpf: initialize bpf_object pointers where needed 2019-05-09 15:53:56 -07:00
tcp_estats.c selftests: bpf: break up test_progs - misc 2019-03-02 11:10:40 -08:00
tp_attach_query.c selftests: bpf: initialize bpf_object pointers where needed 2019-05-09 15:53:56 -07:00
xdp_adjust_tail.c selftests: bpf: break up test_progs - xdp 2019-03-02 11:10:40 -08:00
xdp_noinline.c selftests/bpf: test_progs: test__printf -> printf 2019-08-06 17:17:52 -07:00
xdp.c selftests: bpf: break up test_progs - xdp 2019-03-02 11:10:40 -08:00