Code written for my master's thesis on End.BPF, an interface for programmable IPv6 Segment Routing network functions.
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
libseg6 Code release Jun 10, 2018
linux-seg6-bpf @ d674f93 Code release Jun 10, 2018
openwrt-seg6 @ 5fb3cad Code release Jun 10, 2018
seg6-bpf-tests Code release Jun 10, 2018
segway @ 8e6d009 Code release Jun 10, 2018
use-cases Fix tests_injector.seg Jul 9, 2018
.gitmodules Code release Jun 10, 2018
CoNext-replication.md Update CoNext-replication.md Oct 8, 2018
LICENSE Initial commit Jun 10, 2018
README.md Update README.md Sep 18, 2018
Thesis.pdf Add manuscript Jun 27, 2018

README.md

Thesis-SRv6-BPF

Code written for my master's thesis on End.BPF, an interface for programmable IPv6 Segment Routing network functions, and also featured in the paper "Leveraging eBPF for programmable network functions with IPv6 Segment Routing", presented at CoNext 2018. The full thesis manuscript, including the architecture and performance evaluations of End.BPF and of the three use-cases released in this repository, is available in Thesis.pdf.

The Linux patches adding the End.BPF hook and the four SRv6-related helpers can be retrieved from net-next's patchwork website. These modifications are available in the upstream Linux kernel since Linux 4.18 (August 2018).

Instructions for replicating the results presented in the CoNext 2018 paper are available here.

This repository contains:

  • segway: a unit testing framework for SRv6
  • libseg6: a library for handling IPv6 Segment Routing Headers in BPF
  • use-cases: the code, scripts and Makefiles of the use-cases developed in my master's thesis, that rely on SRv6 BPF
  • linux-seg6-bpf: linux kernel with the modifications required by the above use-cases
  • openwrt-seg6: fork of OpenWRT/LEDE with a SRv6 BPF support for Linux 4.14