Package: simu5g.stack.pdcp_rrc
LtePdcpRrcBase
simple moduleThe 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