Package: simu5g.stack.rlc.am
LteRlcAmRxEntity
simple moduleLTE (TS 36.322) receiving side of the Acknowledged Mode (AM) of the RLC layer: PDU-SN receiving window with byte-interval coverage for AMD PDU segments, t-Reordering + t-StatusProhibit, ACK_SN + NACK-list STATUS reports, in-order FI-walk reassembly of the concatenated SDU stream. Shares the common RlcAmRxEntityBase shell with the NR profile NrRlcAmRxEntity, whose window/status machinery it deliberately mirrors. Bound by default inside the LteRlcAmEntity compound.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| AM_Window_Size | int | 512 |
TS 36.322: 512 (10-bit SN space) |
| t_Reordering | double | 80ms | |
| t_StatusProhibit | double | 100ms |
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) |
|
| feedbackOut | output |
Received STATUS PDUs -> co-located TX side (ARQ) |
|
| statusOut | output |
Own STATUS reports -> co-located TX side (transmission) |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| receivedPacketFromLowerLayer | |||
| sentPacketToUpperLayer | |||
| rxWindowOccupation | |||
| rlcDelayDl | |||
| rlcThroughputDl | |||
| rlcDelayUl | |||
| rlcThroughputUl | |||
| rlcPduDelayDl | |||
| rlcPduThroughputDl | |||
| rlcPduDelayUl | |||
| rlcPduThroughputUl | |||
| rlcPacketLossDl | |||
| rlcPacketLossUl |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | Description |
|---|---|---|---|---|---|---|
| receivedPacketFromLowerLayer | receivedPacketFromLowerLayer | count, sum(packetBytes) | none | |||
| sentPacketToUpperLayer | sentPacketToUpperLayer | count, sum(packetBytes) | none | |||
| rxWindowOccupation | RX window occupation | rxWindowOccupation | mean | |||
| 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 | ||
| rlcPacketLossDl | Packet loss at the rlc layer DL | rlcPacketLossDl | mean | |||
| rlcPacketLossUl | Packet loss at the rlc layer UL | rlcPacketLossUl | mean |
Source code
// // LTE (TS 36.322) receiving side of the Acknowledged Mode (AM) of the RLC // layer: PDU-SN receiving window with byte-interval coverage for AMD PDU // segments, t-Reordering + t-StatusProhibit, ACK_SN + NACK-list STATUS // reports, in-order FI-walk reassembly of the concatenated SDU stream. // Shares the common RlcAmRxEntityBase shell with the NR profile // ~NrRlcAmRxEntity, whose window/status machinery it deliberately mirrors. // Bound by default inside the ~LteRlcAmEntity compound. // simple LteRlcAmRxEntity like simu5g.stack.rlc.IRlcAmRxEntity { parameters: @dynamic(true); @display("i=block/layer"); int AM_Window_Size = default(512); // TS 36.322: 512 (10-bit SN space) double t_Reordering @unit(s) = default(80ms); double t_StatusProhibit @unit(s) = default(100ms); @signal[receivedPacketFromLowerLayer]; @statistic[receivedPacketFromLowerLayer](source="receivedPacketFromLowerLayer"; record=count,"sum(packetBytes)"; interpolationmode=none); @signal[sentPacketToUpperLayer]; @statistic[sentPacketToUpperLayer](source="sentPacketToUpperLayer"; record=count,"sum(packetBytes)"; interpolationmode=none); @signal[rxWindowOccupation]; @statistic[rxWindowOccupation](title="RX window occupation"; source="rxWindowOccupation"; record=mean); //# 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); @signal[rlcPacketLossDl]; @statistic[rlcPacketLossDl](title="Packet loss at the rlc layer DL"; unit=""; source="rlcPacketLossDl"; record=mean); @signal[rlcPacketLossUl]; @statistic[rlcPacketLossUl](title="Packet loss at the rlc layer UL"; unit=""; source="rlcPacketLossUl"; record=mean); 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) output feedbackOut; // Received STATUS PDUs -> co-located TX side (ARQ) output statusOut; // Own STATUS reports -> co-located TX side (transmission) }File: src/simu5g/stack/rlc/am/LteRlcAmRxEntity.ned