Repository navigation
docs: replace the E3SM-L1-KPM specification with the draft of version 2 - #134
Conversation
CI report —
|
| Workflow | Result | Time | Run |
|---|---|---|---|
| Commit policy | ✅ success (steps skipped — no code changes) | 0m19s | #220 |
| Docs | ✅ success | 0m26s | #25 |
| Build libe3py wheels | ⏭️ not started (no changed file matches its paths filter) |
— | — |
| E2E dApp Integration | ⏭️ not started (no changed file matches its paths filter) |
— | — |
| E2E Topologies (multi-dApp / multi-RAN) | ⏭️ not started (no changed file matches its paths filter) |
— | — |
| Full-loop Latency Benchmark | ⏭️ not started (no changed file matches its paths filter) |
— | — |
| latrec portability | ⏭️ not started (no changed file matches its paths filter) |
— | — |
| MPMC Queue Benchmark | ⏭️ not started (no changed file matches its paths filter) |
— | — |
| Unit Tests | ⏭️ not started (no changed file matches its paths filter) |
— | — |
Docs
Doxygen warnings
0 warning(s) in the files this pull request changes, which fail the check; 403 more elsewhere, which do not. The full list is in the job log and the doxygen-warnings artifact of the Docs workflow.
Gaps in files this pull request does not change, by file:
| Warnings | File |
|---|---|
| 53 | include/libe3/types.hpp |
| 37 | include/libe3/sm_interface.hpp |
| 35 | include/libe3/e3_connector.hpp |
| 34 | include/libe3/e3_agent.hpp |
| 32 | include/libe3/e3_interface.hpp |
| 29 | include/libe3/c_api.h |
| 19 | src/c_api.cpp |
| 17 | include/libe3/logger.hpp |
| 17 | swig/libe3_swig.hpp |
| 17 | swig/e3_dapp_session.hpp |
Ready to merge (fast-forward only)
A maintainer can land the reviewed commits with:
git fetch origin
git checkout main && git merge --ff-only 1cb9182344b6984c691e3baf8e8ad2f676a6b6f7 && git push origin mainHead: 1cb9182344b6984c691e3baf8e8ad2f676a6b6f7 (branch docs/e3sm-l1-kpm-v2). If --ff-only fails as non-fast-forward, the branch must be rebased on the latest main.
One comment per PR, rewritten in place once every workflow for
1cb9182finished.
065fc44 to
af188c2
Compare
a0af9f5 to
a39bc6c
Compare
Thecave3
left a comment
There was a problem hiding this comment.
Not exhaustive review.
I think we need to agree on the common structure as otherwise this will drift. Each SM in O-RAN usually have the previous skeleton and I'd like to have the current one integrated with these changes rather than completely removed.
| {"clause": "B", "title": "Example message exchange", "file": "annex-b-examples.md", "informative": true}, | ||
| {"clause": "C", "title": "Open items", "file": "annex-c-open-items.md", "informative": true} | ||
| ], | ||
| "history": [["2026-11", "R000 v00.01", "First version", "Northeastern University"]] |
There was a problem hiding this comment.
Done. The change history names Northeastern University again.
| @@ -1,18 +1,24 @@ | |||
| { | |||
| "number": "O-RAN.WG3.TS.E3SM-L1KPM-R000-v00.01", | |||
There was a problem hiding this comment.
This naming should be agreed across all the docs. I'd keep it as provvisory
There was a problem hiding this comment.
All four editions are now O-RAN.XXX.TS.*: E3AP, E2SM-DAPP, Spectrum and O-RAN.XXX.TS.E3SM-L1KPM-R000-v00.01. XXX stands in for the group until we agree on the naming. CONTRIBUTING and the tool's README say so.
There was a problem hiding this comment.
Why this has been completely removed? Can be amended and included?
There was a problem hiding this comment.
The content of 01 to 06 is folded into the clauses of the draft, and the clause layout stays as it is. Text that the draft already states is left alone. Details that fit the draft are added where they belong: 6.5, 6.6.1, 6.6.3, 7.3.5, 8.7.1, 9, A.1, A.4 and A.6.1. Where the existing E3 Agents do something else, Annex C says so. Items C.3, C.4, C.8, C.9, C.13, C.14 and C.16 take the earlier findings on their topic, C.17 to C.27 are new, and C.5 keeps the old Protocol Buffers messages.
There was a problem hiding this comment.
The general part should be a different one
There was a problem hiding this comment.
5.1 now introduces the two services, telemetry and control, as the E2 service models do. The table of E3AP procedures is now Table 4-1 in 4.3 "Relation to E3AP".
| |---|---|---|---|---| | ||
| | E3SM Spectrum | 1 | Sensing telemetry, PRB blacklist control, sensing policy control, dApp reports and xApp controls for spectrum sharing | [spectrum/](spectrum/README.md) | `O-RAN.WG3.TS.E3SM-SPEC-R000-v00.01.docx` | | ||
| | E3SM L1-KPM | 2 | Telemetry from the physical layer: a reference to the IQ samples of each uplink slot | [l1-kpm/](l1-kpm/README.md) | `O-RAN.WG3.TS.E3SM-L1KPM-R000-v00.01.docx` | | ||
| | E3SM L1-KPM (draft) | 2 | Telemetry from the uplink layer 1: the PUSCH and SRS data of each uplink slot (79 telemetry identifiers and the valid symbol mask), selection of cells and UEs, and a shared memory layout for the large arrays | [l1-kpm/](l1-kpm/README.md) | `E3SM-L1-KPM-R000-v00.01.docx` | |
There was a problem hiding this comment.
The service model is version 1 everywhere: 4.4, 7.2, 8.2.2.1, the grammar comment, 8.6.3 and Annex B. In Annex B step 2, both dumps were re-encoded with asn1tools, and only the version octet changes. The paragraph on versions 1 and 2 is gone from docs/e3sm/README.md.
|
edc03fb rebuilds the Word edition with
|
c86e31c to
80dc37d
Compare
Thanks for the list. In the order of your points:
The builder also printed the |
|
Status of this PR The branch is rebased on
The description above predates these commits. Where they differ, this comment applies:
Checks run locally: Docs (0 Doxygen warnings in the changed files), REUSE, and the commit trailer policy all pass, and every relative link under Still open:
@aferaudo, please review the folded text, mainly Annex C, and the L1-KPM Word edition. Once points 1 to 3 are settled, the PR can land as a fast-forward merge. |
2b622b7 to
b31f650
Compare
…nk layer 1 The E3SM-L1-KPM specification in docs/e3sm/l1-kpm had four telemetry identifiers: a reference to the IQ samples of each uplink slot, the time, the frame and the slot. A dApp that works on the uplink layer 1 also needs the PUSCH and SRS data that the receiver produces for each slot. The folder now holds a draft that defines all of it for RAN function 2. The service model stays at version 1, since no version of it has been released. * 79 telemetry identifiers on a PUSCH path and an SRS path, and the valid symbol mask (ID 1000). IDs 80 to 999 are reserved. * Each value has a slot, cell or UE scope. An indication carries the cells and the UEs that have data in the slot. * The timestamp (ID 4) is on the monotonic clock of the E3 Agent host, as docs/e3sm/README.md asks of a payload that points into shared memory. ID 78 gives the time of the slot in TAI, and the E3AP timestamps stay on the realtime clock. * Six large arrays stay in a shared memory region and the indication refers to them. Annex A (normative) fixes the region: a 200 octet header, ping-pong buffers and the row formats. * Control identifier 1 selects cells and UEs, because the E3AP SUBSCRIPTION REQUEST has no field for the service model. * The information elements have an ASN.1 grammar for APER and a JSON form, with size limits and a rule to split an indication that exceeds them. * Annex B is a complete exchange in APER and JSON. Annex C lists the open items. The clause layout follows the E2 service models: services, RAN function description, elements, error handling and annexes. The E3AP procedure table is in clause 4.3. The text of the earlier chapters is folded into these clauses. Where the existing E3 Agents differ from the draft, Annex C says so, and clause C.5 keeps their Protocol Buffers messages. The integrator guide stays. It points at the clauses and items of the draft, and its code notes N.1 to N.9 hold the findings about the code only. tools/oran_docx builds every Word edition the same way: * A Dockerfile (Ubuntu 24.04, LibreOffice, pdftotext, the Liberation fonts) gives the table of contents its page numbers on every host. CONTRIBUTING.md builds in it. * Markdown images become numbered figures, code blocks are boxed in the PL style, and lines that hold only HTML anchors are left out. * The template names O-RAN Work Group X, Real-Time Distributed Applications (dApps), on the cover and in the Foreword: the DEFAULT_GROUP of build_docx.py, which make_template.py applies. The optional docx.json field group names another work group. E2SM-DAPP is an E2 service model and keeps O-RAN Work Group 3, Near-Real-time RAN Intelligent Controller. The four Word editions are numbered O-RAN.XXX.TS.*, where XXX holds the place of the group until the naming is agreed, and E3SM-L1-KPM is O-RAN.XXX.TS.E3SM-L1-KPM-R000-v00.01. All four are built in the container. The change history of E3SM-L1-KPM names NVIDIA and Northeastern University. docs/e3sm/README.md and the link from the Spectrum specification use the name E3SM-L1-KPM, and REUSE.toml covers the PNG figure. Co-authored-by: Thecave3 <thecave003@gmail.com> Signed-off-by: Thecave3 <thecave003@gmail.com> Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
b31f650 to
1cb9182
Compare
Summary
Replaces the E3SM-L1-KPM specification in
docs/e3sm/l1-kpm/(four telemetry identifiers) with a draft for the uplink layer 1. It keeps RAN function2and version1, since no version of the service model has been released yet. The Word edition isO-RAN.XXX.TS.E3SM-L1-KPM-R000-v00.01.docx. A dApp that works on the uplink layer 1 also needs the PUSCH and SRS data of each slot. The draft defines:validSymbolMask(ID 1000);timestamp(ID 4) on the monotonic clock of the E3 Agent host, as for every payload that points into shared memory, while ID 78 gives the time of the slot in TAI;1;The draft follows the clause layout of the E2 service models. The text of the earlier chapters 01 to 06 is folded into its clauses, and Annex C lists where existing E3 Agents differ from the draft. The integrator guide stays, and its links point to the clauses and Annex C items of the draft.
tools/oran_docxnow:tools/oran_docx/Dockerfile), so the contents have page numbers on every host;PLstyle;DEFAULT_GROUP, applied bymake_template.py). The optionalgroupfield ofdocx.jsonnames another work group: E2SM-DAPP, an E2 service model, keeps O-RAN Work Group 3, Near-Real-time RAN Intelligent Controller.All four Word editions are numbered
O-RAN.XXX.TS.*, whereXXXholds the place of the group name until the naming is agreed.Names NVIDIA and Northeastern University in the change history of E3SM-L1-KPM. Updates the L1-KPM row of
docs/e3sm/README.mdand the link text in the Spectrum specification. Adds the PNG figure toREUSE.toml.The PR is one commit,
1cb9182, co-authored byThecave3.Type of change
Linked issue
No issue yet: this is a draft for discussion. Related issues:
2.1for it.Twin-repo coordination
libe3 is paired with
dappsanddApp-openairinterface5g. We do not accept patches that break or reduce compatibility with the twin repositories.docs/interop.md.Paired PR(s): none. This is a specification only, with no code. An implementation of the draft will need paired PRs.
Checks run
All on the tree of
1cb9182:1and with a monotonic ID 4, againstmain'smessages/asn1/V1/e3ap-1.0.0.asn1.tools/oran_docx/Dockerfile.tools/oran_docx/template.docx.reuse lintpasses, and a strict Doxygen build (LIBE3_DOCS_STRICT=ON, Doxygen 1.9.8, Ubuntu 24.04, same options asdocs.yml) shows 0 warnings in the changed files. Both ran locally in a container.scripts/check_commit_trailers.py --base origin/main --head HEADpasses.Open points for review
tools/oran_docx/template.docxstill gives every Word edition the O-RAN ALLIANCE copyright page and footers, and its Modal verbs clause speaks of O-RAN deliverables. Should both go?CONTRIBUTING.mdanddocs/e3sm/README.mdstill describe the six chapters of the other E3 specifications. A separate PR can align them and move E3AP, Spectrum and E2SM-DAPP to the same layout.🤖 Generated with Claude Code