Here at Netgate®, we talk a lot about Vector Packet Processing (VPP), and for good reason. It is the ‘engine’ of the TNSR® data plane that scales packet processing up to two orders of magnitude beyond what is possible with traditional kernel-space product designs. In a separate blog, we addressed this in some detail. There is a second component in the TNSR data plane, Data Plane Development Kit (DPDK). This blog describes the role DPDK plays within TNSR - but also why it alone is not the vRouter end game.
DPDK is an open-source software project managed by the Linux Foundation. At a high level, it provides a set of data plane libraries and network interface controller polling-mode drivers. These libraries and drivers enable the work of moving packets between network interface cards (NICs) and the kernel to be taken out of kernel space, and performed in user space. This is referred to as kernel bypass, and allows networking applications, like a router, to run significantly faster.
Let’s take a closer look. In a traditionally-designed router, two key router functions are performed in the kernel:
the work of handling interrupts - messages from a NIC that a packet has been received
the packet processing instruction set - reading the network address information in the packet header to determine its final destination, and then using information in its routing table or routing policy to direct the packet to the next hop towards that destination
DPDK eliminates the need for interrupts. Interrupts are events external to a currently executing program on a CPU, e.g., an announcement that a network packet has arrived on a NIC. Interrupts take the CPU away from its primary task at hand - which in the case of a router, is the core work of making millions of packet processing decisions per second. Rather than interrupts, DPDK uses a poll mode driver (PMD). A PMD monitors NIC activity full time - continuously grabbing packets as they arrive. In order for DPDK to do its job, however, it requires a dedicated CPU core. Historically this was an expensive proposition, but today’s hardware appliances used to underpin vRouter software have as many as 8 to 64 CPU cores at their disposal. Dedicating a core or two for picking packets off a set of NICs is well worth the cost, given the return of extremely fast packet sending and receiving. In fact, there are numerous vRouters on the market today that have their performance advantages over traditional routers based entirely on DPDK.
This is where TNSR is different. TNSR leverages both DPDK and VPP in its data plane. Accelerating the sending and receiving of packets to a packet processing engine has clear merit. But the heavy work remains with packet processing itself. Combining the two technologies is what enables TNSR to blow past products based on DPDK alone.
Head over to the TNSR software section of our website to learn more about the product, its applications, and how TNSR software can dramatically boost your edge and cloud router performance, as well as stretch your IT budget.