NED File src/simu5g/stack/d2d/NrNicUeD2D.ned¶
Name |
Type |
Description |
|---|---|---|
compound module |
Device-to-Device (D2D) capable NR User Equipment network interface. It extends NrNicUe by swapping in the D2D-capable NR MAC/PHY leaves and enabling the D2D mode controller, allowing direct UE-to-UE communication without routing traffic through the gNodeB. It is the NR counterpart of LteNicUeD2D. |
Source code¶
//
// Simu5G
//
// Copyright (C) 2019-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
//
// This file is part of a software released under the license included in file
// "license.pdf". Please read LICENSE and README files before using it.
// The above files and the present reference are part of the software itself,
// and cannot be removed from it.
//
package simu5g.stack.d2d;
import simu5g.stack.NrNicUe;
//
// Device-to-Device (D2D) capable NR User Equipment network interface. It extends
// ~NrNicUe by swapping in the D2D-capable NR MAC/PHY leaves and enabling the D2D
// mode controller, allowing direct UE-to-UE communication without routing traffic
// through the gNodeB. It is the NR counterpart of ~LteNicUeD2D.
//
// The PDCP and RLC entities are missing from the submodules on purpose: the RRC
// layer's ~BearerManagement creates them per bearer at run time.
//
module NrNicUeD2D extends NrNicUe
{
parameters:
// NR stack: use the D2D-capable MAC/PHY leaves
nrMac.typename = default("NrMacUeD2D");
nrPhy.typename = default("PhyUeD2D");
// LTE leg: also runs the D2D-capable MAC/PHY leaves (the PHY carries
// the averageCqiD2D statistic)
mac.typename = default("LteMacUeD2D");
phy.typename = default("PhyUeD2D");
ip2nic.typename = default("Ip2NicD2D");
// Both legs previously ran with the NIC-wide D2D support enabled
rlcMux.typename = default("RlcMuxD2D");
rrc.bearerManagement.lteRlcUmEntityModuleType = default("simu5g.stack.d2d.rlc.LteRlcUmEntityD2D");
rrc.bearerManagement.nrRlcUmEntityModuleType = default("simu5g.stack.d2d.rlc.NrRlcUmEntityD2D");
nrRlcMux.typename = default("RlcMuxD2D");
// Use the D2D-capable channel model on both legs (matching the
// pre-separation defaults: TR 36.814 on the LTE leg, TR 38.901 on the NR leg)
channelModelType = default("D2dChannelModel");
nrChannelModelType = default("D2dChannelModel");
nrChannelModel[*].pathLossType = default("Tr38901");
rrc.typename = default("RrcD2D");
rrc.connectionControl.typename = default("ConnectionControlUeD2D");
rrc.nrConnectionControl.typename = default("ConnectionControlUeD2D");
bool d2dInitialMode = default(false);
}