Making our networking stack truly extensible
Making our networking stack truly extensible
复制标题
使我们的网络堆栈真正可扩展
DOI:
--
复制
发表时间:
2019
期刊:
影响因子:
--
通讯作者:
O. Bonaventure
中科院分区:
文献类型:
--
作者:
O. Bonaventure
BPF is a simple virtual machine that was designed to facilitate packet filtering. It was later extended and attached to the Linux kernel where it provides a growing number of useful services. This talk explores how eBPF enables our ossified networking stack to become truly extensible. The talk starts with a brief description of eBPF makes IPv6 Segment Routing truly programmable. Then, I explain how with proper eBPF support in the TCP stack, it becomes possible to support new TCP options or modify TCP algorithms using eBPF code that is injected by applications. I then describe how eBPF can make Multipath TCP much more flexible than it is today. Similar techniques are also applicable for higher layer protocols. I then explain how we added eBPF support to QUIC and used this new extensibility technique to create pluginised QUIC, a variant of QUIC where a server can send over a QUIC connection eBPF bytecode that adds support for new extensions on the client. We used this technique to implement Multipath QUIC, QUIC VPN and add support for Forward Erasure Correction to demonstrate its flexibility. A similar technique has been applied to ToR, BGP and OSPS. The talk ends with a discussion of the architectural impacts of this new approach.