ON THIS PAGE
Juniper Cloud-Native Router vRouter Datapath
Cloud-Native Router supports both Data Plane Development Kit (DPDK) and extended Berkley Packet Filter (eBPF) eXpress Data Path (XDP) datapath based vRouter forwarding plane.
The Cloud-Native Router 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 Cloud-Native Router Features for eBPF XDP
The following Cloud-Native Router Features are supported with eBPF XDP for IPv4 traffic only:
-
L3 traffic with Cloud-Native Router 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.