Abstract:
In public cloud, flexible network functions are required to enforce network isolation, service-level agreement and security for multi-tenants. While software-based network functions are flexible, they have limited capacity with low processing throughput and induce high latency. FPGA has good programmability and high processing throughput, and it is appealing due to the balance between hardware performance and software flexibility. However, how to use FPGA to realize network function lacks a unified and reconfigurable architecture. This paper presents DrawerPipe, a reconfigurable pipeline model. This module abstracts the packet processing into five standard “drawers”. And operators can load their modules in these “drawers” which are combined as a packet processing pipeline. As the drawers are independent from each other, the modules loaded in different drawers can be excurted in parallel. Furthermore, we add a function-independent programmable interface between modules to adapt the communication format between different modules, which also helps to release the constraint imposed by the interface definition. Finally, we implement a variety of network functions based on DrawerPipe. The result shows that DrawerPipe not only has good scalability, but also has the advantages of wire-speed processing performance and high resource utilization, which can be used for rapid deployment of network functions.