12#include <ns3/boolean.h>
14#include <ns3/uinteger.h>
27 TypeId(
"ns3::ComponentCarrier")
29 .AddConstructor<ComponentCarrier>()
32 "Uplink Transmission Bandwidth Configuration in number of Resource Blocks",
39 "Downlink Transmission Bandwidth Configuration in number of Resource Blocks",
44 .AddAttribute(
"DlEarfcn",
45 "Downlink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) "
46 "as per 3GPP 36.101 Section 5.7.3.",
51 .AddAttribute(
"UlEarfcn",
52 "Uplink E-UTRA Absolute Radio Frequency Channel Number (EARFCN) "
53 "as per 3GPP 36.101 Section 5.7.3.",
60 "The Closed Subscriber Group (CSG) identity that this eNodeB belongs to",
66 "If true, only UEs which are members of the CSG (i.e. same CSG ID) "
67 "can gain access to the eNodeB, therefore enforcing closed access mode. "
68 "Otherwise, the eNodeB operates as a non-CSG cell and implements open access mode.",
75 "If true, this Carrier Component will be the Primary Carrier Component (PCC) "
76 "Only one PCC per eNodeB is (currently) allowed",
227 static TypeId tid =
TypeId(
"ns3::ComponentCarrierBaseStation")
229 .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 AttributeChecker > MakeUintegerChecker()
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)