Skip to content

Releases: SoundMatt/cpp-LIN

v0.3.0 — RELAY spec v1.11 conformance

19 Jun 23:05
8fdddbb

Choose a tag to compare

RELAY v1.11 §17.7 — CLI waiver removed

RELAY v1.11 removes the waiver that previously allowed CLI-less C++ library implementations to mark CLI conformance requirements as "not applicable". Every conformant C++ implementation must now ship the version / capabilities / status CLI, buildable via -DRELAY_BUILD_CLI=ON.

cpp-LIN has shipped the full CLI since v0.1.0 — no new code was required. This release aligns the declared spec version and CMake interface with the new spec text.

Changes

File Change
include/lin/relay.hpp kSpecVersion "1.10""1.11"
include/lin/lin.hpp kSpecVersion "1.10""1.11"
cli/json.hpp spec_version in version + capabilities JSON → "1.11"
CMakeLists.txt Added RELAY_BUILD_CLI alias option (§17.7)
testdata/relay-vectors/ 3 test vectors updated to spec_version: "1.11"
.fusa-reqs.json REQ-RELAY-020 updated to require "1.11"
All docs Swept v1.10 → v1.11 across README, ROADMAP, SAFETY_PLAN, SAFETY_MANUAL, INCIDENT-RESPONSE, SECURITY, HARA, sas.md

CI

All 15 checks green, including:

  • RELAY conformance (relay conform --strict) — confirms v1.11 acceptance
  • ThreadSanitizer, ASan+UBSan, cpp-FuSa ASIL-B qualification, Coverage ≥70%

v0.2.0 — Full Safety & Cyber Pack

19 Jun 20:43
fc7d369

Choose a tag to compare

What's New

Safety Documentation (ISO 26262 / IEC 61508 / DO-178C)

  • TARA (TARA.md + tara.json): 7 threat scenarios with CVSS 3.1, 8 security controls, attack tree, residual risk acceptance — ISO/SAE 21434:2021 + IEC 62443-4-1 SL-2
  • FMEA (fmea.json): 14 failure mode entries linked to HARA hazards H-01..H-05, all closed — ISO 26262-9
  • Software Architecture Specification (sas.md): 9 modules, invariants, public interfaces, data flow, memory safety strategy — ISO 26262-6 §7.4
  • Boundary Diagram (boundary.mermaid): ISO 26262-6 §7.4.1 — all modules, data flows, ASIL annotations
  • Safety Manual (SAFETY_MANUAL.md): safe API patterns, anti-patterns, thread safety matrix, memory budget, shutdown sequencing — ISO 26262-6 §7 / Part 10 §9 SEooC
  • Security (SECURITY.md, INCIDENT-RESPONSE.md): coordinated disclosure, ASIL impact assessment, ISN process — ISO/SAE 21434 §7.4, IEC 62443-4-1 SM-2

Requirements Traceability

  • 19 IEC 62443 security controls in .fusa-iec62443.json (expanded from 5-line stub)
  • 32 new REQ-RELAY-001..029,051,056,059 in .fusa-reqs.json — closes all orphan fusa:req annotations
  • All 109 existing FuSa requirements retained; full traceability matrix intact

CI Improvements

  • cpfusa lint and cpfusa cyber are now hard gates (removed || true)
  • ThreadSanitizer job added as a hard gate for REQ-VIRT-018 (concurrent bus access)
  • All 15 CI checks pass

Bug Fixes

  • LinAdapter::send(): explicit range check before publish prevents silent ID truncation for IDs ≥64 (REQ-ADAPT-003)

v0.1.0 — C++ LIN bus library

19 Jun 20:04
fc1c046

Choose a tag to compare

cpp-LIN v0.1.0

First release of the C++ LIN bus library — a complete port of go-LIN implementing the RELAY spec v1.10, qualified to ISO 26262 ASIL-B.

Features

  • Core LIN types: Frame, Filter, ScheduleEntry, IBus, IMasterBus — full feature parity with go-LIN
  • Virtual bus (lin::virt::Bus): thread-safe, metrics, health provider, subscriber drainer
  • E2E safety (lin::safety): CRC-16/CCITT-FALSE end-to-end data protection with monotonic sequence counter
  • LDF parser (lin::ldf): parses LIN Description Files — frames, signals, schedule tables
  • Master node (lin::master::Node): schedule-driven header transmission with per-slot callbacks
  • Slave node (lin::slave::Node): response registry with frame subscription
  • RELAY adapter (lin::adapt()): wraps any IBus as a relay::INode
  • CLI binary (cpp-lin-cli): RELAY version, capabilities, status, convert --protocol LIN

Quality gates (all green)

  • 160/160 unit tests on GCC-12 C++17, GCC-12 C++20, Clang-14 C++17, AppleClang C++17, MSVC C++17
  • ASan + UBSan clean
  • LCOV coverage ≥ 70%
  • RELAY conformance (relay conform --strict)
  • cpfusa ASIL-B qualification
  • clang-tidy static analysis
  • Docker smoke test
  • DCO signed-off

Standards

  • C++17 (no C++20 features)
  • RELAY spec v1.10 §8.3
  • ISO 26262 ASIL-B
  • IEC 62443 cybersecurity requirements