simu5g Namespace Reference

Simu5G: simu5g Namespace Reference
Simu5G
simu5g Namespace Reference

Classes

struct  AddressPrefix
struct  AllocatedRbsPerBandInfo
 This structure contains information for a single band. More...
struct  AllocatedRbsPerUeInfo
 This structure contains information for a single UE. More...
class  AmcPilot
 Abstract AMC Pilot class. More...
class  AmcPilotAuto
 AMC auto pilot. More...
class  AmcPilotD2D
 AMC pilot for D2D communication. More...
class  BackgroundCellChannelModel
struct  BandLimit
class  BearerConfigurator
class  BearerManagement
 RRC Bearer Management — creates and tears down PDCP, RLC and MAC entities for data radio bearers. More...
class  Binder
class  BurstPacketSerializer
struct  ByteInterval
 Represents a range of bytes [start, end] within an SDU. More...
class  CbrPacketSerializer
class  CellInfo
 There is one CellInfo module for each eNB (thus one for each cell). Keeps cross-layer information about the cell. More...
class  CellularNicNdSink
class  ChannelControl
class  ChannelModelBase
class  CircularList
 Circular list of elements. More...
class  ConflictGraph
 Define the manager of the conflict graph (CG) for resource allocation purposes. More...
class  ConnectionControlBase
class  ConnectionControlEnb
class  ConnectionControlEnbD2D
class  CoreControl
class  D2dAmc
class  D2dBinder
class  D2dChannelModel
class  D2dEnbMacBase
class  D2dUeMacBase
class  D2dUePhy
class  DcMux
 Dual Connectivity mux. More...
class  DcPdcpLegSplitter
 TX-side leg dispatcher for a dual-connectivity split bearer. More...
class  DeviceAppMessageSerializer
class  DrbKey
class  DrbTable
 The node's data radio bearer configuration, owned by RRC. More...
class  EthernetPortal
class  EthernetSessionMux
class  EthernetSessionPortal
class  FeedbackTester
struct  FTeid
struct  GrantSignalInfo
class  GtpUser
class  GtpUserMsgSerializer
class  GtpUserX2
struct  HandoverRequest
class  HttpRequestMessage
class  HttpRequestMessageSerializer
class  HttpResponseMessage
class  HttpResponseMessageSerializer
class  IChannelControl
class  ID2dRlcUmRxEntity
 What a D2D UM RX entity offers the D2D-aware RLC mux. More...
class  ID2dRlcUmTxEntity
 What a D2D UM TX entity offers the D2D mode controller. More...
class  Ipv6NdResponder
class  LcgScheduler
class  LcgSchedulerD2D
struct  LinkKey
class  LteAmc
 Lte AMC module for Omnet++ simulator. More...
class  LteAmcD2D
class  LteChannelControl
class  LteDlFeedbackGenerator
 Lte Downlink Feedback Generator. More...
class  LteFeedback
 LTE feedback message exchanged between PHY and AMC. More...
class  LteHarqBufferRx
class  LteHarqBufferRxD2D
class  LteHarqProcessRx
class  LteHarqProcessRxD2D
class  LteHarqProcessTx
class  LteHarqProcessTxD2D
class  LteHarqUnitTx
class  LteHarqUnitTxD2D
class  LteMacBase
 MAC Layer. More...
class  LteMacBuffer
 Buffers for MAC packets. More...
class  LteMacEnbD2D
class  LteMacQueue
 Queue for MAC SDU packets. More...
class  LteMacUeD2D
class  LtePdcpRxEntity
 Entity for PDCP Layer. More...
class  LtePdcpTxEntity
 Entity for PDCP Layer. More...
class  LteProtocol
class  LteRlcAmRxEntity
 LTE (TS 36.322) RLC AM receiving entity. More...
class  LteRlcAmTxEntity
 LTE (TS 36.322) RLC AM transmission entity. More...
class  LteRlcUmRxEntity
 LTE (TS 36.322) RLC UM receiving entity. More...
class  LteRlcUmRxEntityD2D
 D2D-capable LTE (TS 36.322) RLC UM receiving entity. More...
class  LteRlcUmTxEntity
 LTE (TS 36.322) RLC UM transmission entity. More...
class  LteRlcUmTxEntityD2D
 D2D-capable LTE (TS 36.322, FI framing) RLC UM transmitting entity. More...
class  LteSchedulerEnbDl
class  LteSchedulerEnbUl
class  LteSchedulerEnbUlD2D
class  LteSchedulerUeUl
class  MacCid
struct  MacPduSignalInfo
class  McsTable
struct  MeasurementReport
struct  Media1
struct  N6Tunnel
class  NrAmc
class  NrAmcD2D
class  NrMacGnbD2D
class  NrMacUeD2D
class  NrMcsTable
class  NrPdcpRxEntity
 Entity for New Radio PDCP Layer. More...
class  NrPdcpTxEntity
 NR flavor of the transmitting PDCP entity. More...
class  NrRlcAmRxEntity
 NR (TS 38.322) RLC AM receiving entity. More...
class  NrRlcAmTxEntity
 NR (TS 38.322) RLC AM transmission entity. More...
class  NrRlcUmRxEntity
 NR (TS 38.322) RLC UM receiving entity. More...
class  NrRlcUmRxEntityD2D
 D2D-capable NR (TS 38.322) RLC UM receiving entity. More...
class  NrRlcUmTxEntity
 NR (TS 38.322) RLC UM transmission entity. More...
class  NrRlcUmTxEntityD2D
 D2D-capable NR (TS 38.322, SO framing) RLC UM transmitting entity. More...
class  NrSchedulerGnbUl
class  NrSchedulerGnbUlD2D
class  NrSdap
class  PacketFlowObserverBase
class  PacketFlowObserverEnb
class  PacketFlowObserverUe
class  PathLossModel
class  PdcpDownlinkRelay
 Downlink half of a DC-secondary PDCP relay (see PdcpRelayEntity). More...
class  PdcpLegJoiner
 RX-side leg merger of a multi-leg PdcpEntityBase compound. More...
class  PdcpMux
 Upper-layer PDCP packet dispatcher. More...
class  PdcpRxEntityBase
 Abstract base class for all RX PDCP entities. More...
class  PdcpTxEntityBase
 Abstract base class for all TX PDCP entities. More...
class  PdcpUplinkRelay
 Uplink half of a DC-secondary PDCP relay (see PdcpRelayEntity). More...
struct  PendingSegment
 Structure representing a specific piece of an SDU for the MAC PDU. More...
class  PhyEnbD2D
class  PhyUeD2D
class  QfiRuleSet
 An ordered set of QFI-assignment rules, shared by every module that classifies packets to QoS flows. More...
class  QoSAwareScheduler
class  QosFlowClassifier
 Classifies a UE's uplink packets to QoS flows (see QosFlowClassifier.ned). More...
class  RateAverageFilter
 Result filter that computes the time-weighted average of signal values, where each value represents the rate/throughput that was active during the interval preceding its emission time. NaN values in the input denote intervals to be ignored. More...
class  RateAverageRecorder
 Listener for recording the time-weighted average of signal values, where each value represents the rate/throughput that was active during the interval preceding its emission time. NaN values in the input denote intervals to be ignored. More...
class  ReflectiveQosTable
class  Registration
 RRC Registration — registers the node with the Binder, sets up the network interface, and joins multicast groups. More...
struct  RetxTask
 Represents a specific segment or a whole data unit pending for retransmission. The unit the sequence number refers to is the mode's ARQ unit: an SDU for the NR AM entity (TS 38.322), an AMD PDU for the LTE one (TS 36.322). More...
class  RlcAmRxEntityBase
 Common shell of the RLC AM receiving entity. More...
class  RlcAmTxEntityBase
 Common shell of the RLC AM transmission entity. More...
struct  RlcDiscardSignalInfo
class  RlcMux
 Lower-layer RLC packet dispatcher. More...
class  RlcMuxD2D
 D2D-aware lower-layer RLC packet dispatcher. More...
struct  RlcPduSignalInfo
class  RlcRxEntityBase
 Abstract base class for all RLC RX entities (UM, TM, AM). More...
class  RlcTmRxEntity
 Receiver entity for Transparent Mode (TM). More...
class  RlcTmTxEntity
 Transmission entity for Transparent Mode (TM). More...
class  RlcTxEntityBase
 Abstract base class for all RLC TX entities (UM, TM, AM). More...
class  RlcUmRxEntityBase
 Common shell of the RLC UM receiving entity. More...
class  RlcUmRxEntityD2D
 D2D mode-switch machinery for an RLC UM receiving entity. More...
class  RlcUmTxEntityBase
 Common shell of the RLC UM transmission entity. More...
class  RlcUmTxEntityD2D
 D2D mode-switch machinery for an RLC UM transmitting entity. More...
class  RniService
class  RohcCompressor
class  RohcHeader
class  RtVideoStreamingSender
struct  SduReassemblyState
 Manages the reassembly state of a single SDU. More...
struct  SduTxState
 Manages the transmission state of a single SDU. More...
struct  SduUmTxState
 Manages the transmission state of a single SDU in UM mode. More...
struct  SessionRef
struct  SessionResource
struct  SortedDesc
class  StochasticChannelModel
class  TMultiTimer
class  Tr36814PathLossModel
class  Tr36873PathLossModel
class  Tr38901PathLossModel
class  TrafficFlowFilter
struct  TransmitInterval
 Represents a range of bytes [start, end] for transmission tracking. More...
class  TTimer
 Generic timer interface. More...
struct  TunnelSession
struct  UeCapabilities
class  UeStatsCollector
class  UeWarningAlertApp
class  UlBacklogRegistry
class  UnstructuredIo
struct  UplinkTunnels
class  UserPlaneNodeControl
class  VoipPacketSerializer
class  WarningAlertPacketSerializer
class  X2AppClient
class  X2AppServer
class  X2CompMsg
class  X2DualConnectivityDataMsg
class  X2HandoverDataMsg

Typedefs

typedef unsigned short Codeword
 Codeword.
typedef unsigned short NumerologyIndex
 Numerology Index.
typedef std::list< X2InformationElement * > X2InformationElementsList
typedef std::map< std::pair< MacCid, Codeword >, unsigned int > LteMacScheduleList
typedef std::map< std::pair< MacNodeId, Codeword >, inet::Packet * > MacPduList
typedef std::list< inet::Packet * > RlcSduList
typedef cPacketQueue MacSduList
typedef std::list< MacControlElement * > MacControlElementsList
typedef std::set< MacNodeId > UeSet
typedef std::pair< unsigned char, CwList > UnitList
 Pair of acid, list of unit ids.
typedef std::map< std::string, cMsgPar > ParameterMap
typedef MacNodeId MacCellId
 Cell node ID. It is numerically equal to eNodeB MAC node ID.
typedef MacNodeId X2NodeId
 X2 node ID. It is equal to the eNodeB MAC Cell ID.
typedef unsigned short Rank
 Connection Identifier: <MacNodeId,LogicalCid>
typedef unsigned short Cqi
 Channel Quality Indicator.
typedef unsigned short Tbs
 Transport Block Size.
typedef unsigned short Band
 Logical band.
typedef std::map< Remote, std::map< Band, unsigned int > > RbMap
typedef std::map< MacNodeId, LteHarqBufferTx * > HarqTxBuffers
typedef std::map< MacNodeId, LteHarqBufferRx * > HarqRxBuffers

Enumerations

enum  AllocationUeType

Functions

Direction directionFromBsrLcid (LogicalCid lcid, Direction fallback)
bool isMulticastDestId (MacNodeId nodeId)
void getParametersFromXML (cXMLElement *xmlData, ParameterMap &outputMap)
void parseStringToIntArray (std::string str, int *values, int dim, int pad)
void initializeAllChannels (cModule *mod)
void attachSessionTag (inet::Packet *datagram, const TunnelSession &session)
inet::Ptr< GtpUserMsg > makeGtpUserHeader (Teid teid, Qfi qfi, PduSessionContainerType container, inet::B tpduLength)
const unsigned int * itbs2tbs (LteMod mod, TxMode txMode, unsigned char layers, unsigned char itbs)
std::vector< unsigned char > cwMapping (const TxMode &txMode, const Rank &ri, const unsigned int antennaPorts)

Variables

const unsigned char DL_NUM_TXMODE = 6
 Number of transmission modes in DL direction.
const unsigned char UL_NUM_TXMODE = 6
 Number of transmission modes in UL direction.
constexpr MacNodeId NODEID_NONE = MacNodeId(0)
 MAC node ID.
constexpr Qfi QFI_NONE = Qfi(255)
 Logical Connection Identifier (used in MAC layer)
constexpr Teid TEID_NONE = Teid(0)
 GTP-U Tunnel Endpoint Identifier (TS 29.281), chosen by the receiving end of the tunnel.
constexpr unsigned short NUM_LCGS = 4
 Logical Channel Group id, as reported in Buffer Status Reports.
constexpr LogicalCid LCID_NONE = LogicalCid(65535)
 Invalid/uninitialized LCID and DRB ID values.
constexpr unsigned short MAX_DRB_ID = 32
constexpr LogicalCid SHORT_BSR = LogicalCid(0)
 Special LogicalCid values for Buffer Status Reports.
constexpr unsigned short BSR_UL_LCID_BASE = 64
const CqiElem cqiTable []

Detailed Description

Author
Alessandro Noferi

This class creates and manages HTTP request packets, i.e.:

METHOD uri HTTP/1.1 \r
headers[] \r
\r
body

The required headers for our scope are:

  • Content-Type They are managed by specific setters and getters. It is also possible to add other headers via a generic method (setHeaderField)
Author
Alessandro Noferi

This class creates and manages HTTP response packets, i.e.:

HTTP/1.1 STATUS \r
headers[] \r
\r
body

The required headers for our scope are:

  • Content-Type
  • Connection They are managed by specific setters and getters. It is also possible to add other headers via a generic method (setHeaderField)

Typedef Documentation

◆ Codeword

typedef unsigned short Codeword

◆ NumerologyIndex

typedef unsigned short NumerologyIndex

Numerology Index.

◆ X2InformationElementsList

typedef std::list<X2InformationElement *> X2InformationElementsList

The Information Elements List, a list of IEs contained inside a X2Message

◆ LteMacScheduleList

typedef std::map<std::pair<MacCid, Codeword>, unsigned int> LteMacScheduleList

This is the Schedule list, a list of schedule elements. For each CID on each codeword there is a number of SDUs

◆ MacPduList

typedef std::map<std::pair<MacNodeId, Codeword>, inet::Packet *> MacPduList

This is the Pdu list, a list of scheduled Pdus for each user on each codeword.

◆ RlcSduList

typedef std::list<inet::Packet *> RlcSduList

The Rlc Sdu List, a list of RLC SDUs contained inside a RLC PDU

◆ MacSduList

typedef cPacketQueue MacSduList

The Mac Sdu List, a list of MAC SDUs contained inside a MAC PDU

◆ MacControlElementsList

typedef std::list<MacControlElement *> MacControlElementsList

The Mac Control Elements List, a list of CEs contained inside a MAC PDU

◆ UeSet

typedef std::set<MacNodeId> UeSet

Set of MacNodeIds

◆ UnitList

typedef std::pair<unsigned char, CwList> UnitList

Pair of acid, list of unit ids.

◆ ParameterMap

typedef std::map<std::string, cMsgPar> ParameterMap

Used at initialization to pass the parameters to the AnalogueModels and Decider.

Parameters read from xml file are stored in this map.

◆ MacCellId

typedef MacNodeId MacCellId

Cell node ID. It is numerically equal to eNodeB MAC node ID.

◆ X2NodeId

typedef MacNodeId X2NodeId

X2 node ID. It is equal to the eNodeB MAC Cell ID.

◆ Rank

typedef unsigned short Rank

Connection Identifier: <MacNodeId,LogicalCid>

Rank Indicator

◆ Cqi

typedef unsigned short Cqi

Channel Quality Indicator.

◆ Tbs

typedef unsigned short Tbs

Transport Block Size.

◆ Band

typedef unsigned short Band

Logical band.

◆ RbMap

typedef std::map<Remote, std::map<Band, unsigned int> > RbMap

Block allocation Map: # of Rbs per Band, per Remote.

◆ HarqTxBuffers

typedef std::map<MacNodeId, LteHarqBufferTx *> HarqTxBuffers

Map associating a nodeId with the corresponding TX H-ARQ buffer. Used in eNB, where there is more than one TX H-ARQ buffer.

◆ HarqRxBuffers

typedef std::map<MacNodeId, LteHarqBufferRx *> HarqRxBuffers

Map associating a nodeId with the corresponding RX H-ARQ buffer. Used in eNB, where there is more than one RX H-ARQ buffer.

Enumeration Type Documentation

◆ AllocationUeType

Type used to discriminate the UEs in the allocation phase.

Function Documentation

◆ directionFromBsrLcid()

Direction directionFromBsrLcid ( LogicalCid lcid,
Direction fallback )

Maps a BSR logical channel id to the traffic direction it announces (reserved D2D BSR LCIDs promote to the D2D directions); returns 'fallback' otherwise.

◆ isMulticastDestId()

bool isMulticastDestId ( MacNodeId nodeId)
inline

Check if a MacNodeId represents a multicast destination ID

Parameters
nodeIdthe MacNodeId to check
Returns
true if the nodeId is in the multicast destination ID range

◆ getParametersFromXML()

void getParametersFromXML ( cXMLElement * xmlData,
ParameterMap & outputMap )

Utility function that reads the parameters of an XML element and stores them in the passed ParameterMap reference.

Parameters
xmlDataXML parameters config element related to a specific section
[output]outputMap map to store read parameters

◆ parseStringToIntArray()

void parseStringToIntArray ( std::string str,
int * values,
int dim,
int pad )

Parses a CSV string parameter into an int array.

The string must be in the format "v1,v2,..,vi,...,vN;" and if dim > N, the values[i] are filled with zeros from when i = N + 1. Warning messages are issued if the string has less or more values than dim.

Parameters
strstring to be parsed
valuespointer to the int array
dimdimension of the values array
paddefault value to be used when the string has less than dim values

◆ initializeAllChannels()

void initializeAllChannels ( cModule * mod)

Initializes module's channels

A dynamically created node needs its channels to be initialized, this method runs through all a module's and its submodules' channels recursively and initializes all channels.

Parameters
modmodule whose channels needs initialization

◆ attachSessionTag()

void attachSessionTag ( inet::Packet * datagram,
const TunnelSession & session )
inline

Tells the modules after a tunnel end which session, and so which UE, a datagram that arrived on the tunnel belongs to, and the session's type (see SessionTag).

◆ makeGtpUserHeader()

inet::Ptr< GtpUserMsg > makeGtpUserHeader ( Teid teid,
Qfi qfi,
PduSessionContainerType container,
inet::B tpduLength )
inline

The GTP-U header of a G-PDU (TS 29.281) that carries a T-PDU of the given length on the tunnel with the given TEID; with a PDU Session Container that carries the QFI (TS 38.415), unless container is PDU_SESSION_CONTAINER_NONE.

◆ itbs2tbs()

const unsigned int * itbs2tbs ( LteMod mod,
TxMode txMode,
unsigned char layers,
unsigned char itbs )
Parameters
modThe modulation.
txModeThe transmission mode.
layersThe number of layers.
itbsThe information block size.
Returns
A row of table 3-2 or table 3-3 specific for the given iTBS.

◆ cwMapping()

std::vector< unsigned char > cwMapping ( const TxMode & txMode,
const Rank & ri,
const unsigned int antennaPorts )

Gives the number of layers for each codeword.

Parameters
txModeThe transmission mode.
riThe Rank Indication.
antennaPortsNumber of antenna ports
Returns
A vector containing the number of layers per codeword.

Variable Documentation

◆ DL_NUM_TXMODE

const unsigned char DL_NUM_TXMODE = 6

Number of transmission modes in DL direction.

◆ UL_NUM_TXMODE

const unsigned char UL_NUM_TXMODE = 6

Number of transmission modes in UL direction.

◆ NODEID_NONE

MacNodeId NODEID_NONE = MacNodeId(0)
constexpr

◆ QFI_NONE

Qfi QFI_NONE = Qfi(255)
constexpr

Logical Connection Identifier (used in MAC layer)

Data Radio Bearer Identifier (used in PDCP/RLC layers, maps 1:1 to LogicalCid) QoS Flow Identifier (6-bit, 0-63 per 3GPP TS 24.501)

◆ TEID_NONE

Teid TEID_NONE = Teid(0)
constexpr

GTP-U Tunnel Endpoint Identifier (TS 29.281), chosen by the receiving end of the tunnel.

◆ NUM_LCGS

unsigned short NUM_LCGS = 4
constexpr

Logical Channel Group id, as reported in Buffer Status Reports.

A UE's session id: the PDU Session ID of a 5G core (TS 24.007: 1..15, 0 = none assigned), used for the PDN connection of an EPC as well

◆ LCID_NONE

LogicalCid LCID_NONE = LogicalCid(65535)
constexpr

Invalid/uninitialized LCID and DRB ID values.

◆ MAX_DRB_ID

unsigned short MAX_DRB_ID = 32
constexpr

Highest usable DRB identity; the valid range is 3GPP's DRB-Identity range 1..32 (TS 38.331). A DRB id maps 1:1 onto its logical channel id, so id 0 – the LCID reserved for CCCH – is never occupied by a data bearer.

◆ SHORT_BSR

LogicalCid SHORT_BSR = LogicalCid(0)
constexpr

Special LogicalCid values for Buffer Status Reports.

◆ BSR_UL_LCID_BASE

unsigned short BSR_UL_LCID_BASE = 64
constexpr

eNB-side uplink backlog mirror keys: an uplink BSR reports per-LCG figures, and the eNB tracks each group as a pseudo-connection MacCid(ueId, BSR_UL_LCID_BASE+g). The block is an internal reserved range sitting above the real DRB LCID range (1..MAX_DRB_ID) and outside the BSR type markers above; directionFromBsrLcid() falls through to its UL fallback for it.

◆ cqiTable

const CqiElem cqiTable[]
extern

<CQI Index [0-15]> , <Modulation> , <Code Rate x 1024> This table contains values taken from table 7.2.3-1 (TS 36.213)