LtePdcpEntity

Package: simu5g.stack.pdcp

compound module LtePdcpEntity

PDCP entity of an LTE data radio bearer: the PdcpEntityBase compound with its TX/RX sides bound to the LTE entity profiles (TS 36.323). Selected by BearerManagement via its pdcpEntityModuleType parameter, which defaults to this type.

LtePdcpEntityupperIn --> tx.in inherited from PdcpEntityBaserx.out --> upperOut inherited from PdcpEntityBasetx.out --> legOut[0] inherited from PdcpEntityBase conditional: !hasSplitter?tx.out --> splitter.in inherited from PdcpEntityBase conditional: hasSplitter?splitter.out++ --> legOut[i] inherited from PdcpEntityBase for i=0..numLegs-1 conditional: hasSplitter⦀?legIn[0] --> rx.in inherited from PdcpEntityBase conditional: numLegs == 1?joiner.out --> rx.in inherited from PdcpEntityBase conditional: numLegs > 1?legIn[i] --> joiner.in++ inherited from PdcpEntityBase for i=0..numLegs-1 conditional: numLegs > 1⦀?tx: simu5g.stack.pdcp.LtePdcpTxEntity (like IPdcpTxEntity) inherited from PdcpEntityBase LtePdcpTxEntity: Handles operations related to the LTE PDCP (Packet Data Convergence Protocol) layer on the transm... IPdcpTxEntity: Module interface for the transmitting side of a PDCP entity. Source: tx: <> like IPdcpTxEntity { @display("p=50,50"); }txrx: simu5g.stack.pdcp.LtePdcpRxEntity (like IPdcpRxEntity) inherited from PdcpEntityBase LtePdcpRxEntity: Handles the operations related to the LTE PDCP (Packet Data Convergence Protocol) layer at the re... IPdcpRxEntity: Module interface for the receiving side of a PDCP entity. Source: rx: <> like IPdcpRxEntity { @display("p=150,50"); }rxsplitter: simu5g.stack.pdcp.DcPdcpLegSplitter (like IPdcpLegSplitter) inherited from PdcpEntityBase DcPdcpLegSplitter: TX-side leg dispatcher of a dual-connectivity split bearer (two legs), steering each PDCP PDU to... IPdcpLegSplitter: Module interface for the TX-side leg dispatcher of a PDCP entity (see ~PdcpEntityBase): implement... Source: splitter: <default("simu5g.stack.pdcp.DcPdcpLegSplitter")> like IPdcpLegSplitter if hasSplitter { @display("p=50,130;is=s"); }splitterjoiner: simu5g.stack.pdcp.PdcpLegJoiner (like IPdcpLegJoiner) inherited from PdcpEntityBase PdcpLegJoiner: RX-side leg merger of a multi-leg PDCP entity (see ~PdcpEntityBase): relays the PDU streams of al... IPdcpLegJoiner: Module interface for the RX-side leg merger of a multi-leg PDCP entity (see ~PdcpEntityBase): imp... Source: joiner: <default("simu5g.stack.pdcp.PdcpLegJoiner")> like IPdcpLegJoiner if numLegs > 1 { @display("p=150,130;is=s"); }joiner

Inheritance diagram

Extends

Name

Type

Description

PdcpEntityBase

compound module

Base type of the PDCP entity of one data radio bearer: packages the transmitting and the receiving side of TS 36.323 / 38.323, plus the leg split/join stage of a multi-leg bearer (e.g. an NR dual connectivity split bearer). Created dynamically by BearerManagement, one per (peer, DRB) pair.

Parameters

Name

Type

Default value

Description

numLegs

int

1

Number of RLC legs of this bearer

legs

string

numLegs == 1 ? “MCG” : “MCG SCG”

Cell group of each leg, space-separated, in leg-index order

hasSplitter

bool

numLegs > 1 || legs != “MCG”

The TX side routes through the splitter whenever a leg needs its per-leg id mapping

rohcProfiles

string

“”

The bearer’s ROHC profiles, space-separated, pushed by RRC; “” = no header compression

rlcMode

string

“UM”

Forwarded to tx only; determines the PDCP header size

Properties

Name

Value

Description

display

i=block/wheelbarrow

dynamic

true

Gates

Name

Direction

Size

Description

upperIn

input

SDUs from IP (via PdcpMux)

upperOut

output

Reassembled SDUs to IP (via PdcpMux)

legOut [ ]

output

numLegs

PDUs to leg k (RLC entity, or DcMux/X2)

legIn [ ]

input

numLegs

PDUs from leg k

Unassigned submodule parameters

Name

Type

Default value

Description

tx.binderModule

string

“binder”

tx.emitPerSduSignals

bool

true

Cleared by a PdcpEntityBase with a splitter: the splitter emits the per-leg statistics

tx.rohcProfiles

string

“”

The bearer’s ROHC profiles, space-separated, pushed by RRC; “” = no header compression

tx.rohcFoHeaderSizes

object

{rtp: 6, udp: 6, tcp: 9, ip: 4}

Compressed header size per ROHC profile in the FO state, in bytes

tx.rohcSoHeaderSizes

object

{rtp: 3, udp: 3, tcp: 5, ip: 1}

Compressed header size per ROHC profile in the SO state, in bytes

tx.rohcIrOverhead

int

3B

Size of an IR packet’s ROHC fields (packet type, profile, CRC) on top of the full headers

tx.rohcIrPackets

int

3

IR packets a context sends before moving to FO

tx.rohcFoPackets

int

3

FO packets a context sends before moving to SO

tx.rohcIrRefresh

int

1700

Packets of a context between two IR refreshes

tx.rohcFoRefresh

int

700

SO packets of a context between two FO refreshes

tx.rlcMode

string

“UM”

RLC mode of this bearer, pushed by RRC; determines the PDCP header size

rx.binderModule

string

“binder”

rx.rohcProfiles

string

“”

The bearer’s ROHC profiles, space-separated, pushed by RRC; “” = no header compression

splitter.numLegs

int

Number of legs (set by the enclosing PdcpEntityBase)

splitter.legs

string

Cell group of each leg, space-separated “MCG”/”SCG” (set by the enclosing PdcpEntityBase)

splitter.binderModule

string

“binder”

Source code

//
// PDCP entity of an LTE data radio bearer: the ~PdcpEntityBase compound with
// its TX/RX sides bound to the LTE entity profiles (TS 36.323). Selected by
// BearerManagement via its pdcpEntityModuleType parameter, which defaults to
// this type.
//
module LtePdcpEntity extends PdcpEntityBase
{
    parameters:
        tx.typename = default("simu5g.stack.pdcp.LtePdcpTxEntity");
        rx.typename = default("simu5g.stack.pdcp.LtePdcpRxEntity");
}

File: src/simu5g/stack/pdcp/LtePdcpEntity.ned