28 #ifndef A2_A4_RSRQ_HANDOVER_ALGORITHM_H
29 #define A2_A4_RSRQ_HANDOVER_ALGORITHM_H
31 #include <ns3/lte-handover-algorithm.h>
32 #include <ns3/lte-handover-management-sap.h>
33 #include <ns3/lte-rrc-sap.h>
34 #include <ns3/simple-ref-count.h>
Measurements reported by a UE for a cell ID.
uint8_t m_rsrq
RSRQ in quantized format.
uint16_t m_cellId
Cell ID.
uint8_t m_rsrp
RSRP in quantized format.
Handover algorithm implementation based on RSRQ measurements, Event A2 and Event A4.
static TypeId GetTypeId()
Get the type ID.
LteHandoverManagementSapUser * m_handoverManagementSapUser
Interface to the eNodeB RRC instance.
std::map< uint16_t, MeasurementRow_t > MeasurementTable_t
Measurements reported by several UEs.
std::map< uint16_t, Ptr< UeMeasure > > MeasurementRow_t
Measurements reported by a UE for several cells.
virtual void DoDispose()
Destructor implementation.
virtual void DoInitialize()
Initialize() implementation.
void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Implementation of LteHandoverManagementSapProvider::ReportUeMeas.
A2A4RsrqHandoverAlgorithm()
Creates an A2-A4-RSRQ handover algorithm instance.
LteHandoverManagementSapProvider * m_handoverManagementSapProvider
Receive API calls from the eNodeB RRC instance.
bool IsValidNeighbour(uint16_t cellId)
Determines if a neighbour cell is a valid destination for handover.
std::vector< uint8_t > m_a2MeasIds
The expected measurement identities for A2 measurements.
void UpdateNeighbourMeasurements(uint16_t rnti, uint16_t cellId, uint8_t rsrq)
Called when Event A4 is reported, then update the measurements table.
void EvaluateHandover(uint16_t rnti, uint8_t servingCellRsrq)
Called when Event A2 is detected, then trigger a handover if needed.
virtual void SetLteHandoverManagementSapUser(LteHandoverManagementSapUser *s)
Set the "user" part of the Handover Management SAP interface that this handover algorithm instance wi...
MeasurementTable_t m_neighbourCellMeasures
Table of measurement reports from all UEs.
virtual ~A2A4RsrqHandoverAlgorithm()
uint8_t m_servingCellThreshold
The ServingCellThreshold attribute.
virtual LteHandoverManagementSapProvider * GetLteHandoverManagementSapProvider()
Export the "provider" part of the Handover Management SAP interface.
std::vector< uint8_t > m_a4MeasIds
The expected measurement identities for A4 measurements.
uint8_t m_neighbourCellOffset
The NeighbourCellOffset attribute.
The abstract base class of a handover algorithm that operates using the Handover Management SAP inter...
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance.
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance.
Template for the implementation of the LteHandoverManagementSapProvider as a member of an owner class...
A template-based reference counting class.
a unique identifier for an interface.
Every class exported by the ns3 library is enclosed in the ns3 namespace.