MSG File src/simu5g/common/LteCommonEnum.msg

Name

Type

Description

Direction

enum

Link Directions

LteMod

enum

Modulations

FeedbackType

enum

Feedback reporting type

FbPeriodicity

enum

Feedback periodicity

RbAllocationType

enum

Resource allocation type

GrantType

enum

Scheduler grant type

RlcMode

enum

RLC modes (TS 36.322 / TS 38.322)

SessionType

enum

The type of a UE’s session: the PDU session types of a 5G core (TS 23.501 5.6.10), of which the IP ones are the PDN types of an EPC as well (TS 23.401)

CoreNetwork

enum

Which core network’s bearer model a bearer belongs to. An EPC bearer (an EPS bearer, LTE core) is selected by packet filters; a 5GC bearer is selected by the QFIs mapped onto it (SDAP).

CellGroup

enum

Cell group a bearer’s RLC bearer belongs to (TS 38.331 RLC-BearerConfig): the master cell group is the one the UE is anchored on, the secondary cell group the one a dual-connectivity secondary node serves. A bearer with both is a split bearer.

UlTransmissionMapTTI

enum

Index for UL transmission map

LteD2DMode

enum

D2D Modes: IM: Infastructure Mode DM: Direct (D2D) Mode NONE: Non D2D-capable

SchedDiscipline

enum

Scheduling discipline

PilotComputationModes

enum

specifies how the final CQI will be computed from the multiband ones

TxMode

enum

Transmission Modes

TxDirectionType

enum

(no description)

Plane

enum

OFDMA layers (see FIXME lteAllocationModuble.h for “layers” meaning)

DeploymentScenario

enum

(no description)

Remote

enum

OFDMA Remotes Antennas (see LteAllocationModule) – only MACRO is currently supported

LtePhyFrameType

enum

Lte PHY Frame Types

RanNodeType

enum

Node types on the Radio Access Network. Note that the LTE vs 5G (NR) distinction is usually represented with isNr booleans and/or nodeId/nrNodeId variables being empty or not.

CoreNodeType

enum

Core Network Types

HarqAcknowledgment

enum

H-ARQ feedback (ACK, NACK)

TxHarqPduStatus

enum

TX H-ARQ pdu status

RxHarqPduStatus

enum

RX H-ARQ pdu status

EnbType

enum

********************* * Incell Interference Support *********************

Source code

//
//                  Simu5G
//
// Copyright (C) 2012-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.
//

namespace simu5g;

/// Link Directions
enum Direction
{
    DL = 0; UL = 1; D2D = 2; D2D_MULTI = 3; UNKNOWN_DIRECTION = 4;
};

/// Modulations
enum LteMod
{
    _QPSK = 0; _16QAM = 1; _64QAM = 2; _256QAM = 3;
};

/// Feedback reporting type
enum FeedbackType
{
    ALLBANDS = 0; PREFERRED = 1; WIDEBAND = 2;
};

/// Feedback periodicity
enum FbPeriodicity
{
    PERIODIC = 0; APERIODIC = 1;
};

/// Resource allocation type
enum RbAllocationType
{
    TYPE2_DISTRIBUTED = 0;
    TYPE2_LOCALIZED = 1;
};

/// Scheduler grant type
enum GrantType
{
    FITALL = 0; FIXED_ = 1; URGENT = 2; UNKNOWN_GRANT_TYPE = 3; // Note: FIXED would clash with <windows.h>
};

/// RLC modes (TS 36.322 / TS 38.322)
enum RlcMode
{
    TM = 0; UM = 1; AM = 2; UNKNOWN_RLC_MODE = 3;
};

/// The type of a UE's session: the PDU session types of a 5G core (TS 23.501
/// 5.6.10), of which the IP ones are the PDN types of an EPC as well (TS 23.401)
enum SessionType
{
    IP_V4 = 0; IP_V6 = 1; IP_V4V6 = 2; ETHERNET = 3; UNSTRUCTURED = 4;
};

/// Which core network's bearer model a bearer belongs to. An EPC bearer (an EPS
/// bearer, LTE core) is selected by packet filters; a 5GC bearer is selected by
/// the QFIs mapped onto it (SDAP).
enum CoreNetwork
{
    CN_EPC = 0; CN_5GC = 1; UNKNOWN_CORE_NETWORK = 2;
};

/// Cell group a bearer's RLC bearer belongs to (TS 38.331 RLC-BearerConfig): the
/// master cell group is the one the UE is anchored on, the secondary cell group the
/// one a dual-connectivity secondary node serves. A bearer with both is a split
/// bearer.
enum CellGroup
{
    MCG = 0; SCG = 1; UNKNOWN_CELL_GROUP = 2;
};

/// Index for UL transmission map
enum UlTransmissionMapTTI
{
    PREV_TTI = 0; CURR_TTI = 1;
};

//
// D2D Modes:
// IM: Infastructure Mode
// DM: Direct (D2D) Mode
// NONE: Non D2D-capable
//
enum LteD2DMode
{
    NONE = 0;
    IM = 1;
    DM = 2;
};

//
//  Scheduling discipline
//
enum SchedDiscipline
{
    DRR = 0;
    PF = 1;
    MAXCI = 2;
    MAXCI_MB = 3;
    MAXCI_OPT_MB = 4;
    MAXCI_COMP = 5;
    ALLOCATOR_BESTFIT = 6;
    QOS_PF = 7;
    UNKNOWN_DISCIPLINE = 8;

};

// specifies how the final CQI will be computed from the multiband ones
enum PilotComputationModes
{
    MIN_CQI = 0;
    MAX_CQI = 1;
    AVG_CQI = 2;
    MEDIAN_CQI = 3;
    ROBUST_CQI = 4;
};


///   Transmission Modes
enum TxMode
{
    // Note: If you add more tx modes, update DL_NUM_TXMODE and UL_NUM_TXMODE
    SINGLE_ANTENNA_PORT0 = 0;
    TRANSMIT_DIVERSITY = 1;
    UNKNOWN_TX_MODE = 2;
};

enum TxDirectionType
{
    ANISOTROPIC = 0;
    OMNI = 1;
    UNKNOWN_TX_DIRECTION = -1;
};

/// OFDMA layers (see FIXME lteAllocationModuble.h for "layers" meaning)
enum Plane
{
    MAIN_PLANE = 0;
    MU_MIMO_PLANE = 1; // currently unused
};

enum DeploymentScenario
{
    INDOOR_HOTSPOT = 0;
    URBAN_MICROCELL = 1;
    URBAN_MACROCELL = 2;
    RURAL_MACROCELL = 3;
    SUBURBAN_MACROCELL = 4;
    UNKNOWN_SCENARIO = 5;
};


/// OFDMA Remotes Antennas (see LteAllocationModule) -- only MACRO is currently supported
enum Remote
{
    MACRO = 0;
    RU1 = 1;
    RU2 = 2;
    RU3 = 3;
    RU4 = 4;
    RU5 = 5;
    RU6 = 6;
    UNKNOWN_RU = 7;
};

// Lte PHY Frame Types
enum LtePhyFrameType
{
    DATAPKT = 0;
    BROADCASTPKT  = 1;
    FEEDBACKPKT = 2;
    BEACONPKT = 3;
    HARQPKT = 4;
    GRANTPKT = 5;
    RACPKT = 6;
    D2DMODESWITCHPKT = 7;
    UNKNOWN_TYPE = 8;
};

// Node types on the Radio Access Network. Note that the LTE vs 5G (NR)
// distinction is usually represented with isNr booleans and/or nodeId/nrNodeId
// variables being empty or not.
enum RanNodeType
{
    NODEB  = 0; // eNodeB / gNodeB
    UE = 1; // UE
    UNKNOWN_NODE_TYPE  = 2;
};


//  Core Network Types
enum CoreNodeType
{
    ENB = 0;          // LTE
    PGW = 1;
    SGW = 2;
    GNB = 3;          // 5G
    UPF = 4;
    UPF_MEC = 5;      // MEC
};


/// H-ARQ feedback (ACK, NACK)
enum HarqAcknowledgment
{
    HARQNACK = 0; HARQACK = 1;
};

/// TX H-ARQ pdu status
enum TxHarqPduStatus
{
    /// pdu is ready for retransmission (nack received)
    TXHARQ_PDU_BUFFERED = 0;
    /// pdu is waiting for feedback
    TXHARQ_PDU_WAITING = 1;
    /// no pdu inside this process (empty process)
    TXHARQ_PDU_EMPTY = 2;
    /// pdu selected for transmission
    TXHARQ_PDU_SELECTED = 3;
};

/// RX H-ARQ pdu status
enum RxHarqPduStatus
{
    /// no pdu, process is empty
    RXHARQ_PDU_EMPTY = 0;
    /// pdu is in evaluating state
    RXHARQ_PDU_EVALUATING = 1;
    /// pdu has been evaluated and it is correct
    RXHARQ_PDU_CORRECT = 2;
    /// pdu has been evaluated and it is not correct
    RXHARQ_PDU_CORRUPTED = 3;
};


//  ********************* * Incell Interference Support *********************
enum EnbType
{
    // macro eNb
    MACRO_ENB = 0;
    // micro eNb
    MICRO_ENB = 1;
};