Releases: LibtraceTeam/libtrace
Libtrace 4.0.7
New features
- Added new API functions for exploring meta-data that is either attached to a specific packet or included in a trace as separate records (e.g. ERF provenance or pcap-ng meta-data). Many meta-data fields have a specific accessor function that can be called directly (e.g.
trace_get_interface_fcslen()
). You can also usetrace_get_section()
to get an array containing all meta-data items within a particular section, which will allow you to get access to any fields for which we have not implemented direct access functions. - Added new API functions to instant decoding all of the post-layer 2, pre-layer 3 headers in a packet so you can now easily explore any / all VLAN, MPLS, etc. headers in a packet without having to effectively re-implement
trace_get_layer3()
in your own code. Seetrace_get_layer2_headers()
for more details. - Added support for both reading and writing TZSP sniffing streams.
Bug fixes
- Fixed uninitialised bytes in message structure sent via
trace_post_reporter
. - Fixed build errors caused by attempting to
#include pcap-int.h
. - Fixed bug where a corrupt ERF record could cause a libtrace program to become un-haltable.
- Fixed bug in error tracking when creating a fanout socket for the
ring
andint
formats. - Fixed potential segfault when halting a libtrace program that was reading from a
ring:
input. - Fixed uninitialised mutex when copying a packet.
Improvements
- Improved parallel performance by skipping some needless per-packet sanity checks.
Libtrace 4.0.6
See https://github.com/LibtraceTeam/libtrace/wiki/ChangeLog for a full detailed list of changes in this release.
Major changes in this release:
- Added write support for pcapng trace files.
- Fixed segmentation fault when using
tracereplay
on certain packet types. - Fixed bug where
trace_event()
API was ignoring all received packets. - Fixed build issue when enabling DPDK.
- Fixed build issue where
recvmmsg
availability was not detected properly. - Fixed packet corruption bug when using the "jump to IP header mode" in
tracesplit
. - Better error messaging and handling -- no more unexpected assertion failures!
- Improved read performance of both
ring:
andndag:
live captures. traceends
andtracetopends
now use the parallel API.
Libtrace 4.0.5
See https://github.com/LibtraceTeam/libtrace/wiki/ChangeLog for a full detailed list of changes in this release.
Major changes in this release:
- Fixed bug where only one client could subscribe to an nDAG multicast group concurrently.
- Fixed bad payload length calculations on outgoing packets when IP length field is populated by hardware.
- Fixed build error when compiling with DPDK support.
- Improved performance when decoding ETSI records via etsilive:
- Improved ERF / DAG packet processing performance by caching the framing length.
Libtrace 4.0.4
See https://github.com/LibtraceTeam/libtrace/wiki/ChangeLog for a full detailed list of changes in this release.
Major additions in this release:
- Added reference counting API for keeping track of packets shared across multiple threads.
- Added new input format for receiving live streams of packets encoded using the ETSI LI standard.
- Libpacketdump can now also decode ETSI-encoded packets.
- Added CLI option to
tracereplay
to "speed up" replays by a given factor, i.e. set to 2 to replay at double speed.
Bug fixes:
- Fixed problems with trying to have two
ring:
inputs active at the same time. - Fixed missing subseconds in timestamps from
pcapng:
packets. - Fixed bug that was causing poor
ndag:
performance. - Fixed bug that prevented
trace_pstop()
from working correctly on some live inputs. - Many other minor bug fixes and tidyups.
Libtrace 4.0.3
See https://github.com/LibtraceTeam/libtrace/wiki/ChangeLog for a full detailed list of changes in this release.
This release exposes some previously internal structures and information via the public API, specifically:
- Processing thread ids
- Message Queue data structure
- Toeplitz hasher
trace_prepare_packet()
Major bugs fixed in this release:
- Problems with capturing packets from GRE tunnel interfaces are resolved.
- Fixed inability to handle ERF provenance records.
- DPDK packet truncation, causing some payload to replaced with zeroes.
- A couple of nDAG packet corruption bugs.
Other important changes:
- Updated DAG code to use 64 bit API so should now work with large streams.
- Some nDAG performance enhancements.
- New format:
dpdkndag:
, which will decode nDAG records that are intercepted by a DPDK interface (as opposed to receiving them via conventional multicast).
Libtrace 4.0.2
This release adds support for two new input formats: pcapng and nDAG.
It also fixes a number of bugs, most notably:
- Bad IPv6 fragment offset calculation.
- Compile error when building traceanon against newer versions of libssl.
- Bad libpacketdump decoding for truncated IPv6 and SCTP.
- Compile error when pcap-bpf.h is missing.
- Failure to detect and link against DPDK if it was built as a shared library.