LteRlcAmTxEntity

Package: simu5g.stack.rlc.am

LteRlcAmTxEntity

simple module

LTE (TS 36.322) transmission side of the Acknowledged Mode (AM) of the RLC layer: one AMD PDU per MAC grant built by concatenation (FI framing), the built PDU as the ARQ unit, NACK-driven retransmission with re-segmentation into AMD PDU segments, pollPDU/pollByte-driven status polling with t-PollRetransmit, and radio link failure at maxRtxThreshold retransmissions. Shares the common RlcAmTxEntityBase shell with the NR profile NrRlcAmTxEntity, whose ARQ skeleton 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)

pollByte int 125kB
pollPDU int 64
maxRtxThreshold int 4
t_PollRetransmit double 80ms
bearerManagementModule string

Notified when maxRtxThreshold is reached; set by the enclosing entity

Properties

Name Value Description
dynamic true
display i=block/layer

Gates

Name Direction Size Description
in input

SDUs from the PDCP layer (direct per-DRB connection, not via a mux)

macIn input

MAC SDU requests, via the RlcMux

out output

PDUs and new-data notifications to MAC, via the RlcMux

feedbackIn input

STATUS PDUs received from the peer, from the co-located RX side (to ARQ)

statusIn input

Locally generated STATUS reports, from the co-located RX side (to transmit)

Signals

Name Type Unit Description
receivedPacketFromUpperLayer
sentPacketToLowerLayer
txWindowOccupation
wastedGrantedBytes
requestedPduSize
enqueuedSduSize
enqueuedSduRate
txWindowFull
retransmissionPdu

Statistics

Name Title Source Record Unit Interpolation Mode Description
receivedPacketFromUpperLayer receivedPacketFromUpperLayer count, sum(packetBytes) none
sentPacketToLowerLayer sentPacketToLowerLayer count, sum(packetBytes) none
txWindowOccupation TX window occupation txWindowOccupation mean
wastedGrantedBytes Wasted granted bytes wastedGrantedBytes sum B
requestedPduSize Requested PDU size requestedPduSize mean B
enqueuedSduSize Enqueued SDU size enqueuedSduSize mean B
enqueuedSduRate Enqueued SDU rate enqueuedSduRate mean
txWindowFull TX window full events txWindowFull count
retransmissionPdu Retransmitted PDUs retransmissionPdu count

Source code

//
// LTE (TS 36.322) transmission side of the Acknowledged Mode (AM) of the RLC
// layer: one AMD PDU per MAC grant built by concatenation (FI framing), the
// built PDU as the ARQ unit, NACK-driven retransmission with re-segmentation
// into AMD PDU segments, pollPDU/pollByte-driven status polling with
// t-PollRetransmit, and radio link failure at maxRtxThreshold retransmissions.
// Shares the common RlcAmTxEntityBase shell with the NR profile
// ~NrRlcAmTxEntity, whose ARQ skeleton it deliberately mirrors. Bound by
// default inside the ~LteRlcAmEntity compound.
//
simple LteRlcAmTxEntity like simu5g.stack.rlc.IRlcAmTxEntity
{
    parameters:
        @dynamic(true);
        @display("i=block/layer");
        int AM_Window_Size = default(512);       // TS 36.322: 512 (10-bit SN space)
        int pollByte @unit(B) = default(125kB);
        int pollPDU = default(64);
        int maxRtxThreshold = default(4);
        double t_PollRetransmit @unit(s) = default(80ms);
        string bearerManagementModule;   // Notified when maxRtxThreshold is reached; set by the enclosing entity

        @signal[receivedPacketFromUpperLayer];
        @statistic[receivedPacketFromUpperLayer](source="receivedPacketFromUpperLayer"; record=count,"sum(packetBytes)"; interpolationmode=none);
        @signal[sentPacketToLowerLayer];
        @statistic[sentPacketToLowerLayer](source="sentPacketToLowerLayer"; record=count,"sum(packetBytes)"; interpolationmode=none);
        @signal[txWindowOccupation];
        @statistic[txWindowOccupation](title="TX window occupation"; source="txWindowOccupation"; record=mean);
        @signal[wastedGrantedBytes];
        @statistic[wastedGrantedBytes](title="Wasted granted bytes"; unit="B"; source="wastedGrantedBytes"; record=sum);
        @signal[requestedPduSize];
        @statistic[requestedPduSize](title="Requested PDU size"; unit="B"; source="requestedPduSize"; record=mean);
        @signal[enqueuedSduSize];
        @statistic[enqueuedSduSize](title="Enqueued SDU size"; unit="B"; source="enqueuedSduSize"; record=mean);
        @signal[enqueuedSduRate];
        @statistic[enqueuedSduRate](title="Enqueued SDU rate"; source="enqueuedSduRate"; record=mean);
        @signal[txWindowFull];
        @statistic[txWindowFull](title="TX window full events"; source="txWindowFull"; record=count);
        @signal[retransmissionPdu];
        @statistic[retransmissionPdu](title="Retransmitted PDUs"; source="retransmissionPdu"; record=count);

    gates:
        input in;       // SDUs from the PDCP layer (direct per-DRB connection, not via a mux)
        input macIn;    // MAC SDU requests, via the RlcMux
        output out;     // PDUs and new-data notifications to MAC, via the RlcMux
        input feedbackIn;   // STATUS PDUs received from the peer, from the co-located RX side (to ARQ)
        input statusIn; // Locally generated STATUS reports, from the co-located RX side (to transmit)
}
File: src/simu5g/stack/rlc/am/LteRlcAmTxEntity.ned