30 #include <ns3/uinteger.h>
44 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);
uint8_t m_threshold
The attribute Threshold.
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
#define NS_LOG_FUNCTION(parameters)
virtual void DoInitialize()
This method is called only once by Object::Initialize.
const NeighbourRelation_t * Find(uint16_t cellId) const
void DoAddNeighbourRelation(uint16_t cellId)
Implementation of LteAnrSapProvider::AddNeighbourRelation.
enum ns3::LteRrcSap::ReportConfigEutra::@70 eventId
Choice of E-UTRA event triggered reporting criteria.
std::list< MeasResultEutra > measResultListEutra
LteAnrSapProvider * m_anrSapProvider
Reference to the "provider" part of the ANR SAP interface, which is automatically created when this c...
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
Specifies criteria for triggering of an E-UTRA measurement reporting event.
void AddNeighbourRelation(uint16_t cellId)
Provide an advance information about a related neighbouring cell and add it as a new Neighbour Relati...
NS_OBJECT_ENSURE_REGISTERED(NullMessageSimulatorImpl)
#define NS_FATAL_ERROR(msg)
fatal error handling
bool DoGetNoX2(uint16_t cellId) const
Implementation of LteAnrSapProvider::GetNoX2.
Hold an unsigned integer type.
Neighbour Relation between two eNodeBs (serving eNodeB and neighbour eNodeB).
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
#define NS_LOG_LOGIC(msg)
virtual void SetLteAnrSapUser(LteAnrSapUser *s)
Set the "user" part of the ANR SAP interface that this ANR instance will interact with...
void RemoveNeighbourRelation(uint16_t cellId)
Remove an existing Neighbour Relation entry.
bool haveMeasResultNeighCells
uint8_t range
Value range used in RSRP/RSRQ threshold.
LteAnr(uint16_t servingCellId)
Creates an ANR instance.
Reference Signal Received Quality.
enum ns3::LteRrcSap::ReportConfigEutra::@72 triggerQuantity
The quantities used to evaluate the triggering condition for the event, see 3GPP TS 36...
NS_LOG_COMPONENT_DEFINE("LteAnr")
bool DoGetNoRemove(uint16_t cellId) const
Implementation of LteAnrSapProvider::GetNoRemove.
#define NS_ASSERT_MSG(condition, message)
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
virtual LteAnrSapProvider * GetLteAnrSapProvider()
Export the "provider" part of the ANR SAP interface.
void DoReportUeMeas(LteRrcSap::MeasResults measResults)
Implementation of LteAnrSapProvider::ReportUeMeas.
enum ns3::LteRrcSap::ThresholdEutra::@68 choice
enum ns3::LteRrcSap::ReportConfigEutra::@74 reportInterval
Indicates the interval between periodical reports.
Event A4: Neighbour becomes better than absolute threshold.
a base class which provides memory management and object aggregation
static TypeId GetTypeId()
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
bool DoGetNoHo(uint16_t cellId) const
Implementation of LteAnrSapProvider::GetNoHo.
LteAnrSapUser * m_anrSapUser
Reference to the "user" part of the ANR SAP interface, which is provided by the eNodeB RRC instance...
NeighbourRelationTable_t m_neighbourRelationTable
Template for the implementation of the LteAnrSapProvider as a member of an owner class of type C to w...
RSRQ is used for the threshold.