Leveraging eBPF for programmable network functions with IPv6 Segment Routing

by   Mathieu Xhonneux, et al.

With the advent of Software Defined Networks (SDN), Network Function Virtualisation (NFV) or Service Function Chaining (SFC), operators expect networks to support flexible services beyond the mere forwarding of packets. The network programmability framework which is being developed within the IETF by leveraging IPv6 Segment Routing enables the realisation of in-network functions. In this paper, we demonstrate that this vision of in-network programmability can be realised. By leveraging the eBPF support in the Linux kernel, we implement a flexible framework that allows network operators to encode their own network functions as eBPF code that is automatically executed while processing specific packets. Our lab measurements indicate that the overhead of calling such eBPF functions remains acceptable. Thanks to eBPF, operators can implement a variety of network functions. We describe the architecture of our implementation in the Linux kernel. This extension has been released with Linux 4.18. We illustrate the flexibility of our approach with three different use cases: delay measurements, hybrid networks and network discovery. Our lab measurements also indicate that the performance penalty of running eBPF network functions on Linux routers does not incur a significant overhead.


Flexible failure detection and fast reroute using eBPF and SRv6

Segment Routing is a modern variant of source routing that is being grad...

An Efficient Linux Kernel Implementation of Service Function Chaining for legacy VNFs based on IPv6 Segment Routing

We consider the IPv6 Segment Routing (SRv6) technology for Service Funct...

SRPerf: a Performance Evaluation Framework for IPv6 Segment Routing

Segment Routing is a form of loose source routing. It provides the abili...

SDN Architecture and Southbound APIs for IPv6 Segment Routing Enabled Wide Area Networks

The SRv6 architecture (Segment Routing based on IPv6 data plane) is a pr...

Methods and Techniques for Dynamic Deployability of Software-Defined Security Services

With the recent trend of "network softwarisation", enabled by emerging t...

GP4P4: Enabling Self-Programming Networks

Recent advances in programmable switches have enabled network operators ...

PsPIN: A high-performance low-power architecture for flexible in-network compute

The capacity of offloading data and control tasks to the network is beco...