PhyBase.ned

NED File src/simu5g/stack/phy/PhyBase.ned

Name Type Description
PhyBase simple module

Base module for the Physical (PHY) layer of the LTE/NR protocol stack.

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.phy;

//
// Base module for the Physical (PHY) layer of the LTE/NR protocol stack.
//
// Provides the common functionalities for PHY operations at both the
// eNodeB and User Equipment (UE) sides, such as the initialization of ChannelModel
// module instances, one for each Carrier Component (CC) supported by the node, and
// the transmission of frames over the radio. It provides parameters to configure
// the transmission power and direction of the node, as well as to enable or disable
// handover procedures.
//
simple PhyBase like IPhy
{
    parameters:
        @display("i=block/wrxtx");
        bool isNr = default(false);   // True for the NR leg (set by NrNicUe/NrNicEnb on their PHY submodule)
        int macNodeId;                // MacNodeId of the stack leg this PHY belongs to (set by the NIC)
        double ueTxPower @unit(dBm) = default(26dBm);
        double eNodeBTxPower @unit(dBm) = default(46dBm);
        double microTxPower @unit(dBm) = default(30dBm);
        string txDirection @enum(ANISOTROPIC,OMNI) = default("OMNI");
        double txAngle @unit(deg) = default(0deg);

        string binderModule = default("binder");
        string channelModelModule = default("^.channelModel[0]"); // Set to "^.nrChannelModel[0]" on an NR leg, see ~NrNicUe

    gates:
        input upperGateIn;       // From upper layer
        output upperGateOut;    // To upper layer
        input radioIn;           // Gate to receive message via sendDirect
}