We come back from a short winter break on January 10.
Speaker: Leonardo Linguaglossa
Title: Batched packet processing for software routers
Abstract: In the last decade, a number of frameworks started to appear that implement, directly in user-space with kernel-bypass mode, high-speed software data plane functionalities on commodity hardware.
Vector Packet Processor (VPP) is one of such frameworks, representing an interesting point in the design space in that it offers: (i) in user-space networking, (ii) the flexibility of a modular router (Click and variants) with (iii) the benefits brought by techniques such as batch processing that have become commonplace in lower-level building blocks of high-speed networking stacks (such as netmap or DPDK).
Similarly to Click, VPP lets users arrange functions as a processing graph, providing a full-blown stack of network functions. However, unlike Click where the whole tree is traversed for each packet, in VPP each traversed node processes all packets in the batch before moving to the next node.
This design choice enables several code optimisations that greatly improve the achievable processing throughput. Interestingly, the efficiency of the framework is tightly coupled with the number of packets processed in each single batch: the closer the batch size is to its maximum, the better performance we will observe. The goal of this work is to provide a software-based tuning of software routers' operational point to bring the most of batching benefits.