Introducing PF_RING 7.8: ZC support for new Intel adapters and much more

Posted · Add Comment

This is to announce a new PF_RING major release 7.8.

The main changes in this release include:

  • The new ice ZC driver supporting E800 Series 100 Gigabit Intel adapters.
  • Hardware timestamp support  for packet trailers and keyframes generated by Arista 7150 Series and Metawatch. This also includes device information such as the Device ID and the Port ID.
  • BPF support for all ZC devices and queues, both to filter received or transmitted traffic.
  • ZC API extensions to further simplify its use, which is one of the main advantages of this library, together with performance and flexibility.
  • FT (Flow Table) improvements for flow export with slicing, which is the ability to deliver periodic flow updates before flow termination. Improved also the application protocol detection.
  • New libpcap v.1.9.1 and tcpdump v.4.9.3 including fixes for several CVEs.
  • Extended nBPF primitives to match Local or Remote IPs.
  • More sample applications and extensions to the existing ones to cover more use cases.

Below you can find the complete changelog.

Enjoy!

Changelog

  • PF_RING Library
    • Add support for Device ID and Port ID to the extended packet header
    • Add Arista 7150 Series hw timestamps support (keyframes and packet trailer parsing and stripping)
    • Add Metawatch Metamako hw timestamps support (packet trailer parsing and stripping)
    • errno EINTR is now returned on breakloop
    • Improve XDP support
    • Replace configure –enable-xdp with –disable-xdp (XDP enabled by default when supported)
  • ZC Library
    • New PF_RING_ZC_DEVICE_METAWATCH_TIMESTAMP flag to enable Metawatch hw timestamps
    • New pfring_zc_get_pool_id API to get the Pool ID
    • New pfring_zc_run_balancer_v2 pfring_zc_run_fanout_v2 APIs to support filtering functions
    • BPF support in ZC interfaces, standard interfaces and SPSC queues
    • Add support for BPF in TX queues
    • Builtin GTP hash now expose GTP info (flags)
    • Fix CRC strip on ixgbevf
  • FT Library
    • New pfring_ft_flow_get_id API to get the flow ID
    • New PFRING_FT_IGNORE_HW_HASH flag to ignore hw packet hash
    • New PKT_FLAGS_FLOW_OFFLOAD_1ST packet flag (first packet of a flow)
    • Add support for flow slicing
    • New API pfring_ft_flow_get_users to get flow users (in case of slicing)
    • Improve application protocol detection
    • Fix bogus-IP headers parsing
  • PF_RING-aware Libpcap/Tcpdump
    • New libpcap v.191
    • New tcpdump v.4.9.3
    • stats.ps_recv now includes packets dropped due to out of buffer space
  • PF_RING Kernel Module
    • Fix channels with standard drivers
    • Fix 64-bit channel mask
    • Fix defragmentation of packets with ethernet padding
    • Fix unnecessary device mapping causing ifindex exhaustion
  • PF_RING Capture Modules
    • Update support for Fiberblaze adapters
    • Fix filtering with Accolade adapters
  • ZC Drivers
    • New ice ZC driver supporting E800 Series Intel adapters
    • Support for Ubuntu 20 LTS
    • Support for CentOS/RedHat 8.2
    • Fix queue attach/detach in ixgbe-zc
    • Support for kernel 5.4
  • nBPF
    • Add support for matching Local/Remote IP (new extended-BPF primitives)
    • Support uppercase AND/OR in extended-BPF filters
    • Fix extended-BPF grammar
  • Examples
    • New zfilter_mq_ipc sample app (packet filtering with multiple threads and fanout to multiple consumer processes)
    • ftflow:
      • New -H option to ignore hw hash setting PFRING_FT_IGNORE_HW_HASH
      • New -t option to print stats only
    • ftflow_dpdk
      • New -l option to run loopback tests
      • Add RX/TX ring size configuration
    • pfsend:
      • New -z option to precompute randomized sequence
      • New -W ID[,ID] option to forge VLAN and QinQ VLAN
    • zbalance_ipc:
      • New -x option to filter by VLAN ID
      • Add ability to set BPF to egress queues
      • Add ability to refresh BPF filters at runtime
      • New -G : option to forward GTP-C traffic to a specific queue
    • New zcount -f option to set BPF filters
    • New pfcount -F option (do not strip FCS)
    • New zcount/zcount_ipc -t option to read the packet payload
    • New pcount -e option to set the capture direction
    • Add VLAN to the flows dumped by ftflow
    • Fix transmission of small packets (less than 60 bytes)
    • Fix CPU affinity in ZC sample applications
  • Misc
    • Handle failures in service restart during package updates
    • Add linux headers dependency to the pfring-dkms package
    • Add actual version/revision to pfring-drivers-zc-dkms packages
    • Fix installed .so library and links
    • Fix ZC DAQ compilation and API update
    • Fix service scripts to avoid command injections