Thread (20 messages) 20 messages, 2 authors, 2021-12-14

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.c
I 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help