Go to file
Daniel Borkmann c7272ca720 bpf: add initial support for attaching xdp progs
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>
2016-12-09 12:44:12 -08:00
bash-completion tc: add bash-completion function 2016-05-03 09:53:26 -07:00
bridge libnetlink: Introduce rta_getattr_be*() 2016-12-02 14:12:09 -08:00
devlink devlink: Add option to set and show eswitch inline mode 2016-12-09 12:41:03 -08:00
doc doc/tc-filters.tex: Drop overly subjective paragraphs 2016-03-27 10:34:40 -07:00
etc/iproute2 {f, m}_bpf: allow for user-defined object pinnings 2015-11-29 11:55:16 -08:00
examples tc, bpf: add support for map pre/allocation 2016-04-11 21:54:47 +00:00
genl Replace malloc && memset by calloc 2016-07-20 12:05:24 -07:00
include bpf: add initial support for attaching xdp progs 2016-12-09 12:44:12 -08:00
ip bpf: add initial support for attaching xdp progs 2016-12-09 12:44:12 -08:00
lib bpf: add initial support for attaching xdp progs 2016-12-09 12:44:12 -08:00
man bpf: add initial support for attaching xdp progs 2016-12-09 12:44:12 -08:00
misc Merge branch 'master' into net-next 2016-12-02 14:19:08 -08:00
netem scrub out whitespace issues 2016-03-27 10:50:14 -07:00
schema bridge: add json schema for bridge fdb show 2016-07-20 12:02:02 -07:00
tc tc: flower: make use of flower_port_attr_type() safe and silent 2016-12-05 10:13:26 -08:00
testsuite iproute2: build nsid-name cache only for commands that need it 2016-10-09 18:56:47 -07:00
tipc tipc: cleanup style issues 2016-09-20 09:25:42 -07:00
.gitignore gitignore: Ignore 'tags' file generated by ctags 2016-09-08 14:30:44 -07:00
COPYING Update address of FSF in license 2008-03-08 13:31:03 -08:00
Makefile bpf: make tc's bpf loader generic and move into lib 2016-11-29 12:35:32 -08:00
README README: update mail address and download location 2013-01-18 09:54:58 -08:00
README.decnet Decnet documentation update 2005-06-13 18:47:56 +00:00
README.devel iproute2: fix minor typo in comments 2011-07-11 10:11:09 -07:00
README.distribution README cleanup's 2012-01-03 15:04:55 -08:00
README.iproute2+tc tc, bpf: finalize eBPF support for cls and act front-end 2015-04-10 13:31:19 -07:00
README.lnstat Rename: misc/README.lnstat -> README.lnstat 2004-10-19 20:24:47 +00:00
configure bpf: make tc's bpf loader generic and move into lib 2016-11-29 12:35:32 -08:00

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