ON THIS PAGE
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
This is a Juniper Technology Preview (Tech Preview) feature.
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
When deploying JCNR, you can configure the agentModeType
attribute in
the helmchart to select either a DPDK based or eBPF XDP datapath based vRouter.