MSG File src/simu5g/common/LteControlInfoTags.msg¶
Name |
Type |
Description |
|---|---|---|
class |
Indication tag containing source and destination node identifiers used throughout the protocol stack. Normally exchanged by the PHY and MAC layers. |
|
class |
Identifies the logical connection and D2D groupcast destination for the packet. Usually sent by PDCP to RLC and MAC layers. |
|
class |
Common base for RLC mode request and indication tags. Usually exchanged between PDCP and RLC layers. |
|
class |
Request tag that specifies the RLC mode (TM/UM/AM) for the connection. Usually sent by PDCP to RLC layer. |
|
class |
Indication tag containing the RLC mode (TM/UM/AM) for the connection. Usually sent by PDCP to RLC and MAC layers. |
|
class |
Indication tag containing carrier and technology configuration Normally exchanged by the PHY and MAC layers. |
|
class |
Indication tag containing HARQ process information Normally exchanged by the PHY and MAC layers. |
|
class |
Indication tag containing PHY layer transmission parameters Normally exchanged by the PHY and MAC layers. |
|
class |
Indication tag containing PDCP sequence number for packet ordering Usually sent by PDCP to RLC layer. |
|
class |
Indication tag containing user transmission parameters Normally exchanged by the PHY and MAC layers. |
|
class |
Indication tag containing PHY layer reception and quality information Usually sent by PHY to MAC layer. |
|
class |
Request tag containing the target node identifier for X2 data forwarding. Used for both handover and dual connectivity operations to pass the target node parameter when forwarding data packets via X2 interface through gates instead of direct method calls. |
|
class |
Indication tag containing the source node identifier for X2 data reception. Used to pass the source node parameter when receiving data from X2 interface through gates instead of direct method calls. |
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.
//
import inet.common.INETDefs;
import inet.common.TagBase;
import inet.common.geometry.Geometry; // for Coord
import inet.networklayer.contract.ipv4.Ipv4Address;
import simu5g.common.LteCommon;
import simu5g.common.LteControlInfo;
import simu5g.stack.mac.amc.UserTxParams;
namespace simu5g;
//
// Indication tag containing source and destination node identifiers
// used throughout the protocol stack.
// Normally exchanged by the PHY and MAC layers.
//
class NodeIdentificationInd extends inet::TagBase {
MacNodeId sourceId = NODEID_NONE; // Source MAC Node ID
MacNodeId destId = NODEID_NONE; // Destination MAC Node ID
}
//
// Identifies the logical connection and D2D groupcast destination for the packet.
// Usually sent by PDCP to RLC and MAC layers.
//
class LogicalConnectionInd extends inet::TagBase {
LogicalCid lcid; // Logical Connection Identifier
int32 d2dGroupId = -1; // D2D groupcast id (-1 = not a groupcast flow)
}
//
// Common base for RLC mode request and indication tags.
// Usually exchanged between PDCP and RLC layers.
//
class RlcConfigurationTagBase extends inet::TagBase {
unsigned short rlcMode enum(RlcMode) = 0; // RLC mode (TM, UM, AM)
}
//
// Request tag that specifies the RLC mode (TM/UM/AM) for the connection.
// Usually sent by PDCP to RLC layer.
//
class RlcConfigurationReq extends RlcConfigurationTagBase {
}
//
// Indication tag containing the RLC mode (TM/UM/AM) for the connection.
// Usually sent by PDCP to RLC and MAC layers.
//
class RlcConfigurationInd extends RlcConfigurationTagBase {
}
//
// Indication tag containing carrier and technology configuration
// Normally exchanged by the PHY and MAC layers.
//
class CarrierConfigurationInd extends inet::TagBase {
bool isNr = false; // Packet is for NR processing
double carrierFrequency = NaN; // Carrier frequency for transmission
}
//
// Indication tag containing HARQ process information
// Normally exchanged by the PHY and MAC layers.
//
class HarqInfoInd extends inet::TagBase {
unsigned char acid = 0; // HARQ process identifier
unsigned char cw = 0; // Codeword identifier
unsigned char txNumber = 0; // Number of (re)transmissions
bool ndi = true; // New Data Indicator
}
//
// Indication tag containing PHY layer transmission parameters
// Normally exchanged by the PHY and MAC layers.
//
class PhyTransmissionInd extends inet::TagBase {
unsigned short txMode = 0 enum(TxMode); // Transmission mode
unsigned int frameType = 0 enum(LtePhyFrameType); // Frame type
double txPower = NaN; // Transmission power
double d2dTxPower = NaN; // D2D transmission power
unsigned int totalGrantedBlocks = 0; // Total granted resource blocks
unsigned int grantId = 0; // Grant identifier
inet::Coord coord; // Playground position of the sending host
RbMap grantedBlocks; // Resource blocks granted on all Remotes, all Bands
FeedbackRequest feedbackReq; // Feedback request information
}
//
// Indication tag containing PDCP sequence number for packet ordering
// Usually sent by PDCP to RLC layer.
//
class SequenceNumberInd extends inet::TagBase {
unsigned int sequenceNumber = 0; // Packet PDCP sequence number
}
//
// Indication tag containing user transmission parameters
// Normally exchanged by the PHY and MAC layers.
//
class UserTransmissionParametersInd extends inet::TagBase {
UserTxParams *userTxParams @owned; // User transmission parameters
}
//
// Indication tag containing PHY layer reception and quality information
// Usually sent by PHY to MAC layer.
//
class PhyReceptionInd extends inet::TagBase {
bool deciderResult = false; // Decoding result
}
//
// Request tag containing the target node identifier for X2 data forwarding.
// Used for both handover and dual connectivity operations to pass the target node parameter
// when forwarding data packets via X2 interface through gates instead of direct method calls.
//
class X2TargetReq extends inet::TagBase {
MacNodeId targetNode = NODEID_NONE; // Target node MAC ID for X2 forwarding
}
//
// Indication tag containing the source node identifier for X2 data reception.
// Used to pass the source node parameter when receiving data from X2 interface
// through gates instead of direct method calls.
//
class X2SourceNodeInd extends inet::TagBase {
MacNodeId sourceNode = NODEID_NONE; // Source node MAC ID from X2
}
cplusplus (UserTransmissionParametersInd::setUserTxParams) {{
// Code inserted at top of setUserTxParams(); allows silent overwrite of earlier object.
delete this->userTxParams;
this->userTxParams = nullptr;
}}