D2dEnbMacBase< Base > Class Template Reference¶
|
Simu5G
|
#include <D2dEnbMacBase.h>
Public Member Functions | |
| void | initialize (int stage) override |
| void | handleMessage (cMessage *msg) override |
| intercepts the D2D self-messages (mode switch, conflict graph update) | |
| void | deleteQueues (MacNodeId nodeId) override |
Protected Member Functions | |
| void | flushHarqBuffers () override |
| void | fromPhy (cPacket *pkt) override |
| Lower Layer Handler: intercepts mirrored D2D H-ARQ feedback. | |
| LteHarqBufferRx * | createRxHarqBuffer (MacNodeId src, const UserControlInfo *userInfo) override |
| HARQ RX buffer factory: adds support for the D2D and D2D_MULTI directions. | |
Detailed Description
class simu5g::D2dEnbMacBase< Base >
CRTP mixin that adds D2D support to an eNB/gNB MAC.
The core MACs (LteMacEnb and its NR subclass NrMacGnb) carry no D2D code; this mixin layers the D2D eNB-MAC glue (D2D feedback push, mode-switch dispatch and notification, mirror H-ARQ buffer lifecycle, conflict-graph bookkeeping) on top of either of them, so the LTE and NR D2D MACs share one implementation. The heavy shared state and logic already lives in D2dEnbMacHelper; the mixin holds the module-side glue that the two leaf classes used to duplicate. It has native protected access to the Base internals it needs.
The concrete Define_Module'd MACs are: LteMacEnbD2D = D2dEnbMacBase<LteMacEnb> (+ the sendGrants/macPduUnmake fork overrides, see LteMacEnbD2D.h) NrMacGnbD2D = D2dEnbMacBase<NrMacGnb>
No signals are owned here: the mode-switch statistics are declared on the D2D NED modules and emitted by the UE-side mixin. See the "Signals" note in D2dUeMacBase.h for the package-wide registration rule.
Member Function Documentation
◆ flushHarqBuffers()
|
overrideprotected |
Flush Tx H-ARQ buffers for all users; additionally marks the D2D mirror buffers as waiting.
◆ fromPhy()
|
overrideprotected |
Lower Layer Handler: intercepts mirrored D2D H-ARQ feedback.
References LteMacBase::fromPhy().
◆ createRxHarqBuffer()
|
overrideprotected |
HARQ RX buffer factory: adds support for the D2D and D2D_MULTI directions.
◆ initialize()
|
override |
Reads the D2D MAC parameters and performs initialization.
◆ handleMessage()
|
override |
intercepts the D2D self-messages (mode switch, conflict graph update)
◆ deleteQueues()
|
override |
deleteQueues() on ENB performs actions from base classes and also deletes mirror buffers
- Parameters
-
nodeId id of node performing handover
Generated by