Crate pv

Source
Expand description

§Packetvisor

Packetvisor is a Raw Packet I/O framework based on the Rust language. It can process packets much faster than Standard Sockets through the Linux Kernel’s eXpress Data Path (XDP).

§Key features

1. Bypassing the Network Stack in the Linux Kernel and Achieving Zero-Copy with XDP

  • Packetvisor completely bypasses the Network Stack in the Linux kernel using XDP, reducing unnecessary overhead in the packet processing.

2. High-Speed Packet Processing with the pv::Nic Structure

  • Packetvisor uses the pv::Nic structure to attach to specific Network Interface. This structure utilizes XDP_SOCKET(XSK) to directly process transmit and receive packets, allowing applications to directly transmit and receive packets in the application space. This helps to simplify the data processing process and improve performance.

3. Easy Development with Rust

  • Packetvisor is developed based on the Rust language, so you can use Rust to create high-performance firewalls and implement tunneling protocols with just a few dozen lines of code.

4. Automatically detects XDP mode

  • Packetvisor supports both XDP Native(=DRV) and Generic(=SKB) modes, and the mode selection is automatically determined by Packetvisor.

§Examples

Various examples for packet echo, filtering, forwarding, etc. can be found in the examples directory.

Structs§

Nic
NIC Structure that supports Packetvisor
Packet
Packet Structure used by Packetvisor