A novel programmable software datapath for software-defined networking
Tomasz Osiński, Jan Palimąka, Mateusz Kossakowski, Frédéric Dang Tran, El-Fadel Bonfoh, Halina Tarasiuk
Abstract
This paper introduces NIKSS (Native In-Kernel SDN Switch), a novel programmable software switch for Software-Defined Networking. NIKSS leverages P4 as a high-level programming abstraction, Portable Switch Architecture (PSA) as a fully-featured P4 forwarding model and eBPF as a packet processing engine. The main component of NIKSS is the PSA-eBPF compiler that translates P4 programs into code that runs inside the eBPF execution environment. However, enabling a high degree of programmability for data planes without sacrificing performance or operability is a challenge. Therefore, NIKSS provides two alternative designs of generated code, with different trade-offs between supported PSA features and achieved performance. We demonstrate that NIKSS can be used successfully as a P4 software switch, with an acceptable performance gap compared to native eBPF programming. We also provide an extensive performance evaluation, proving that NIKSS might be a viable alternative to existing software switches.