Skip to content

Libtrace 4.0.16

Compare
Choose a tag to compare
@salcock salcock released this 19 Mar 01:35
· 477 commits to master since this release

New features

  • Added support for PF_RING (via pfring).
  • Allow input configuration options to be specified as part of the libtrace URI. Options are specified as comma-separated key=value strings and end with a : character, e.g coremap=[1,2]:int:eth0.
  • New API function trace_hold_packet(), which allows users to safely retain a reference to a packet that has been received via a format for later use.
  • Added coremap option, trace_set_coremap(), to bind per-packet threads to physical CPU cores

Bug fixes

  • Fixed bug where XDP packet buffers were not released back to the fill queue properly.
  • Fixed thread-safety issues with freeing XDP packets.
  • Fixed bug where libtrace would unload XDP programs that were not loaded by libtrace.
  • Fixed crash when sending packets via DPDK.
  • Fixed crash when closing a pcap input that is NULL due to an error on initialisation.
  • Fixed read of freed memory when an error occurs in trace_create_output().
  • Fixed bogus bitshifting when expanding a toeplitz hash key.
  • Fixed DAG transmit functionality to actually work.
  • Fixed multiple issues with trace_get_outermost_vlan() and trace_get_outermost_mpls().
  • Fixed various bugs when promoting or demoting pcap packets from one linktype to another.
  • tracertstats should now correctly process trace files as fast as possible (but can be configured to run in "trace-time" instead).
  • Fixed inconsistencies when running tracertstats against the same trace file multiple times.
  • Fix concurrency bug which would cause an error result when calling trace_apply_filter() in a parallel program.
  • Fix possible packet buffer leak when reading a packet via pcap:.
  • Fixed packet header structures with incorrect field definitions (libtrace_8021q_t, libtrace_atm_cell_t, libtrace_atm_nni_cell_t, libtrace_atm_capture_cell_t, libtrace_atm_nni_capture_cell_t). If you use these in your code you may need to update your code to use the new field names.

Improvements

  • XDP now uses the undirectional hasher by default and moves hashing to the network card
  • XDP: warn users if flow director rules are found on the interface during initialisation.
  • XDP: push hashing onto the NIC where possible.
  • Improve receive performance for Linux native formats by ensuring internal structures are properly cache aligned.
  • A single libtrace program should now be able to run against multiple concurrent DPDK inputs (requires sensible use of the coremap option).
  • DPDK support now extended to Mellanox DPDK libraries.
  • Improved DPDK detection, including detection of DPDK meson builds for DPDK version 20.11 and newer