A comparative study of programmable switches on modern networking hardware - Famelis, Panagiotis; Φαμέλης, Παναγιώτης (2024)
Software Defined Networks (SDN) have revolutionized the way we design and manage networks. By separating the control plane and the data plane, they allow for better abstractions over the network and enable programmability to allow custom solution. In this context, P4 has emerged as a highly promising, domain specific language for data plane programming, facilitating development and implementation of tailor-made protocols addressing specific needs and use cases. Simultaneously, Network Function Virtualization (NFV) has transformed network function management, by transitioning from physical to virtual resources, providing flexibility and efficiency. This dynamic landscape has made software switches an integral component of modern data centers and their networks. Software switches can run on the host server's CPU, or on specialized hardware such as Smart Network Interface Cards (smartNICs), optimized for offloading networking tasks. In this regard, comparisons of different switches and smartNICs is important in order to validate where each solution fits best and pinpoint any problems. In this thesis, we compare four different switches, considering both traditional SDN and P4-enabled SDN solutions (bmv2, OVS, OVS-pdk and P4-DPDK) on two different smartNICs (NVIDIA ConnectX 5 and Xilinx Alveo SN1000) at input rates up to 100 Gbps. Additionally, we investigate how Field Programmable Gate Arrays (FPGAs) can be used to host networking functions. To this end, a special P4 program was also created, converted into an FPGA design using the provided toolchain by Xilinx, and evaluated.