ID2dRlcUmTxEntity Class Reference

Simu5G: ID2dRlcUmTxEntity Class Reference
Simu5G
ID2dRlcUmTxEntity Class Referenceabstract

#include <ID2dRlcUmTxEntity.h>

Inheritance diagram for ID2dRlcUmTxEntity:
[legend]

Public Member Functions

virtual void resumeDownstreamInPackets ()=0
virtual bool isEmptyingBuffer ()=0
virtual void startHoldingDownstreamInPackets ()=0
virtual bool isHoldingDownstreamInPackets ()=0
virtual void rlcHandleD2DModeSwitch (bool oldConnection, bool clearBuffer)=0

Detailed Description

What a D2D UM TX entity offers the D2D mode controller.

The LTE (FI) and the NR (SO) profiles are separate class hierarchies, so a D2D-capable TX entity exists in two unrelated concrete flavours (~LteRlcUmTxEntityD2D, ~NrRlcUmTxEntityD2D). ~D2DModeController has to hold both in one registry, hence this narrow cross-technology interface – the same idiom as ID2dMacEnb/ID2dMacUe/ID2dAmc elsewhere in this package.

Discovery is by dynamic_cast from the RLC TX entity base.

Member Function Documentation

◆ resumeDownstreamInPackets()

virtual void resumeDownstreamInPackets ( )
pure virtual

Release the SDUs parked in the holding buffer into the TX buffer, and resume normal downstream buffering. Called on the entity of the newly selected mode once the old-mode entity has drained.

Implemented in RlcUmTxEntityD2D< Base >, RlcUmTxEntityD2D< LteRlcUmTxEntity >, and RlcUmTxEntityD2D< NrRlcUmTxEntity >.

◆ isEmptyingBuffer()

virtual bool isEmptyingBuffer ( )
pure virtual

True while this entity is draining its TX buffer for a mode switch, i.e. the peer's new-mode entity must keep holding its incoming SDUs.

Implemented in RlcUmTxEntityD2D< Base >, RlcUmTxEntityD2D< LteRlcUmTxEntity >, and RlcUmTxEntityD2D< NrRlcUmTxEntity >.

◆ startHoldingDownstreamInPackets()

virtual void startHoldingDownstreamInPackets ( )
pure virtual

Start parking incoming SDUs instead of buffering them. Used when a peer's old-mode entity is found to be still draining at registration time.

Implemented in RlcUmTxEntityD2D< Base >, RlcUmTxEntityD2D< LteRlcUmTxEntity >, and RlcUmTxEntityD2D< NrRlcUmTxEntity >.

◆ isHoldingDownstreamInPackets()

virtual bool isHoldingDownstreamInPackets ( )
pure virtual

True while incoming SDUs are being parked in the holding buffer.

Implemented in RlcUmTxEntityD2D< Base >, RlcUmTxEntityD2D< LteRlcUmTxEntity >, and RlcUmTxEntityD2D< NrRlcUmTxEntity >.

◆ rlcHandleD2DModeSwitch()

virtual void rlcHandleD2DModeSwitch ( bool oldConnection,
bool clearBuffer )
pure virtual

Adapt the TX buffers and the sequence numbering to a D2D mode switch. Called by ~RlcMuxD2D on the entities of the old and the new mode.

Implemented in RlcUmTxEntityD2D< Base >, RlcUmTxEntityD2D< LteRlcUmTxEntity >, and RlcUmTxEntityD2D< NrRlcUmTxEntity >.