LteMacUeD2D Class Reference

Simu5G: LteMacUeD2D Class Reference
Simu5G
LteMacUeD2D Class Reference

#include <LteMacUeD2D.h>

Inheritance diagram for LteMacUeD2D:
[legend]

Protected Member Functions

void purgeRxHarqBuffers () override
Protected Member Functions inherited from D2dUeMacBase< LteMacUe >
void recordBufferOverflow (Direction dir, double sample) override
 The D2D directions are serviced here; everything else defers to the core MAC.
void initialize (int stage) override
void handleMessage (cMessage *msg) override
bool isBsrPending () const override
int64_t appendBsr (inet::Ptr< LteMacPdu > macPdu) override
bool buildStandaloneBsr () override
MacNodeId pduDestId (MacCid destCid) override
 D2D bearers are peer-addressed: the destination comes from the flow, not the cell.
bool shouldSkipScheduleEntry (unsigned int sduPerCid) const override
UnitList reserveTxHarqUnits (LteHarqBufferTx *txBuf, Direction dir) override
void macHandleRac (cPacket *pkt) override
LteHarqBufferRx * createRxHarqBuffer (MacNodeId src, const UserControlInfo *userInfo) override
 HARQ buffer factories: add support for the D2D and D2D_MULTI directions.
LcgScheduler * createLcgScheduler () override
 Factory override: use the D2D-capable LCG scheduler.

Detailed Description

D2D-capable LTE UE MAC: the D2dUeMacBase mixin layered over the core LTE UE MAC. All the shared D2D logic lives in the mixin (see D2dUeMacBase.h); the main loop is inherited from LteMacUe, with the D2D deltas flowing through the isBsrPending() (mixin) and purgeRxHarqBuffers() seams.

Member Function Documentation

◆ purgeRxHarqBuffers()

void purgeRxHarqBuffers ( )
overrideprotected

purge corrupted PDUs of the DL buffer only, keeping the D2D mirror buffers intact