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
Packetvisoruses thepv::Nicstructure 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
Packetvisoris 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
Packetvisorsupports bothXDPNative(=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.