NrPdcpEntity

Package: simu5g.stack.pdcp

NrPdcpEntity

compound module

PDCP entity of an NR data radio bearer: the PdcpEntityBase compound with its TX/RX sides bound to the NR entity profiles (TS 38.323), i.e. NR-flavored statistics on the TX side and the multi-leg reorder window on the RX side. Selected by BearerManagement via its pdcpEntityModuleType parameter (set by NrNicUe/NrNicEnb, and on EN-DC master eNBs from the configuration).

tx : like IPdcpTxEntity

IPdcpTxEntity: Module interface for the transmitting side of a PDCP entity.

Source:
tx: <> like IPdcpTxEntity {
    @display("p=50,50");
} rx : like IPdcpRxEntity

IPdcpRxEntity: Module interface for the receiving side of a PDCP entity.

Source:
rx: <> like IPdcpRxEntity {
    @display("p=150,50");
} splitter : like IPdcpLegSplitter

DcPdcpLegSplitter: TX-side leg dispatcher of a dual-connectivity split bearer (two legs), steering each PDCP PDU to a...

IPdcpLegSplitter: Module interface for the TX-side leg dispatcher of a PDCP entity (see ~PdcpEntityBase):...

Source:
splitter: <default("simu5g.stack.pdcp.DcPdcpLegSplitter")> like IPdcpLegSplitter if hasSplitter {
    @display("p=50,130;is=s");
} joiner : like IPdcpLegJoiner

PdcpLegJoiner: RX-side leg merger of a multi-leg PDCP entity (see ~PdcpEntityBase): relays the PDU streams of all...

IPdcpLegJoiner: Module interface for the RX-side leg merger of a multi-leg PDCP entity (see ~PdcpEntityBase):...

Source:
joiner: <default("simu5g.stack.pdcp.PdcpLegJoiner")> like IPdcpLegJoiner if numLegs > 1 {
    @display("p=150,130;is=s");
}

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the 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

headerCompressedSize int -1B
rlcMode string "UM"

Forwarded to tx only; determines the PDCP header size

Properties

Name Value Description
dynamic true
display i=block/wheelbarrow

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

Source code

//
// PDCP entity of an NR data radio bearer: the ~PdcpEntityBase compound with its
// TX/RX sides bound to the NR entity profiles (TS 38.323), i.e. NR-flavored
// statistics on the TX side and the multi-leg reorder window on the RX side.
// Selected by BearerManagement via its pdcpEntityModuleType parameter (set by
// NrNicUe/NrNicEnb, and on EN-DC master eNBs from the configuration).
//
module NrPdcpEntity extends PdcpEntityBase
{
    parameters:
        tx.typename = default("simu5g.stack.pdcp.NrPdcpTxEntity");
        rx.typename = default("simu5g.stack.pdcp.NrPdcpRxEntity");
}
File: src/simu5g/stack/pdcp/NrPdcpEntity.ned