Today we have released PF_RING 6.0.3, a maintenance release that includes many fixes and small changes. The release changelog is listed below.
- PF_RING Library
- New pfring_open() flag PF_RING_USERSPACE_BPF to force userspace BPF instead of in-kernel BPF with standard drivers
- New API pfring_get_card_settings() to read max packet length and NIC rx/tx ring size
- New Napatech support
- Support for up to 64 channels with standard drivers, pfring_set_channel_mask() has a 64bit channel mask parameter now
- Reworked IPv6 parsing
- Configure parameter –disable-numa to remove libnuma dependency
- ARM fixes
- Minor bpf memory leak fix
- ZC Library
- New pfring_zc_open_device() flag PF_RING_ZC_DEVICE_SW_TIMESTAMP to force sw timestamp
- New API pfring_zc_get_queue_id() to read SPSC queue ID or interface index
- New DAQ module for ZC
- pfring_zc_send() is now returning errno=EMSGSIZE on packet too long
- Fix for receiving packets from stack using
- Fix for send_pkt_burst() with IPC SPSC queues
- Fix for drop stats when using SPSC queues over the standard pf_ring API
- Fix for /proc stats in IPC mode when using the standard pf_ring API
- Fix for packet timestamp when using SPSC queues over the standard pf_ring API
- Fix for stats when inter-process SPSC queues are used
- PF_RING-aware Libpcap
- New PF_RING-aware libpcap v.1.6.2
- New .npcap (compressed pcap) files support
- Fix for libpcap over ZC, reworked poll support
- PF_RING kernel module
- New eth_type field in kernel filters
- Reworked BPF support
- Polling Mode/Breed under /proc is now “ZC” for ZC devices (in place of DNA)
- Increased max dev name size
- transparent_mode is now deprecated
- Fix for ‘any’ device
- Fix for kernel >=3.19
- Fix for hw vlan strip in case of multiple sockets on the same device (standard drivers)
- Fix for kernel Oops (rx vlan offload check)
- PF_RING-aware/ZC Drivers
- New Intel i40e (X710/XL710) ZC drivers
- New ixgbe ZC driver v.3.22.3
- ixgbe poll fix
- Fixes for Centos/RH 6.6
- Fixes for kernel >=3.16
- Examples
- New zbalance_DC_ipc: a master process balancing packets to multiple consumer processes,
using multiple threads for packet filtering in a Divide-and-Conquer fashion,
with an optional stage for sorting filtered packets before distribution - New zreplicator: example application receiving packets from n ingress interfaces and replicating them to m egress interfaces
- pfcount: -N parameter to exit after reading packets
- zsend:
- IPC support to attach to an external cluster/queue
- added -P to use pulse-time thread for tx rate control
- added -Q to enable VM support (to attach a consumer running in a VM)
- zbalance_ipc:
- ability to create ingress sw queues (instead of opening interfaces) with -i Q (comma-separated list of Q and interfaces is allowed)
- added daemon mode
- added pid file
- proc stats fix
- interface and per-queue stats with -p
- pflatency:
- added -o and -c
- max/min/avg stats
- zfifo fixes
- New zbalance_DC_ipc: a master process balancing packets to multiple consumer processes,