Releases: mikemiles-dev/flowparser-sflow
Releases · mikemiles-dev/flowparser-sflow
v0.3.0
Added
- 17 new flow record types (enterprise=0):
- NAT port translation (format 1020):
ExtendedNatPort - InfiniBand (formats 1031–1033):
ExtendedIbLrh,ExtendedIbGrh,ExtendedIbBrh - Hardware trap & drop monitoring (formats 1041–1042):
ExtendedHwTrap,ExtendedLinuxDropReason - Nanosecond timestamp (format 1043):
ExtendedTimestamp - Application context (formats 2203–2205):
AppParentContext,AppInitiator,AppTarget - TCP info (format 2209):
ExtendedTcpInfo - Entities (format 2210):
ExtendedEntities
- NAT port translation (format 1020):
- 4 new vendor-specific counter record types:
- Broadcom BST device buffers (enterprise=4413, format=1):
BroadcomBstDeviceBuffers - Broadcom BST port buffers (enterprise=4413, format=2):
BroadcomBstPortBuffers - Broadcom ASIC hardware tables (enterprise=4413, format=3):
BroadcomHwTables - NVIDIA GPU via NVML (enterprise=5703, format=1):
NvidiaGpu
- Broadcom BST device buffers (enterprise=4413, format=1):
- Discarded Packet sample type (enterprise=0, format=5):
DiscardedPacket— dropped packet notification with reason code and flow records ParseContext::DiscardedPacketvariant for error reporting- Throughput benchmark (
throughput_bench) measuring realistic multi-sample datagram parsing (~1.9 GiB/s on Apple Silicon) - Spec validation tool (
validate_sflowexample) for verifying hex-encoded sFlow datagrams against the sFlow v5 specification
Improved
- Total flow record types: 38 → 55
- Total counter record types: 43 → 48 (including 5 vendor-specific)
- Total sample types: 4 → 5
- Published benchmark results in README
- Updated protocol structure diagram in README
v0.1.0 (Initial Release)
v0.1.0 (Initial Release)
- sFlow v5 datagram parsing with IPv4 and IPv6 agent addresses
- All four sample types: Flow Sample, Counter Sample, Expanded Flow Sample, Expanded Counter Sample
- Flow record types: Raw Packet Header, Sampled Ethernet, Sampled IPv4/IPv6, Extended Switch, Extended Router, Extended Gateway, Extended User, Extended URL
- Counter record types: Generic Interface, Ethernet Interface, Token Ring, VLAN, Processor
- Unknown/unrecognized records preserved as raw bytes for forward compatibility
- Serde support for all types (JSON serialization/deserialization)
- Builder pattern with configurable max samples limit (DoS protection)
- Structured error types:
Incomplete,UnsupportedVersion,ParseError,TooManySamples - Examples: single-threaded, multi-threaded, and async (tokio) UDP listeners; pcap file parser
- Benchmarks for datagram, flow sample, and counter sample parsing