BPF Updates 01

This is the start of a regular newsletter around BPF written by Alexander Alemayhu. It will summarize ongoing development, presentations, videos and other information related to BPF and XDP. It will be released roughly once a week.


Recently some interesting developments in the BPF space occurred and the highlights are

The ixgbe patches were ready earlier but some lost in transit cleanup and build errors required a v2. Hopefully the binutils effort will lead to BPF support in GCC. While LLVM and clang is available on most distributions, the opportunity to use the familiar GCC will make it even easier for newbies to get started.

Being a XDP newbie is getting more pleasant by the day. Thanks to all of the nice investments being made by kernel developers. The infrastructure and tooling around BPF is improving. You can test your programs with the new BPF_PROG_TEST_RUN command and with the generic implementation of XDP you no longer need a special network card. The excuses for not trying out XDP are getting shorter ;->

Videos

Cilium: Network and Application Security with BPF and XDP

Your friends have probably heard about BPF, Cilium and XDP by now. If not they can watch this great talk on how containers can leverage the true superpowers of BPF.

Netdev 2.1 - Keynote By David S. Miller

Without spoiling the talk the last parallels drawn at the end is really important to understand where XDP effort is headed next.

Netdev 2.1 - Droplet: DDoS countermeasures powered by BPF + XDP

Nice talk on how Facebook is leveraging BPF and XDP in production.

Netdev 2.1 - XDP in practice: integrating XDP in our DDoS mitigation pipeline

This talk shows some of CloudFlare current DDoS mitigation strategies / tools. The whole talk is good, but the sections where what is preventing adoption and other disadvantages of XDP is interesting.

In case you missed it

eBPF, part 1: Past, Present, and Future

Good walk through on the differences between BPF and eBPF. The historical context makes this a nice read for newbies.

Cilium - BPF and XDP Reference Guide

This documentation section is targeted at developers and users who want to understand BPF and XDP in great technical depth.

XDP Newbies Mailing List

Which is a place where people can talk about getting up to speed with setting up an XDP build environment and writing XDP programs.

You can subscribe by sending a email to majordomo@vger.kernel.org, with a message body containing subscribe xdp-newbies. No subject is needed, but you can of course add one if you like.

Random cool note

The JSET cBPF instruction is for parsing DECNET packet headers. See Acknowledgements section of: http://www.tcpdump.org/papers/bpf-usenix93.pdf

Patches

Please note that netdev receives a lot of patches and the list above is not meant to be complete.