SiPanda’s PANDA Parser vs P4 for Network Datapath Programming Part 2:Why PANDA-C Is the Right Model
(Tom Herbert, SiPanda CTO, April 8, 2021)
Our last blog explored the P4 programming language and its shortcomings for programming the network datapath (L2-L7). The salient question we posed was “is a new programming language necessary?”, to which we answered “NO”. So if P4 is not the right answer, what is? To answer that question we need to consider the requirements. In order to meet the demanding throughput and latency requirements of the next generation of Internet applications and the infrastructure that has to support them, we need to consider the whole end-to-end datapath. As SiPanda we take a holistic view of the problem and our answer to the question is the PANDA programming model.
The goal of PANDA is to provide a ubiquitous programming model for the networking datapath that works across a multitude of software and hardware acceleration platforms, and can be programmed in familiar languages such as C and C++. PANDA accomplishes this by abstracting the underlying hardware from the programming implementation. With PANDA, network engineers can take a program and simply recompile it for different targets, without changing its source code. Given that most very large datacenters (let alone CSPs or hyperscalers) have multiple networking hardware instances in their environments, this is a critical need.
The structure of a PANDA program makes it straightforward to map to hardware constructs for acceleration. For instance, the PANDA parser represents a protocol parser as a tree-like data structure in C, where the data structure can be mapped to a programmable hardware parser. This ensures that network engineers don’t have to learn new programming languages and/or vendor-specific API programming structures to get optimal performance from their network hardware thereby providing an “easy to program” solution that is lacking in P4 and proprietary interfaces as described in part 1. With PANDA, network engineers can simply write the code that they need in C/C++, and let PANDA-aware compilers optimize the code for the target hardware. In turn this “easy to program” model promotes code reuse, simplifies troubleshooting, and greatly expands opportunities for performance optimization.
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.