D2dModeSelectionBase¶
Package: simu5g.stack.d2d.rrc
simple module D2dModeSelectionBase
Base module for D2D Mode Selection modules.
Extend this module to implement new mode selection policies. It periodically executes the mode selection algorithm and, for flows that need to be switched, sends a notification to the transmitting endpoint of those flows.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
D2D-capable variant of the Rrc layer. It adds the D2D mode controller (which coordinates RLC TX-queue draining across a mode switch) and, on the eNB/gNB side (hasD2DModeSelection==true), the periodic D2D mode selection module. Selected via ‘rrc.typename’ by the D2D-capable NICs. |
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
simple module |
Implements the mode selection algorithm for D2D communications that selects the mode based on the best Channel Quality Indicator (CQI). It evaluates the CQI for each D2D-capable flow and selects the communication mode that provides the best performance in terms of achievable data rate. The primary goal is to optimize data transmission quality and efficiency by dynamically switching between modes based on CQI measurements. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
modeSelectionPeriod |
double |
1s |
|
binderModule |
string |
“binder” |
|
d2dBinderModule |
string |
“d2dBinder” |
The network’s D2dBinder, which holds the D2D state |
macModule |
string |
“^.^.mac” |
|
connectionControlModule |
string |
“^.connectionControl” |
The node’s control-plane entry point, which knows the UEs handing over |
Source code¶
//
// Base module for D2D Mode Selection modules.
//
// Extend this module to implement new mode selection policies.
// It periodically executes the mode selection algorithm and, for flows
// that need to be switched, sends a notification to the transmitting
// endpoint of those flows.
//
simple D2dModeSelectionBase like ID2DModeSelection
{
parameters:
double modeSelectionPeriod @unit(s) = default(1s);
string binderModule = default("binder");
string d2dBinderModule = default("d2dBinder"); // The network's ~D2dBinder, which holds the D2D state
string macModule = default("^.^.mac");
string connectionControlModule = default("^.connectionControl"); // The node's control-plane entry point, which knows the UEs handing over
}