|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
30 #include <ns3/uinteger.h>
43 m_servingCellId (servingCellId)
62 .AddAttribute (
"Threshold",
63 "Minimum RSRQ range value required for detecting a neighbour cell",
66 MakeUintegerChecker<uint8_t> (0, 34))
79 NS_FATAL_ERROR (
"Serving cell ID " << cellId <<
" may not be added into NRT");
84 NS_FATAL_ERROR (
"There is already an entry in the NRT for cell ID " << cellId);
89 neighbourRelation.
noHo =
true;
90 neighbourRelation.
noX2 =
false;
104 NS_FATAL_ERROR (
"Cell ID " << cellId <<
" cannot be found in NRT");
131 NS_LOG_LOGIC (
this <<
" requesting Event A4 measurements"
132 <<
" (threshold=" << (uint16_t)
m_threshold <<
")");
155 uint8_t measId = measResults.
measId;
160 NS_LOG_WARN (
this <<
" Skipping unexpected measurement identity " << (uint16_t) measId);
167 for (std::list <LteRrcSap::MeasResultEutra>::iterator it = measResults.
measResultListEutra.begin ();
173 "RSRQ measure missing for cellId " << it->physCellId);
181 <<
" with entry of cell " << it->physCellId);
182 if (itNrt->second.noX2 ==
false)
186 <<
" to cell " << it->physCellId);
187 itNrt->second.noHo =
false;
189 itNrt->second.detectedAsNeighbour =
true;
195 <<
" with newly discovered neighbouring cell "
199 neighbourRelation.
noHo =
true;
200 neighbourRelation.
noX2 =
true;
210 NS_LOG_WARN (
this <<
" Event A4 received without measurement results from neighbouring cells");
257 NS_FATAL_ERROR (
"Cell ID " << cellId <<
" cannot be found in NRT");
259 return &(it->second);
enum ns3::LteRrcSap::ReportConfigEutra::@5 reportInterval
Report interval enumeration.
a unique identifier for an interface.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
void DoAddNeighbourRelation(uint16_t cellId)
Implementation of LteAnrSapProvider::AddNeighbourRelation.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
virtual LteAnrSapProvider * GetLteAnrSapProvider()
Export the "provider" part of the ANR SAP interface.
uint8_t range
Value range used in RSRP/RSRQ threshold.
bool DoGetNoHo(uint16_t cellId) const
Implementation of LteAnrSapProvider::GetNoHo.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint16_t m_servingCellId
Serving cell ID.
NeighbourRelationTable_t m_neighbourRelationTable
neighbor relation table
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
enum ns3::LteRrcSap::ThresholdEutra::@0 choice
Threshold enumeration.
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
virtual void SetLteAnrSapUser(LteAnrSapUser *s)
Set the "user" part of the ANR SAP interface that this ANR instance will interact with.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
Neighbour Relation between two eNodeBs (serving eNodeB and neighbour eNodeB).
bool DoGetNoRemove(uint16_t cellId) const
Implementation of LteAnrSapProvider::GetNoRemove.
LteAnrSapProvider * m_anrSapProvider
Reference to the "provider" part of the ANR SAP interface, which is automatically created when this c...
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
enum ns3::LteRrcSap::ReportConfigEutra::@2 eventId
Event enumeration.
enum ns3::LteRrcSap::ReportConfigEutra::@3 triggerQuantity
Trigger type enumeration.
A base class which provides memory management and object aggregation.
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Specifies criteria for triggering of an E-UTRA measurement reporting event.
friend class MemberLteAnrSapProvider< LteAnr >
let the forwarder class access the protected and private members
const NeighbourRelation_t * Find(uint16_t cellId) const
@ RSRQ
Reference Signal Received Quality.
void DoReportUeMeas(LteRrcSap::MeasResults measResults)
Implementation of LteAnrSapProvider::ReportUeMeas.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
bool DoGetNoX2(uint16_t cellId) const
Implementation of LteAnrSapProvider::GetNoX2.
std::list< MeasResultEutra > measResultListEutra
measure result list eutra
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
virtual void DoInitialize()
Initialize() implementation.
@ EVENT_A4
Event A4: Neighbour becomes better than absolute threshold.
bool haveMeasResultNeighCells
have measure result neighbor cells
LteAnrSapUser * m_anrSapUser
Reference to the "user" part of the ANR SAP interface, which is provided by the eNodeB RRC instance.
bool detectedAsNeighbour
detected as neighbor
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
uint8_t m_threshold
The attribute Threshold.
Hold an unsigned integer type.
LteAnr(uint16_t servingCellId)
Creates an ANR instance.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
static TypeId GetTypeId()
Get the type ID.
@ THRESHOLD_RSRQ
RSRQ is used for the threshold.
uint8_t m_measId
The expected measurement identity.
virtual void DoDispose()
Destructor implementation.
void RemoveNeighbourRelation(uint16_t cellId)
Remove an existing Neighbour Relation entry.
void AddNeighbourRelation(uint16_t cellId)
Provide an advance information about a related neighbouring cell and add it as a new Neighbour Relati...