skip to main content
research-article

On Integrating eBPF into Pluginized Protocols

Published:20 February 2024Publication History
Skip Abstract Section

Abstract

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.

References

  1. PQUIC Authors. 2020. uBPF: Userspace eBPF VM (PQUIC version). (2020). https://github.com/p-quic/ubpf/.Google ScholarGoogle Scholar
  2. 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.Google ScholarGoogle Scholar
  3. Lawrence Brakmo. 2017. Tcp-bpf: Programmatically tuning tcp behavior through bpf. In NetDev 2.2.Google ScholarGoogle Scholar
  4. Marco Spaziani Brunella, Giacomo Belocchi, Marco Bonola, Salvatore Pontarelli, Giuseppe Siracusano, Giuseppe Bianchi, Aniello Cammarano, Alessandro Palumbo, Luca Petrucci, and Roberto Bifulco. 2022. hXDP: Efficient software packet processing on FPGA NICs. Commun. ACM 65, 8 (2022), 92--100.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Jonathan Corbet. 2014. BPF: the universal in-kernel virtual machine. Linux Weekly News (May 2014). https://lwn.net/Articles/599755/, Accessed: 2021-02-04.Google ScholarGoogle Scholar
  7. Quentin De Coninck, François Michel, Maxime Piraux, Florentin Rochet, Thomas Given-Wilson, Axel Legay, Olivier Pereira, and Olivier Bonaventure. 2019. Pluginizing QUIC. In Proceedings of the ACM Special Interest Group on Data Communication - SIGCOMM '19. ACM Press, Beijing, China, 59--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Jake Edge. 2015. A seccomp overview. Linux Weekly News (September 2015). https://old.lwn.net/Articles/656307/.Google ScholarGoogle Scholar
  9. Clarence Filsfils, Pablo Camarillo, John Leddy, Daniel Voyer, Satoru Matsushima, and Zhenbin Li. 2021. Segment Routing over IPv6 (SRv6) Network Programming. RFC 8986. (Feb. 2021). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Matt Fleming. 2017. A thorough introduction to eBPF. Linux Weekly News (Dec. 2017).Google ScholarGoogle Scholar
  11. Elazar Gershuni, Nadav Amit, Arie Gurfinkel, Nina Narodytska, Jorge A Navas, Noam Rinetzky, Leonid Ryzhyk, and Mooly Sagiv. 2019. Simple and precise static analysis of untrusted linux kernel extensions. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. 1069--1084.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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.Google ScholarGoogle ScholarCross RefCross Ref
  13. Toke Høiland-Jørgensen, Jesper Dangaard Brouer, Daniel Borkmann, John Fastabend, Tom Herbert, David Ahern, and David Miller. 2018. The express data path: Fast programmable packet processing in the operating system kernel. In Proceedings of the 14th international conference on emerging networking experiments and technologies. 54--66.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Christian Huitema. 2023. picoquic. (2023).Google ScholarGoogle Scholar
  15. IOVisor. 2023. uBPF: Userspace eBPF VM. (2023). https://github.com/iovisor/ubpf.Google ScholarGoogle Scholar
  16. Jana Iyengar and Martin Thomson. 2021. QUIC: A UDP-Based Multiplexed and Secure Transport. RFC 9000. (May 2021). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Mathieu Jadin, Quentin De Coninck, Louis Navarre, Michael Schapira, and Olivier Bonaventure. 2022. Leveraging eBPF to make TCP path-aware. IEEE Transactions on Network and Service Management 19, 3 (2022), 2827--2838.Google ScholarGoogle ScholarCross RefCross Ref
  18. The kernel development community. 2023. BPF Architecture. (2023). https://docs.cilium.io/en/stable/bpf/architecture/#bpf-to-bpf-calls.Google ScholarGoogle Scholar
  19. The kernel development community. 2023. BPF Type Format (BTF). (2023). https://www.kernel.org/doc/html/v6.2/bpf/btf.html.Google ScholarGoogle Scholar
  20. The kernel development community. 2023. eBPF Instruction Set Specification, v1.0. (2023). https://www.kernel.org/doc/html/latest/bpf/instruction-set.html.Google ScholarGoogle Scholar
  21. Joanne Koong. 2021. [PATCH v3 bpf-next 0/4] Add bpf_loop helper. (2021). https://lore.kernel.org/bpf/[email protected]/T/.Google ScholarGoogle Scholar
  22. Daniel Kroening and Michael Tautschnig. 2014. CBMC-C Bounded Model Checker: (Competition Contribution). In Tools and Algorithms for the Construction and Analysis of Systems: 20th International Conference, TACAS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014. Proceedings 20. Springer, 389--391.Google ScholarGoogle ScholarCross RefCross Ref
  23. David Lebrun and Olivier Bonaventure. 2017. Implementing ipv6 segment routing in the linux kernel. In Proceedings of the Applied Networking Research Workshop. 35--41.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Steven McCanne and Van Jacobson. 1993. The BSD Packet Filter: A New Architecture for User-level Packet Capture.. In USENIX winter, Vol. 46.Google ScholarGoogle Scholar
  25. François Michel, Alejandro Cohen, Derya Malak, Quentin De Coninck, Muriel Médard, and Olivier Bonaventure. 2022. FlEC: Enhancing QUIC with application-tailored reliability mechanisms. IEEE/ACM Transactions on Networking (2022).Google ScholarGoogle Scholar
  26. Quentin Monnet. 2023. rbpf: Rust (user-space) virtual machine for eBPF. (2023). https://github.com/qmonnet/rbpf.Google ScholarGoogle Scholar
  27. Andrii Nakryiko. 2020. BPF CO-RE (Compile Once - Run Everywhere). (2020). https://nakryiko.com/posts/bpf-portability-and-co-re/.Google ScholarGoogle Scholar
  28. Akshay Narayan, Frank Cangialosi, Deepti Raghavan, Prateesh Goyal, Srinivas Narayana, Radhika Mittal, Mohammad Alizadeh, and Hari Balakrishnan. 2018. Restructuring endpoint congestion control. In Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication. 30--43.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Louis Navarre, François 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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Richard Prinz et al. 2023. hBPF = eBPF in hardware. (2023). https://github.com/rprinz08/hBPF.Google ScholarGoogle Scholar
  31. Yakov Rekhter, Susan Hares, and Tony Li. 2006. A Border Gateway Protocol 4 (BGP-4). RFC 4271. (Jan. 2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Nicolas Rybowski, Quentin De Coninck, Tom Rousseaux, Axel Legay, and Olivier Bonaventure. 2021. Implementing the plugin distribution system. In Proceedings of the SIGCOMM'21 Poster and Demo Sessions. 39--41.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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.Google ScholarGoogle Scholar
  34. 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.Google ScholarGoogle Scholar
  35. 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/.Google ScholarGoogle Scholar
  36. Viet-Hoang Tran and Olivier Bonaventure. 2020. Beyond socket options: Towards fully extensible Linux transport stacks. Computer Communications 162 (2020), 118--138.Google ScholarGoogle ScholarCross RefCross Ref
  37. David Vernet. 2023. [PATCH bpf-next v3] bpf/docs: Document kfunc lifecycle / stability expectations. (2023). https://www.spinics.net/lists/kernel/msg4676660.html.Google ScholarGoogle Scholar
  38. Robert Wahbe, Steven Lucco, Thomas E Anderson, and Susan L Graham. 1994. Efficient software-based fault isolation. ACM SIGOPS Operating Systems Review 27, 5 (1994), 203--216.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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).Google ScholarGoogle Scholar
  41. xBGP Authors. 2023. LibxBGP. (2023). https://github.com/pluginized-protocols/libxbgp.Google ScholarGoogle Scholar
  42. 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.Google ScholarGoogle Scholar
  43. Mathieu Xhonneux, Fabien Duchene, and Olivier Bonaventure. 2018. Leveraging ebpf for programmable network functions with ipv6 segment routing. In Proceedings of the 14th International Conference on emerging Networking EXperiments and Technologies. 67--72.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Bennet Yee, David Sehr, Gregory Dardyk, J. Bradley Chen, Robert Muth, Tavis Ormandy, Shiki Okasaka, Neha Narula, and Nicholas Fullagar. 2009. Native Client: A Sandbox for Portable, Untrusted x86 Native Code. In 2009 30th IEEE Symposium on Security and Privacy. 79--93. ISSN: 2375-1207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. 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.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. On Integrating eBPF into Pluginized Protocols

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGCOMM Computer Communication Review
              ACM SIGCOMM Computer Communication Review  Volume 53, Issue 3
              October 2023
              22 pages
              ISSN:0146-4833
              DOI:10.1145/3649171
              Issue’s Table of Contents

              Copyright © 2024 Copyright is held by the owner/author(s)

              Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 20 February 2024

              Check for updates

              Qualifiers

              • research-article
            • Article Metrics

              • Downloads (Last 12 months)89
              • Downloads (Last 6 weeks)39

              Other Metrics

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader