Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3281411.3281426acmconferencesArticle/Chapter ViewAbstractPublication PagesconextConference Proceedingsconference-collections
research-article

Leveraging eBPF for programmable network functions with IPv6 segment routing

Published: 04 December 2018 Publication History

Abstract

With the advent of Software Defined Networks (SDN), Network Function Virtualisation (NFV) or Service Function Chaining (SFC), operators expect networks to support flexible services beyond the mere forwarding of packets. The network programmability framework which is being developed within the IETF by leveraging IPv6 Segment Routing enables the realisation of in-network functions.
In this paper, we demonstrate that this vision of in-network programmability can be realised. By leveraging the eBPF support in the Linux kernel, we implement a flexible framework that allows network operators to encode their own network functions as eBPF code that is automatically executed while processing specific packets. Our lab measurements indicate that the overhead of calling such eBPF functions remains acceptable. Thanks to eBPF, operators can implement a variety of network functions. We describe the architecture of our implementation in the Linux kernel. This extension has been released with Linux 4.18. We illustrate the flexibility of our approach with three different use cases: delay measurements, hybrid networks and network discovery. Our lab measurements also indicate that the performance penalty of running eBPF network functions on Linux routers does not incur a significant overhead.

Supplementary Material

ZIP File (p67-xhonneux.zip)
Supplemental material.
MP4 File (p67-xhonneux.mp4)

References

[1]
2018. BPF and XDP Reference Guide. http://cilium.readthedocs.io/en/latest/bpf/. (2018). {Online; accessed 8 June 2018}.
[2]
2018. BPF helpers - Documentation. https://github.com/qmonnet/bpf-helpers/blob/master/out/bpf-helpers.rst. (2018). {Online; accessed 8 June 2018}.
[3]
2018. Linux Kernel Documentation - Linux Socket Filtering aka Berkeley Packet Filter (BPF). https://www.kernel.org/doc/Documentation/networking/filter.txt. (2018). {Online; accessed 8 June 2018}.
[4]
2018. Linux Weekly News - A thorough introduction to eBPF. https://lwn.net/Articles/740157/. (2018). {Online; accessed 8 June 2018}.
[5]
2018. The LLVM Compiler Infrastructure - Project website. https://llvm.org/. (2018). {Online; accessed 9 June 2018}.
[6]
Ahmed AbdelSalam, Francois Clad, Clarence Filsfils, Stefano Salsano, Giuseppe Siracusano, and Luca Veltri. 2017. Implementation of virtual network function chaining through segment routing in a linux-based nfv infrastructure. In Network Softwarization (NetSoft), 2017 IEEE Conference on. IEEE, 1--5.
[7]
Ahmed Abdelsalam, Stefano Salsano, Francois Clad, Pablo Camarillo, and Clarence Filsfils. 2018. SERA: SEgment Routing Aware Firewall for Service Function Chaining scenarios. In IFIP Networking 2018.
[8]
Ali et al. 2018. Performance Measurement in Segment Routing Networks with IPv6 Data Plane (SRv6). Internet-Draft draft-ali-spring-srv6-pm-02.
[9]
Zafar Ali, Clarence Filsfils, et al. 2018. Operations, Administration, and Maintenance (OAM) in Segment Routing Networks with IPv6 Dataplane (SRv6). Internet-Draft draft-spring-srv6-oam-01.
[10]
Guy Almes, Sunil Kalidindi, Matthew J. Zekauskas, and Al Morton. 2016. A One-Way Delay Metric for IP Performance Metrics (IPPM). RFC 7679. (Jan. 2016).
[11]
Brice Augustin, Xavier Cuvellier, Benjamin Orgogozo, Fabien Viger, Timur Friedman, Matthieu Latapy, Clémence Magnien, and Renata Teixeira. 2006. Avoiding traceroute anomalies with Paris traceroute. In Proceedings of the 6th ACM SIGCOMM conference on Internet measurement. ACM, 153--158.
[12]
Ahmed Bashandy, Clarence Filsfils, et al. 2018. Topology Independent Fast Reroute using Segment Routing. Internet-Draft draft-bashandy-rtgwg-segment-routing-ti-lfa-05.
[13]
Olivier Bonaventure and S Seo. 2016. Multipath TCP deployments. IETF Journal 12, 2 (2016), 24--27.
[14]
Daniel Borkmann. 2016. On getting tc classifier fully programmable with cls bpf. Proceedings of netdev (2016).
[15]
Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese, and David Walker. 2014. P4: Programming Protocol-independent Packet Processors. SIGCOMM Comput. Commun. Rev. 44, 3 (July 2014), 87--95.
[16]
Ken Calvert. 2006. Reflections on network architecture: an active networking perspective. ACM SIGCOMM Computer Communication Review 36, 2 (2006), 27--30.
[17]
Gaurav Dawra, John Brzozowski, John Leddy, and Clarence Filsfil. 2017. SRv6: Network as a Computer and Deployment use-cases. url: https://pc.nanog.org/static/published/meetings/NANOG71/1445/20171005_Dawra_Segment_Routing_Ipv6_v1.pdf. (10 2017). NANOG71, San Jose, CA.
[18]
Yoann Desmouceaux, Pierre Pfister, Jérôme Tollet, Mark Townsley, and Thomas Clausen. 2017. SRLB: The Power of Choices in Load Balancing with Segment Routing. In ICDCS 2017. IEEE, 2011--2016.
[19]
G. Fabregas (Ed). 2016. TR-349: Hybrid Access Broadband Network Architecture. (July 2016). Broadband Forum.
[20]
David Lebrun Fabien Duchene and Olivier Bonaventure. 2018. SRv6Pipes: enabling in-network bytestream functions. In IFIP Networking 2018.
[21]
David C Feldmeier, Anthony J McAuley, Jonathan M Smith, Deborah S Bakin, William S Marcus, and Thomas M Raleigh. 1998. Protocol boosters. IEEE Journal on Selected Areas in Communications 16, 3 (1998), 437--444.
[22]
Clarence Filsfils et al. 2018. SRv6 Network Programming. Internet-Draft draft-filsfils-spring-srv6-network-programming-05.
[23]
Clarence Filsfils, Francois Clad, Pablo Camarillo, Jose Liste, Prem Jonnalagadda, Milad Sharif, Stefano Salsano, and Ahmed AbdelSalam. 2017. IPv6 Segment Routing. In SIGCOMM'17, Industrial demos.
[24]
Clarence Filsfils, Nagendra Kumar Nainar, Carlos Pignataro, Juan Camilo Cardona, and Pierre Francois. 2015. The segment routing architecture. In Global Communications Conference (GLOBECOM), 2015 IEEE. IEEE, 1--6.
[25]
Clarence Filsfils, Stefano Previdi, Les Ginsberg, Bruno Decraene, Stephane Litkowski, and Rob Shakir. 2018. Segment Routing Architecture. RFC 8402. RFC Editor.
[26]
Thomas Graf. 2016. bpf: BPF for lightweight tunnel encapsulation. https://lwn.net/Articles/708020/. (2016). {Online; accessed 8 June 2018}.
[27]
Thomas Graf. 2018. GitHub repository of the bcc project. https://github.com/iovisor/bcc. (2018). {Online; accessed 8 June 2018}.
[28]
Brendan Gregg. 2018. perf Examples. http://www.brendangregg.com/perf.html. (2018). {Online; accessed 8 June 2018}.
[29]
Chuanxiong Guo, Lihua Yuan, Dong Xiang, Yingnong Dang, Ray Huang, Dave Maltz, Zhaoyi Liu, Vin Wang, Bin Pang, Hua Chen, Zhi-Wei Lin, and Varugis Kurien. 2015. Pingmesh: A Large-Scale System for Data Center Network Latency Measurement and Analysis. SIGCOMM Comput. Commun. Rev. 45, 4 (Aug. 2015), 139--152.
[30]
Christian Hopps. 2000. Analysis of an equal-cost multi-path algorithm. RFC 2992. (2000).
[31]
Diego Kreutz et al. 2015. Software-defined networking: A comprehensive survey. Proc. IEEE 103, 1 (2015), 14--76.
[32]
David Lebrun and Olivier Bonaventure. 2017. Implementing IPv6 Segment Routing in the Linux Kernel. In Applied Networking Research Workshop 2017. See https://irtf.org/anrw/2017/anrw17-final3.pdf.
[33]
David Lebrun, Mathieu Jadin, François Clad, Clarence Filsfils, and Olivier Bonaventure. 2018. Software resolved networks: Rethinking enterprise networks with IPv6 segment routing. In SOSR'18. ACM, 6.
[34]
N. Leymann, C. Heidemann, M. Zhang, B. Sarikaya, and M. Cullen. 2017. Huawei's GRE Tunnel Bonding Protocol. RFC 8157. RFC Editor.
[35]
Steven McCanne and Van Jacobson. 1993. The BSD Packet Filter: A New Architecture for User-level Packet Capture. In USENIX winter, Vol. 93.
[36]
Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, and Jonathan Turner. 2008. OpenFlow: enabling innovation in campus networks. ACM SIGCOMM Computer Communication Review 38, 2 (2008), 69--74.
[37]
Rui Miao, Hongyi Zeng, Changhoon Kim, Jeongkeun Lee, and Minlan Yu. 2017. SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs. In SIGCOMM '17. 15--28.
[38]
Stefano Previdi, Clarence Filsfils, et al. 2018. IPv6 Segment Routing Header (SRH). Internet-Draft draft-ietf-6man-segment-routing-header-14.
[39]
Muhammad Shahbaz, Sean Choi, Ben Pfaff, Changhoon Kim, Nick Feamster, Nick McKeown, and Jennifer Rexford. 2016. PISCES: A Programmable, Protocol-Independent Software Switch. In SIGCOMM '16. 525--538.
[40]
Jonathan M Smith, Kenneth L Calvert, Sandra L Murphy, Hilarie K Orman, and Larry L Peterson. 1999. Activating networks: a progress report. Computer 32, 4 (1999), 32--41.
[41]
David L Tennenhouse, Jonathan M Smith, W David Sincoskie, David J Wetherall, and Gary J Minden. 1997. A survey of active network research. IEEE communications Magazine 35, 1 (1997), 80--86.
[42]
David L Tennenhouse and David J Wetherall. 1996. Towards an active network architecture. ACM SIGCOMM Computer Communication Review 26, 2 (1996), 5--17.
[43]
Yibo Zhu, Nanxi Kang, Jiaxin Cao, Albert Greenberg, Guohan Lu, Ratul Mahajan, Dave Maltz, Lihua Yuan, Ming Zhang, Ben Y. Zhao, and Haitao Zheng. 2015. Packet-Level Telemetry in Large Datacenter Networks. In SIGCOMM '15. 479--491.

Cited By

View all
  • (2024)SRv6-Based Edge Service Continuity in 5G Mobile NetworksFuture Internet10.3390/fi1604013816:4(138)Online publication date: 19-Apr-2024
  • (2024)Eliminating eBPF Tracing Overhead on Untraced ProcessesProceedings of the ACM SIGCOMM 2024 Workshop on eBPF and Kernel Extensions10.1145/3672197.3673431(16-22)Online publication date: 4-Aug-2024
  • (2024)Merlin: Multi-tier Optimization of eBPF Code for Performance and CompactnessProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651387(639-653)Online publication date: 27-Apr-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CoNEXT '18: Proceedings of the 14th International Conference on emerging Networking EXperiments and Technologies
December 2018
408 pages
ISBN:9781450360807
DOI:10.1145/3281411
Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 December 2018

Permissions

Request permissions for this article.

Check for updates

Badges

Qualifiers

  • Research-article

Conference

CoNEXT '18
Sponsor:

Acceptance Rates

Overall Acceptance Rate 198 of 789 submissions, 25%

Upcoming Conference

CoNEXT '24

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)99
  • Downloads (Last 6 weeks)7
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)SRv6-Based Edge Service Continuity in 5G Mobile NetworksFuture Internet10.3390/fi1604013816:4(138)Online publication date: 19-Apr-2024
  • (2024)Eliminating eBPF Tracing Overhead on Untraced ProcessesProceedings of the ACM SIGCOMM 2024 Workshop on eBPF and Kernel Extensions10.1145/3672197.3673431(16-22)Online publication date: 4-Aug-2024
  • (2024)Merlin: Multi-tier Optimization of eBPF Code for Performance and CompactnessProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651387(639-653)Online publication date: 27-Apr-2024
  • (2024)Composing eBPF Programs Made Easy With HIKe and eCLATIEEE Transactions on Network and Service Management10.1109/TNSM.2023.332562421:2(1359-1371)Online publication date: Apr-2024
  • (2024)Morpheus: A Run Time Compiler and Optimizer for Software Data PlanesIEEE/ACM Transactions on Networking10.1109/TNET.2023.334628632:3(2269-2284)Online publication date: 1-Jun-2024
  • (2024)Achieving Best-path Selection at Line Rate through the SRv6 Live-Live BehaviorNOMS 2024-2024 IEEE Network Operations and Management Symposium10.1109/NOMS59830.2024.10575338(1-5)Online publication date: 6-May-2024
  • (2024)Practicality of in-kernel/user-space packet processing empowered by lightweight neural network and decision treeComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2024.110188240:COnline publication date: 1-Feb-2024
  • (2023)Tigger: A Database Proxy That Bounces with User-BypassProceedings of the VLDB Endowment10.14778/3611479.361153016:11(3335-3348)Online publication date: 24-Aug-2023
  • (2023)Micro SIDs: A Solution for Efficient Representation of Segment IDs in SRv6 NetworksIEEE Transactions on Network and Service Management10.1109/TNSM.2022.320526520:1(774-786)Online publication date: Mar-2023
  • (2023)On Practicality of Kernel Packet Processing Empowered by Lightweight Neural Network and Decision Tree2023 14th International Conference on Network of the Future (NoF)10.1109/NoF58724.2023.10302811(89-97)Online publication date: 4-Oct-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media