Skip to content

v1.2.0 — SD option-run wire fix, back-pressure, requirement/doc reconciliation

Choose a tag to compare

@SoundMatt SoundMatt released this 30 Jul 21:54
· 5 commits to main since this release
59d36ce

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().Subscribe now honours relay.BackPressurePolicy (Block/DropOldest/DropNewest) instead of always blocking (go-SOMEIP-04).
  • Removed OptionTypeIPv6Endpoint/OptionTypeIPv4Multicast constants — 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 FromMessage is version-normalising (go-SOMEIP-11).
  • codec.ErrShortFrame/ErrLengthMismatch now wrap someip.ErrMalformedMessage (RELAY spec §5.4 conformance); HARA SG-001 text corrected to match (go-SOMEIP-N2-01).
  • Fixed a stale sd.Entry.MinorVersion doc comment (go-SOMEIP-N2-03).
  • Reconciled REQ-SPEC-001 with the actual exported SpecVersion ("1.11") (go-SOMEIP-N2-04).
  • SD-carrier UDP handshake frames now set InterfaceVersion=0x01 and a non-zero SessionID per AUTOSAR SOME/IP-SD (go-SOMEIP-N2-05).
  • Replaced dangling spec-v0.3 citations in adapt.go with the canonical RELAY spec §14.1 reference (go-SOMEIP-N2-06).

Advisory — left open, no diff applied

  • go-SOMEIP-03: SpecVersion still 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.