ns3 namespace

All our files are stored under the ns3 namespace. In your script, remember to use such namespace or to use the prefix "ns3::" for the classes.

Classes

class BandwidthPartGnb
GNB bandwidth part representation.
struct BandwidthPartInfo
Spectrum part.
class BandwidthPartUe
Bandwidth part representation for a UE.
class BeamConfId
struct BeamConfIdHash
Calculate the hash of a BeamConfId.
class BeamformingHelperBase
The BeamformingHelperBase class that is being used as the general interface for beamforming helper classes. Currently, there are two beamforming helper classes: IdealBeamformingHelper and RealisticBeamformingHelper that inherit this base beamforming helper class.
class BeamId
Representation of a beam id.
struct BeamIdHash
Calculate the hash of a BeamId.
class BeamManager
Antenna array management.
class BwpManagerAlgorithm
Interface for a Bwp selection algorithm based on the bearer.
class BwpManagerAlgorithmStatic
The BwpManagerAlgorithmStatic class.
class BwpManagerGnb
Bandwidth part manager that coordinates traffic over different bandwidth parts.
class BwpManagerUe
The BwpManagerUe class.
class CcBwpCreator
Manages the correct creation of operation bands, component carriers and bandwidth parts.
class CellScanBeamforming
The CellScanBeamforming class.
class CellScanBeamformingAzimuthZenith
The CellScanBeamformingAzimuthZenith class.
class CellScanQuasiOmniBeamforming
The CellScanQuasiOmniBeamforming class.
struct ComponentCarrierInfo
Component carrier configuration element.
struct DciInfoElementTdma
Scheduling information. Despite the name, it is not TDMA.
class DirectPathBeamforming
The DirectPathBeamforming class.
class DirectPathQuasiOmniBeamforming
The QuasiOmniDirectPathBeamforming class.
struct DlCqiInfo
The DlCqiInfo struct.
struct DlHarqInfo
A struct that contains info for the DL HARQ.
class FileScenarioHelper
The FileScenarioHelper class.
struct GnbPhyPacketCountParameter
The GnbPhyPacketCountParameter struct.
class GridScenarioHelper
The GridScenarioHelper class.
struct HarqInfo
Store information about HARQ.
struct HarqProcess
The HarqProcess struct.
class HexagonalGridScenarioHelper
The HexagonalGridScenarioHelper class.
class IdealBeamformingAlgorithm
Generate "Ideal" beamforming vectors.
class IdealBeamformingHelper
The IdealBeamformingHelper class.
class LenaErrorModel
LENA error model.
class LtePatternTestCase
TestSched testcase.
class LtePhyPatternTestCase
TestCase for the PHY TDD Patterns.
struct MacCeElement
See section 4.3.14 macCEListElement.
struct MacCeValue
The MacCeValue struct.
class NodeDistributionScenarioInterface
Represents a scenario with base stations and user terminals.
class NoLossSpectrumPropagationLossModel
No loss spectrum propagation loss model created for testing purposes. As its name says, there are no losses.
class NrAlwaysOnAccessManager
A Channel access manager that sees the channel always free for transmitting.
class NrAmc
Adaptive Modulation and Coding class for the NR module.
class NrBearerStatsCalculator
class NrBearerStatsConnector
class NrBearerStatsSimple
This class writes RLC or PDC statistics to separate files:
struct NrBoundCallbackArgument
class NrBsrMessage
the BSR message
class NrChAccessManager
The Channel Access Manager class.
class NrControlMessage
The NrControlMessage class.
class NrDlCqiMessage
The message that represents a DL CQI message.
class NrDlDciMessage
The message that represents a DL DCI message.
class NrDlHarqFeedbackMessage
DlHarqFeedback message.
class NrEesmCc
The NrEesmCc class.
class NrEesmCcT1
The NrEesmCcT1 class.
class NrEesmCcT2
The NrEesmCcT2 class.
class NrEesmErrorModel
Eesm error model.
struct NrEesmErrorModelOutput
The NrEesmErrorModelOutput struct.
class NrEesmIr
Eesm error model, based on the IR HARQ.
class NrEesmIrT1
The NrEesmIrT1 class.
class NrEesmIrT2
The NrEesmIrT2 class.
struct NrEesmT1
The NrEesmT1 struct.
struct NrEesmT2
The NrEesmT2 struct.
class NrErrorModel
Interface for calculating the error probability for a transport block.
struct NrErrorModelOutput
Store the output of an NRErrorModel.
class NrGnbMac
The MAC class for the gnb.
class NrGnbNetDevice
The NrGnbNetDevice class.
class NrGnbPhy
The gNb physical layer.
class NrGnbPhySapUser
SAP interface between the ENB PHY and the ENB MAC.
class NrGnbRrcProtocolIdeal
class NrHarqPhy
HARQ functionalities for the PHY layer.
class NrHelper
Helper for a correct setup of every NR simulation.
class NrInterference
The NrInterference class inherits LteInterference which implements a gaussian interference model, i.e., all incoming signals are added to the total interference. NrInterference class extends this functionality to support energy detection functionality.
class NrL2smEesmTestCase
NrL2smEesm testcase.
class NrLteCcBwpTestSuite
The NrLteCcBwpTestSuite class.
class NrLteMiErrorModel
struct NrLteMiErrorModelOutput
The NrLteMiErrorModelOutput struct Error model output returned by the class NrLteMiErrorModel.
class NrLtePatternTestSuite
The NrLtePatternTestSuite class.
class NrMacCschedSapProvider
Provides the CSCHED SAP.
class NrMacHarqVector
Data structure to save all the HARQ process of an UE.
class NrMacHeaderFs
Mac Fixed-Size Header.
class NrMacHeaderFsDl
Mac fixed-size Header for DL.
class NrMacHeaderFsUl
Mac fixed-size Header for UL.
class NrMacHeaderVs
Mac variable-size Header.
class NrMacHeaderVsDl
Mac variable-size Header for DL.
class NrMacHeaderVsUl
Mac variable-size Header for UL.
struct NrMacPduInfo
Used to track the MAC PDU with the slot in which has to go, and the DCI that generated it.
class NrMacSchedSapProvider
The SAP interface between MAC and scheduler.
class NrMacSchedSapUser
The Interface between Scheduler and MAC.
class NrMacScheduler
Interface for all the nr schedulers.
class NrMacSchedulerCQIManagement
CQI management for schedulers.
class NrMacSchedulerHarqRr
Schedule the HARQ retransmission.
class NrMacSchedulerLC
Represent a DL Logical Channel of an UE.
class NrMacSchedulerLCG
Represent an UE LCG (can be DL or UL)
class NrMacSchedulerNs3
A general scheduler for nr in NS3.
class NrMacSchedulerOfdma
The base for all the OFDMA schedulers.
class NrMacSchedulerOfdmaMR
Assign frequencies in a maximum-rate fashion.
class NrMacSchedulerOfdmaPF
Assign frequencies in a proportional fair fashion.
class NrMacSchedulerOfdmaRR
Assign frequencies in a round-robin fashion.
class NrMacSchedulerSrs
MAC scheduler SRS interface.
class NrMacSchedulerSrsDefault
Default algorithm for assigning offset and periodicity.
class NrMacSchedulerTdma
The base for all the TDMA schedulers.
class NrMacSchedulerTdmaMR
Assign entire symbols in a maximum-rate fashion.
class NrMacSchedulerTdmaPF
Assign entire symbols in a proportional fair fashion.
class NrMacSchedulerTdmaRR
Assign entire symbols in a round-robin fashion.
class NrMacSchedulerUeInfo
The representation of an user for any Mac scheduler.
class NrMacSchedulerUeInfoMR
UE representation for a maximum rate scheduler.
class NrMacSchedulerUeInfoPF
UE representation for a proportional fair scheduler.
class NrMacSchedulerUeInfoRR
UE representation for a round-robin scheduler.
class NrMacSchedulingStats
class NrMacShortBsrCe
BSR control element.
class NrMibMessage
Abstract model for broadcasting the Master Information Block (MIB) within the control channel (BCCH).
class NrNetDevice
The NrNetDevice class.
class NrNotchingTestCase
TestCase for the notching mask.
class NrPhy
The base class for gNb and UE physical layer.
class NrPhySapProvider
SAP interface between the MAC and the PHY.
class NrPointToPointEpcHelper
Create an EPC network with PointToPoint links.
class NrRachPreambleMessage
Abstract model for the Random Access Preamble.
class NrRadioBearerTag
Tag used to define the RNTI and LC id for each MAC packet trasmitted.
class NrRadioEnvironmentMapHelper
Generate a radio environment map.
class NrRarMessage
Abstract model for the MAC Random Access Response message.
class NrSchedGeneralTestCase
TestSched testcase.
class NrSib1Message
Abstract model for broadcasting the System Information Block Type 1 (SIB1) within the control channel (BCCH).
class NrSpectrumPhy
Interface between the physical layer and the channel.
class NrSpectrumPhyTestSuite
struct NrSpectrumSignalParametersDataFrame
Data signal representation for the module.
struct NrSpectrumSignalParametersDlCtrlFrame
DL CTRL signal representation for the module.
struct NrSpectrumSignalParametersUlCtrlFrame
UL CTRL signal representation for the module.
class NrSpectrumValueHelper
This class provides a set of useful functions when working with spectrum model for NR.
class NrSRMessage
SR message.
class NrSrsMessage
NrSrsMessage message.
class NrStatsCalculator
class NrUeMac
The MAC class for the UE.
class NrUeNetDevice
The User Equipment NetDevice.
class NrUePhy
The UE PHY class.
class NrUePhySapUser
SAP interface between the UE PHY and the UE MAC.
class nrUeRrcProtocolIdeal
RRC message passing from the UE to the GNB.
class NrUlDciMessage
The message that represents a UL DCI message.
struct OperationBandInfo
Operation band information structure.
class OptimalCovMatrixBeamforming
The OptimalCovMatrixBeamforming class not implemented yet. TODO The idea was to port one of the initial beamforming methods that were implemented in NYU/University of Padova mmwave module. Method is based on a long term covariation matrix.
class QuasiOmniDirectPathBeamforming
The QuasiOmniDirectPathBeamforming class.
class RealisticBeamformingAlgorithm
Generate "Real" beamforming vectors This class is inherited by all algorithms that do not assume the perfect knowledge of the channel, but instead are performing the estimation of the channel based on measurements, e.g., based on SRS SINR/SNR measurement.
class RealisticBfManager
Antenna array management.
struct RlcListElement
The RlcListElement struct.
struct RlcPduInfo
The RlcPduInfo struct.
struct RxPacketTraceParams
The RxPacketTraceParams struct.
class ScenarioParameters
Basic simulation scenario parameters.
class SfnSf
The SfnSf class.
struct SlotAllocInfo
The SlotAllocInfo struct.
class SystemSchedulerTest
Main class for testing a scheduler, system-wise.
struct TbAllocInfo
The TbAllocInfo struct.
struct TbInfoElement
The TbInfoElement struct.
class TestCschedSapUser
The TestCschedSapUser class.
class ThreeGppFtpM1Helper
Helper for a correct setup of every FTP Model 1 applications.
struct UePhyPacketCountParameter
The UePhyPacketCountParameter struct.
struct UlCqiInfo
The UlCqiInfo struct.
struct UlHarqInfo
A struct that contains info for the UL HARQ.

Enums

enum LteNrTddSlotType: uint8_t { DL = 0, S = 1, F = 2, UL = 3 }
Available TDD slot types. Ordering is important.

Typedefs

using BandwidthPartInfoConstPtr = std::unique_ptr<const BandwidthPartInfo>
unique_ptr of a const BandwidthPartInfo
using BandwidthPartInfoPtr = std::unique_ptr<BandwidthPartInfo>
unique_ptr of BandwidthPartInfo
using BandwidthPartInfoPtrVector = std::vector<std::reference_wrapper<BandwidthPartInfoPtr>>
vector of unique_ptr of BandwidthPartInfo
using BeamformingVector = std::pair<PhasedArrayModel::ComplexVector, BeamId>
Physical representation of a beam.
using ComponentCarrierInfoPtr = std::unique_ptr<ComponentCarrierInfo>
unique_ptr of ComponentCarrierInfo
using DoubleMap = std::map<ImsiLcidPair_t, double>
Container: (IMSI, LCID) pair, double.
using FlowIdMap = std::map<ImsiLcidPair_t, LteFlowId_t>
Container: (IMSI, LCID) pair, LteFlowId_t.
using LCGPtr = std::unique_ptr<NrMacSchedulerLCG>
LCGPtr unique pointer to a LCG.
using LCPtr = std::unique_ptr<NrMacSchedulerLC>
Unique pointer to an instance of NrMacSchedulerLC.
using UePtr = std::shared_ptr<NrMacSchedulerUeInfo>
Shared pointer to an instance of NrMacSchedulerUeInfo.
using Uint32Map = std::map<ImsiLcidPair_t, uint32_t>
Container: (IMSI, LCID) pair, uint32_t.
using Uint32StatsMap = std::map<ImsiLcidPair_t, Ptr<MinMaxAvgTotalCalculator<uint32_t>>>
Container: (IMSI, LCID) pair, uint32_t calculator.
using Uint64Map = std::map<ImsiLcidPair_t, uint64_t>
Container: (IMSI, LCID) pair, uint64_t.
using Uint64StatsMap = std::map<ImsiLcidPair_t, Ptr<MinMaxAvgTotalCalculator<uint64_t>>>
Container: (IMSI, LCID) pair, uint64_t calculator.

Functions

static auto Cantor(uint16_t x1, uint16_t x2) -> uint32_t constexpr
Calculate the Cantor function for two unsigned int.
static auto Cantor(uint32_t x1, uint32_t x2) -> uint32_t constexpr
The RealisticBeamformingHelper class that helps user create beamforming tasks and configure when these tasks should be executed. This helper also collects SRS measurements for each gNB and UE. This helper class is currently compatible only with the RealisticBeamformingAlgorithm.
static auto Cantor64bit(uint32_t x1, uint32_t x2) -> uint64_t constexpr
Calculate the Cantor function for two unsigned int.
auto CreateDirectionalBfv(const Ptr<const UniformPlanarArray>& antenna, uint16_t sector, double elevation) -> PhasedArrayModel::ComplexVector
Creates a beamforming vector for a given sector and elevation.
auto CreateDirectionalBfvAz(const Ptr<const UniformPlanarArray>& antenna, double azimuth, double zenith) -> PhasedArrayModel::ComplexVector
Creates a beamforming vector for a given azimuth and zenith.
auto CreateDirectPathBfv(const Ptr<MobilityModel>& a, const Ptr<MobilityModel>& b, const Ptr<const UniformPlanarArray>& antenna) -> PhasedArrayModel::ComplexVector
Get directs path beamforming vector bfv for a device with the mobility model a for transmission toward device with a mobility model b, by using antenna aAntenna.
auto CreateQuasiOmniBfv(uint32_t antennaRows, uint32_t antennaColumns) -> PhasedArrayModel::ComplexVector
Create a quasi omni beamforming vector.
void DlRxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
void DlTxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)
static void GenerateDciMaps(const std::vector<LteNrTddSlotType>& pattern, std::map<uint32_t, std::vector<uint32_t>>* toSend, std::map<uint32_t, std::vector<uint32_t>>* generate, uint32_t pos, uint32_t n, uint32_t l1l2CtrlLatency)
Generates the map tosendDl/Ul that holds the information of the DCI Slot and the corresponding k0/k2 value, and the generateDl/Ul that includes the L1L2CtrlLatency.
static auto modulo(int n, uint32_t m) -> uint32_t
An intelligent way to calculate the modulo.
auto operator<(const NrBearerStatsConnector::CellIdRnti& a, const NrBearerStatsConnector::CellIdRnti& b) -> bool
auto operator<(const NrSpectrumModelId& a, const NrSpectrumModelId& b) -> bool
Operator < so that it can be the key in a g_nrSpectrumModelMap.
static auto operator<<(std::ostream& os, const HarqProcess& item) -> std::ostream&
operator << for HARQ processes
static void PlotHexagonalDeployment(const Ptr<const ListPositionAllocator>& sitePosVector, const Ptr<const ListPositionAllocator>& cellCenterVector, const Ptr<const ListPositionAllocator>& utPosVector, double cellRadius, std::string resultsDir, std::string simTag)
Creates a GNUPLOT with the hexagonal deployment including base stations (BS), their hexagonal cell areas and user terminals (UT). Positions and cell radius must be given in meters.
static auto ReturnDciSlot(const std::vector<LteNrTddSlotType>& pattern, uint32_t pos, uint32_t n) -> DciKPair
Return the slot in which the DCI should be send, according to the parameter n, along with the number of slots required to add to the current slot to get the slot of DCI (k0/k2)
static auto ReturnHarqSlot(const std::vector<LteNrTddSlotType>& pattern, uint32_t pos, uint32_t n1) -> int32_t
Return the slot in which the DL HARQ Feedback should be sent, according to the parameter N1.
void UlRxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)
void UlTxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)

Variables

static const std::vector<double> BetaTable1
Table of beta values for each standard MCS in Table1 in TS38.214.
static const std::vector<double> BetaTable2
Table of beta values for each standard MCS in Table2 in TS38.214.
static const NrEesmErrorModel::SimulatedBlerFromSINR BlerForSinr1
SINR to BLER mapping for MCSs in Table1.
static const NrEesmErrorModel::SimulatedBlerFromSINR BlerForSinr2
SINR to BLER mapping for MCSs in Table2.
static std::map<NrSpectrumModelId, Ptr<SpectrumModel>> g_nrSpectrumModelMap
nr spectrum model map
static const std::vector<uint16_t> LiftingSizeTableBG
Table of Lifting Sizes for LDPC.
static const uint8_t MAX_CC_INTRA_BAND
. 16, 8
static const std::vector<double> McsEcrTable1
Table of ECR of the standard MCSs: 29 MCSs as per Table1 in TS38.214.
static const std::vector<double> McsEcrTable2
Table of ECR of the standard MCSs: 28 MCSs as per Table2 in TS38.214.
static const std::vector<uint8_t> McsMTable1
Table of modulation order of the standard MCSs: 29 MCSs as per Table1 in TS38.214.
static const std::vector<uint8_t> McsMTable2
Table of modulation order of the standard MCSs: 28 MCSs as per Table2 in TS38.214.
static NrLteCcBwpTestSuite nrLteCcBwpTestSuite
CC BWP test suite.
static NrLtePatternsTestSuite nrLtePatternsTestSuite
Pattern test suite.
static NrLtePatternTestSuite nrLtePatternTestSuite
Pattern test suite.
static NrNotchingTestSuite nrNotchingTestSuite
Nr Notching test suite.
static NrTestSchedSuite nrSchedTestSuite
Nr scheduler test suite.
static NrTestL2smEesm NrTestL2smEesmTestSuite
Nr test suite.
const BeamId OMNI_BEAM_ID
Name of the OMNI beam.
const BeamId PREDEFINED_BEAM_ID
Reserved ID for the predefined directional beam if it cannot be expressed through sector and elevation.
static const std::vector<double> SpectralEfficiencyForCqi1
Table of SE of the standard CQIs: 16 CQIs as per Table1 in TS38.214.
static const std::vector<double> SpectralEfficiencyForCqi2
Table of SE of the standard CQIs: 16 CQIs as per Table2 in TS38.214.
static const std::vector<double> SpectralEfficiencyForMcs1
Table of SE of the standard MCSs: 29 (0 to 28) MCSs as per Table1 in TS38.214.
static const std::vector<double> SpectralEfficiencyForMcs2
Table of SE of the standard MCSs: 28 (0 to 27) MCSs as per Table2 in TS38.214.
static TestHarq testHarq
HARQ test.
static TestSfnSf testSfnSf
SfnSf test.

Function documentation

static uint32_t ns3::Cantor(uint16_t x1, uint16_t x2) constexpr

Calculate the Cantor function for two unsigned int.

Parameters
x1 first value max value 65535
x2 second value max value 65535
Returns $ (((x1 + x2) * (x1 + x2 + 1))/2) + x2; $ max value 4294836225

static uint64_t ns3::Cantor64bit(uint32_t x1, uint32_t x2) constexpr

Calculate the Cantor function for two unsigned int.

Parameters
x1 first value max value 4294967295
x2 second value max value 4294967295
Returns $ (((x1 + x2) * (x1 + x2 + 1))/2) + x2; $ max value 18446744073709551615

PhasedArrayModel::ComplexVector ns3::CreateDirectPathBfv(const Ptr<MobilityModel>& a, const Ptr<MobilityModel>& b, const Ptr<const UniformPlanarArray>& antenna)

Get directs path beamforming vector bfv for a device with the mobility model a for transmission toward device with a mobility model b, by using antenna aAntenna.

Parameters
in mobility model of the first device
in mobility model of the second device
antenna in antenaArray of the first device
Returns the resulting beamforming vector for antenna array for the first device

void ns3::DlRxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)

Callback function for DL RX statistics for both RLC and PDCP /param arg /param path /param rnti /param lcid /param packetSize /param delay

void ns3::DlTxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)

Callback function for DL TX statistics for both RLC and PDCP /param arg /param path /param rnti /param lcid /param packetSize

static void ns3::GenerateDciMaps(const std::vector<LteNrTddSlotType>& pattern, std::map<uint32_t, std::vector<uint32_t>>* toSend, std::map<uint32_t, std::vector<uint32_t>>* generate, uint32_t pos, uint32_t n, uint32_t l1l2CtrlLatency)

Generates the map tosendDl/Ul that holds the information of the DCI Slot and the corresponding k0/k2 value, and the generateDl/Ul that includes the L1L2CtrlLatency.

Parameters
pattern The TDD pattern, the pattern to analyze
toSend The structure toSendDl/tosendUl to fill
generate The structure generateDl/generateUl to fill
pos The position inside the pattern for which we want to check where the DCI should be sent
n The N parameter (equal to N0 or N2, depending if it is DL or UL)
l1l2CtrlLatency L1L2CtrlLatency of the system

static uint32_t ns3::modulo(int n, uint32_t m)

An intelligent way to calculate the modulo.

Parameters
n Number
m Modulo
Returns n+=m until n < 0

bool ns3::operator<(const NrBearerStatsConnector::CellIdRnti& a, const NrBearerStatsConnector::CellIdRnti& b)

Less than operator for CellIdRnti, because it is used as key in map

bool ns3::operator<(const NrSpectrumModelId& a, const NrSpectrumModelId& b)

Operator < so that it can be the key in a g_nrSpectrumModelMap.

Parameters
a lhs
b rhs
Returns true if earfcn less than or if earfcn equal and bandwidth less than or if earfcn and bandwidth equal and sucarrier spacing less than

static std::ostream& ns3::operator<<(std::ostream& os, const HarqProcess& item)

operator << for HARQ processes

Parameters
os Ostream output
item Item to print
Returns a copy of the output stream

Print HarqProcess onto a ostream.

static void ns3::PlotHexagonalDeployment(const Ptr<const ListPositionAllocator>& sitePosVector, const Ptr<const ListPositionAllocator>& cellCenterVector, const Ptr<const ListPositionAllocator>& utPosVector, double cellRadius, std::string resultsDir, std::string simTag)

Creates a GNUPLOT with the hexagonal deployment including base stations (BS), their hexagonal cell areas and user terminals (UT). Positions and cell radius must be given in meters.

Parameters
sitePosVector Vector of site positions
cellCenterVector Vector of cell center positions
utPosVector Vector of user terminals positions
cellRadius Hexagonal cell radius in meters
resultsDir
simTag

< This is the farthest hexagonal vertex from the cell center

< Disable plot legends

< Need to plot a function

static DciKPair ns3::ReturnDciSlot(const std::vector<LteNrTddSlotType>& pattern, uint32_t pos, uint32_t n)

Return the slot in which the DCI should be send, according to the parameter n, along with the number of slots required to add to the current slot to get the slot of DCI (k0/k2)

Parameters
pattern The TDD pattern
pos The position inside the pattern for which we want to check where the DCI should be sent
n The N parameter (equal to N0 or N2, depending if it is DL or UL)
Returns The slot position in which the DCI for the position specified should be sent and the k0/k2

static int32_t ns3::ReturnHarqSlot(const std::vector<LteNrTddSlotType>& pattern, uint32_t pos, uint32_t n1)

Return the slot in which the DL HARQ Feedback should be sent, according to the parameter N1.

Parameters
pattern The TDD pattern
pos The position of the data inside the pattern for which we want to find where the feedback should be sent
n1 The N1 parameter
Returns k1 (after how many slots the DL HARQ Feedback should be sent)

Please note that for the LTE TDD case, although the calculation follows the logic of Table 10.1-1 of TS 36.213, some configurations are simplified in order to avoid having a table from where we take the K1 values. In particular, for configurations 3, 4 and 6 (starting form 0), the specification splits the HARQ feedbacks among all UL subframes in an equal (as much as possible) manner. This tactic is ommitted in this implementation.

void ns3::UlRxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize, uint64_t delay)

Callback function for UL RX statistics for both RLC and PDCP /param arg /param path /param rnti /param lcid /param packetSize /param delay

void ns3::UlTxPduCallback(Ptr<NrBoundCallbackArgument> arg, std::string path, uint16_t rnti, uint8_t lcid, uint32_t packetSize)

Callback function for UL TX statistics for both RLC and PDCP /param arg /param path /param rnti /param lcid /param packetSize