LCN SymposiumPub Date : 2019-10-01DOI: 10.1109/lcnsymposium47956.2019.9000654
O. Bonaventure
{"title":"Making our networking stack truly extensible","authors":"O. Bonaventure","doi":"10.1109/lcnsymposium47956.2019.9000654","DOIUrl":"https://doi.org/10.1109/lcnsymposium47956.2019.9000654","url":null,"abstract":"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.","PeriodicalId":146741,"journal":{"name":"LCN Symposium","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129681932","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}