LteRlcTm

Package: simu5g.stack.rlc.tm

LteRlcTm

simple module

This module implements the functionalities of the Transparent Mode (TM) of the Radio Link Control (RLC) layer.

Used in compound modules

Name Type Description
LteRlc compound module

The LteRlc module implements the functionalities of the Radio Link Control (RLC) layer. It provides mechanisms for end-to-end connectivity over the radio interface. It sends and receives RLC Service Data Units (SDUs) to and from the Packet Data Convergence Protocol (PDCP) layer, and sends and receives RLC Protocol Data Units (PDUs) to and from the Medium Access Control (MAC) layer. Depending on the mode, this layer can provide segmentation, concatenation, in-sequence delivery, and retransmission of PDUs. Currently, only the Unacknowledged Mode (UM) has been implemented.

Parameters

Name Type Default value Description
queueSize int 2MiB

RLC SDU queue size (0: unlimited)

Properties

Name Value Description
display i=block/wheelbarrow

Gates

Name Direction Size Description
TM_Sap_up inout
TM_Sap_down inout

Gate to RLC Mux

Signals

Name Type Unit Description
rlcPacketLossUl
receivedPacketFromLowerLayer
sentPacketToLowerLayer
rlcPacketLossDl
receivedPacketFromUpperLayer
sentPacketToUpperLayer

Statistics

Name Title Source Record Unit Interpolation Mode Description
rlcPacketLossUl rlc Packet Loss rlcPacketLossUl mean, sum, vector
receivedPacketFromLowerLayer receivedPacketFromLowerLayer count, sum(packetBytes), vector(packetBytes) none
sentPacketToLowerLayer sentPacketToLowerLayer count, sum(packetBytes), vector(packetBytes) none
rlcPacketLossDl rlc Packet Loss rlcPacketLossDl mean, sum, vector
receivedPacketFromUpperLayer receivedPacketFromUpperLayer count, sum(packetBytes), vector(packetBytes) none
sentPacketToUpperLayer sentPacketToUpperLayer count, sum(packetBytes), vector(packetBytes) none

Source code

//
// This module implements the functionalities of the Transparent Mode (TM) of the
// Radio Link Control (RLC) layer.
//
simple LteRlcTm
{
    parameters:
        @display("i=block/wheelbarrow");
        int queueSize @unit(B) = default(2MiB);              // RLC SDU queue size (0: unlimited)

        //# SDU-level statistics
        @signal[rlcPacketLossUl];
        @statistic[rlcPacketLossUl](title="rlc Packet Loss"; unit=""; source="rlcPacketLossUl"; record=mean,sum,vector);
        @signal[rlcPacketLossDl];
        @statistic[rlcPacketLossDl](title="rlc Packet Loss"; unit=""; source="rlcPacketLossDl"; record=mean,sum,vector);

        //# PDU-level statistics
        @signal[receivedPacketFromUpperLayer];
        @statistic[receivedPacketFromUpperLayer](source="receivedPacketFromUpperLayer"; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
        @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);
        @signal[sentPacketToLowerLayer];
        @statistic[sentPacketToLowerLayer](source="sentPacketToLowerLayer"; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);
    gates:
        //#
        //# Gates connecting RLC and TM
        //#
        inout TM_Sap_up;    // Gate to PDCP
        inout TM_Sap_down;    // Gate to RLC Mux
}

File: src/stack/rlc/tm/LteRlcTm.ned