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 thepv::Nic
structure to attach to specific Network Interface. This structure utilizesXDP_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 bothXDP
Native(=DRV)
andGeneric(=SKB)
modes, and the mode selection is automatically determined byPacketvisor
.
§Examples
Various examples for packet echo, filtering, forwarding, etc. can be found in the examples directory.