Package: simu5g.stack.rlc.um
NrRlcUmRxEntity
simple moduleNR (TS 38.322) receiving side of the Unacknowledged Mode (UM) of the RLC layer: SI + byte-offset (SO) reassembly with a per-SDU SN window and a t-Reassembly timer. Shares the common RlcUmRxEntityBase shell with the LTE profile LteRlcUmRxEntity. Bound by default inside the NrRlcUmEntity compound. The NR SO-reassembly statistics are declared here so they are recorded only for NR entities.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Known subclasses
| Name | Type | Description |
|---|---|---|
| NrRlcUmRxEntityD2D | simple module |
D2D-capable NR (TS 38.322) RLC UM receiving entity: NrRlcUmRxEntity plus the mode-switch buffer discard/renumbering and the D2D branch of the throughput/delay statistics. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| macModule | string | "^.^.mac" |
Set by the enclosing RlcUmEntityBase compound (per leg) |
| rlcMuxModule | string | "^.^.rlcMux" |
This bearer's leg mux; set by the RlcUmEntityBase compound |
| UM_Window_Size | int | 2048 |
SDU reassembly window: 2048 (12-bit SN) or 32 (6-bit SN) |
| t_Reassembly | double | 80ms |
Properties
| Name | Value | Description |
|---|---|---|
| dynamic | true | |
| display | i=block/layer |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| in | input |
PDUs from MAC, via the RlcMux |
|
| out | output |
Reassembled SDUs to the PDCP layer (direct per-DRB connection, not via a mux) |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| receivedPacketFromLowerLayer | |||
| sentPacketToUpperLayer | |||
| rlcDelayDl | |||
| rlcThroughputDl | |||
| rlcDelayUl | |||
| rlcThroughputUl | |||
| rlcPduDelayDl | |||
| rlcPduThroughputDl | |||
| rlcPduDelayUl | |||
| rlcPduThroughputUl |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | Description |
|---|---|---|---|---|---|---|
| receivedPacketFromLowerLayer | receivedPacketFromLowerLayer | count, sum(packetBytes), vector(packetBytes) | none | |||
| sentPacketToUpperLayer | sentPacketToUpperLayer | count, sum(packetBytes), vector(packetBytes) | none | |||
| rlcDelayDl | Delay at the rlc layer DL | rlcDelayDl | mean | s | ||
| rlcThroughputDl | Throughput at the rlc layer DL | rlcThroughputDl | simu5g_rateavg | Bps | ||
| rlcDelayUl | Delay at the rlc layer UL | rlcDelayUl | mean | s | ||
| rlcThroughputUl | Throughput at the rlc layer UL | rlcThroughputUl | simu5g_rateavg | Bps | ||
| rlcPduDelayDl | PDU delay at the rlc layer DL | rlcPduDelayDl | mean | s | ||
| rlcPduThroughputDl | PDU throughput at the rlc layer DL | rlcPduThroughputDl | simu5g_rateavg | Bps | ||
| rlcPduDelayUl | PDU delay at the rlc layer UL | rlcPduDelayUl | mean | s | ||
| rlcPduThroughputUl | PDU throughput at the rlc layer UL | rlcPduThroughputUl | simu5g_rateavg | Bps |
Source code
// // NR (TS 38.322) receiving side of the Unacknowledged Mode (UM) of the RLC // layer: SI + byte-offset (SO) reassembly with a per-SDU SN window and a // t-Reassembly timer. Shares the common RlcUmRxEntityBase shell with the LTE // profile ~LteRlcUmRxEntity. Bound by default inside the ~NrRlcUmEntity // compound. The NR SO-reassembly statistics are declared here so they are // recorded only for NR entities. // simple NrRlcUmRxEntity like simu5g.stack.rlc.IRlcRxEntity { parameters: @dynamic(true); @display("i=block/layer"); string macModule = default("^.^.mac"); // Set by the enclosing RlcUmEntityBase compound (per leg) string rlcMuxModule = default("^.^.rlcMux"); // This bearer's leg mux; set by the RlcUmEntityBase compound int UM_Window_Size = default(2048); // SDU reassembly window: 2048 (12-bit SN) or 32 (6-bit SN) double t_Reassembly @unit(s) = default(80ms); @signal[receivedPacketFromLowerLayer]; @statistic[receivedPacketFromLowerLayer](source="receivedPacketFromLowerLayer"; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none); @signal[sentPacketToUpperLayer]; @statistic[sentPacketToUpperLayer](source="sentPacketToUpperLayer"; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none); //# Per-bearer statistics. A bearer serves one peer, so these are already //# per-UE; aggregate over a UE's bearers in the analysis tool. @signal[rlcDelayDl]; @statistic[rlcDelayDl](title="Delay at the rlc layer DL"; unit="s"; source="rlcDelayDl"; record=mean); @signal[rlcThroughputDl]; @statistic[rlcThroughputDl](title="Throughput at the rlc layer DL"; unit="Bps"; source="rlcThroughputDl"; record=simu5g_rateavg); @signal[rlcDelayUl]; @statistic[rlcDelayUl](title="Delay at the rlc layer UL"; unit="s"; source="rlcDelayUl"; record=mean); @signal[rlcThroughputUl]; @statistic[rlcThroughputUl](title="Throughput at the rlc layer UL"; unit="Bps"; source="rlcThroughputUl"; record=simu5g_rateavg); @signal[rlcPduDelayDl]; @statistic[rlcPduDelayDl](title="PDU delay at the rlc layer DL"; unit="s"; source="rlcPduDelayDl"; record=mean); @signal[rlcPduThroughputDl]; @statistic[rlcPduThroughputDl](title="PDU throughput at the rlc layer DL"; unit="Bps"; source="rlcPduThroughputDl"; record=simu5g_rateavg); @signal[rlcPduDelayUl]; @statistic[rlcPduDelayUl](title="PDU delay at the rlc layer UL"; unit="s"; source="rlcPduDelayUl"; record=mean); @signal[rlcPduThroughputUl]; @statistic[rlcPduThroughputUl](title="PDU throughput at the rlc layer UL"; unit="Bps"; source="rlcPduThroughputUl"; record=simu5g_rateavg); gates: input in; // PDUs from MAC, via the RlcMux output out; // Reassembled SDUs to the PDCP layer (direct per-DRB connection, not via a mux) }File: src/simu5g/stack/rlc/um/NrRlcUmRxEntity.ned