Repository navigation
v1.2.0 — SD option-run wire fix, back-pressure, requirement/doc reconciliation
Highlights
Audit fix pass: applies 12 of 15 findings from the 2026-07-30 x-Net audit fix register; 3 advisory items left open (see below). (#76)
Critical: SD entry option-run wire fix (go-SOMEIP-01)
sd.EncodeEntry/DecodeEntry packed the SD entry option-run fields (bytes 2-3) against a non-AUTOSAR layout — NumOpts1 landed in byte2's low nibble instead of byte3, Index2 was truncated from 8 to 4 bits, and NumOpts1 was never written into byte3 at all. Any Offer/Subscribe entry with a real option run was misparsed by a conformant SOME/IP-SD peer (vsomeip, CommonAPI, real ECUs) even though encode→decode round-tripped internally. Fixed to byte1=Index1, byte2=Index2 (full 8 bits), byte3=(NumOpts1<<4)|NumOpts2, matching PRS_SOMEIPServiceDiscoveryProtocol. Independently verified via a hand-derived AUTOSAR byte layout in a standalone program, not just the shipped round-trip test. Added a golden-vector test asserting the exact byte layout (go-SOMEIP-02).
Other fixes
- Back-pressure:
Adapt().Subscribenow honoursrelay.BackPressurePolicy(Block/DropOldest/DropNewest) instead of always blocking (go-SOMEIP-04). - Removed
OptionTypeIPv6Endpoint/OptionTypeIPv4Multicastconstants — no encoder/decoder exists for either (go-SOMEIP-05). - ROADMAP/README reconciled with the shipped tree; README gained a RELAY conformance section, Meta-key table, CLI usage (go-SOMEIP-06/07).
- Documented that
FromMessageis version-normalising (go-SOMEIP-11). codec.ErrShortFrame/ErrLengthMismatchnow wrapsomeip.ErrMalformedMessage(RELAY spec §5.4 conformance); HARA SG-001 text corrected to match (go-SOMEIP-N2-01).- Fixed a stale
sd.Entry.MinorVersiondoc comment (go-SOMEIP-N2-03). - Reconciled
REQ-SPEC-001with the actual exportedSpecVersion("1.11") (go-SOMEIP-N2-04). - SD-carrier UDP handshake frames now set
InterfaceVersion=0x01and a non-zeroSessionIDper AUTOSAR SOME/IP-SD (go-SOMEIP-N2-05). - Replaced dangling spec-v0.3 citations in
adapt.gowith the canonical RELAY spec §14.1 reference (go-SOMEIP-N2-06).
Advisory — left open, no diff applied
- go-SOMEIP-03:
SpecVersionstill reports "1.11" vs governing RELAY v2.0. - go-SOMEIP-08: TARA is still 48 boilerplate entries, not a real ISO 21434 threat model.
- go-SOMEIP-09:
tcp/udp/SD-UDP-daemon tests remain behind//go:build integration.