Now that we made the BPF loader generic as a library, reuse it for loading XDP programs as well. This basically adds a minimal start of a facility for iproute2 to load XDP programs. There currently only exists the xdp1_user.c sample code in the kernel tree that sets up netlink directly and an iovisor/bcc front-end. Since we have all the necessary infrastructure in place already from tc side, we can just reuse its loader back-end and thus facilitate migration and usability among the two for people familiar with tc/bpf already. Sharing maps, performing tail calls, etc works the same way as with tc. Naturally, once kernel configuration API evolves, we will extend new features for XDP here as well, resp. extend dumping of related netlink attributes. Minimal example: clang -target bpf -O2 -Wall -c prog.c -o prog.o ip [-force] link set dev em1 xdp obj prog.o # attaching ip [-d] link # dumping ip link set dev em1 xdp off # detaching For the dump, intention is that in the first line for each ip link entry, we'll see "xdp" to indicate that this device has an XDP program attached. Once we dump some more useful information via netlink (digest, etc), idea is that 'ip -d link' will then display additional relevant program information below the "link/ ether [...]" output line for such devices, for example. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> |
||
|---|---|---|
| bash-completion | ||
| bridge | ||
| devlink | ||
| doc | ||
| etc/iproute2 | ||
| examples | ||
| genl | ||
| include | ||
| ip | ||
| lib | ||
| man | ||
| misc | ||
| netem | ||
| schema | ||
| tc | ||
| testsuite | ||
| tipc | ||
| .gitignore | ||
| COPYING | ||
| Makefile | ||
| README | ||
| README.decnet | ||
| README.devel | ||
| README.distribution | ||
| README.iproute2+tc | ||
| README.lnstat | ||
| configure | ||
README
This is a set of utilities for Linux networking.
Information:
http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
Download:
http://www.kernel.org/pub/linux/utils/net/iproute2/
Repository:
git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git
How to compile this.
--------------------
1. libdbm
arpd needs to have the db4 development libraries. For Debian
users this is the package with a name like libdb4.x-dev.
DBM_INCLUDE points to the directory with db_185.h which
is the include file used by arpd to get to the old format Berkeley
database routines. Often this is in the db-devel package.
2. make
The makefile will automatically build a Config file which
contains whether or not ATM is available, etc.
3. To make documentation, cd to doc/ directory , then
look at start of Makefile and set correct values for
PAGESIZE=a4 , ie: a4 , letter ... (string)
PAGESPERPAGE=2 , ie: 1 , 2 ... (numeric)
and make there. It assumes, that latex, dvips and psnup
are in your path.
4. This package includes matching sanitized kernel headers because
the build environment may not have up to date versions. See Makefile
if you have special requirements and need to point at different
kernel include files.
Stephen Hemminger
stephen@networkplumber.org
Alexey Kuznetsov
kuznet@ms2.inr.ac.ru