ACM SIGCOMM 2018 Morning Tutorial on Host Dataplane Acceleration (HDA)
Tutorial Program
- Session I
-
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
- Tea/Coffee Break
- Session II
-
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
- Lunch Break
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 (www.open-nfp.org). 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
Tutorial
Outline
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:
eBPF:
- 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:
- 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.
Background
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.
References
[1] eBPF Hardware Offload to SmartNICs: cls bpf and XDP, N. Viljoen and J. Kicinski, Netdev, 2016.
[2] https://open-nfp.org/dataplanes-ebpf/
[3] https://open-nfp.org/dataplanes-p4/
[4] https://conferences.sigcomm.org/sigcomm/2017/tutorial-P4-NetFPGA.html