Introducing PF_RING 7.2, including PF_RING FT and nBroker

Posted · Add Comment

This is to announce a new PF_RING major release 7.2 that includes:

  • Support for Ubuntu 18 as well the latest Debian and CentOS kernels.
  • Many improvements to the FPGA capture modules and the ZC library (that is now able to reserve head room for zero-copy traffic encapsulation/decapsulation, just to mention one).
  • Full support for Containers and Namespaces.

Besides many improvements and bug fixes, this release also introduces PF_RING FT, an highly optimized library that assists flow-processing application with L7 classification and filtering, and nBroker, a framework for hardware-based traffic steering and filtering at 100 Gbit on Intel RRC (FM10K).

This is the complete changelog of the 7.2 release:

  • ZC Library
    • New API pfring_zc_pkt_buff_pull / pfring_zc_pkt_buff_push to manage buffer head room
    • New builtin hash pfring_zc_builtin_gre_hash with support for GRE tunneling
    • zbalance_ipc -m 5 option for enabling GRE hashing
    • Support for up to 64 queues in pfring_zc_send_pkt_multi and pfring_zc_distribution_func
    • Fix for attaching to ZC IPC queues from containers
  • FT Library (New)
    • L7 flow classification and filtering library
    • Event-driven capture-agnostic API
    • Sample applications
    • ftflow: flow records generation with PF_RING capture
    • ftflow_pcap: flow records generation with PCAP capture
    • ftflow_dpdk: flow records generation with DPDK capture
    • fttest: performance benchmarking tool
    • zbalance_ipc extension to process flows and filter packets
  • nBroker (New)
    • Traffic steering and filtering on Intel RRC (FM10K adapters)
    • Daemon to drive the adapter (nbrokerd)
    • API to configure the adapter using a C library (nbrokerlib)
    • Command-line tool with auto-completion to configure the adapter using scripts (nbroker-cli)
    • Low-level library used by nbrokerd to drive the adapter (rrclib)
  • PF_RING-aware Libpcap
    • PCAP_PF_RING_USERSPACE_BPF env var to force userspace filtering instead of kernel filtering
  • PF_RING Kernel Module
    • Full support for namespaces and containers
    • Fixed skbuff forwarding with fast-tx using reflect_packet
    • Fixed VLAN support in BPF with kernel extensions
    • Fixed support for NetXtreme cards with multiple queues
    • Fixed sw hash filtering for IPv6
    • Fixed intel_82599_perfect_filter_hw_rule VLAN byte order
    • Fixed huge rings (high number of slots or huge slot size)
    • Fixed VLAN offset and packet hash in case of QinQ and VLAN offload
    • Support for Ubuntu 18
    • Support for latest Centos 7 kernel
    • Support for latest Debian 8 kernel
  • PF_RING Capture Modules
    • Released source code for FPGA capture modules including Endace, Exablaze, Inveatech, Mellanox, Netcope
    • Accolade lib updates
      • New flag PF_RING_FLOW_OFFLOAD_NOUP to enable flow offload without flow updates (standard raw packets are received, flow id is in the packet hash)
      • Automatically generate the rule ID using rule_id = FILTERING_RULE_AUTO_RULE_ID
      • Support for accolade 200Ku Flex adapters
    • Fiberblaze lib updates
      • Packet recv in chunk mode
    • Fixed extraction from npcap/timeline in case of empty PCAP files in the dump set
    • Endace DAG updates
      • Setting extended_hdr.pkt_hash from ERF FlowID or Packet Signature extension headers if available
      • Support for pfring_set_application_name
      • Support for pfring_dag_findalldevs
    • Napatech lib updates
      • Support for sdk v10
  • Drivers
    • e1000e zc driver update v.3.4.0.2
    • i40e zc driver update v.2.4.6
    • ixgbe zc driver update v.5.3.7
    • igb zc driver update v.5.3.5.18
    • Fixed interrupts handling on i40e when in zc mode, this fixes the case where packets are received in batches of 4/8 packets
    • Using nbrokerd for initializing FM10K adapters and configuring the RRC switch
  • nBPF
    • Fixed rules constraints
  • Misc
    • Reworked init.d systemd support
    • New pf_ringctl script to manage pf_ring and drivers (this is used by init.d/systemd)
    • Documentation improvements, Doxygen integration with “read the docs”