AdapterCaps: hardware-ARQ capability flags (ack_responder_ok / tx_retry_limit_ok) from the measured matrix (#365) - #372
Conversation
…r/retry matrix ack_responder_ok and tx_retry_limit_ok, bench-derived like the ldpc_rx_* trio (the truth table is doc-commented at the declarations; the measured matrix is docs/scheduled-mac.md): responders measured working on the 8812A/ 8814A/8822B/8822C/8822E dies, measured BROKEN on the 8821A (an armed 8821AU never closed the loop across three independent runs), by-recipe true on the 8811A/8821C, and false on Kestrel where SetAckResponder is not implemented (matrix-measured 0% closure). The retry knob is inert on the 8814A die (the vendor DATA_RETRY_LIMIT=0 carve-out is kept) and on Kestrel (fw-level retry). Callers stop discovering either fact in the field. Carried in the adapter.caps event (ack_responder, tx_retry_limit); docs/logging.md row updated. Validated on air: all six plugged dies report exactly the matrix — 8822E/8822C/8822B 1/1, 8814A 1/0, 8821A 0/1, 8852C 0/0. ctest 49/49. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR Summary by QodoExpose hardware-ARQ capability flags via adapter.caps (ack_responder/tx_retry_limit)
AI Description
Diagram
High-Level Assessment
Files changed (7)
|
Code Review by Qodo
1.
|
…-unmeasured The six-cell responder matrix (with its single-shot caveat) lands in docs/scheduled-mac.md next to the existing responder notes, and the 8821C variant's flags follow the repo's false-means-unmeasured reading (the vht_2g4_ok convention) instead of by-recipe true — a capability gate should only assert what a bench cell proved, and the false row is what motivates running the 8821CU/8821CE cell. J2 gates both flags on the C8822B variant; the 8812BU re-validated 1/1 on air. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Steps 1–2 of #365 (the 8821AU responder root-cause and the Kestrel retry H2C port remain open on the issue).
What ships
Two bench-derived capability flags, following the
ldpc_rx_*convention (truth table doc-commented at the declaration, never a vendor advertisement):ack_responder_ok— SetAckResponder measurably closes a hardware-ARQ loop as the responder. From the six-cell on-air matrix (issue comment): true on 8812A/8814A/8822B/8822C/8822E (98%/98%/98%/69%/79% single-shot ACK closure vs 0% with the responder off), false on the 8821A die (0% closure, third independent confirmation) and false on Kestrel (SetAckResponder not implemented on the AX generation — measured, not assumed).tx_retry_limit_ok—DEVOURER_TX_RETRY_LIMITdrives hardware autonomous retransmission (the 12/0/12 A/B from Jaguar1/2/3: unified TX retry-limit knob (DEVOURER_TX_RETRY_LIMIT, default 0) #354's review). False on the 8814A die (vendor DATA_RETRY_LIMIT=0 carve-out kept, knob inert) and Kestrel (fw-level retry).Both ride the
adapter.capsevent so integrators (PixelPilot et al.) can gate ARQ features per adapter instead of discovering a dead responder in the field.Validation
On-air, all six plugged dies report exactly the measured matrix:
ctest49/49. One bring-up correction en route: the 8821A die's J1 enum isCHIP_8821, notCHIP_8821A(caught by the compiler, then re-validated per-die on air).🤖 Generated with Claude Code