7#include "nr-component-carrier.h"
10#include "ns3/boolean.h"
12#include "ns3/uinteger.h"
17NS_LOG_COMPONENT_DEFINE(
"NrComponentCarrier");
19NS_OBJECT_ENSURE_REGISTERED(NrComponentCarrier);
25 TypeId(
"ns3::NrComponentCarrier")
27 .AddConstructor<NrComponentCarrier>()
30 "Uplink Transmission Bandwidth Configuration in number of Resource Blocks",
34 MakeUintegerChecker<uint8_t>())
37 "Downlink Transmission Bandwidth Configuration in number of Resource Blocks",
41 MakeUintegerChecker<uint8_t>())
42 .AddAttribute(
"DlEarfcn",
43 "Downlink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) "
44 "as per 3GPP 36.101 Section 5.7.3.",
48 MakeUintegerChecker<uint32_t>(0, 262143))
49 .AddAttribute(
"UlEarfcn",
50 "Uplink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) "
51 "as per 3GPP 36.101 Section 5.7.3.",
55 MakeUintegerChecker<uint32_t>(18000, 262143))
58 "The Closed Subscriber Group (CSG) identity that this eNodeB belongs to",
61 MakeUintegerChecker<uint32_t>())
64 "If true, only UEs which are members of the CSG (i.e. same CSG ID) "
65 "can gain access to the eNodeB, therefore enforcing closed access mode. "
66 "Otherwise, the eNodeB operates as a non-CSG cell and implements open access mode.",
73 "If true, this Carrier Component will be the Primary Carrier Component (PCC) "
74 "Only one PCC per eNodeB is (currently) allowed",
78 MakeBooleanChecker());
82NrComponentCarrier::NrComponentCarrier()
85 NS_LOG_FUNCTION(
this);
88NrComponentCarrier::~NrComponentCarrier()
90 NS_LOG_FUNCTION(
this);
94NrComponentCarrier::DoDispose()
96 NS_LOG_FUNCTION(
this);
109 NS_LOG_FUNCTION(
this << bw);
122 NS_FATAL_ERROR(
"Invalid bandwidth value " << bw);
136 NS_LOG_FUNCTION(
this << bw);
149 NS_FATAL_ERROR(
"Invalid bandwidth value " << bw);
163 NS_LOG_FUNCTION(
this << earfcn);
176 NS_LOG_FUNCTION(
this << earfcn);
189 NS_LOG_FUNCTION(
this << csgId);
202 NS_LOG_FUNCTION(
this << csgIndication);
215 NS_LOG_FUNCTION(
this << primaryCarrier);
void SetAsPrimary(bool primaryCarrier)
Set as primary carrier.
bool m_csgIndication
CSG indication.
uint32_t GetUlEarfcn() const
virtual void SetDlBandwidth(uint16_t bw)
uint32_t m_dlEarfcn
downlink carrier frequency */
bool m_primaryCarrier
whether the carrier is primary
uint16_t m_dlBandwidth
downlink bandwidth in RBs */
bool GetCsgIndication() const
Returns the CSG indication flag of the eNodeB.
void SetDlEarfcn(uint32_t earfcn)
uint32_t GetCsgId() const
Returns the CSG ID of the eNodeB.
uint32_t m_ulEarfcn
uplink carrier frequency */
uint16_t GetDlBandwidth() const
virtual void SetUlBandwidth(uint16_t bw)
bool IsPrimary() const
Checks if the carrier is the primary carrier.
void SetUlEarfcn(uint32_t earfcn)
void SetCsgIndication(bool csgIndication)
Enable or disable the CSG indication flag.
uint16_t m_ulBandwidth
uplink bandwidth in RBs */
uint32_t GetDlEarfcn() const
void SetCsgId(uint32_t csgId)
Associate the eNodeB device with a particular CSG.
uint16_t GetUlBandwidth() const
static TypeId GetTypeId()
Get the type ID.