5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-helper.h
1// Copyright (c) 2019 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
2//
3// SPDX-License-Identifier: GPL-2.0-only
4
5#ifndef NR_HELPER_H
6#define NR_HELPER_H
7
8#include "cc-bwp-helper.h"
9#include "ideal-beamforming-helper.h"
10#include "nr-bearer-stats-connector.h"
11#include "nr-mac-scheduling-stats.h"
12
13#include "ns3/nr-component-carrier.h"
14#include <ns3/net-device-container.h>
15#include <ns3/node-container.h>
16#include <ns3/nr-control-messages.h>
17#include <ns3/nr-eps-bearer.h>
18#include <ns3/nr-spectrum-phy.h>
19#include <ns3/object-factory.h>
20
21namespace ns3
22{
23
24class NrUePhy;
25class NrGnbPhy;
26class SpectrumChannel;
27class NrSpectrumValueHelper;
28class NrGnbMac;
29class NrEpcHelper;
30class NrEpcTft;
31class NrBearerStatsCalculator;
32class NrMacRxTrace;
33class NrPhyRxTrace;
34class NrMacScheduler;
35class NrGnbNetDevice;
36class NrUeNetDevice;
37class NrUeMac;
38class BwpManagerGnb;
39class BwpManagerUe;
40
199class NrHelper : public Object
200{
201 public:
205 NrHelper();
209 ~NrHelper() override;
210
215 static TypeId GetTypeId();
216
224 NetDeviceContainer InstallUeDevice(
225 const NodeContainer& c,
226 const std::vector<std::reference_wrapper<BandwidthPartInfoPtr>>& allBwps);
233 NetDeviceContainer InstallGnbDevice(
234 const NodeContainer& c,
235 const std::vector<std::reference_wrapper<BandwidthPartInfoPtr>> allBwps);
236
242 static uint32_t GetNumberBwp(const Ptr<const NetDevice>& gnbDevice);
249 static Ptr<NrGnbPhy> GetGnbPhy(const Ptr<NetDevice>& gnbDevice, uint32_t bwpIndex);
256 static Ptr<NrGnbMac> GetGnbMac(const Ptr<NetDevice>& gnbDevice, uint32_t bwpIndex);
263 static Ptr<NrUeMac> GetUeMac(const Ptr<NetDevice>& ueDevice, uint32_t bwpIndex);
270 static Ptr<NrUePhy> GetUePhy(const Ptr<NetDevice>& ueDevice, uint32_t bwpIndex);
276 static Ptr<BwpManagerGnb> GetBwpManagerGnb(const Ptr<NetDevice>& gnbDevice);
282 static Ptr<BwpManagerUe> GetBwpManagerUe(const Ptr<NetDevice>& ueDevice);
289 static Ptr<NrMacScheduler> GetScheduler(const Ptr<NetDevice>& gnbDevice, uint32_t bwpIndex);
290
296 void AttachToClosestGnb(NetDeviceContainer ueDevices, NetDeviceContainer gnbDevices);
302 void AttachToGnb(const Ptr<NetDevice>& ueDevice, const Ptr<NetDevice>& gnbDevice);
303
312 void EnableTraces();
313
320 void ActivateDataRadioBearer(NetDeviceContainer ueDevices, NrEpsBearer bearer);
330 void ActivateDataRadioBearer(Ptr<NetDevice> ueDevice, NrEpsBearer bearer);
344 void SetEpcHelper(Ptr<NrEpcHelper> NrEpcHelper);
345
351 void SetBeamformingHelper(Ptr<BeamformingHelperBase> beamformingHelper);
352
359 void SetSnrTest(bool snrTest);
364 bool GetSnrTest() const;
365
369 enum OperationBandFlags : uint8_t
370 {
372 INIT_FADING = 0x02,
373 INIT_CHANNEL = 0x04
374 };
375
387 uint8_t flags = INIT_PROPAGATION | INIT_FADING | INIT_CHANNEL);
388
397 uint8_t ActivateDedicatedEpsBearer(NetDeviceContainer ueDevices,
398 NrEpsBearer bearer,
399 Ptr<NrEpcTft> tft);
400
409 uint8_t ActivateDedicatedEpsBearer(Ptr<NetDevice> ueDevice,
410 NrEpsBearer bearer,
411 Ptr<NrEpcTft> tft);
412
423 void DeActivateDedicatedEpsBearer(Ptr<NetDevice> ueDevice,
424 Ptr<NetDevice> gnbDevice,
425 uint8_t bearerId);
426
434 void SetUeMacAttribute(const std::string& n, const AttributeValue& v);
435
443 void SetGnbMacAttribute(const std::string& n, const AttributeValue& v);
444
452 void SetGnbSpectrumAttribute(const std::string& n, const AttributeValue& v);
453
461 void SetUeSpectrumAttribute(const std::string& n, const AttributeValue& v);
462
471 void SetUeChannelAccessManagerAttribute(const std::string& n, const AttributeValue& v);
472
481 void SetGnbChannelAccessManagerAttribute(const std::string& n, const AttributeValue& v);
482
490 void SetSchedulerAttribute(const std::string& n, const AttributeValue& v);
491
500 void SetUePhyAttribute(const std::string& n, const AttributeValue& v);
501
510 void SetGnbPhyAttribute(const std::string& n, const AttributeValue& v);
511
520 void SetUeAntennaAttribute(const std::string& n, const AttributeValue& v);
521
530 void SetGnbAntennaAttribute(const std::string& n, const AttributeValue& v);
531
540 void SetUeChannelAccessManagerTypeId(const TypeId& typeId);
541
550 void SetGnbChannelAccessManagerTypeId(const TypeId& typeId);
551
563 void SetSchedulerTypeId(const TypeId& typeId);
564
571 void SetGnbBwpManagerAlgorithmTypeId(const TypeId& typeId);
572
579 void SetGnbBwpManagerAlgorithmAttribute(const std::string& n, const AttributeValue& v);
580
587 void SetUeBwpManagerAlgorithmTypeId(const TypeId& typeId);
588
589 /*
590 * \brief Sets the TypeId of the PhasedArraySpectrumPropagationLossModel to be used
591 * \param typeId Type of the object
592 */
593 void SetPhasedArraySpectrumPropagationLossModelTypeId(const TypeId& typeId);
594
601 void SetUeBwpManagerAlgorithmAttribute(const std::string& n, const AttributeValue& v);
602
610 const AttributeValue& v);
611
618 void SetChannelConditionModelAttribute(const std::string& n, const AttributeValue& v);
619
626 void SetPathlossAttribute(const std::string& n, const AttributeValue& v);
627
636 void SetGnbDlAmcAttribute(const std::string& n, const AttributeValue& v);
637
646 void SetGnbUlAmcAttribute(const std::string& n, const AttributeValue& v);
647
648 /*
649 * \brief Sets beam managers attribute.
650 * \param n the name of the attribute
651 * \param v the value of the attribute
652 */
653 void SetGnbBeamManagerAttribute(const std::string& n, const AttributeValue& v);
654
660 void SetGnbBeamManagerTypeId(const TypeId& typeId);
661
679 void SetUlErrorModel(const std::string& errorModelTypeId);
680
697 void SetDlErrorModel(const std::string& errorModelTypeId);
698
703
708
712 void EnableUlPhyTraces();
713
721 Ptr<NrPhyRxTrace> GetPhyRxTrace();
722
730 Ptr<NrMacRxTrace> GetMacRxTrace();
731
736
742
751
756
761
766
771
777 Ptr<NrBearerStatsCalculator> GetRlcStatsCalculator();
778
783
788
792 void EnableRlcE2eTraces();
793
797 void EnablePdcpE2eTraces();
798
804 Ptr<NrBearerStatsCalculator> GetPdcpStatsCalculator();
805
810
815
820
821 /*
822 * \brief Enable DL CTRL pathloss trace from a serving cell (this trace connects
823 * to NrSpectrumPhy trace, which is implementation wise different from
824 * EnablePathlossTrace function which is implemented in by using
825 * MultiModelSpectrumChannel trace and which
826 * generates pathloss traces for both DL and UL
827 */
828 void EnableDlCtrlPathlossTraces(NetDeviceContainer& netDeviceContainer);
829
830 /*
831 * \brief Enable DL CTRL pathloss trace from a serving cell (this trace connects
832 * to NrSpectrumPhy trace, which is implementation wise different from
833 * EnablePathlossTrace function which is implemented in by using
834 * MultiModelSpectrumChannel trace and which generates pathloss traces for
835 * both DL and UL)
836 */
837 void EnableDlDataPathlossTraces(NetDeviceContainer& netDeviceContainer);
838
851 int64_t AssignStreams(NetDeviceContainer c, int64_t stream);
852
855 {
856 std::string antennaElem{"ns3::IsotropicAntennaModel"};
857 size_t nAntCols{1};
858 size_t nAntRows{1};
859 bool isDualPolarized{false};
860 size_t nHorizPorts{1};
861 size_t nVertPorts{1};
862 double bearingAngle{0.0};
863 double polSlantAngle{0.0};
864 };
865
868 {
869 std::string pmSearchMethod{"ns3::NrPmSearchFull"};
870 std::string fullSearchCb{"ns3::NrCbTwoPort"};
871 uint8_t rankLimit{UINT8_MAX};
872 uint8_t subbandSize{1};
873 std::string downsamplingTechnique{"FirstPRB"};
874 };
875
878 void SetPmSearchTypeId(const TypeId& typeId);
879
883 void SetPmSearchAttribute(const std::string& name, const AttributeValue& value);
884
887 void SetupGnbAntennas(const AntennaParams& ap);
888
891 void SetupUeAntennas(const AntennaParams& ap);
892
895 void SetupMimoPmi(const MimoPmiParams& mp);
896
900 std::pair<double, BandwidthPartInfoPtrVector> CreateBandwidthParts(
901 std::vector<CcBwpCreator::SimpleOperationBandConf> bandConfs);
902
907 void UpdateDeviceConfigs(const NetDeviceContainer& netDevs);
908
909 // Handover related functions
910 void AddX2Interface(NodeContainer gnbNodes);
911 void AddX2Interface(Ptr<Node> gnbNode1, Ptr<Node> gnbNode2);
912
913 std::string GetHandoverAlgorithmType() const;
914 void SetHandoverAlgorithmType(std::string type);
915 void SetHandoverAlgorithmAttribute(std::string n, const AttributeValue& v);
916 void HandoverRequest(Time hoTime,
917 Ptr<NetDevice> ueDev,
918 Ptr<NetDevice> sourceGnbDev,
919 Ptr<NetDevice> targetGnbDev);
920 void HandoverRequest(Time hoTime,
921 Ptr<NetDevice> ueDev,
922 Ptr<NetDevice> sourceGnbDev,
923 uint16_t targetCellId);
924
925 private:
926 bool m_enableMimoFeedback{false};
927 ObjectFactory m_pmSearchFactory;
928
944 int64_t DoAssignStreamsToChannelObjects(Ptr<NrSpectrumPhy> phy, int64_t currentStream);
945
955 void DoDeActivateDedicatedEpsBearer(Ptr<NetDevice> ueDevice,
956 Ptr<NetDevice> gnbDevice,
957 uint8_t bearerId);
958
959 Ptr<NrGnbPhy> CreateGnbPhy(const Ptr<Node>& n,
960 const std::unique_ptr<BandwidthPartInfo>& bwp,
961 const Ptr<NrGnbNetDevice>& dev,
962 const NrSpectrumPhy::NrPhyRxCtrlEndOkCallback& phyEndCtrlCallback);
963 Ptr<NrMacScheduler> CreateGnbSched();
964 Ptr<NrGnbMac> CreateGnbMac();
965
966 Ptr<NrUeMac> CreateUeMac() const;
967 Ptr<NrUePhy> CreateUePhy(const Ptr<Node>& n,
968 const std::unique_ptr<BandwidthPartInfo>& bwp,
969 const Ptr<NrUeNetDevice>& dev,
970 const NrSpectrumPhy::NrPhyDlHarqFeedbackCallback& dlHarqCallback,
971 const NrSpectrumPhy::NrPhyRxCtrlEndOkCallback& phyRxCtrlCallback);
972
973 Ptr<NetDevice> InstallSingleUeDevice(
974 const Ptr<Node>& n,
975 const std::vector<std::reference_wrapper<BandwidthPartInfoPtr>> allBwps);
976 Ptr<NetDevice> InstallSingleGnbDevice(
977 const Ptr<Node>& n,
978 const std::vector<std::reference_wrapper<BandwidthPartInfoPtr>> allBwps);
979
980 void DoHandoverRequest(Ptr<NetDevice> ueDev,
981 Ptr<NetDevice> sourceGnbDev,
982 uint16_t targetCellId);
983 void AttachToClosestGnb(Ptr<NetDevice> ueDevice, NetDeviceContainer gnbDevices);
984
985 ObjectFactory m_gnbNetDeviceFactory;
986 ObjectFactory m_ueNetDeviceFactory;
987 ObjectFactory m_channelFactory;
988 ObjectFactory m_ueMacFactory;
989 ObjectFactory m_gnbMacFactory;
990 ObjectFactory m_ueSpectrumFactory;
991 ObjectFactory m_gnbSpectrumFactory;
992 ObjectFactory m_uePhyFactory;
993 ObjectFactory m_gnbPhyFactory;
994 ObjectFactory m_ueChannelAccessManagerFactory;
995 ObjectFactory m_gnbChannelAccessManagerFactory;
996 ObjectFactory m_schedFactory;
997 ObjectFactory m_ueAntennaFactory;
998 ObjectFactory m_gnbAntennaFactory;
999 ObjectFactory m_gnbBwpManagerAlgoFactory;
1000 ObjectFactory m_ueBwpManagerAlgoFactory;
1001 ObjectFactory m_channelConditionModelFactory;
1002 ObjectFactory m_spectrumPropagationFactory;
1003 ObjectFactory m_pathlossModelFactory;
1004 ObjectFactory m_gnbDlAmcFactory;
1005 ObjectFactory m_gnbUlAmcFactory;
1006 ObjectFactory m_gnbBeamManagerFactory;
1007 ObjectFactory m_ueBeamManagerFactory;
1008 ObjectFactory m_handoverAlgorithmFactory;
1009
1010 uint16_t m_cellIdCounter{1};
1011
1012 Ptr<NrEpcHelper> m_nrEpcHelper{nullptr};
1013 Ptr<BeamformingHelperBase> m_beamformingHelper{nullptr};
1014
1015 bool m_snrTest{false};
1016
1017 Ptr<NrPhyRxTrace> m_phyStats;
1018 Ptr<NrMacRxTrace> m_macStats;
1019
1020 NrBearerStatsConnector
1021 m_radioBearerStatsConnectorSimpleTraces;
1023 NrBearerStatsConnector
1024 m_radioBearerStatsConnectorCalculator;
1026
1027 std::map<uint8_t, NrComponentCarrier> m_componentCarrierPhyParams;
1028 std::vector<Ptr<Object>>
1029 m_channelObjectsWithAssignedStreams;
1032 Ptr<NrMacSchedulingStats> m_macSchedStats;
1033 bool m_useIdealRrc;
1034 std::vector<OperationBandInfo> m_bands;
1035};
1036
1037} // namespace ns3
1038
1039#endif /* NR_HELPER_H */
Base helper class to handle the creation of the EPC entities.
This class contains the specification of EPS Bearers.
Helper for a correct setup of every NR simulation.
Definition nr-helper.h:200
void EnableDlDataPhyTraces()
Enable DL DATA PHY traces.
static Ptr< BwpManagerGnb > GetBwpManagerGnb(const Ptr< NetDevice > &gnbDevice)
Get the BwpManager of the GNB.
Definition nr-helper.cc:450
void AttachToClosestGnb(NetDeviceContainer ueDevices, NetDeviceContainer gnbDevices)
Attach the UE specified to the closest GNB.
void ActivateDataRadioBearer(NetDeviceContainer ueDevices, NrEpsBearer bearer)
Activate a Data Radio Bearer on a given UE devices.
void SetPhasedArraySpectrumPropagationLossModelAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the PhasedArraySpectrumPropagationLossModel before it is created.
int64_t AssignStreams(NetDeviceContainer c, int64_t stream)
void UpdateDeviceConfigs(const NetDeviceContainer &netDevs)
Update netdevice configuration of one or more UEs and/or gNBs.
Definition nr-helper.cc:538
static Ptr< NrUeMac > GetUeMac(const Ptr< NetDevice > &ueDevice, uint32_t bwpIndex)
Get a pointer to the MAC of the UE at the specified BWP.
Definition nr-helper.cc:424
void EnableTraces()
Enables the following traces: Transmitted/Received Control Messages DL/UL Phy Traces RLC traces PDCP ...
NetDeviceContainer InstallGnbDevice(const NodeContainer &c, const std::vector< std::reference_wrapper< BandwidthPartInfoPtr > > allBwps)
Install one (or more) GNBs.
Definition nr-helper.cc:521
void SetBeamformingHelper(Ptr< BeamformingHelperBase > beamformingHelper)
Set an ideal beamforming helper.
void SetGnbDlAmcAttribute(const std::string &n, const AttributeValue &v)
NrHelper()
NrHelper constructor.
Definition nr-helper.cc:56
Ptr< NrBearerStatsCalculator > GetPdcpStatsCalculator()
Get the PDCP stats calculator object.
void DeActivateDedicatedEpsBearer(Ptr< NetDevice > ueDevice, Ptr< NetDevice > gnbDevice, uint8_t bearerId)
Manually trigger dedicated bearer de-activation at specific simulation time.
void EnableUePhyCtrlMsgsTraces()
Enable UE PHY CTRL TX and RX traces.
void EnableRlcSimpleTraces()
Enable RLC simple traces (DL RLC TX, DL RLC RX, UL DL TX, UL DL RX)
void SetUeAntennaAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the UE antenna, before it is created.
void SetUeChannelAccessManagerAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the UE channel access manager, before it is created.
bool GetSnrTest() const
GetSnrTest.
Definition nr-helper.cc:498
void EnableGnbPhyCtrlMsgsTraces()
Enable gNB PHY CTRL TX and RX traces.
~NrHelper() override
~NrHelper
Definition nr-helper.cc:90
void SetGnbBwpManagerAlgorithmTypeId(const TypeId &typeId)
Set the TypeId of the GNB BWP Manager. Works only before it is created.
static Ptr< BwpManagerUe > GetBwpManagerUe(const Ptr< NetDevice > &ueDevice)
Get the BwpManager of the UE.
Definition nr-helper.cc:464
void EnableDlMacSchedTraces()
std::pair< double, BandwidthPartInfoPtrVector > CreateBandwidthParts(std::vector< CcBwpCreator::SimpleOperationBandConf > bandConfs)
Create BandwidthParts from a vector of band configurations.
Definition nr-helper.cc:368
void SetUeMacAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the UE MAC, before it is created.
void SetUlErrorModel(const std::string &errorModelTypeId)
Set the ErrorModel for UL AMC and UE spectrum at the same time.
OperationBandFlags
Flags for OperationBand initialization.
Definition nr-helper.h:370
@ INIT_PROPAGATION
Initialize the propagation loss model.
Definition nr-helper.h:371
@ INIT_FADING
Initialize the fading model.
Definition nr-helper.h:372
@ INIT_CHANNEL
Initialize the channel model.
Definition nr-helper.h:373
void SetUeBwpManagerAlgorithmTypeId(const TypeId &typeId)
Set the TypeId of the UE BWP Manager. Works only before it is created.
void EnableUlPhyTraces()
Enable UL PHY traces.
void EnablePathlossTraces()
Enable trace sinks for DL and UL pathloss.
Ptr< NrMacRxTrace > GetMacRxTrace()
Get the mac stats trace object.
void SetPmSearchAttribute(const std::string &name, const AttributeValue &value)
Set attribute of the precoding matrix search algorithm.
void SetGnbAntennaAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB antenna, before it is created.
void SetupGnbAntennas(const AntennaParams &ap)
Set parameters for gNB and UE antenna arrays.
static Ptr< NrGnbPhy > GetGnbPhy(const Ptr< NetDevice > &gnbDevice, uint32_t bwpIndex)
Get a pointer to the PHY of the GNB at the specified BWP.
Definition nr-helper.cc:398
void AttachToGnb(const Ptr< NetDevice > &ueDevice, const Ptr< NetDevice > &gnbDevice)
Attach a UE to a particular GNB.
void EnableUlMacSchedTraces()
void SetGnbUlAmcAttribute(const std::string &n, const AttributeValue &v)
static uint32_t GetNumberBwp(const Ptr< const NetDevice > &gnbDevice)
Get the number of configured BWP for a specific GNB NetDevice.
Definition nr-helper.cc:386
void EnableGnbMacCtrlMsgsTraces()
Enable gNB MAC CTRL TX and RX traces.
uint8_t ActivateDedicatedEpsBearer(NetDeviceContainer ueDevices, NrEpsBearer bearer, Ptr< NrEpcTft > tft)
void SetUeChannelAccessManagerTypeId(const TypeId &typeId)
Set the TypeId of the UE Channel Access Manager. Works only before it is created.
Ptr< NrBearerStatsCalculator > GetRlcStatsCalculator()
Get the RLC stats calculator object.
void EnableTransportBlockTrace()
Enable transport block trace.
void InitializeOperationBand(OperationBandInfo *band, uint8_t flags=INIT_PROPAGATION|INIT_FADING|INIT_CHANNEL)
Initialize the bandwidth parts by creating and configuring the channel models, if they are not alread...
Definition nr-helper.cc:276
void EnableGnbPacketCountTrace()
Enable gNB packet count trace.
void SetDlErrorModel(const std::string &errorModelTypeId)
Set the ErrorModel for DL AMC and GNB spectrum at the same time.
void EnableRlcE2eTraces()
Enable RLC calculator and end-to-end RCL traces to file.
void EnablePdcpSimpleTraces()
Enable PDCP traces (DL PDCP TX, DL PDCP RX, UL PDCP TX, UL PDCP RX)
static Ptr< NrMacScheduler > GetScheduler(const Ptr< NetDevice > &gnbDevice, uint32_t bwpIndex)
Get the Scheduler from the GNB specified.
Definition nr-helper.cc:478
void SetUeBwpManagerAlgorithmAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB BWP Manager, before it is created.
void SetEpcHelper(Ptr< NrEpcHelper > NrEpcHelper)
void SetGnbMacAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB MAC, before it is created.
void SetGnbPhyAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB PHY, before it is created.
void EnableDlCtrlPhyTraces()
Enable DL CTRL PHY traces.
void SetupUeAntennas(const AntennaParams &ap)
Set parameters for gNB and UE antenna arrays.
static Ptr< NrGnbMac > GetGnbMac(const Ptr< NetDevice > &gnbDevice, uint32_t bwpIndex)
Get a pointer to the MAC of the GNB at the specified BWP.
Definition nr-helper.cc:411
void SetUePhyAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the UE PHY, before it is created.
static Ptr< NrUePhy > GetUePhy(const Ptr< NetDevice > &ueDevice, uint32_t bwpIndex)
Get a pointer to the PHY of the UE at the specified BWP.
Definition nr-helper.cc:437
void SetupMimoPmi(const MimoPmiParams &mp)
Set parameters for PMI search in MIMO operation.
void EnableUePacketCountTrace()
Enable UE packet count trace.
static TypeId GetTypeId()
GetTypeId.
Definition nr-helper.cc:101
void SetUeSpectrumAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the UE spectrum, before it is created.
void SetPathlossAttribute(const std::string &n, const AttributeValue &v)
void SetSchedulerAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the scheduler, before it is created.
void EnableUeMacCtrlMsgsTraces()
Enable UE MAC CTRL TX and RX traces.
void SetSchedulerTypeId(const TypeId &typeId)
Set the Scheduler TypeId. Works only before it is created.
void SetGnbBwpManagerAlgorithmAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB BWP Manager, before it is created.
Ptr< NrPhyRxTrace > GetPhyRxTrace()
Get the phy traces object.
void SetGnbSpectrumAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB spectrum, before it is created.
NetDeviceContainer InstallUeDevice(const NodeContainer &c, const std::vector< std::reference_wrapper< BandwidthPartInfoPtr > > &allBwps)
Install one (or more) UEs.
Definition nr-helper.cc:504
void SetChannelConditionModelAttribute(const std::string &n, const AttributeValue &v)
void SetGnbChannelAccessManagerAttribute(const std::string &n, const AttributeValue &v)
Set an attribute for the GNB channel access manager, before it is created.
void EnablePdcpE2eTraces()
Enable PDCP calculator and end-to-end PDCP traces to file.
void SetGnbChannelAccessManagerTypeId(const TypeId &typeId)
Set the TypeId of the GNB Channel Access Manager. Works only before it is created.
void SetGnbBeamManagerTypeId(const TypeId &typeId)
Set the TypeId of the beam manager.
void SetPmSearchTypeId(const TypeId &typeId)
Set TypeId of the precoding matrix search algorithm.
void SetSnrTest(bool snrTest)
SetSnrTest.
Definition nr-helper.cc:492
std::function< void(const std::list< Ptr< NrControlMessage > > &, uint8_t)> NrPhyRxCtrlEndOkCallback
This callback method type is used to notify that CTRL is received.
Callback< void, const DlHarqInfo & > NrPhyDlHarqFeedbackCallback
parameters of the gNB or UE antenna arrays
Definition nr-helper.h:855
size_t nAntRows
Number of antenna element rows (vertical height)
Definition nr-helper.h:858
bool isDualPolarized
true if antennas are cross-polarized (dual-polarized)
Definition nr-helper.h:859
double bearingAngle
Bearing angle in radians.
Definition nr-helper.h:862
std::string antennaElem
Antenna type.
Definition nr-helper.h:856
size_t nHorizPorts
Number of antenna ports in horizontal direction.
Definition nr-helper.h:860
size_t nVertPorts
Number of antenna ports in vertical direction.
Definition nr-helper.h:861
size_t nAntCols
Number of antenna element columns (horizontal width)
Definition nr-helper.h:857
double polSlantAngle
Polarization slant angle in radians.
Definition nr-helper.h:863
parameters for the search of optimal rank and precoding matrix indicator (RI, PMI)
Definition nr-helper.h:868
uint8_t rankLimit
Limit maximum MIMO rank to model limited UE capabilities.
Definition nr-helper.h:871
std::string downsamplingTechnique
Sub-band compression technique.
Definition nr-helper.h:873
uint8_t subbandSize
Number of PRBs per subband for downsampling.
Definition nr-helper.h:872
std::string fullSearchCb
Codebook when using full-search algorithm.
Definition nr-helper.h:870
std::string pmSearchMethod
Precoding matrix search algorithm.
Definition nr-helper.h:869
Operation band information structure.