Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions .fusa-reqs.json
Original file line number Diff line number Diff line change
Expand Up @@ -5402,7 +5402,8 @@
"standard": "iso26262",
"level": "ASIL-B",
"asil": "ASIL-B",
"scope": "tc18"
"scope": "tc18",
"tc18": "§11.2.2.4 Figure 11 / field table (GBB for chained requests: request_type=0x01, reserved octets, chain_exec_delay, cs), TC18.txt L1503-1560; general ACF_GBB frame-validation basis"
},
{
"id": "REQ-CHAIN-004",
Expand All @@ -5421,7 +5422,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-CHAIN-006",
Expand All @@ -5430,7 +5432,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"
},
{
"id": "REQ-CHAIN-007",
Expand All @@ -5439,7 +5442,8 @@
"standard": "iso26262",
"level": "ASIL-B",
"asil": "ASIL-B",
"scope": "tc18"
"scope": "tc18",
"tc18": "§11.2.2 Table 5 (\"0x01\" -> \"Chained\"), TC18.txt L1186-1199"
},
{
"id": "REQ-CHAIN-008",
Expand All @@ -5448,7 +5452,8 @@
"standard": "iso26262",
"level": "ASIL-B",
"asil": "ASIL-B",
"scope": "tc18"
"scope": "tc18",
"tc18": "§11.2.2.4 (\"If the first request in an AVTPDU is a chain request, then there is no predecessor to chain to, thus the entire chain will be ignored. An error response with the error code 'CHAIN_ERROR' to each request will be generated\"), TC18.txt L1518-1521"
},
{
"id": "REQ-CHAIN-009",
Expand All @@ -5457,7 +5462,8 @@
"standard": "iso26262",
"level": "ASIL-B",
"asil": "ASIL-B",
"scope": "tc18"
"scope": "tc18",
"tc18": "§11.2.2.4 (\"cs ... 1b: request will not be executed in case the previous request returned an error, as a consequence the remainder of the chain is not executed, and the request send an error response with error code = CHAIN_ABORTED\"), TC18.txt L1555-1560"
},
{
"id": "REQ-CHAIN-010",
Expand Down Expand Up @@ -7848,7 +7854,8 @@
"standard": "iso26262",
"level": "ASIL-B",
"asil": "ASIL-B",
"scope": "tc18"
"scope": "tc18",
"tc18": "§11.2.2.4 (\"chain_exec_delay: Execution delay in multiples of ep_delay_time... for the request execution after the previous request has been finalized.\"), TC18.txt L1550-1551"
},
{
"id": "REQ-CHAIN-012",
Expand All @@ -7857,7 +7864,8 @@
"standard": "iso26262",
"level": "ASIL-B",
"asil": "ASIL-B",
"scope": "tc18"
"scope": "tc18",
"tc18": "§11.2.2.4 (\"reserved: All bits shall be written as 0, else the request will be rejected\" / \"...shall be rejected\"), TC18.txt L1549, L1552"
},
{
"id": "REQ-SRV-004",
Expand Down
2 changes: 1 addition & 1 deletion .fusa.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"configVersion": "1.0",
"project": {
"name": "c-RCP",
"version": "0.141.0"
"version": "0.142.0"
},
"standard": "iso26262",
"strict": false,
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ the rationale.

## Releases

### v0.142.0 -- 2026-08-07

**Citation backfill, batch 22: CHAIN.** Issue #164. Cited 8 of 9
remaining uncited chained-request requirements against TC18
§11.2.2.4's Figure 11 wire format, the no-predecessor CHAIN_ERROR
rule, the cs-bit-driven CHAIN_ABORTED rule, and the reserved-octet
rejection rule. See `ROADMAP.md` milestone 142 for full detail. 1028
requirements (unchanged), 100% traced+tested, 0 `cfusa check` errors.

### v0.141.0 -- 2026-08-07

**Citation backfill, batch 21: TRIG.** Issue #164. Cited 8 of 9
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.16)

project(c-rcp
VERSION 0.141.0
VERSION 0.142.0
DESCRIPTION "OPEN Alliance TC18 Remote Control Protocol (C)"
HOMEPAGE_URL "https://github.com/SoundMatt/c-RCP"
LANGUAGES C
Expand Down
36 changes: 36 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -6953,3 +6953,39 @@ were genuinely uncited before writing anything.

Purely additive; no code or test changed. 1028 requirements (unchanged
count), 100% traced+tested, 0 `cfusa check` errors.

### 142. Citation backfill, batch 22: CHAIN (issue #164) (v0.142.0)

Twenty-second batch. `request_chained.c`/`request_chained.h`, 9/12
uncited going in. One id-mapping error caught and fixed before
running the citation script this batch: initially drafted a citation
for `REQ-CHAIN-002`, but the live field-presence scan showed it was
already cited (`REQ-CHAIN-001`, the `strerror()` requirement, was the
one actually uncited and correctly left that way) -- corrected the
target list before writing anything, the pre-flight check's purpose
working exactly as intended.

Cited 8 of the 9 uncited `REQ-CHAIN-*` requirements: member encode
(`REQ-CHAIN-003`) and decode validation (`REQ-CHAIN-005`-`007`)
against §11.2.2.4's Figure 11 chained-request wire format
(request_type=0x01, reserved octets, chain_exec_delay, cs) and the
shared §11.2.2 mtv=0-repurposing intro + Table 5's `0x01` opcode; the
no-predecessor CHAIN_ERROR rule (`REQ-CHAIN-008`) against "If the
first request in an AVTPDU is a chain request, then there is no
predecessor to chain to, thus the entire chain will be ignored. An
error response with the error code 'CHAIN_ERROR'..."; the cs-bit-driven
CHAIN_ABORTED rule (`REQ-CHAIN-009`) against the cs field's own two-
value definition; exec-delay elapsing (`REQ-CHAIN-011`) against
chain_exec_delay's own field description; and the reserved-octet
rejection rule (`REQ-CHAIN-012`) against "All bits shall be written as
0, else the request will be rejected" (appearing twice for the two
reserved octet groups).

Left uncited, deliberately: `REQ-CHAIN-001` (`strerror()` uniqueness)
-- the same implementation-detail pattern as every prior batch.

Used the pre-flight citation-target check -- confirmed all 8 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.
2 changes: 1 addition & 1 deletion include/rcp/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
#ifndef RCP_VERSION_H
#define RCP_VERSION_H

#define RCP_VERSION "0.141.0"
#define RCP_VERSION "0.142.0"

#endif /* RCP_VERSION_H */
Loading