Package: simu5g.stack.rlc
RlcAmEntityBase
compound moduleBase type of the RLC AM entity of one data radio bearer: packages the transmitting and the receiving side into the single bidirectional entity of TS 36.322 / 38.322 section 4.2.1. Created dynamically by BearerManagement, one per (peer, DRB) pair.
This base type binds no TX/RX entity types; the concrete subclasses do (LteRlcAmEntity, NrRlcAmEntity), so it is not instantiable on its own.
The receiving side hands control PDUs to the co-located transmitting side over two internal connections:
- feedback: STATUS PDUs received from the peer, consumed by the TX side's ARQ (acknowledgements for data this entity transmitted);
- status: locally generated STATUS reports, which the TX side transmits to the peer on this bearer's logical channel (data and control PDUs share the logical channel in AM).
Usage diagram
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
| Name | Type | Description |
|---|---|---|
| LteRlcAmEntity | compound module |
RLC AM entity of an LTE data radio bearer: the RlcAmEntityBase compound with its TX/RX sides bound to the LTE (FI wire format, TS 36.322) entity profiles. Selected by BearerManagement for LTE bearers via its lteRlcAmEntityModuleType parameter, which defaults to this type. |
| NrRlcAmEntity | compound module |
RLC AM entity of an NR data radio bearer: the RlcAmEntityBase compound with its TX/RX sides bound to the NR (SI/SO wire format, TS 38.322) entity profiles. Selected by BearerManagement for NR bearers via its nrRlcAmEntityModuleType parameter. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| macModule | string | "^.mac" |
This bearer leg's MAC; set per leg by BearerManagement |
| bearerManagementModule | string | "^.rrc.bearerManagement" |
Notified of radio link failures |
Properties
| Name | Value | Description |
|---|---|---|
| dynamic | true | |
| display | i=block/wheelbarrow |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| upperIn | input |
SDUs from PDCP |
|
| upperOut | output |
Reassembled SDUs to PDCP |
|
| lowerIn | input |
PDUs from RlcMux (data + control) |
|
| lowerOut | output |
PDUs and new-data notifications to RlcMux/MAC |
|
| macIn | input |
MAC SDU requests via RlcMux |
Source code
// // Base type of the RLC AM entity of one data radio bearer: packages the // transmitting and the receiving side into the single bidirectional entity of // TS 36.322 / 38.322 section 4.2.1. Created dynamically by BearerManagement, // one per (peer, DRB) pair. // // This base type binds no TX/RX entity types; the concrete subclasses do // (~LteRlcAmEntity, ~NrRlcAmEntity), so it is not instantiable on its own. // // The receiving side hands control PDUs to the co-located transmitting side // over two internal connections: // - feedback: STATUS PDUs received from the peer, consumed by the TX side's ARQ // (acknowledgements for data this entity transmitted); // - status: locally generated STATUS reports, which the TX side transmits to // the peer on this bearer's logical channel (data and control PDUs share // the logical channel in AM). // module RlcAmEntityBase { parameters: @dynamic(true); @display("i=block/wheelbarrow"); string macModule = default("^.mac"); // This bearer leg's MAC; set per leg by BearerManagement string bearerManagementModule = default("^.rrc.bearerManagement"); // Notified of radio link failures *.macModule = default(absPath(this.macModule)); *.bearerManagementModule = default(absPath(this.bearerManagementModule)); gates: input upperIn; // SDUs from PDCP output upperOut; // Reassembled SDUs to PDCP input lowerIn; // PDUs from RlcMux (data + control) output lowerOut; // PDUs and new-data notifications to RlcMux/MAC input macIn; // MAC SDU requests via RlcMux submodules: tx: <> like IRlcAmTxEntity { @display("p=50,50"); } rx: <> like IRlcAmRxEntity { @display("p=150,50"); } connections: upperIn --> { @display("m=n"); } --> tx.in; macIn --> { @display("m=s"); } --> tx.macIn; tx.out --> { @display("m=s"); } --> lowerOut; lowerIn --> { @display("m=s"); } --> rx.in; rx.out --> { @display("m=n"); } --> upperOut; rx.feedbackOut --> tx.feedbackIn; // received STATUS PDUs -> TX-side ARQ rx.statusOut --> tx.statusIn; // own STATUS reports -> TX for transmission }File: src/simu5g/stack/rlc/RlcAmEntityBase.ned