PF_RING ZC

Zero-Copy RX/TX Packet Processing at 100+ Gbit

PF_RING ZC (Zero Copy) is a flexible packet processing framework that allows you to achieve 100+ Gbit line rate packet processing (both RX and TX) at any packet size. It implements zero copy operations including patterns for inter-process and inter-VM (KVM) communications. 

It features a clean and flexible API that implement simple building blocks (queue, worker and pool) that can be used from threads, applications and Virtual Machines to implement zero-copy packet processing patterns.

PF_RING ZC drivers can be used both in kernel or bypass mode. Once installed, the drivers operate as standard Linux drivers where you can do normal networking (e.g. ping or SSH). When used from PF_RING they are quicker than vanilla drivers, as they interact directly with it. When opening the same interface in zero-copy mode (e.g. pfcount -i zc:eth1) the device becomes unavailable to standard networking as it is accessed in kernel bypass mode. Once the application accessing the device is closed, standard networking activities can take place again.

at a glance

Key Features

Ideal for Every Environment

Use Cases

Custom Zero-Copy Load-Balancing

PF_RING ZC comes with a simple API able to create a complex application in a few lines of code. PF_RING includes a sample application zbalance_ipc implementing load-balancing using this API.

The following example shows how to create an aggregator + balancer application in 6 lines of code.

PF_RING ZC can perform zero copy operations across threads, applications and VMs. It is possible to balance in zero-copy packets across applications or implement packet fanout, which is merely sending the same packet (by reference) to multiple consumer applications, all in zero-copy, at line rate.

PF_RING ZC allows you to forward (both RX and TX) packets in zero-copy to KVM Virtual Machines without using techniques such as PCIe passthrough. Thanks to the dynamic creation of ZC devices on VMs, you can capture and send traffic in zero-copy from VMs without having to patch the KVM hypervisor code, or start KVM after your ZC devices have been created. In essence it is possible to capture traffic at line rate on KVM VMs using the same command you would use on a physical host, without changing a single line of code.

In PF_RING ZC you can use the zero-copy framework even with non-PF_RING aware drivers. This means that you can dispatch, process, originate, and inject packets into the zero-copy framework even though they have not been originated from ZC devices.

Once the packet has been copied (one-copy) to the ZC world, from then onwards the packet will always be processed in zero-copy during all his lifetime. For instance the zbalance_ipc demo application can read packet in 1-copy mode from a non-PF_RING aware device (e.g. a WiFI-device or a Broadcom NIC) and send them inside ZC for performing zero-copy operations with them.

Contrary to other kernel-bypass technologies, with PF_RING ZC you can decide at any time what packets received in kernel-bypass you want to inject into the standard Linux IP stack. PF_RING comes with an IP stack packet injection module called stack that allows you to select what packets received in kernel-bypass need to be injected to the standard IP stack. All you need to do is to open the device “stack:eth1” and send your packets for pushing them to the IP stack as if they were received from eth1.

Specifications

Tech Specs

x86 64-bit platforms are supported (Intel and AMD)

models

Choose Your Model

Did you already install the software?

Select the model. Different models unlock different adapters and capacity. Check the comparison table.

Intel 1 Gbit
49€
  • Supported Intel families: e1000e, igb
  • Hardware timestamps (on selected models)
  • 1 Gbit
Buy
Intel/NVIDIA 10-100 Gbit
149€
  • Supported Intel families: ixgbe, i40e, ice
  • Supported NVIDIA/Mellanox models: ConnectX 5/6
  • Hardware timestamps (on selected models)
  • Hardware filters (on selected models)
  • 10-100 Gbit
Buy
Napatech/Silicom FPGA
249€
  • Supported adapters: Napatech, Silicom/Fiberblaze
  • Hardware filtering
  • Hardware timestamps (nanoseconds)
  • PCAP segment mode
  • Flow offload (on Napatech)
  • 10-100 Gbit
Buy