{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T16:56:08Z","timestamp":1760028968703,"version":"3.41.0"},"reference-count":45,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2023,10,30]],"date-time":"2023-10-30T00:00:00Z","timestamp":1698624000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGCOMM Comput. Commun. Rev."],"published-print":{"date-parts":[[2023,10,30]]},"abstract":"<jats:p>eBPF is a popular technology originating from the Linux kernel that enables safely running user-provided programs in a kernel-context. This technology opened the door for efficient programming in the operating system, especially in its network stack. However, its applicability is not limited to the Linux kernel. Various efforts leveraged the eBPF Instruction Set Architecture (ISA) as the basis of other networking related use cases outside of the Linux kernel. This paper focuses on the pluginized protocols' use case such as PQUIC and xBGP where the eBPF ISA serves as the basis to execute plugins providing per-session protocol behavior. It first quickly describes how the Linux kernel builds around this eBPF ISA to provide enhanced in-kernel network programmability. Then, the paper considers the case of pluginized protocols. Leveraging eBPF outside of the Linux kernel environment requires complementing the eBPF ISA to meet the pluginized protocols' requirements. This paper details these integration efforts. Based on the lessons learned from these, it finally concludes by an applicability discussion of the eBPF ISA to other use cases.<\/jats:p>","DOI":"10.1145\/3649171.3649173","type":"journal-article","created":{"date-parts":[[2024,2,20]],"date-time":"2024-02-20T22:09:05Z","timestamp":1708466945000},"page":"2-8","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["On Integrating eBPF into Pluginized Protocols"],"prefix":"10.1145","volume":"53","author":[{"given":"Quentin","family":"De Coninck","sequence":"first","affiliation":[{"name":"University of Mons, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Louis","family":"Navarre","sequence":"additional","affiliation":[{"name":"UCLouvain, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nicolas","family":"Rybowski","sequence":"additional","affiliation":[{"name":"UCLouvain, Belgium"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,2,20]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"PQUIC Authors. 2020. uBPF: Userspace eBPF VM (PQUIC version). (2020). https:\/\/github.com\/p-quic\/ubpf\/."},{"key":"e_1_2_1_2_1","volume-title":"Technical Conference on Linux Networking, Netdev","volume":"2","author":"Bertin Gilberto","year":"2017","unstructured":"Gilberto Bertin. 2017. XDP in practice: integrating XDP into our DDoS mitigation pipeline. In Technical Conference on Linux Networking, Netdev, Vol. 2. The NetDev Society, 1--5."},{"key":"e_1_2_1_3_1","volume-title":"Tcp-bpf: Programmatically tuning tcp behavior through bpf. In NetDev 2.2.","author":"Brakmo Lawrence","year":"2017","unstructured":"Lawrence Brakmo. 2017. Tcp-bpf: Programmatically tuning tcp behavior through bpf. In NetDev 2.2."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3543668"},{"key":"e_1_2_1_5_1","volume-title":"Computer Aided Verification: 18th International Conference, CAV 2006, Seattle, WA, USA, August 17-20, 2006. Proceedings 18","author":"Cook Byron","year":"2006","unstructured":"Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006. Terminator: Beyond Safety: (Tool Paper). In Computer Aided Verification: 18th International Conference, CAV 2006, Seattle, WA, USA, August 17-20, 2006. Proceedings 18. Springer, 415--418."},{"key":"e_1_2_1_6_1","volume-title":"BPF: the universal in-kernel virtual machine. Linux Weekly News (May","author":"Corbet Jonathan","year":"2014","unstructured":"Jonathan Corbet. 2014. BPF: the universal in-kernel virtual machine. Linux Weekly News (May 2014). https:\/\/lwn.net\/Articles\/599755\/, Accessed: 2021-02-04."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341302.3342078"},{"key":"e_1_2_1_8_1","volume-title":"A seccomp overview. Linux Weekly News (September","author":"Edge Jake","year":"2015","unstructured":"Jake Edge. 2015. A seccomp overview. Linux Weekly News (September 2015). https:\/\/old.lwn.net\/Articles\/656307\/."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.17487\/RFC8986"},{"key":"e_1_2_1_10_1","volume-title":"A thorough introduction to eBPF. Linux Weekly News (Dec","author":"Fleming Matt","year":"2017","unstructured":"Matt Fleming. 2017. A thorough introduction to eBPF. Linux Weekly News (Dec. 2017)."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314590"},{"key":"e_1_2_1_12_1","volume-title":"Computer Aided Verification: 27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I. Springer, 343--361","author":"Gurfinkel Arie","year":"2015","unstructured":"Arie Gurfinkel, Temesghen Kahsai, Anvesh Komuravelli, and Jorge A Navas. 2015. The SeaHorn verification framework. In Computer Aided Verification: 27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I. Springer, 343--361."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3281411.3281443"},{"key":"e_1_2_1_14_1","unstructured":"Christian Huitema. 2023. picoquic. (2023)."},{"key":"e_1_2_1_15_1","unstructured":"IOVisor. 2023. uBPF: Userspace eBPF VM. (2023). https:\/\/github.com\/iovisor\/ubpf."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.17487\/RFC9000"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/TNSM.2022.3174138"},{"key":"e_1_2_1_18_1","volume-title":"https:\/\/docs.cilium.io\/en\/stable\/bpf\/architecture\/#bpf-to-bpf-calls","author":"Architecture The","year":"2023","unstructured":"The kernel development community. 2023. BPF Architecture. (2023). https:\/\/docs.cilium.io\/en\/stable\/bpf\/architecture\/#bpf-to-bpf-calls."},{"key":"e_1_2_1_19_1","unstructured":"The kernel development community. 2023. BPF Type Format (BTF). (2023). https:\/\/www.kernel.org\/doc\/html\/v6.2\/bpf\/btf.html."},{"key":"e_1_2_1_20_1","unstructured":"The kernel development community. 2023. eBPF Instruction Set Specification v1.0. (2023). https:\/\/www.kernel.org\/doc\/html\/latest\/bpf\/instruction-set.html."},{"key":"e_1_2_1_21_1","volume-title":"https:\/\/lore.kernel.org\/bpf\/87tuft7ff7.fsf@toke.dk\/T\/","author":"Koong Joanne","year":"2021","unstructured":"Joanne Koong. 2021. [PATCH v3 bpf-next 0\/4] Add bpf_loop helper. (2021). https:\/\/lore.kernel.org\/bpf\/87tuft7ff7.fsf@toke.dk\/T\/."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54862-8_26"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3106328.3106329"},{"volume-title":"USENIX winter","author":"McCanne Steven","key":"e_1_2_1_24_1","unstructured":"Steven McCanne and Van Jacobson. 1993. The BSD Packet Filter: A New Architecture for User-level Packet Capture.. In USENIX winter, Vol. 46."},{"key":"e_1_2_1_25_1","volume-title":"Muriel M\u00e9dard, and Olivier Bonaventure.","author":"Michel Fran\u00e7ois","year":"2022","unstructured":"Fran\u00e7ois Michel, Alejandro Cohen, Derya Malak, Quentin De Coninck, Muriel M\u00e9dard, and Olivier Bonaventure. 2022. FlEC: Enhancing QUIC with application-tailored reliability mechanisms. IEEE\/ACM Transactions on Networking (2022)."},{"key":"e_1_2_1_26_1","unstructured":"Quentin Monnet. 2023. rbpf: Rust (user-space) virtual machine for eBPF. (2023). https:\/\/github.com\/qmonnet\/rbpf."},{"key":"e_1_2_1_27_1","volume-title":"https:\/\/nakryiko.com\/posts\/bpf-portability-and-co-re\/","author":"Nakryiko Andrii","year":"2020","unstructured":"Andrii Nakryiko. 2020. BPF CO-RE (Compile Once - Run Everywhere). (2020). https:\/\/nakryiko.com\/posts\/bpf-portability-and-co-re\/."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3230543.3230553"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the SIGCOMM'21 Poster and Demo Sessions. 45--47","author":"Navarre Louis","year":"2021","unstructured":"Louis Navarre, Fran\u00e7ois Michel, and Olivier Bonaventure. 2021. SRv6-FEC: bringing forward erasure correction to IPv6 segment routing. In Proceedings of the SIGCOMM'21 Poster and Demo Sessions. 45--47."},{"key":"e_1_2_1_30_1","unstructured":"Richard Prinz et al. 2023. hBPF = eBPF in hardware. (2023). https:\/\/github.com\/rprinz08\/hBPF."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.17487\/RFC4271"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3472716.3472860"},{"key":"e_1_2_1_33_1","unstructured":"Dave Thaler. 2023. eBPF ELF Profile Specification v0.1. Internet-Draft draft-thaler-bpf-elf-00. Internet Engineering Task Force. https:\/\/datatracker.ietf.org\/doc\/draft-thaler-bpf-elf\/00\/ Work in Progress."},{"key":"e_1_2_1_34_1","unstructured":"Dave Thaler. 2023. eBPF Instruction Set Specification v1.0. Internet-Draft draft-thaler-bpf-isa-00. Internet Engineering Task Force. https:\/\/datatracker.ietf.org\/doc\/draft-thaler-bpf-isa\/00\/ Work in Progress."},{"key":"e_1_2_1_35_1","volume-title":"Making eBPF work on Windows. (May","author":"Thaler Dave","year":"2021","unstructured":"Dave Thaler and Poorna Gaddehosur. 2021. Making eBPF work on Windows. (May 2021). https:\/\/cloudblogs.microsoft.com\/opensource\/2021\/05\/10\/making-ebpf-work-on-windows\/."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.comcom.2020.07.036"},{"key":"e_1_2_1_37_1","unstructured":"David Vernet. 2023. [PATCH bpf-next v3] bpf\/docs: Document kfunc lifecycle \/ stability expectations. (2023). https:\/\/www.spinics.net\/lists\/kernel\/msg4676660.html."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/173668.168635"},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of the 19th ACM Workshop on Hot Topics in Networks. 1--7.","author":"Wirtgen Thomas","year":"2020","unstructured":"Thomas Wirtgen, Quentin De Coninck, Randy Bush, Laurent Vanbever, and Olivier Bonaventure. 2020. Xbgp: When you can't wait for the ietf and vendors. In Proceedings of the 19th ACM Workshop on Hot Topics in Networks. 1--7."},{"key":"e_1_2_1_40_1","volume-title":"20th USENIX Symposium on Networked Systems Design and Implementation (NSDI 23)","author":"Wirtgen Thomas","year":"2023","unstructured":"Thomas Wirtgen, Tom Rousseaux, Quentin De Coninck, Nicolas Rybowski, Randy Bush, Laurent Vanbever, Axel Legay, and Olivier Bonaventure. 2023. xBGP: Faster Innovation in Routing Protocols. In 20th USENIX Symposium on Networked Systems Design and Implementation (NSDI 23)."},{"key":"e_1_2_1_41_1","volume-title":"https:\/\/github.com\/pluginized-protocols\/libxbgp","author":"Authors BGP","year":"2023","unstructured":"xBGP Authors. 2023. LibxBGP. (2023). https:\/\/github.com\/pluginized-protocols\/libxbgp."},{"key":"e_1_2_1_42_1","volume-title":"2018 14th International Conference on Network and Service Management (CNSM). IEEE, 408--413","author":"Xhonneux Mathieu","year":"2018","unstructured":"Mathieu Xhonneux and Olivier Bonaventure. 2018. Flexible failure detection and fast reroute using eBPF and SRv6. In 2018 14th International Conference on Network and Service Management (CNSM). IEEE, 408--413."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/3281411.3281426"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2009.25"},{"key":"e_1_2_1_45_1","volume-title":"2021 IEEE 29th International Conference on Network Protocols (ICNP). IEEE, 1--11","author":"Zhou Jianer","year":"2021","unstructured":"Jianer Zhou, Xinyi Qiu, Zhenyu Li, Gareth Tyson, Qing Li, Jingpu Duan, and Yi Wang. 2021. Antelope: A framework for dynamic selection of congestion control algorithms. In 2021 IEEE 29th International Conference on Network Protocols (ICNP). IEEE, 1--11."}],"container-title":["ACM SIGCOMM Computer Communication Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3649171.3649173","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3649171.3649173","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T23:56:39Z","timestamp":1750290999000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3649171.3649173"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,10,30]]},"references-count":45,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2023,10,30]]}},"alternative-id":["10.1145\/3649171.3649173"],"URL":"https:\/\/doi.org\/10.1145\/3649171.3649173","relation":{},"ISSN":["0146-4833"],"issn-type":[{"type":"print","value":"0146-4833"}],"subject":[],"published":{"date-parts":[[2023,10,30]]},"assertion":[{"value":"2024-02-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}