Repository navigation
v0.2.2
Date: 2026-10-28
Previous release: v0.2.1
canbusctl on go-canbus v0.2.2.
monitor,record,statsand the ISO-TP commands could lose the
first frames that arrived between opening the interface and subscribing
to it (go-canbus's Bus started reading at once). They now open the bus
withcanbus.WithStartOnSubscribe, so frames wait in the socket until
the command listens. Found by the end-to-end tests in a slow microVM,
whererecordkept 21 of 60 frames.- Tests: the end-to-end harness waits until the kernel has registered a
started process's CAN filters (/proc/net/can) before sending to it, and
prints the recording whenrecordmisses frames.
v0.2.1
Date: 2026-10-28
Previous release: v0.2.0
canbusctl on go-canbus v0.2.1. go-canbus now reports a socket deadline that
fires a moment before the command's own deadline as that deadline, and
chaos.Bridge.Run returns nil when its context ends during a send; the
workarounds canbusctl v0.2.0 carried for both are removed. Commands behave as
in v0.2.0.
v0.2.0
Date: 2026-10-28
Previous release: v0.1.0
canbusctl on go-canbus v0.2.0: Vector trace formats, AUTOSAR databases, a
fault bridge and tested interoperability.
- Traces:
record,replay,monitor -o/--output,dbc decode --traceand
inject --traceread and write Vector ASC and BLF besides candump, JSON
Lines and pcap (pcapng is read). Newtrace convert <in> <out>(filters,
--no-errors,--max-frames; reports what the target format cannot keep)
andtrace info(kinds, duration, per-identifier counts and rates). ASC and
BLF times are zone-less local time: setTZto match the recording. - Databases: ARXML (the CAN part of AUTOSAR 4 system descriptions) wherever a
database is read;dbc convert --to kcdwrites KCD and prints what KCD
cannot hold. Conversions: DBC, KCD, ARXML → DBC, KCD, JSON. bridge -a <if> -b <if>: forwards frames between two interfaces (vcan,
vxcan,virtual; others with--yes) through seeded faults —--drop,
--duplicate,--delay-probability/--delay,--reorder,--corrupt,
--filter— for--duration, with per-direction counters (text or JSON).injectruns on the same chaos bridge (go-canbuschaos): new--reorder;
JSONfaultsgainsreceived,forwarded,reordered. Other flags and
output are unchanged.- ISO-TP:
--fc-delay(N_Br) onisotp receive/senddelays each flow
control. Against the kernel's ISO-TP sender on vcan a fast userspace
receiver needs about 200 µs: the kernel drops a flow control that beats the
echo of its own last block frame.isotp send --kernelno longer resends a
whole message when the Go runtime interrupts the kernel's wait for the
transmission (fixed in go-canbus v0.2.0).isotp monitoris listen-only. - A socket deadline that fires a moment before the command's deadline ends a
--timeout/--durationrun normally instead of failing with a timeout or
I/O error (isotp receive --kernel -n 0,bridge). - Tests: end-to-end tests of the built binary (every trace format, vcan
pipelines, ISO-TP between processes and with the kernel, bridge
processes); chaos tests (ISO-TP through a faulty bridge never delivers
wrong data, every process returns by its deadline); interop tests against
canbus-interop (can-utils/kernel, python-can, python-can-isotp, cantools,
canmatrix); vcan tests on vcan0 and vcan1 in CI with kernel ISO-TP;
microVM runs on kernels 6.1–6.18. Coverage 94.2 %; interop with
canbus-interop v0.2.0: 63 pass, 27 known differences, no skips.