Skip to content

[cpp-RCP-FS-01] Retired Zone/Command/Registry model is still the primary compiled public API #84

Closed

Description

@SoundMatt

Location: include/rcp/rcp.hpp (~lines 132-330); README.md:24.

Finding: rcp/rcp.hpp — the header a new reader of this library would naturally treat as the core interface — still defines the entire pre-TC18 placeholder protocol as live, compiled public API: Zone, Priority, CommandType, Command, Response, Status, Controller, and Registry. The README's header index still lists this file's core interfaces as exactly that set. The RELAY spec's conformance rules for this ecosystem retired that placeholder model in favor of the real OPEN Alliance TC18 protocol and, per the project's own tracked understanding of that section, explicitly say a conformant implementation must not also still speak the retired protocol as a compatibility shim. The header's own top-of-file comment concedes it predates the TC18 alignment and "remains in place."

Recommendation: Delete the retired Zone/Command/Response/Status/Priority/CommandType/Controller/Registry definitions from rcp.hpp and make the TC18-based model (acf.hpp, avtp.hpp, regmap.hpp, request.hpp) the sole core public surface. The one remaining internal dependent on the old model, config.hpp, needs to be migrated first (see the related finding about legacy_mock.hpp/redundancy.hpp/faultinject.hpp/config.hpp still compiling against it).

Verification: Independently re-read include/rcp/rcp.hpp and README.md against current HEAD (commit 4b9449a, 2026-07-29). Confirmed all eight retired types are still defined and compiled, and the README still documents them as the core interfaces.

This finding overlaps with a shorter, less-detailed finding from an earlier pass of the same audit (referred to there as cpp-RCP-06) describing the same underlying defect — that shorter finding is being tracked as a duplicate of this issue rather than filed separately, along with two companion findings scoped more narrowly to the README quick-start and to the live dependents of this retired model.

Filed from the 2026-07-29 ecosystem audit register; independently re-verified against current HEAD before filing.

Activity

  1. SoundMatt commented on Jul 30, 2026

    @SoundMatt
    OwnerAuthor

    Cross-referencing: the ecosystem audit's terminology-matrix finding RELAY-TERM-01 ("cpp-RCP public API still exposes the retired RCP vocabulary") independently re-verified against current HEAD identifies the exact same defect at rcp.hpp:134/197/263/305 (Zone, Command, Controller, Registry) plus ErrZoneMismatch at rcp.hpp:130, and additionally confirms the mandated TC18 types (StreamID, ByteBusID, TransactionNum, ControlFlags, Message) are absent from this header entirely. Not filing a separate issue — tracking as a duplicate of this one. Filed from the 2026-07-29 ecosystem audit register.

  2. SoundMatt commented on Jul 30, 2026

    @SoundMatt
    OwnerAuthor

    Fixed by #93 (merged), which was not auto-linked because the PR description's bold markdown around the issue numbers broke GitHub's closing-keyword parser.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions