LtePdcpRrcBase

Package: simu5g.stack.pdcp_rrc

LtePdcpRrcBase

simple module

The LtePdcpRrcBase module implements the functionalities of the Packet Data Convergence Protocol (PDCP). It enables header compression and maps incoming IP packets to different Radio Link Control (RLC) modes. This module dynamically creates LteTxPdcpEntity and LteRxPdcpEntity submodules to handle individual transmission/reception connections

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
LtePdcpRrcEnb simple module

The LtePdcpRrcEnb module implements the PDCP/RRC layer for an LTE NIC employed at eNodeBs. It performs header compression and maps incoming IP datagrams to different Radio Link Control (RLC) modes. Additionally, it supports Dual Connectivity and Split Bearer functionalities.

LtePdcpRrcUe simple module

The LtePdcpRrcUe module implements the PDCP/RRC layer for an LTE NIC employed at a User Equipment. It performs header compression on incoming IP datagrams

Parameters

Name Type Default value Description
binderModule string "binder"
packetFlowManagerModule string "^.packetFlowManager"

optional

nrPacketFlowManagerModule string "^.nrPacketFlowManager"

optional

headerCompressedSize int -1B

Header compressed size (bytes) ( -1B = compression disabled

conversationalRlc string "UM"
streamingRlc string "UM"
interactiveRlc string "UM"
backgroundRlc string "UM"

Properties

Name Value Description
display i=block/fork

Gates

Name Direction Size Description
DataPort inout

Port to transmit data packets

EUTRAN_RRC_Sap inout

Control of RRC Layer

TM_Sap [ ] inout

Transparent Mode SAP

UM_Sap [ ] inout

Unacknowledged Mode SAP

AM_Sap [ ] inout

Acknowledged Mode SAP

Signals

Name Type Unit Description
receivedPacketFromLowerLayer
sentPacketToLowerLayer
receivedPacketFromUpperLayer
sentPacketToUpperLayer

Statistics

Name Title Source Record Unit Interpolation Mode Description
receivedPacketFromLowerLayer receivedPacketFromLowerLayer count, sum(packetBytes), vector(packetBytes) none
sentPacketToLowerLayer sentPacketToLowerLayer count, sum(packetBytes), vector(packetBytes) none
receivedPacketFromUpperLayer receivedPacketFromUpperLayer count, sum(packetBytes), vector(packetBytes) none
sentPacketToUpperLayer sentPacketToUpperLayer count, sum(packetBytes), vector(packetBytes) none

Source code

//
// The LtePdcpRrcBase module implements the functionalities of the Packet Data
// Convergence Protocol (PDCP). It enables header compression and maps incoming IP packets
// to different Radio Link Control (RLC) modes. This module dynamically creates
// ~LteTxPdcpEntity and ~LteRxPdcpEntity submodules to handle individual transmission/reception connections
//
simple LtePdcpRrcBase like ILtePdcpRrc
{
    parameters:
        @display("i=block/fork");
        string binderModule = default("binder");
        string packetFlowManagerModule = default("^.packetFlowManager"); // optional
        string nrPacketFlowManagerModule = default("^.nrPacketFlowManager"); // optional
        int headerCompressedSize @unit(B) = default(-1B);    // Header compressed size (bytes) ( -1B = compression disabled
        string conversationalRlc @enum(TM,UM,AM,UNKNOWN_RLC_TYPE) = default("UM");
        string streamingRlc @enum(TM,UM,AM,UNKNOWN_RLC_TYPE) = default("UM");
        string interactiveRlc @enum(TM,UM,AM,UNKNOWN_RLC_TYPE) = default("UM");
        string backgroundRlc @enum(TM,UM,AM,UNKNOWN_RLC_TYPE) = default("UM");

        //# 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 UE/eNB and PDCP/RRC Layer
        //#
        //# Data Ports

        inout DataPort;            // Port to transmit data packets

        //# Control Ports

        inout EUTRAN_RRC_Sap;    // Control of RRC Layer

        //#
        //# Gates connecting PDCP/RRC and RLC Layer
        //#
        //# Data Ports

        inout TM_Sap[];            // Transparent Mode SAP
        inout UM_Sap[];            // Unacknowledged Mode SAP
        inout AM_Sap[];            // Acknowledged Mode SAP
}

File: src/stack/pdcp_rrc/LtePdcpRrcBase.ned