Repository navigation
feat: v2.0.0 — TC18 wire format core (Phase 13 milestone 44) - #37
Merged
Merged
Conversation
Replace rcp/wire.hpp's bespoke 16-byte Zone/Command/Response/Status frame with an IEEE 1722 AVTPDU/ACF codec: NTSCF and TSCF headers, ACF_ABB/ACF_GBB messages, the shared byte_message_info fields, StreamId/byte_bus_id addressing with an enforced echo-back rule, the mandatory standard request kind, the four response semantic types, and avtp_timestamp/message_timestamp fallback handling. The module has no dependency on rcp.hpp's legacy model and makes no transport assumption, per ROADMAP.md milestone 44. The old frame codec is preserved as-is under rcp/legacy_wire.hpp so rcp/udp.hpp keeps building and working until it is rebuilt against real AVTPDU framing at v2.13.0; its tests move to tests/test_legacy_wire.cpp unchanged. New coverage for the AVTPDU/ACF codec lives in tests/test_wire.cpp (REQ-WIRE-001..014, added to .fusa-reqs.json). Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
3 of 4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements ROADMAP.md milestone 44, "Wire Format Core (v2.0.0)" — the first milestone of Phase 13's full TC18 protocol replacement.
rcp/wire.hppis entirely rebuilt as an IEEE 1722 AVTPDU/ACF codec:0x0E, no timestamp) and ACF_GBB (0x0D, 64-bitmessage_timestamp) message framingbyte_message_infofields:acf_msg_type,acf_msg_length,pad,mtv,byte_bus_id,evt(ack + 3-bit sub-opcode),hs,cs,transaction_num,op,rsp,err,ms, and the dual-purposeread_size/segment_numfieldStreamId(MAC + locally-assigned suffix) andbyte_bus_idaddressing, withmake_response()structurally enforcing the "echo byte_bus_id/transaction_num back unchanged" ruleavtp_timestamp/message_timestampwith an explicit fallback rule (effective_timestamp) that returnsstd::nulloptrather than defaulting to zero when neither timestamp source is validrcp.hpp's Zone/Command/Controller/Registry model, and no transport assumption (works equally under Ethernet, IEEE1722-over-UDP/IP, or CAN)The old 16-byte frame codec that used to live in
wire.hppis preserved byte-for-byte under a newrcp/legacy_wire.hpp(namespacercp::legacy_wire), sincercp/udp.hppstill depends on it and isn't rebuilt against real AVTPDU framing until v2.13.0.rcp/udp.hppnow includeslegacy_wire.hppinstead, with an explanatory header comment.Test coverage:
tests/test_wire.cppis rewritten to cover the new codec (REQ-WIRE-001..014); the old 16-byte-frame tests move unchanged totests/test_legacy_wire.cpp(REQ-UDP-001..012, still passing)..fusa-reqs.jsongets the 14 newREQ-WIRE-*entries.Version bumped to 2.0.0 (
CMakeLists.txt,version.hpp), README header table updated,ROADMAP.mdmilestone 44 marked done.Per the roadmap's own framing, this is a pure wire-codec milestone — no lifecycle, discovery, or endpoint behavior is included, and full bit-for-bit conformance against other TC18 implementations isn't claimed until v2.6.0.
Test plan
cmake --buildclean on clang (macOS) and gcc — both Debug and Releasectestfull suite: 42/42 tests passing (100%), including newrcp_wireandrcp_legacy_wirecpp-rcp version/capabilitiesCLI smoke check — reports 2.0.0 correctly-Wall -Wextra -Wpedantic -Wshadow -Wold-style-cast -Wcast-alignflag set)