Skip to content

docs(fusa): [c-RCP-18-tracker Part 1] propagate tc18_master_id for REQ-DISC-*/REQ-L2-*/REQ-UDP-* - #113

Merged
SoundMatt merged 1 commit into
mainfrom
tc18-533-propagate-disc-l2-udp-master-id
Aug 19, 2026
Merged

SoundMatt merged 1 commit into
mainfrom
tc18-533-propagate-disc-l2-udp-master-id

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Part of the wiggly-shimmying-wombat effort's cpp-RCP Part 1 pass. This batch scoped the ~31 remaining unlinked-or-partially-linked prefixes (ADMIN, AUTH, CAPI, CFG, CLI, DDS, DISC, DL, DOIP, DYN, ERR, FI, GRPC, L2, LOAN, MDNS, MOCK, MQTT, OBS, REC, RED, RELAY, REST, RL, SHMEM, SIM, SOMEIP, TLS, TSN, UDP, UDS) by reading each package's own doc comment / requirement text, mirroring the scoping exercise go-RCP already completed for its own remaining prefixes.

28 of 31 prefixes confirmed non-TC18 by their own doc comments: protocol-bridge stubs (DDS/DOIP/GRPC/MQTT/REST/SOMEIP/UDS — all explicitly errc::function_not_supported stubs, ADAPTed per ROADMAP milestone 59, "translating between an RC Client's application-level view and X is conceptually unaffected by which wire protocol RCP itself now speaks"), cross-cutting auxiliary tooling (ADMIN/AUTH/CAPI/CFG/CLI/DL/DYN/FI/LOAN/MDNS/MOCK/OBS/REC/RED/RL/SHMEM/SIM/TLS/TSN), and the RELAY-sentinel error-code shape assertions (ERR — same disposition go-RCP found for its own REQ-ERR-*, confirmed here: ErrClosed/ErrNotFound/ErrZoneMismatch truthiness/distinctness, not TC18 spec text).

3 prefixes are genuinely TC18-scoped, with mixed results:

  • REQ-DISC-* (rcp/discovery.hpp) — implements TC18 §12.6/§12.6.1/§12.7.4 discovery-request/response framing and stream-contention-claim behavior directly. 8 of 9 linked to previously-unclaimed master-catalog entries. REQ-DISC-008 (error-category shape assertion) stays unlinked — own error-code infra, not spec text.
  • REQ-L2-* — mostly a master-catalog coverage gap: TC18 §10.1 (EtherType 0x22F0 framing) has zero catalog entries (the catalog only covers sections 11–13), matching go-RCP's identical finding for its own L2 package. One exception: REQ-L2-007 cites §12.9.1.1 (multi-request-per-frame), which is in catalog scope — linked to TC18-12.9.1.1-001. This also corrects a pre-existing wrong-line citation on REQ-L2-007 (was TC18.txt L3220, a §12.7.7 register table; the actual quote lives at L3617).
  • REQ-UDP-* — same catalog-gap situation as L2: Annex J UDP/IP encapsulation is entirely outside the catalog's §11–13 scope. One exception: REQ-UDP-011's byte_bus_id/transaction_num response-correlation logic is a disciplined, near-verbatim match for TC18-12.9.1-010's MUST clause.

id → master-catalog-id mapping

id master_id basis
REQ-DISC-001 TC18-12.6.1-001 Table 18 discovery-request fields (byte_bus_id=0, op=1 read)
REQ-DISC-002 TC18-12.6.1-002 TSCF-headed/ACF_GBB discovery requests dropped without response
REQ-DISC-003 TC18-12.6-003 first discovery request in HW_UNCONFIGURED/HW_CONFIGURED sets the discovery stream
REQ-DISC-004 TC18-12.6-003 stream dropped after Discovery_TimeOut with no config activity
REQ-DISC-005 TC18-12.6-003 non-first requesters still get server_config map response
REQ-DISC-006 TC18-12.6-003 configuration requests from non-claim-holders rejected with error response
REQ-DISC-007 TC18-12.7.4-001 discovery-based reconfiguration disallowed once RCP_CONFIGURED
REQ-DISC-009 TC18-12.6-002 discovery answered in any lifecycle state
REQ-L2-007 TC18-12.9.1.1-001 multi-ACF-type-per-AVTPDU framing (citation-line correction)
REQ-UDP-011 TC18-12.9.1-010 response/ack associated to request by byte_bus_id + transaction_num

REQ-DISC-008 deliberately left unlinked (own DiscoveryErrc category/message-shape assertion, not spec text).

cpp-RCP is now at 123/376 requirements linked (up from 113/376).

Verification

Left for a future batch: none of the remaining ~28 prefixes appear to have further TC18-scoped content beyond what's captured here — cpp-RCP's Part 1 propagation effort appears at or near completion pending independent review of this PR's judgment calls (esp. the TLS/RL/TSN non-TC18 calls, and the L2/UDP catalog-gap findings).

Signed-off-by: Matt Jones 47545907+SoundMatt@users.noreply.github.com

…Q-DISC-*/REQ-L2-*/REQ-UDP-*

Scoping sweep over cpp-RCP's remaining ~31 unlinked prefixes
(ADMIN, AUTH, CAPI, CFG, CLI, DDS, DISC, DL, DOIP, DYN, ERR, FI, GRPC,
L2, LOAN, MDNS, MOCK, MQTT, OBS, REC, RED, RELAY, REST, RL, SHMEM,
SIM, SOMEIP, TLS, TSN, UDP, UDS), mirroring the scoping exercise
go-RCP already completed for its own remaining prefixes.

28 of 31 prefixes confirmed non-TC18 by their own doc comments:
integration-shell/protocol-bridge stubs (DDS, DOIP, GRPC, MQTT, REST,
SOMEIP, UDS), cross-cutting auxiliary tooling (ADMIN, AUTH, CAPI, CFG,
CLI, DL, DYN, FI, LOAN, MDNS, MOCK, OBS, REC, RED, RL, SHMEM, SIM,
TLS, TSN), and the RELAY-sentinel error-code shape assertions (ERR,
same disposition go-RCP found for its own REQ-ERR-*).

3 prefixes are genuinely TC18-scoped, with mixed outcomes:

- REQ-DISC-* (rcp/discovery.hpp): implements TC18 §12.6/§12.6.1/§12.7.4
  discovery-request/response framing and stream-contention-claim
  behavior directly. 8 of 9 requirements linked to previously-unclaimed
  master-catalog entries (TC18-12.6-002, TC18-12.6-003 x4,
  TC18-12.6.1-001, TC18-12.6.1-002, TC18-12.7.4-001). REQ-DISC-008
  (error-category/diagnostic-message shape assertion) left unlinked —
  own error-code infra, not spec text, same as the ERR-* disposition.

- REQ-L2-* (rcp/l2.hpp): mostly a master-catalog coverage gap — TC18
  §10.1 (EtherType 0x22F0 framing) has zero catalog entries (catalog
  covers only sections 11-13), matching go-RCP's identical finding for
  its own L2 package. One exception: REQ-L2-007 cites §12.9.1.1
  (multi-request-per-frame), which *is* in catalog scope — linked to
  TC18-12.9.1.1-001. This corrects a pre-existing tc18 citation on
  REQ-L2-007 that pointed at the wrong TC18.txt line (L3220, a §12.7.7
  register table) instead of the actual quote's location (L3617).

- REQ-UDP-* (rcp/udp.hpp): same catalog-gap situation as L2 — Annex J
  UDP/IP encapsulation (§9/§10-ish) is entirely outside the catalog's
  §11-13 scope. One exception: REQ-UDP-011's byte_bus_id/transaction_num
  response-correlation logic is a direct, disciplined match for
  TC18-12.9.1-010's MUST clause, quoted almost verbatim in both.

10 fields added total across 10 requirement entries (one entry,
REQ-L2-007, also gets a citation correction). cpp-RCP is now at
123/376 requirements linked (up from 113/376).

Verification: CMake+Ninja Release build (0 errors), ctest 53/53
passing, cpfusa check 0 errors/2 warnings/1 info (unchanged from
baseline), cpfusa trace coverage 376/376/376/64 (unchanged). Only
.fusa-reqs.json touched; no JSON round-trip, targeted text-level edits
matching each entry's existing style.

Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@SoundMatt
SoundMatt merged commit 943efd7 into main Aug 19, 2026
22 checks passed
@SoundMatt
SoundMatt deleted the tc18-533-propagate-disc-l2-udp-master-id branch August 19, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant