diff --git a/.fusa-reqs.json b/.fusa-reqs.json index 94a573e..66bdbcf 100644 --- a/.fusa-reqs.json +++ b/.fusa-reqs.json @@ -5501,7 +5501,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.2.5 (\"requests can be sent under TSCF header, where an avtp_timestamp is included... A second option is to convey the presentation time in the message_timestamp field of an ACF_GBB.\"), TC18.txt L1589-1592; conformance bullets \"Implementation of gPTP (IEEE802.1as)\" / \"Support of timed request\", TC18.txt L2024-2025" }, { "id": "REQ-TIMED-003", @@ -5520,7 +5521,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.2 (\"conditional requests are sent using ACF_GBB having mtv = 0 (time stamp not valid) and using the bytes of the message_timestamp field to convey the execution condition\"), TC18.txt L1186-1189; general ACF_GBB frame-validation basis" }, { "id": "REQ-TIMED-005", @@ -5529,7 +5531,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.2 Table 5 (\"0x0A\" -> \"Timed\"), TC18.txt L1186-1199" }, { "id": "REQ-TIMED-006", @@ -5538,7 +5541,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.2.5 (\"The RC Server may reject the request, when the presentation_time is too far in the future, which is implementation dependent (error code = PRESENTATION_TIME_TOO_FAR).\"), TC18.txt L1649-1650" }, { "id": "REQ-TIMED-007", @@ -5547,7 +5551,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.2.5 (\"In case the time synchronization hasn't been established, timed requests (either in the format shown here or under TSCF header) shall be rejected and an error response shall be sent (error code = GPTP_FAIL).\"), TC18.txt L1651-1653" }, { "id": "REQ-TIMED-008", @@ -7862,7 +7867,8 @@ "standard": "iso26262", "level": "ASIL-B", "asil": "ASIL-B", - "scope": "tc18" + "scope": "tc18", + "tc18": "§11.2.2.5 (\"In any case the presentation_time is the earliest point in time, when the request shall be executed.\"), TC18.txt L1648-1649" }, { "id": "REQ-CHAIN-011", diff --git a/.fusa.json b/.fusa.json index 6ac85b2..302468d 100644 --- a/.fusa.json +++ b/.fusa.json @@ -2,7 +2,7 @@ "configVersion": "1.0", "project": { "name": "c-RCP", - "version": "0.144.0" + "version": "0.145.0" }, "standard": "iso26262", "strict": false, diff --git a/CHANGELOG.md b/CHANGELOG.md index 81126d8..a36e8a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,17 @@ the rationale. ## Releases +### v0.145.0 -- 2026-08-07 + +**Citation backfill, batch 25: TIMED.** Issue #164. Cited 6 of 7 +remaining uncited timed-request requirements against TC18 §11.2.2.5's +Figure 12/Table 10 wire format and its PRESENTATION_TIME_TOO_FAR/ +GPTP_FAIL rejection rules. This closes out the full conditional- +request family opened by CMP (batch 16): CMP, SCHED, TRIG, CHAIN, +CANCEL, SEQ, and TIMED are all now cited. See `ROADMAP.md` milestone +145 for full detail. 1028 requirements (unchanged), 100% traced+ +tested, 0 `cfusa check` errors. + ### v0.144.0 -- 2026-08-07 **Citation backfill, batch 24: SEQ.** Issue #164. Cited all 10 diff --git a/CMakeLists.txt b/CMakeLists.txt index 4190365..7b65548 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.16) project(c-rcp - VERSION 0.144.0 + VERSION 0.145.0 DESCRIPTION "OPEN Alliance TC18 Remote Control Protocol (C)" HOMEPAGE_URL "https://github.com/SoundMatt/c-RCP" LANGUAGES C diff --git a/ROADMAP.md b/ROADMAP.md index a33c7c7..411ee3c 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -7056,3 +7056,35 @@ were genuinely uncited before writing anything. Purely additive; no code or test changed. 1028 requirements (unchanged count), 100% traced+tested, 0 `cfusa check` errors. + +### 145. Citation backfill, batch 25: TIMED (issue #164) (v0.145.0) + +Twenty-fifth batch, closing out the conditional-request family opened +by CMP (batch 16): CMP, SCHED, TRIG, CHAIN, CANCEL, SEQ, and now TIMED +are all cited. `request_timed.c`/`request_timed.h`, 7/13 uncited going +in. §11.2.2.5 ("Timed requests -- presentation-time based execution of +requests") is a clean, self-contained TC18 section: Figure 12/Table +10's wire format (request_type=0x0A, presentation_time[47:0]) plus two +explicit rejection rules -- PRESENTATION_TIME_TOO_FAR (implementation- +dependent horizon) and GPTP_FAIL (time sync not established). + +Cited 6 of the 7 uncited `REQ-TIMED-*` requirements: feature gating +(`REQ-TIMED-002`) against the two presentation-time delivery options +(TSCF avtp_timestamp vs. ACF_GBB message_timestamp) plus the +conformance bullets naming gPTP + timed-request support as linked +capabilities; decode validation (`REQ-TIMED-004`-`005`) against the +shared §11.2.2 mtv=0-repurposing intro and Table 5's `0x0A` opcode; +the too-far-in-the-future rejection (`REQ-TIMED-006`) against the +PRESENTATION_TIME_TOO_FAR rule; the gPTP-lock admission gate +(`REQ-TIMED-007`) against the GPTP_FAIL rule; and the due-check +(`REQ-TIMED-011`) against "the presentation_time is the earliest point +in time, when the request shall be executed." + +Left uncited, deliberately: `REQ-TIMED-001` (`strerror()` uniqueness) +-- the same implementation-detail pattern as every prior batch. + +Used the pre-flight citation-target check -- confirmed all 6 targets +were genuinely uncited before writing anything. + +Purely additive; no code or test changed. 1028 requirements (unchanged +count), 100% traced+tested, 0 `cfusa check` errors. diff --git a/include/rcp/version.h b/include/rcp/version.h index 24b964d..1ff9e92 100644 --- a/include/rcp/version.h +++ b/include/rcp/version.h @@ -6,6 +6,6 @@ #ifndef RCP_VERSION_H #define RCP_VERSION_H -#define RCP_VERSION "0.144.0" +#define RCP_VERSION "0.145.0" #endif /* RCP_VERSION_H */