论文标题
SRPERF:IPv6段路由的性能评估框架
SRPerf: a Performance Evaluation Framework for IPv6 Segment Routing
论文作者
论文摘要
段路由是松散源路由的一种形式。它提供了在数据包标题中包含指令列表(称为段)的能力。首先使用MPLS DataPlane实施了段路由体系结构,然后是IPv6 DataPlane(SRV6)。 IPv6细分路由(SRV6)是支持高级服务的有前途解决方案,例如交通工程,服务功能链,虚拟专用网络和负载平衡。在包括Linux内核和VPP软件路由器以及硬件设备(包括Linux内核和VPP软件路由器)的许多不同软件转发引擎中,SRV6数据平面受支持。在本文中,我们介绍了SRPERF,这是SRV6的软件和硬件实现的性能评估框架。 SRPERF能够执行不同的基准测试,例如吞吐量和延迟。对于吞吐量测试,我们使用局部脱落率(PDR)来表征正在测试的系统。可以轻松扩展SRPERF的体系结构,以支持新的基准测试方法以及不同的SRV6实现。我们已经使用SRPERF来评估Linux内核和VPP中SRV6实现的性能。 SRPERF是在软件转发引擎的背景下可以以快速添加的新功能的背景下的宝贵工具,因为它可以帮助实验者验证其工作。特别是,我们描述了如何利用SRPERF来验证在Linux内核主线中缺少或错误实现的某些SRV6行为的实现。
Segment Routing is a form of loose source routing. It provides the ability to include a list of instructions (called segments), in the packet headers. The Segment Routing architecture has been first implemented with the MPLS dataplane and then, quite recently, with the IPv6 dataplane (SRv6). IPv6 Segment Routing (SRv6) is a promising solution to support advanced services such as Traffic Engineering, Service Function Chaining, Virtual Private Networks, and Load Balancing. The SRv6 data-plane is supported in many different software forwarding engines including the Linux kernel and VPP software router, as well as in hardware devices. In this paper, we present SRPerf, a performance evaluation framework for software and hardware implementations of SRv6. SRPerf is able to perform different benchmarking tests such as throughput and latency. For throughput tests, we use the Partial Drop Rate (PDR) to characterize a system under test. The architecture of SRPerf can be easily extended to support new benchmarking methodologies as well as different SRv6 implementations. We have used SRPerf to evaluate the performance of the SRv6 implementation in the Linux kernel and in VPP. SRPerf is a valuable tool in the context of software forwarding engines where new features can be added at fast pace, as it helps experimenters to validate their work. In particular, we describe how we have leveraged SRPerf to validate the implementation of some SRv6 behaviors that were missing or wrongly implemented in the Linux kernel mainline.