BearerManagement¶
Package: simu5g.stack.rrc
simple module BearerManagement
RRC Bearer Management — creates and tears down PDCP, RLC and MAC entities for data radio bearers.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
RRC (Radio Resource Control) layer for LTE/NR networks. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
binderModule |
string |
“binder” |
To reach a peer’s BearerManagement on RLF |
connectionControlModule |
string |
“^.connectionControl” |
The node’s control-plane entry point (see Rrc), which a torn-down bearer’s DRB identity goes back through |
t311 |
double |
0s |
RRC re-establishment cell-selection timer (0 => release-to-IDLE) |
t301 |
double |
0.1s |
RRC re-establishment (request -> complete) timer |
headerCompressedSize |
int |
-1B |
Removed, an error if set: header compression is configured per bearer (the rohc field of BearerConfigurator’s bearer definitions) |
pdcpEntityModuleType |
string |
“simu5g.stack.pdcp.LtePdcpEntity” |
PDCP entity types: the full PDCP entity is a compound (PdcpEntityBase, TX+RX sides plus the leg split/join stage of a multi-leg bearer); the instantiable types are its subclasses (LtePdcpEntity, NrPdcpEntity). At a DC secondary a bearer’s PDCP lives at the master, so the secondary installs an PdcpRelayEntity (tunnels PDUs to/from the master) in its place. |
pdcpRelayEntityModuleType |
string |
“simu5g.stack.pdcp.PdcpRelayEntity” |
|
dualConnectivityEnabled |
bool |
false |
Set by the NIC; two-leg (split-capable) bearers |
rlcTmEntityModuleType |
string |
“simu5g.stack.rlc.RlcTmEntity” |
RLC entity types (compound modules): lteRlc* = LTE-FI bearers (TS 36.322), nrRlc* = NR bearers (SI/SO wire format, TS 38.322) |
lteRlcUmEntityModuleType |
string |
“simu5g.stack.rlc.LteRlcUmEntity” |
|
lteRlcAmEntityModuleType |
string |
“simu5g.stack.rlc.LteRlcAmEntity” |
|
nrRlcUmEntityModuleType |
string |
“simu5g.stack.rlc.NrRlcUmEntity” |
|
nrRlcAmEntityModuleType |
string |
“simu5g.stack.rlc.NrRlcAmEntity” |
|
registrationModule |
string |
“^.registration” |
Module references for accessing other stack layers |
drbTableModule |
string |
“^.drbTable” |
|
ip2nicModule |
string |
“^.^.ip2nic” |
|
handoverPacketHolderModule |
string |
“^.^.handoverPacketHolder” |
Attachment-ledger push target (UE only) |
pdcpMuxModule |
string |
“^.^.pdcpMux” |
|
pdcpDcMuxModule |
string |
“^.^.pdcpDcMux” |
|
d2dModeControllerModule |
string |
“^.d2dModeController” |
|
rlcMuxModule |
string |
“^.^.rlcMux” |
|
nrRlcMuxModule |
string |
“^.^.nrRlcMux” |
|
macModule |
string |
“^.^.mac” |
|
nrMacModule |
string |
“^.^.nrMac” |
|
sdapModule |
string |
“^.^.sdap” |
Configuration push target; unresolvable (no SDAP on the NIC) = no pushes |
qosFlowClassifierModule |
string |
“^.^.qosFlowClassifier” |
Uplink QFI rule push target; unresolvable (not a UE stack with SDAP) = no pushes |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
BearerManagement |
|
display |
i=block/control |
Source code¶
//
// RRC Bearer Management — creates and tears down PDCP, RLC and MAC
// entities for data radio bearers.
//
simple BearerManagement like IBearerManagement
{
parameters:
@display("i=block/control");
@class(BearerManagement);
string binderModule = default("binder"); // To reach a peer's BearerManagement on RLF
string connectionControlModule = default("^.connectionControl"); // The node's control-plane entry point (see ~Rrc), which a torn-down bearer's DRB identity goes back through
// RRC re-establishment after a radio link failure (TS 38.331 5.3.7). On RLF the peer's
// link is released (Ip2Nic drops its traffic); t311 = cell-(re)selection timer, and when
// it expires a suitable cell is assumed selected (single-cell), the RRCReestablishmentRequest
// is sent and t301 (request -> complete) runs; on its expiry the peer is un-released and its
// bearer re-establishes on demand. t311 = 0s disables re-establishment (release-to-IDLE).
// PDU-level RRC signaling is abstracted by these timers, as for handover.
double t311 @unit(s) = default(0s); // RRC re-establishment cell-selection timer (0 => release-to-IDLE)
double t301 @unit(s) = default(0.1s); // RRC re-establishment (request -> complete) timer
int headerCompressedSize @unit(B) = default(-1B); // Removed, an error if set: header compression is configured per bearer (the rohc field of ~BearerConfigurator's bearer definitions)
// PDCP entity types: the full PDCP entity is a compound (PdcpEntityBase, TX+RX sides plus
// the leg split/join stage of a multi-leg bearer); the instantiable types are its
// subclasses (LtePdcpEntity, NrPdcpEntity). At a DC secondary a bearer's PDCP lives at
// the master, so the secondary installs an PdcpRelayEntity (tunnels PDUs to/from the
// master) in its place.
string pdcpEntityModuleType = default("simu5g.stack.pdcp.LtePdcpEntity");
string pdcpRelayEntityModuleType = default("simu5g.stack.pdcp.PdcpRelayEntity");
bool dualConnectivityEnabled = default(false); // Set by the NIC; two-leg (split-capable) bearers
// RLC entity types (compound modules): lteRlc* = LTE-FI bearers (TS 36.322),
// nrRlc* = NR bearers (SI/SO wire format, TS 38.322)
string rlcTmEntityModuleType = default("simu5g.stack.rlc.RlcTmEntity");
string lteRlcUmEntityModuleType = default("simu5g.stack.rlc.LteRlcUmEntity");
string lteRlcAmEntityModuleType = default("simu5g.stack.rlc.LteRlcAmEntity");
string nrRlcUmEntityModuleType = default("simu5g.stack.rlc.NrRlcUmEntity");
string nrRlcAmEntityModuleType = default("simu5g.stack.rlc.NrRlcAmEntity");
// An NR-leg bearer uses the nrRlc* compound (NR SI/SO wire format); a config may
// point these back to the lteRlc* compounds above to keep an NR leg on LTE RLC.
// TM is transparent and identical for both RATs, so it has no LTE/NR split.
// Module references for accessing other stack layers
string registrationModule = default("^.registration");
string drbTableModule = default("^.drbTable");
string ip2nicModule = default("^.^.ip2nic");
string handoverPacketHolderModule = default("^.^.handoverPacketHolder"); // Attachment-ledger push target (UE only)
string pdcpMuxModule = default("^.^.pdcpMux");
string pdcpDcMuxModule = default("^.^.pdcpDcMux");
string d2dModeControllerModule = default("^.d2dModeController");
string rlcMuxModule = default("^.^.rlcMux");
string nrRlcMuxModule = default("^.^.nrRlcMux");
string macModule = default("^.^.mac");
string nrMacModule = default("^.^.nrMac");
string sdapModule = default("^.^.sdap"); // Configuration push target; unresolvable (no SDAP on the NIC) = no pushes
string qosFlowClassifierModule = default("^.^.qosFlowClassifier"); // Uplink QFI rule push target; unresolvable (not a UE stack with SDAP) = no pushes
}