14#ifndef A2_A4_RSRQ_HANDOVER_ALGORITHM_H
15#define A2_A4_RSRQ_HANDOVER_ALGORITHM_H
17#include "nr-handover-algorithm.h"
18#include "nr-handover-management-sap.h"
19#include "nr-rrc-sap.h"
22#include "ns3/simple-ref-count.h"
91 void DoInitialize()
override;
92 void DoDispose()
override;
104 void EvaluateHandover(uint16_t rnti, uint8_t servingCellRsrq);
113 bool IsValidNeighbour(uint16_t cellId);
125 void UpdateNeighbourMeasurements(uint16_t rnti, uint16_t cellId, uint8_t rsrq);
128 std::vector<uint8_t> m_a2MeasIds;
130 std::vector<uint8_t> m_a4MeasIds;
136 class UeMeasure :
public SimpleRefCount<UeMeasure>
148 typedef std::map<uint16_t, Ptr<UeMeasure>> MeasurementRow_t;
154 typedef std::map<uint16_t, MeasurementRow_t> MeasurementTable_t;
157 MeasurementTable_t m_neighbourCellMeasures;
165 uint8_t m_servingCellThreshold;
172 uint8_t m_neighbourCellOffset;
Template for the implementation of the NrHandoverManagementSapProvider as a member of an owner class ...
Handover algorithm implementation based on RSRQ measurements, Event A2 and Event A4.
void SetNrHandoverManagementSapUser(NrHandoverManagementSapUser *s) override
Set the "user" part of the Handover Management SAP interface that this handover algorithm instance wi...
static TypeId GetTypeId()
Get the type ID.
NrHandoverManagementSapProvider * GetNrHandoverManagementSapProvider() override
Export the "provider" part of the Handover Management SAP interface.
NrA2A4RsrqHandoverAlgorithm()
Creates an A2-A4-RSRQ handover algorithm instance.
void DoReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults) override
Implementation of NrHandoverManagementSapProvider::ReportUeMeas.
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.