22 #include <ns3/abort.h>
23 #include <ns3/boolean.h>
25 #include <ns3/uinteger.h>
38 TypeId(
"ns3::ComponentCarrier")
40 .AddConstructor<ComponentCarrier>()
43 "Uplink Transmission Bandwidth Configuration in number of Resource Blocks",
47 MakeUintegerChecker<uint8_t>())
50 "Downlink Transmission Bandwidth Configuration in number of Resource Blocks",
54 MakeUintegerChecker<uint8_t>())
55 .AddAttribute(
"DlEarfcn",
56 "Downlink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) "
57 "as per 3GPP 36.101 Section 5.7.3.",
61 MakeUintegerChecker<uint32_t>(0, 262143))
62 .AddAttribute(
"UlEarfcn",
63 "Uplink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) "
64 "as per 3GPP 36.101 Section 5.7.3.",
68 MakeUintegerChecker<uint32_t>(18000, 262143))
71 "The Closed Subscriber Group (CSG) identity that this eNodeB belongs to",
74 MakeUintegerChecker<uint32_t>())
77 "If true, only UEs which are members of the CSG (i.e. same CSG ID) "
78 "can gain access to the eNodeB, therefore enforcing closed access mode. "
79 "Otherwise, the eNodeB operates as a non-CSG cell and implements open access mode.",
86 "If true, this Carrier Component will be the Primary Carrier Component (PCC) "
87 "Only one PCC per eNodeB is (currently) allowed",
238 static TypeId tid =
TypeId(
"ns3::ComponentCarrierBaseStation")
240 .AddConstructor<ComponentCarrierBaseStation>();
Defines a Base station, that is a ComponentCarrier but with a cell Id.
~ComponentCarrierBaseStation() override
~ComponentCarrierBaseStation
uint16_t GetCellId() const
Get cell identifier.
ComponentCarrierBaseStation()
Constructor.
static TypeId GetTypeId()
Get the type ID.
void SetCellId(uint16_t cellId)
Set physical cell identifier.
uint16_t m_cellId
Cell identifier.
ComponentCarrier Object, it defines a single Carrier This is the parent class for both ComponentCarri...
void SetCsgIndication(bool csgIndication)
Enable or disable the CSG indication flag.
void SetDlEarfcn(uint32_t earfcn)
uint32_t GetDlEarfcn() const
uint16_t GetUlBandwidth() const
bool GetCsgIndication() const
Returns the CSG indication flag of the eNodeB.
uint16_t GetDlBandwidth() const
bool m_csgIndication
CSG indication.
~ComponentCarrier() override
void SetUlEarfcn(uint32_t earfcn)
uint32_t GetCsgId() const
Returns the CSG ID of the eNodeB.
void SetAsPrimary(bool primaryCarrier)
Set as primary carrier.
static TypeId GetTypeId()
Get the type ID.
uint16_t m_dlBandwidth
downlink bandwidth in RBs */
void DoDispose() override
Destructor implementation.
void SetCsgId(uint32_t csgId)
Associate the eNodeB device with a particular CSG.
uint32_t m_ulEarfcn
uplink carrier frequency */
uint32_t GetUlEarfcn() const
virtual void SetUlBandwidth(uint16_t bw)
bool m_primaryCarrier
whether the carrier is primary
bool IsPrimary() const
Checks if the carrier is the primary carrier.
uint16_t m_ulBandwidth
uplink bandwidth in RBs */
uint32_t m_dlEarfcn
downlink carrier frequency */
virtual void SetDlBandwidth(uint16_t bw)
A base class which provides memory management and object aggregation.
virtual void DoDispose()
Destructor implementation.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const AttributeChecker > MakeBooleanChecker()
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)