PdcpRelayEntity

Package: simu5g.stack.pdcp

compound module PdcpRelayEntity

Stands in place of the PDCP entity of a data radio bearer at a dual-connectivity SECONDARY node. The bearer’s real PDCP entity lives at the master; the secondary only tunnels the already-processed PDUs between the master (over X2, via the DcMux) and its own RLC, doing no PDCP processing of its own. Created dynamically by BearerManagement, one per (UE, DRB) pair, in place of a PdcpEntityBase.

The RLC-side boundary mirrors PdcpEntityBase’s (legOut/legIn), so the RLC entity is wired the same way regardless of what sits above it. The two directions are independent halves: PdcpDownlinkRelay carries DL (master -> RLC), PdcpUplinkRelay carries UL (RLC -> master).

Usage diagram

Properties

Name

Value

Description

display

i=block/wheelbarrow

dynamic

true

Gates

Name

Direction

Size

Description

legOut [ ]

output

1

DL PDU to the local RLC entity (shared RLC boundary, cf. PdcpEntityBase)

legIn [ ]

input

1

UL PDU from the local RLC entity

x2In

input

DL PDU tunneled from the master (via the DcMux)

x2Out

output

UL PDU to be tunneled to the master (via the DcMux)

Unassigned submodule parameters

Name

Type

Default value

Description

dl.binderModule

string

“binder”

ul.binderModule

string

“binder”

Source code

//
// Stands in place of the PDCP entity of a data radio bearer at a
// dual-connectivity SECONDARY node. The bearer's real PDCP entity lives at the
// master; the secondary only tunnels the already-processed PDUs between the
// master (over X2, via the DcMux) and its own RLC, doing no PDCP processing of
// its own. Created dynamically by BearerManagement, one per (UE, DRB) pair, in
// place of a ~PdcpEntityBase.
//
// The RLC-side boundary mirrors ~PdcpEntityBase's (legOut/legIn), so the RLC entity
// is wired the same way regardless of what sits above it. The two directions are
// independent halves: ~PdcpDownlinkRelay carries DL (master -> RLC),
// ~PdcpUplinkRelay carries UL (RLC -> master).
//
module PdcpRelayEntity
{
    parameters:
        @dynamic(true);
        @display("i=block/wheelbarrow");
    gates:
        output legOut[1];   // DL PDU to the local RLC entity (shared RLC boundary, cf. PdcpEntityBase)
        input legIn[1];     // UL PDU from the local RLC entity
        input x2In;         // DL PDU tunneled from the master (via the DcMux)
        output x2Out;       // UL PDU to be tunneled to the master (via the DcMux)
    submodules:
        dl: PdcpDownlinkRelay {
            @display("p=60,50");
        }
        ul: PdcpUplinkRelay {
            @display("p=140,50");
        }
    connections:
        x2In --> dl.in;
        dl.out --> { @display("m=s"); } --> legOut[0];
        legIn[0] --> { @display("m=s"); } --> ul.in;
        ul.out --> x2Out;
}

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