Re: XDP/BPF C and python libraries?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jakub,

On 07/21/2017 07:53 AM, Jakub Kicinski wrote:
[...]
I've been writing various cli programs and little tools to play with
XDP and maps lately (testing NFP map offload).  I have a simple CLI
for loading programs, setting XDP up and interacting with maps.  It's
based on libbpf from tools/ and the loader from samples/bpf.  I wonder
how do others perform basic map interactions?  Perhaps I'm approaching
the problem from the wrong side?  Is anyone working on command line
interface for simple update/dump/delete operations?

There is a small debugging tool in golang at [1] for inspection
(but e.g. main integration and interaction is done from orchestrator
side in case of cilium).

I think it's recommended to use bpffs, are there any tools for
interacting with it?

Only to name a few examples, cilium and the iproute2's BPF ELF
loader interact with it, and I think recently also bcc got support
for bpffs. From library side kernel's libbpf supports pinning into
bpffs as well. We could probably have a small tool utilizing libbpf
that sits under kernel tools/, though.

Are there any Python libraries which could take care of parsing ELF
files and poking maps?  My understanding is that BCC is not really the
tool for the job, because it's too high-level.  I don't want to compile
programs each time I want to load them.

On the kernel sources - I'm pretty sure this was discussed on netdev
but I forgot the conclusion :( - is it possible to move
samples/bpf/bpf_load.c in some form to libbpf?

Yep, that would be great if you have some patches! We should
unify loader code where possible, so that both samples and
selftests only use libbpf eventually. Also some of the sample
programs should move to tools/testing/selftests/bpf/, so they
can then be run on both, kbuild bot as well as linaro's kernel
test framework to check for potential regressions.

Generally speaking, if you have some small, useful and generic
tools that neither fit into iproute2 nor samples / selftests,
then feel free to rename tools/net/ into tools/bpf/ (since all of
there is BPF anyway right now) and add them into that location
for general use.

Thanks,
Daniel

  [1] https://github.com/cilium/bpf-map



[Index of Archives]     [Linux Networking Development]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite Campsites]

  Powered by Linux