From: Alexei Starovoitov <a...@fb.com> Date: Thu, 30 Mar 2017 21:45:37 -0700
> Development and testing of networking bpf programs is quite cumbersome. > Especially tricky are XDP programs that attach to real netdevices and > program development feels like working on the car engine while > the car is in motion. > Another problem is ongoing changes to upstream llvm core > that can introduce an optimization that verifier will not > recognize. llvm bpf backend tests have no ability to run the programs. > To improve this situation introduce BPF_PROG_TEST_RUN command > to test and performance benchmark bpf programs. > It achieves several goals: > - development of xdp and skb based bpf programs can be done > in a canned environment with unit tests > - program performance optimizations can be benchmarked outside of > networking core (without driver and skb costs) > - continuous testing of upstream changes is finally practical > > Patches 4,5,6 add C based test cases of various complexity > to cover some sched_cls and xdp features. More tests will > be added in the future. The tests were run on centos7 only. > > For now the framework supports only skb and xdp programs. In the future > it can be extended to socket_filter and tracing program types. > > More details are in individual patches. > > v1->v2: > - rename bpf_program_test_run->bpf_prog_test_run > - add missing #include <linux/bpf.h> since libbpf.h shouldn't depend > on prior includes > - reordered patches 3 and 4 to keep bisect clean Series applied, thanks Alexei.