  Segment Routing is a modern variant of source routing that is being gradually
deployed by network operators. Large ISPs use it for traffic engineering and
fast reroute purposes. Its IPv6 dataplane, named SRv6, goes beyond the initial
MPLS dataplane, notably by enabling network programmability. With SRv6, it
becomes possible to define transparent network functions on routers and
endhosts. These functions are mapped to IPv6 addresses and their execution is
scheduled by segments placed in the forwarded packets. We have recently
extended the Linux SRv6 implementation to enable the execution of specific eBPF
code upon reception of an SRv6 packet containing local segments. eBPF is a
virtual machine that is included in the Linux kernel. We leverage this new
feature of Linux 4.18 to propose and implement flexible eBPF-based fast-reroute
and failure detection schemes. Our lab measurements confirm that they provide
good performance and enable faster failure detections than existing BFD
implementations on Linux routers and servers.
