PANDA 1.3: High Performance Programmable Parser for the Linux Kernel!
Tom Herbert, SiPanda CTO, Wednesday August 4, 2021
Last week we released version 1.3 of the Programming and Network Datapath Acceleration (PANDA) framework to GitHub! Version 1.3 includes a number of exciting features (you can see the release notes here), primary of which is the ability to include the PANDA parser in the Linux kernel as a protocol parser. For those implementing new network protocols, parsing these within the Linux kernel is a critical capability – it significantly speeds up the processing of these new protocols, enhancing overall system performance.
PANDA v1.3 has several attributes which make it a great choice for parsing network protocols. As a starter, the PANDA parser is fully programmable using a C/C++ front-end. This approach simplifies integration of PANDA-produced code with the rest of the networking stack. The PANDA parser has a clean architecture that is defined by declarative representation, with the ability to create arbitrary parse graphs. PANDA 1.3 also provides built-in support for TLVs, flag fields, and metadata frames, simplifying the parsing of very complex network protocols.
But one of the most important capabilities of PANDA 1.3 when used as a kernel-based parser is its support for any backend software/hardware targets. PANDA 1.3 can be programmed to output kernel code that makes use of specialized acceleration hardware that resides in many network interface cards. Since this is all done “auto-magically” in the PANDA back-end, code can easily be ported across multiple hardware and/or software accelerators without having to write code specifically for those targets – a critical capability for shops running on disparate network interface hardware.
All of this is operationalized through the panda parser, which takes the front-end code and turns it into code that is optimized for the back-end hardware and/or software. The result is a solution with arbitrary flexibility to support new protocols, and with extremely high performance relative to the native Linux protocol parser known as “Flow dissector”.
SiPanda was created to rethink the network datapath and bring both flexibility and wire-speed performance at scale to networking infrastructure. The SiPanda architecture enables data center infrastructure operators and application architects to build solutions for cloud service providers to edge compute (5G) that don’t require the compromises inherent in today’s network solutions. For more information, please visit www.sipanda.io. If you want to find out more about PANDA, you can email us at firstname.lastname@example.org.