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.

simu5g.stack.d2d.rrc.D2dModeSelectionBaseD2dModeSelectionBasesimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

RrcD2D

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

D2DModeSelectionBestCqi

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
}

File: src/simu5g/stack/d2d/rrc/D2dModeSelectionBase.ned