{"title":"SRA:利用AF_XDP可编程网络功能与IPv6段路由","authors":"Baosen Zhao, Yifang Qin, Wanghong Yang, Pengfei Fan, Xu Zhou","doi":"10.1109/LCN53696.2022.9843244","DOIUrl":null,"url":null,"abstract":"The IPv6 Segment Routing (SRv6) is a promising solution to support services such as service function chain (SFC) and network function virtualization (NFV). But the SRv6 implementation in the Linux kernel is being criticized for lack of programmability and scalability. In this paper, we present an efficient implementation of the SRv6 data plane based on AF_XDP (SRA) in userspace. By leveraging the AF_XDP supported in the Linux kernel, we implement a high-performance and programmable framework that allows network operators to encode their own network functions. Moreover, these functions can automatically execute in userspace and Linux network namespaces while processing specific packets. In addition, SRA also implements SR-proxy to support the Virtual Network Functions (VNFs) chaining based on SRv6. Experimental results show that SRA achieves high performance and enhances integration with the kernel ecosystem. In all scenarios, SRA processes faster than other implementations, such as the SRv6 implementation in the Linux kernel and SREXT module, and in some scenarios, SRA is even 10 times faster than the SRv6 implementation in the Linux kernel. Meanwhile, the proposed architecture can be easily extended to support new SRv6 behaviors and network functions.","PeriodicalId":303965,"journal":{"name":"2022 IEEE 47th Conference on Local Computer Networks (LCN)","volume":"27 12","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-09-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"SRA: Leveraging AF_XDP for Programmable Network Functions with IPv6 Segment Routing\",\"authors\":\"Baosen Zhao, Yifang Qin, Wanghong Yang, Pengfei Fan, Xu Zhou\",\"doi\":\"10.1109/LCN53696.2022.9843244\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The IPv6 Segment Routing (SRv6) is a promising solution to support services such as service function chain (SFC) and network function virtualization (NFV). But the SRv6 implementation in the Linux kernel is being criticized for lack of programmability and scalability. In this paper, we present an efficient implementation of the SRv6 data plane based on AF_XDP (SRA) in userspace. By leveraging the AF_XDP supported in the Linux kernel, we implement a high-performance and programmable framework that allows network operators to encode their own network functions. Moreover, these functions can automatically execute in userspace and Linux network namespaces while processing specific packets. In addition, SRA also implements SR-proxy to support the Virtual Network Functions (VNFs) chaining based on SRv6. Experimental results show that SRA achieves high performance and enhances integration with the kernel ecosystem. In all scenarios, SRA processes faster than other implementations, such as the SRv6 implementation in the Linux kernel and SREXT module, and in some scenarios, SRA is even 10 times faster than the SRv6 implementation in the Linux kernel. Meanwhile, the proposed architecture can be easily extended to support new SRv6 behaviors and network functions.\",\"PeriodicalId\":303965,\"journal\":{\"name\":\"2022 IEEE 47th Conference on Local Computer Networks (LCN)\",\"volume\":\"27 12\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-09-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 IEEE 47th Conference on Local Computer Networks (LCN)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/LCN53696.2022.9843244\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE 47th Conference on Local Computer Networks (LCN)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/LCN53696.2022.9843244","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
摘要
SRv6 (IPv6 Segment Routing)是一种很有前途的解决方案,可以支持SFC (service function chain)和NFV (network function virtualization)等业务。但是Linux内核中的SRv6实现因缺乏可编程性和可伸缩性而受到批评。在本文中,我们提出了一种在用户空间中基于AF_XDP (SRA)的SRv6数据平面的有效实现。通过利用Linux内核中支持的AF_XDP,我们实现了一个高性能的可编程框架,该框架允许网络运营商对自己的网络功能进行编码。此外,在处理特定的数据包时,这些函数可以在用户空间和Linux网络名称空间中自动执行。此外,SRA还实现了SR-proxy,支持基于SRv6的VNFs (Virtual Network Functions)链。实验结果表明,该算法取得了较高的性能,增强了与内核生态系统的集成。在所有场景中,SRA的处理速度都比其他实现快,例如Linux内核中的SRv6实现和SREXT模块,在某些场景中,SRA甚至比Linux内核中的SRv6实现快10倍。同时,所提出的架构可以很容易地扩展,以支持新的SRv6行为和网络功能。
SRA: Leveraging AF_XDP for Programmable Network Functions with IPv6 Segment Routing
The IPv6 Segment Routing (SRv6) is a promising solution to support services such as service function chain (SFC) and network function virtualization (NFV). But the SRv6 implementation in the Linux kernel is being criticized for lack of programmability and scalability. In this paper, we present an efficient implementation of the SRv6 data plane based on AF_XDP (SRA) in userspace. By leveraging the AF_XDP supported in the Linux kernel, we implement a high-performance and programmable framework that allows network operators to encode their own network functions. Moreover, these functions can automatically execute in userspace and Linux network namespaces while processing specific packets. In addition, SRA also implements SR-proxy to support the Virtual Network Functions (VNFs) chaining based on SRv6. Experimental results show that SRA achieves high performance and enhances integration with the kernel ecosystem. In all scenarios, SRA processes faster than other implementations, such as the SRv6 implementation in the Linux kernel and SREXT module, and in some scenarios, SRA is even 10 times faster than the SRv6 implementation in the Linux kernel. Meanwhile, the proposed architecture can be easily extended to support new SRv6 behaviors and network functions.