All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- evr: VXLAN-based EVR device probing tool (
cmd/evr)- Sends UDP/VXLAN probes to one or more EVR VTEPs from a single raw
ip4:udpsocket - "Self-loop" inner frame design: inner src/dst IPs both equal the local probe address while the real EVR src IP is embedded in the payload, so reflected responses can be matched back to the originating target without a 5-tuple key
targetsconfig invtep#evrSrc[#mockSrc]form, with optional spoofed outer src per-target- Reuses
stat.Processor/stat.NewStat/stat.LogSenderfor per-target loss/latency reporting andutil.RotateWriterfor daily-rotated logs - BPF prefilter on inner UDP dst port + IPv4 TOS for the read socket
- Salt-based bit-flip detection via the shared
util.Salts - Built atop
goscapyfor VXLAN/Ethernet/IPv4/UDP encoding (nogopacketdependency) - JSON config file (
cmd/evr/evr.example.json) andmake build-evrtarget - Unit tests for codec round-trip and config parsing/validation
- Sends UDP/VXLAN probes to one or more EVR VTEPs from a single raw
0.4.0 - 2026-06-10
- kuiniu: GPU NIC interconnect probing tool for AI training clusters
- GPU pair model with parallel
local_gpu_addrs/remote_gpu_addrsarrays - JSON config file with CLI flag override support
role=bothfor single-process client + server withlocalGPUSetself-echo guard- Concurrent client/server execution under shared context/processor/logger
- 4-Salt bit-flip detection on RoCEv2/UDP paths
- Logs to both terminal and file, with key milestone logs at startup
- Continues running when client/server
Run()returns error (no process exit)
- GPU pair model with parallel
util.RotateWriter: shared daily-rotated log writer with stable symlink and prefix-isolated pruning, used by bothbaizeandkuiniu- Per-tool documentation page
docs/kuiniu.html;docs/index.htmlupdated with kuiniu section, tool index entry, and comparison table column - Unit tests for
kuiniu/config,kuiniu/client,kuiniu/server,kuiniu/transport,ping,ping6, andutil.salts
- kuiniu client peer matching now uses the correct IP field
- kuiniu server now echoes via the matching GPU network and skips self-echo loops under
role=both
0.3.0 - 2026-06-08
- mping: multi-target ICMP Echo ping tool with CIDR expansion, DNS resolution, and hardware timestamping
- mping6: IPv6 variant of mping for ICMPv6 Echo probing
--hwtsflag to enable/disable hardware timestamping (mping)--max-targetsflag to cap CIDR/DNS target expansion- Bit-flip detection in mping/mping6 via deterministic salts (shared
utilpackage) install.shautomated binary installation script, with install docs in README and website- mping/mping6 documentation pages
- mping/mping6 packaging in Makefile and goreleaser config
- mping6 100% packet-loss issues: ICMPv6 socket binding (
SOCK_RAWbound to::), receive-path dissection order, and Linux local address/interface auto-detection - Docs: tool count, latency reporting, and mping bitflip-detection description
0.2.2 - 2026-06-06
--versionflag for all CLI tools, populated via-ldflagsinjection at build time
0.2.1 - 2026-06-06
- goreleaser now packages all binaries into a single
nettoolsarchive per OS/arch (separate per-build entries)
0.2.0 - 2026-06-06
- GoReleaser config and GitHub release workflow
- Custom
go-badgesjob in favor of standard badge sources
0.1.0 - 2026-06-06
Initial open-source release.
- bitflip: IPv4 packet loss and bit-flip detection with dedicated client/server
- bitflip6: IPv6 variant of bitflip
- baize: configuration-driven continuous network quality monitoring tool
- lidar: TCP SYN probing tool for network reachability detection (no server-side deployment), with Linux raw-socket support and classic BPF filter
- Switch from gopacket to goscapy for packet construction
- GitHub Actions CI
- Unit tests for
lidarandstatpackages