Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JCNR vRouter Datapath

SUMMARY JCNR supports both Data Plane Development Kit (DPDK) and extended Berkley Packet Filter (eBPF) eXpress Data Path (XDP) datapath based vRouter forwarding plane.

The JCNR vRouter forwarding plane supports both the Data Plane Development Kit (DPDK) and extended Berkley Packet Filter (eBPF) eXpress Data Path (XDP) datapath for high-speed packet processing.

Data Plane Development Kit (DPDK)

DPDK is an open-source set of libraries and drivers for rapid packet processing. DPDK enables fast packet processing by allowing network interface cards (NICs) to send direct memory access (DMA) packets directly into an application’s address space. This method of packet routing lets the application poll for packets, which prevents the overhead of interrupts from the NIC.

DPDK's poll mode drivers (PMDs) use the physical interface (NIC) of a VM's host instead of the Linux kernel's interrupt-based drivers. The NIC's registers operate in user space, which makes them accessible by DPDK’s PMDs. As a result, the host OS does not need to manage the NIC's registers. This means that the DPDK application manages all packet polling, packet processing, and packet forwarding of a NIC. Instead of waiting for an I/O interrupt to occur, a DPDK application constantly polls for packets and processes these packets immediately upon receiving them.

DPDK datapath has high CPU usage due to the poll mode and has high maintenance costs. Also, when implementing DPDK, the NIC is no longer available in the kernel, hence sockets and forwarding plane code must be re-implemented.

eBPF XDP

JCNR also supports an eBPF XDP datapath based vRouter. eBPF (extended Berkley Packet Filter) is a Linux kernel technology that executes user-defined programs inside a sandbox virtual machine. It enables low-level networking programs to execute with optimal performance. The eXpress Data Path (XDP) frameworks enables high-speed packet processing for the eBPF programs. JCNR supports XDP in native (driver) mode on Baremental server deployments for limited drivers only. Please see the System Requirements for more details.

Benefits of eBPF XDP Datapath

Benefits of eBPF XDP Datapath include:

  • An eBPF XDP kernel program and its custom library is easier to maintain across kernel versions and has wider kernel compatibility. The kernel dependencies are limited to a small set of eBPF helper functions.
  • The program is safer since it is analysed by the in-built Linux eBPF verifier before it is loaded into the kernel.
  • Offers higher performance using kernel bypass and omitting socket buffer (skb) allocation.

Supported JCNR Features for eBPF XDP

The following JCNR Features are supported with eBPF XDP for IPv4 traffic only:

  • L3 traffic with JCNR deployed as a sending, receiving or transit router

  • VRF-Lite

  • MPLSoUDP

  • IGPs—OSPF, IS-IS

  • BGP route advertisements

Note:

When deploying JCNR, you can configure the agentModeType attribute in the helmchart to select either a DPDK based or eBPF XDP datapath based vRouter.