netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [bpf-next 00/10] samples/bpf: modernize BPF functionality test programs
@ 2023-01-15  7:16 Daniel T. Lee
  2023-01-15  7:16 ` [bpf-next 01/10] samples/bpf: ensure ipv6 is enabled before running tests Daniel T. Lee
                   ` (10 more replies)
  0 siblings, 11 replies; 16+ messages in thread
From: Daniel T. Lee @ 2023-01-15  7:16 UTC (permalink / raw)
  To: Daniel Borkmann, Alexei Starovoitov, Andrii Nakryiko,
	Yonghong Song, Martin KaFai Lau, Song Liu, John Fastabend,
	KP Singh, Stanislav Fomichev, Hao Luo, Jiri Olsa, Andrii Nakryiko
  Cc: bpf, netdev

Currently, there are many programs under samples/bpf to test the
various functionality of BPF that have been developed for a long time.
However, the kernel (BPF) has changed a lot compared to the 2016 when
some of these test programs were first introduced.

Therefore, some of these programs use the deprecated function of BPF,
and some programs no longer work normally due to changes in the API.

To list some of the kernel changes that this patch set is focusing on,
- legacy BPF map declaration syntax support had been dropped [1]
- bpf_trace_printk() always append newline at the end [2]
- deprecated styled BPF section header (bpf_load style) [3] 
- urandom_read tracepoint is removed (used for testing overhead) [4]
- ping sends packet with SOCK_DGRAM instead of SOCK_RAW [5]*
- use "vmlinux.h" instead of including individual headers

In addition to this, this patchset tries to modernize the existing
testing scripts a bit. And for network-related testing programs,
a separate header file was created and applied. (To use the 
Endianness conversion function from xdp_sample and bunch of constants)

[1]: https://github.com/libbpf/libbpf/issues/282
[2]: commit ac5a72ea5c89 ("bpf: Use dedicated bpf_trace_printk event instead of trace_printk()")
[3]: commit ceb5dea56543 ("samples: bpf: Remove bpf_load loader completely")
[4]: commit 14c174633f34 ("random: remove unused tracepoints")
[5]: https://lwn.net/Articles/422330/

*: This is quite old, but I'm not sure why the code was initially
   developed to filter only SOCK_RAW.

Daniel T. Lee (10):
  samples/bpf: ensure ipv6 is enabled before running tests
  samples/bpf: refactor BPF functionality testing scripts
  samples/bpf: fix broken lightweight tunnel testing
  samples/bpf: fix broken cgroup socket testing
  samples/bpf: replace broken overhead microbenchmark with
    fib_table_lookup
  samples/bpf: replace legacy map with the BTF-defined map
  samples/bpf: split common macros to net_shared.h
  samples/bpf: replace BPF programs header with net_shared.h
  samples/bpf: use vmlinux.h instead of implicit headers in BPF test
    program
  samples/bpf: change _kern suffix to .bpf with BPF test programs

 samples/bpf/Makefile                          | 14 +++---
 ...lwt_len_hist_kern.c => lwt_len_hist.bpf.c} | 29 +++--------
 samples/bpf/lwt_len_hist.sh                   |  4 +-
 samples/bpf/net_shared.h                      | 32 ++++++++++++
 .../{sock_flags_kern.c => sock_flags.bpf.c}   | 24 ++++-----
 samples/bpf/tc_l2_redirect.sh                 |  3 ++
 samples/bpf/test_cgrp2_sock.sh                | 16 +++---
 samples/bpf/test_cgrp2_sock2.sh               |  9 +++-
 ...st_cgrp2_tc_kern.c => test_cgrp2_tc.bpf.c} | 34 ++++---------
 samples/bpf/test_cgrp2_tc.sh                  |  8 +--
 samples/bpf/test_lwt_bpf.c                    | 50 ++++++++-----------
 samples/bpf/test_lwt_bpf.sh                   | 19 ++++---
 ...ap_in_map_kern.c => test_map_in_map.bpf.c} |  7 +--
 samples/bpf/test_map_in_map_user.c            |  2 +-
 ...robe_kern.c => test_overhead_kprobe.bpf.c} |  6 +--
 ...w_tp_kern.c => test_overhead_raw_tp.bpf.c} |  4 +-
 ...rhead_tp_kern.c => test_overhead_tp.bpf.c} | 29 +++++++----
 samples/bpf/test_overhead_user.c              | 34 ++++++++-----
 samples/bpf/xdp_sample.bpf.h                  | 22 +-------
 19 files changed, 179 insertions(+), 167 deletions(-)
 rename samples/bpf/{lwt_len_hist_kern.c => lwt_len_hist.bpf.c} (75%)
 create mode 100644 samples/bpf/net_shared.h
 rename samples/bpf/{sock_flags_kern.c => sock_flags.bpf.c} (66%)
 rename samples/bpf/{test_cgrp2_tc_kern.c => test_cgrp2_tc.bpf.c} (70%)
 rename samples/bpf/{test_map_in_map_kern.c => test_map_in_map.bpf.c} (97%)
 rename samples/bpf/{test_overhead_kprobe_kern.c => test_overhead_kprobe.bpf.c} (92%)
 rename samples/bpf/{test_overhead_raw_tp_kern.c => test_overhead_raw_tp.bpf.c} (82%)
 rename samples/bpf/{test_overhead_tp_kern.c => test_overhead_tp.bpf.c} (61%)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-01-16 22:48 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-15  7:16 [bpf-next 00/10] samples/bpf: modernize BPF functionality test programs Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 01/10] samples/bpf: ensure ipv6 is enabled before running tests Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 02/10] samples/bpf: refactor BPF functionality testing scripts Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 03/10] samples/bpf: fix broken lightweight tunnel testing Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 04/10] samples/bpf: fix broken cgroup socket testing Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 05/10] samples/bpf: replace broken overhead microbenchmark with fib_table_lookup Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 06/10] samples/bpf: replace legacy map with the BTF-defined map Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 07/10] samples/bpf: split common macros to net_shared.h Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 08/10] samples/bpf: replace BPF programs header with net_shared.h Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 09/10] samples/bpf: use vmlinux.h instead of implicit headers in BPF test program Daniel T. Lee
2023-01-15  7:16 ` [bpf-next 10/10] samples/bpf: change _kern suffix to .bpf with BPF test programs Daniel T. Lee
2023-01-15 21:38 ` [bpf-next 00/10] samples/bpf: modernize BPF functionality " Alexei Starovoitov
2023-01-16 13:01   ` Daniel T. Lee
2023-01-16 13:35     ` Toke Høiland-Jørgensen
2023-01-16 15:23       ` Daniel Borkmann
2023-01-16 22:48         ` Toke Høiland-Jørgensen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).