Creating complex network services with ebpf: Experience and lessons learned
2018 IEEE 19th International Conference on High Performance …, 2018•ieeexplore.ieee.org
The extended Berkeley Packet Filter (eBPF) is a recent technology available in the Linux
kernel that enables flexible data processing. However, so far the eBPF was mainly used for
monitoring tasks such as memory, CPU, page faults, traffic, and more, with a few examples
of traditional network services, eg, that modify the data in transit. In fact, the creation of
complex network functions that go beyond simple proof-of-concept data plane applications
has proven to be challenging due to the several limitations of this technology, but at the …
kernel that enables flexible data processing. However, so far the eBPF was mainly used for
monitoring tasks such as memory, CPU, page faults, traffic, and more, with a few examples
of traditional network services, eg, that modify the data in transit. In fact, the creation of
complex network functions that go beyond simple proof-of-concept data plane applications
has proven to be challenging due to the several limitations of this technology, but at the …
The extended Berkeley Packet Filter (eBPF) is a recent technology available in the Linux kernel that enables flexible data processing. However, so far the eBPF was mainly used for monitoring tasks such as memory, CPU, page faults, traffic, and more, with a few examples of traditional network services, e.g., that modify the data in transit. In fact, the creation of complex network functions that go beyond simple proof-of-concept data plane applications has proven to be challenging due to the several limitations of this technology, but at the same time very promising due to some characteristics (e.g., dynamic recompilation of the source code) that are not available elsewhere. Based on our experience, this paper presents the most promising characteristics of this technology and the main encountered limitations, and we envision some solutions that can mitigate the latter. We also summarize the most important lessons learned while exploiting eBPF to create complex network functions and, finally, we provide a quantitative characterization of the most significant aspects of this technology.
ieeexplore.ieee.org