ACM SIGCOMM 2018, Budapest, Hungary

ACM SIGCOMM 2018 Morning Tutorial on Host Dataplane Acceleration (HDA)

Tutorial Program

  • Monday, August 20, 2018, InterContinental

  • 8:30 am - 10:30 am Session I

    Location: InterContinental, Panorama Room IV

  • This tutorial will introduce attendees to multiple models for host data plane acceleration with SmartNICs. By the end of the tutorial, attendees will have a detailed understanding of SmartNIC deployment models at hyperscale cloud vendors and telecom service providers. Attendees will also be introduced to the various open source resources available for research and product development in this space.

  • 8:30 am - 9:00 am

    Models for Host Dataplane Acceleration

    Simon Horman (Linux Kernel Developer)

  • 9:00 am - 9:45 am

    XDP/BPF Introduction

    David Beckett (Software Engineer, Netronome)

  • 9:45 am - 10:30 am

    XDP/BPF Classifier Lab

    David Beckett (Software Engineer, Netronome)

  • 10:30 am - 11:00 am Tea/Coffee Break

    Location: InterContinental, Pre-Function Area

  • 11:00 am - 12:40 pm Session II

    Location: InterContinental, Panorama Room IV

  • 11:00 am - 11:30 am

    XDP/BPF Classifier Lab

    David Beckett (Software Engineer, Netronome)

  • 11:30 am - 12:10pm

    P4-16 Introduction

    Jaco Joubert (Software Engineer, Netronome)

  • 12:10 pm- 12:40 pm

    P4 XDP Load Balancer Demo

    Jaco Joubert (Software Engineer, Netronome)

  • 12:40 pm - 2:00 pm Lunch Break

    Location: InterContinental, Pre-Function Area

Call For Participation

This tutorial will provide participants with a hands-on introduction to new technologies to accelerate network function processing on server networking hardware (​​). Attendees will learn how to express new data-plane applications in eBPF and P4 and how to compile, execute, and evaluate these applications on production hardware.

Important Dates

  • August 20, 2018



Attendees will prototype network applications in the eBPF and P4 and compile them to production networking hardware in a sequence of hands-on labs.

The tutorial will cover the following topics:


  • Introduction to eBPF: The VM, Instruction set, Maps, Helper Functions, Verifiers, Development process
  • Introduction to XDP eBPF: XDP hooks, actions and use cases
  • eBPF XDP offload: Open source implementations to offload XDP to a SmartNIC or another device.
  • XDP Offload Lab (Load balancer): Hands on lab.


  • P4-16 with Netronome SmartNIC.
  • C-based externs with P4-16 - Development process for functions not supported in P4.
  • P4-16 Lab (Telemetry) - Hands-on lab.

Audience Expectations and Prerequisites

Attendees will be expected to bring their own laptops with remote desktop protocol installed. We will provide access to a VM containing all the necessary packages and tools.


The Extended Berkeley Packet Filter (eBPF) has rapidly been adopted into a number of systems since its introduction into the Linux kernel in 2014. Uses of eBPF have quickly grown to include network monitoring, network traffic manipulation, and system monitoring, etc. - all of which can be accelerated via Agilio CX SmartNIC programming and offload approaches. Netronome and the Open-NFP community have created several sources of information and samples on eBPF.

P4 is a high-level programming language for software-defined networks. It is intended to describe the behavior of the data plane of any system or appliance that forwards, modifies or inspects network traffic. Researchers are innovating using P4 in server-based networking systems with novel approaches to offloading servers using SmartNICs and realizing new functionality.

This tutorial will be based on recent technical papers on eBPF offload and P4 applications in server-based networking.


[1] eBPF ​ Hardware ​ Offload ​ to SmartNICs: cls bpf and XDP​, N. Viljoen and J. Kicinski, Netdev, 2016.