Re: [PATCH bpf-next v3 8/8] samples/bpf: Add xdp_trafficgen sample
flat view
From: Toke Høiland-Jørgensen <hidden>
Date: 2021-12-14 00:37:35
Also in:
bpf
Alexei Starovoitov [off-list ref] writes:
On Mon, Dec 13, 2021 at 8:28 AM Toke Høiland-Jørgensen [off-list ref] wrote:quoted
Alexei Starovoitov [off-list ref] writes:quoted
On Sat, Dec 11, 2021 at 10:43 AM Toke Høiland-Jørgensen [off-list ref] wrote:quoted
This adds an XDP-based traffic generator sample which uses the DO_REDIRECT flag of bpf_prog_run(). It works by building the initial packet in userspace and passing it to the kernel where an XDP program redirects the packet to the target interface. The traffic generator supports two modes of operation: one that just sends copies of the same packet as fast as it can without touching the packet data at all, and one that rewrites the destination port number of each packet, making the generated traffic span a range of port numbers. The dynamic mode is included to demonstrate how the bpf_prog_run() facility enables building a completely programmable packet generator using XDP. Using the dynamic mode has about a 10% overhead compared to the static mode, because the latter completely avoids touching the page data. Signed-off-by: Toke Høiland-Jørgensen <redacted> --- samples/bpf/.gitignore | 1 + samples/bpf/Makefile | 4 + samples/bpf/xdp_redirect.bpf.c | 34 +++ samples/bpf/xdp_trafficgen_user.c | 421 ++++++++++++++++++++++++++++++ 4 files changed, 460 insertions(+) create mode 100644 samples/bpf/xdp_trafficgen_user.cI think it deserves to be in tools/bpf/ samples/bpf/ bit rots too often now. imo everything in there either needs to be converted to selftests/bpf or deleted.I think there's value in having a separate set of utilities that are more user-facing than the selftests. But I do agree that it's annoying they bit rot. So how about we fix that instead? Andrii suggested just integrating the build of samples/bpf into selftests[0], so I'll look into that after the holidays. But in the meantime I don't think there's any harm in adding this utility here?I think samples/bpf building would help to stabilize bitroting, but the question of the right home for this trafficgen tool remains. I think it's best to keep it outside of the kernel tree. It's not any more special than all other libbpf and bcc tools. I think xdp-tools repo or bcc could be a home for it.
Alright, I'll drop it from the next version and put it into xdp-tools. I've been contemplating doing the same for some of the other tools (xdp_redirect* and xdp_monitor, for instance). Any opinion on that? -Toke