docs: current-state refactor — merge scheduled-MAC contracts, drop milestone framing, separate lab-rig facts#287
Merged
Conversation
…lestone framing, separate lab-rig facts - Merge the four "M0 contract" docs (dl-departure, beacon-grant, ack-txreport, ue-rx-attribution) into docs/scheduled-mac.md — one capability doc, four measured per-generation contracts; all measurements and verdicts kept verbatim. Repoint the test-script/API references. - Remove milestone/epic framing project-wide (M0..M6, "5G-NR RAN epic", "future work", "not yet"): forward-looking sections rephrased as current-state scope (8822e-quirks "Untested" -> "Coverage", adaptive-link-validation "Open questions" -> "What this validation does not cover", fhss/jammer-resilience honest-edges wording). - Separate lab-rig facts from general hardware behaviour: rig hostnames, BDF/IOMMU specifics and "on this rig/bench" phrasing generalized in CLAUDE.md, time-distribution, timing-accuracy, wfb-ng-tuning, bench-testing-near-field, tests/README (the local, untracked INVENTORY.md now carries the rig specifics). - Fill gaps vs recent PRs: CLAUDE.md gains the beacon/TSF/AP section (ReadTsf, StartBeacon/StopBeacon/UpdateBeaconPayload, PinBeaconTbtt, timesync/tdma demos) and the aggregation/ACK/TxReport section (SetAmpduMode, SetAckResponder, tx.report, GetRxQuality vs cell::UeRxAttribution), plus src/cell/ in the architecture map. - README: hardware table gets the missing 8812BU 5/10 MHz marker (and the 8821AU row loses a stray "AC"); binaries table gains tdma, timesync, doctor, pcieprobe; "Going deeper" restructured into themed groups covering every doc (previously 13 of 32 were unreachable). - Fix stale src/ paths in fused-fec.md (files live under src/jaguar1/); driver-primer now opens standalone. Verified: zero WIP/milestone/lab-phrasing sweep hits; every referenced path resolves; build + all 20 ctest selftests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Documentation review + refactor across the tracked doc corpus (README, CLAUDE.md, docs/, tests/README). Four themes:
1. One scheduled-MAC doc instead of four milestone reports
docs/dl-departure.md,docs/beacon-grant.md,docs/ack-txreport.mdanddocs/ue-rx-attribution.mdwere titled "(M0 contract 1–4)" and written against the "5G-NR RAN epic" / "M1" / "M2". They are now one capability doc —docs/scheduled-mac.md— four measured per-generation contracts (submit→air guard time, dynamic beacon grants, hardware ACK/TxReport, per-UE RX attribution). All measurements, tables and verdicts kept verbatim; only the milestone voice is gone. Test-script headers and theIRtlDevice.hcomment repointed; natural cross-links added from aggregation / time-distribution / multi-ap-cellular / ap-mode.2. No WIP/milestone framing anywhere
jammer-resilienceloses "(M5)" and the "M6 … is follow-up work" bullet;fhssloses "…and what is next" / "is future work" — boundaries are stated as current-state facts.8822e-quirks"## Untested" → "## Coverage" (states the characterized set: one BL-M8812EU2, rfe 21).adaptive-link-validation"Open questions (need hardware not currently available)" → "What this validation does not cover" (scope statements; the attenuator-rig design stays as methodology).3. Lab-rig facts separated from general hardware behaviour
Rig hostnames,
sshtargets, BDF/IOMMU specifics and "on this rig/bench" phrasing are generalized in CLAUDE.md, time-distribution, timing-accuracy, wfb-ng-tuning, bench-testing-near-field and tests/README — tracked docs now describe behaviour any developer can reproduce on their own hardware. (The rig specifics live in the local, untracked INVENTORY.md.) Product identifications — "Radxa X4 onboard Wi-Fi", adapter models in the benchmark table — stay: they are provenance, not lab state.4. Gaps vs recent PRs filled
ReadTsf,StartBeacon/StopBeacon/UpdateBeaconPayload,PinBeaconTbtt,timesync/tdmademos) and aggregation/ACK (SetAmpduMode,SetAckResponder,tx.report,GetRxQualityvscell::UeRxAttribution), plussrc/cell/in the architecture map — none of it was mentioned before.tdma,timesync,doctor,pcieprobe; "Going deeper" is restructured into themed groups covering every doc — previously 13 of 32 docs were unreachable from the README (the four contract docs had zero incoming links anywhere).src/paths fixed infused-fec.md(files moved tosrc/jaguar1/long ago);driver-primer.mdopens standalone instead of leading with its sibling.Deliberately untouched: everything Kestrel (the out-of-scope lines are for the Kestrel PR to update when it lands); the RTL8821CE row is not marked 5/10 MHz — narrowband over PCIe is code-plausible but not bench-validated.
Verification
M0..M9/milestone/epic/"future work"/"not yet"; no rig hostnames/"this rig"/"this bench" (thedevourer-testrigmentions are thetests/setup_vm.shdefault VM name, i.e. tool documentation).docs//tests//src//examples/path referenced from the docs resolves in the tree; old filenames are gone repo-wide.cmake --build build -j+ all 20 ctest selftests pass (only comments changed outside docs).🤖 Generated with Claude Code