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
2 changes: 1 addition & 1 deletion docs/e2sm-dapp/05-semantics-and-constraints.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Table: Identifiers and their ranges
| `dapp-id` | the dApp | `0..4294967295` | `1..65535` | |
| `SubscribedE3RANFunction-ID` | an E3 RAN function a dApp has subscribed to | `0..4294967295` | `1..65535` | |
| `sequence-id` | one detection-to-mitigation procedure | unbounded, optional | `1..4294967295` (`E3-SequenceID`) | **`E3-SequenceID` equals E2SM-DAPP `sequence-id`**: same value, assigned by the dApp, never reassigned. |
| `node-type`, `node-plmn-id`, `node-nb-id`, `node-cu-du-id` | identity of the reporting node | see 02 | | the grammar defines no enumeration and no packing. See 02. |
| `node-type`, `node-plmn-id`, `node-nb-id`, `node-cu-du-id` | identity of the reporting node | see [02](02-ie-mapping.md) | | the grammar defines no enumeration and no packing. See [02](02-ie-mapping.md). |

**A sender should keep the E2SM-DAPP ids inside the E3 ranges.** E2SM-DAPP can carry
`0` and values above `65535`. A RAN that relays a control over E3 cannot deliver them,
Expand Down
Binary file modified docs/e2sm-dapp/O-RAN.XXX.TS.E2SM-DAPP-R000-v00.01.docx
Binary file not shown.
11 changes: 7 additions & 4 deletions docs/e2sm-dapp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ The present document defines the RAN function definition, the information elemen
the procedures of this service model. It also defines the APER encoding of the
information elements and the handling of unknown and erroneous data.

This document is generated from the codebase and protocol definitions for the libe3
implementation in https://github.com/wineslab/libe3.

## References

### Normative references
Expand All @@ -37,7 +40,7 @@ applies. For a non-specific reference, the latest version applies.
The following referenced documents are necessary for the application of the present
document.

1. O-RAN-WG3.TS.E2GAP: "O-RAN E2 General Aspects and Principles".
1. O-RAN.WG3.TS.E2GAP: "O-RAN E2 General Aspects and Principles".
2. O-RAN.WG3.TS.E2AP: "O-RAN E2 Application Protocol (E2AP)".
3. O-RAN.WG3.TS.E2SM: "O-RAN E2 Service Model (E2SM)".
4. ITU-T Recommendation X.680: "Information technology: Abstract Syntax Notation One (ASN.1): Specification of basic notation".
Expand All @@ -49,15 +52,15 @@ document.
The following referenced documents are not necessary for the application of the present
document, but they help the reader.

1. The E3 Application Protocol (E3AP) specification, [../e3ap/README.md](../e3ap/README.md).
1. O-RAN.XXX.TS.E3AP-R000-v00.01: "E3 Application Protocol (E3AP)", https://github.com/wineslab/libe3/tree/main/docs/e3ap.
2. The OpenAirInterface implementation of E3AP and of this service model: https://github.com/duranta-project/openairinterface5g/pull/729.

## Terms, symbols and abbreviations

### Terms

For the purposes of the present document, the terms and definitions given in O-RAN
WG3.TS.E2GAP [1], O-RAN.WG3.TS.E2SM [3] and the following apply.
For the purposes of the present document, the terms and definitions given in
O-RAN.WG3.TS.E2GAP [1], O-RAN.WG3.TS.E2SM [3] and the following apply.

* **dApp**: an application that runs next to the E2 node and talks to it over E3.
* **dApp E3 subscription map**: the list of the dApps connected to the E2 node, each with the E3 RAN functions it has subscribed to.
Expand Down
1 change: 0 additions & 1 deletion docs/e2sm-dapp/docx.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"number": "O-RAN.XXX.TS.E2SM-DAPP-R000-v00.01",
"title": "E2 Service Model dApp (E2SM-DAPP)",
"cover": ["E2 Service Model (E2SM)", "dApp (E2SM-DAPP)"],
"group": {"cover": ["O-RAN Work Group 3", "Near-Real-time RAN Intelligent Controller"], "foreword": "WG3"},
"parts": [
{"clause": "1", "title": "Scope", "file": "README.md", "section": "Scope"},
{"clause": "2", "title": "References", "file": "README.md", "section": "References"},
Expand Down
Binary file modified docs/e3ap/O-RAN.XXX.TS.E3AP-R000-v00.01.docx
Binary file not shown.
7 changes: 5 additions & 2 deletions docs/e3ap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ how a RAN node produces telemetry or applies a control action. It does not defin
the E2 interface. The E2SM-DAPP specification defines how a RIC reaches a dApp
through the E2 interface. See the [E2SM-DAPP specification](../e2sm-dapp/README.md).

This document is generated from the codebase and protocol definitions for the libe3
implementation in https://github.com/wineslab/libe3.

## References

### Normative references
Expand All @@ -43,9 +46,9 @@ References are specific. Only the cited version applies.

[i.1] Protocol Buffers Language Guide (proto3), https://protobuf.dev/programming-guides/proto3/.

[i.2] The E2SM-DAPP specification of this series. See [../e2sm-dapp/README.md](../e2sm-dapp/README.md).
[i.2] O-RAN.XXX.TS.E2SM-DAPP-R000-v00.01: "E2 Service Model dApp (E2SM-DAPP)", https://github.com/wineslab/libe3/tree/main/docs/e2sm-dapp.

[i.3] The E3SM Spectrum and E3SM L1-KPM specifications of this series. See [../e3sm/README.md](../e3sm/README.md).
[i.3] O-RAN.XXX.TS.E3SM-SPEC-R000-v00.01: "E3 Service Model Spectrum (E3SM-SPEC)", https://github.com/wineslab/libe3/tree/main/docs/e3sm/spectrum, and O-RAN.XXX.TS.E3SM-L1-KPM-R000-v00.01: "E3 Service Model (E3SM), L1 KPM (E3SM-L1-KPM)", https://github.com/wineslab/libe3/tree/main/docs/e3sm/l1-kpm.

[i.4] The OpenAirInterface implementation of E3AP, https://github.com/duranta-project/openairinterface5g/pull/729.

Expand Down
Binary file modified docs/e3sm/l1-kpm/O-RAN.XXX.TS.E3SM-L1-KPM-R000-v00.01.docx
Binary file not shown.
5 changes: 4 additions & 1 deletion docs/e3sm/l1-kpm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ The present document does not define E3AP messages or procedures. They are defin
[1]. It does not define how a RAN node computes the values that it reports. It does not
define the transport between the dApp and the E3 Agent.

This document is generated from the codebase and protocol definitions for the libe3
implementation in https://github.com/wineslab/libe3.

## References

### Normative references
Expand All @@ -53,7 +56,7 @@ References are specific. Only the cited version applies.
The following referenced documents are necessary for the application of the present
document.

[1] "[E3 Application Protocol (E3AP)](../../e3ap/README.md)", R000 v00.01.
[1] O-RAN.XXX.TS.E3AP-R000-v00.01: "E3 Application Protocol (E3AP)", https://github.com/wineslab/libe3/tree/main/docs/e3ap.

[2] ITU-T Recommendation X.680 (2002-07): "Information technology: Abstract Syntax Notation One (ASN.1): Specification of basic notation".

Expand Down
Binary file modified docs/e3sm/spectrum/O-RAN.XXX.TS.E3SM-SPEC-R000-v00.01.docx
Binary file not shown.
7 changes: 5 additions & 2 deletions docs/e3sm/spectrum/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ The document does not define the E3 Application Protocol. It does not define the
E2 service model that carries dApp traffic to an xApp. It does not define how a
scheduler enforces a PRB block internally.

This document is generated from the codebase and protocol definitions for the libe3
implementation in https://github.com/wineslab/libe3.

## References

### Normative references
Expand All @@ -43,12 +46,12 @@ applies. For non-specific references, the latest version of the referenced docum
applies.

> NOTE: While any hyperlinks included in this clause were valid at the time of
> publication, O-RAN cannot guarantee their long-term validity.
> publication, their long-term validity cannot be guaranteed.

The following referenced documents are necessary for the application of the present
document.

[1] E3AP specification: "E3 Application Protocol (E3AP)", see [the E3AP specification](../../e3ap/README.md).
[1] O-RAN.XXX.TS.E3AP-R000-v00.01: "E3 Application Protocol (E3AP)", https://github.com/wineslab/libe3/tree/main/docs/e3ap.

[2] ITU-T Recommendation X.680 (2002-07): "Information technology: Abstract Syntax Notation One (ASN.1): Specification of basic notation".

Expand Down
47 changes: 34 additions & 13 deletions tools/oran_docx/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# oran_docx

Builds the O-RAN Word edition of a specification from its Markdown folder. The
specifications live under `docs/` (`e2sm-dapp/`, `e3ap/`, `e3sm/spectrum/`,
Builds an O-RAN-like Word edition of a specification from its Markdown folder.
The document follows the layout of an O-RAN Technical Specification: the cover,
the copyright page, the contents, the Foreword, the Modal verbs clause, the
clause numbering, the styles, the headers and the footers. It is not an O-RAN
ALLIANCE document. It carries no O-RAN logo and no working group, and its
copyright belongs to Northeastern University under the Apache License 2.0.

The specifications live under `docs/` (`e2sm-dapp/`, `e3ap/`, `e3sm/spectrum/`,
`e3sm/l1-kpm/`). Each folder carries the Markdown chapters, a manifest
`docx.json` and the generated `O-RAN.XXX.TS.*.docx`.

Expand All @@ -26,8 +32,8 @@ docker run --rm -u "$(id -u):$(id -g)" -v "$PWD":/src libe3-oran-docx docs/e3ap
|---|---|
| `build_docx.py` | the generator |
| `Dockerfile` | Ubuntu 24.04 with Python 3, LibreOffice, `pdftotext` and the Liberation fonts |
| `template.docx` | the O-RAN template, cut down to the cover, the copyright page, the Foreword, the Modal verbs clause, the styles, the headers and the footers. The cover and the Foreword name O-RAN Work Group X, Real-Time Distributed Applications (dApps) |
| `make_template.py` | how `template.docx` was cut from an O-RAN specification and given the working group of the E3 specifications; run it again only when the O-RAN template changes |
| `template.docx` | the O-RAN template, cut down to the cover, the copyright page, the Foreword, the Modal verbs clause, the styles, the headers and the footers. It has no O-RAN logo, no working group and no rule across the cover; the copyright page and the Foreword name Northeastern University and the Apache License 2.0, and the footers carry only the page number |
| `make_template.py` | how `template.docx` was made from an O-RAN specification: it keeps the layout and writes the front matter of the libe3 specifications. Run it again only when the O-RAN template or the front matter changes |

## The manifest

Expand All @@ -47,13 +53,7 @@ docker run --rm -u "$(id -u):$(id -g)" -v "$PWD":/src libe3-oran-docx docs/e3ap

* `number` is the document number. It goes on the cover, in the headers and in the
document properties.
* `cover` holds the two title lines under the working group.
* `group` is optional. The template names O-RAN Work Group X, Real-Time Distributed
Applications (dApps), where `X` holds the place of the number until the naming is
agreed. `group` names another working group: `cover` gives its two lines on the
cover and `foreword` its short name in the Foreword. E2SM-DAPP is an E2 service
model and sets `{"cover": ["O-RAN Work Group 3", "Near-Real-time RAN Intelligent
Controller"], "foreword": "WG3"}`.
* `cover` holds the two title lines of the cover.
* A part is a whole Markdown file, or with `section` the text under one level 2
heading of the file. Its `clause` gives its place and heading level: `5` is a
level 1 heading, `8.2` a level 2 heading, `A` an annex.
Expand All @@ -65,8 +65,8 @@ docker run --rm -u "$(id -u):$(id -g)" -v "$PWD":/src libe3-oran-docx docs/e3ap

Headings, paragraphs, bullet and numbered lists (two levels), pipe tables, fenced
code blocks, block quotes (shown as notes), and the inline marks for code, bold,
italic and links. A link shows its text; an `http` link also shows its address.
A line that holds only HTML anchors, such as `<a id="formats"></a>`, is left out.
italic and links. A line that holds only HTML anchors, such as
`<a id="formats"></a>`, is left out, and its anchors name the heading below it.
A fenced code block is set in the PL style of the template, in one box with a
light gray background and a border.

Expand All @@ -86,6 +86,27 @@ size that its resolution gives and at most the width of the text, with the capti
each clause, as tables are, so the text can refer to "Figure 5-1". PNG and JPEG
files are accepted. A missing file stops the build.

## Links

The Word edition has no files to link to, so each link becomes a reference that a
reader of the document can follow:

| Link in the Markdown | In Word |
|---|---|
| `[04-encoding.md](04-encoding.md)`, to a file of a part | `clause 8` |
| `[encoding](04-encoding.md#json)`, with an anchor of a heading | `encoding (clause 8.3)` |
| `[06](06-discrepancies.md)`, `[section 2](#formats)` | `Annex A`, `clause 6.2` |
| `[E2SM-DAPP](../e2sm-dapp/README.md)`, to any other file | `E2SM-DAPP (https://github.com/wineslab/libe3/tree/main/docs/e2sm-dapp)` |
| `[../interop.md](../interop.md)` | `https://github.com/wineslab/libe3/blob/main/docs/interop.md` |
| `[RFC 9293](https://...)` | `RFC 9293 (https://...)` |

A label that only names the target (its path, its file name, its number such as
`06`, or a clause number of the Markdown edition) is replaced; any other label is
kept and the reference follows it in parentheses. An anchor is the one GitHub gives
the heading, or an `<a id>` above it. An anchor that matches no heading falls back
to the clause of the whole file and prints a note. The sentence "The index is
README.md." is left out, since the Word edition has its own contents.

## Check the result

```bash
Expand Down
Loading
Loading