5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-handover-management-sap.h
1// Copyright (c) 2013 Budiarto Herman
2//
3// SPDX-License-Identifier: GPL-2.0-only
4//
5// Author: Budiarto Herman <budiarto.herman@magister.fi>
6
7#ifndef NR_HANDOVER_MANAGEMENT_SAP_H
8#define NR_HANDOVER_MANAGEMENT_SAP_H
9
10#include "nr-rrc-sap.h"
11
12namespace ns3
13{
14
24{
25 public:
26 virtual ~NrHandoverManagementSapProvider() = default;
27
39 virtual void ReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults) = 0;
40
41}; // end of class NrHandoverManagementSapProvider
42
51{
52 public:
53 virtual ~NrHandoverManagementSapUser() = default;
54
71 virtual std::vector<uint8_t> AddUeMeasReportConfigForHandover(
72 NrRrcSap::ReportConfigEutra reportConfig) = 0;
73
87 virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId) = 0;
88
89}; // end of class NrHandoverManagementSapUser
90
96template <class C>
98{
99 public:
106
107 // Delete default constructor to avoid misuse
109
110 // inherited from NrHandoverManagementSapProvider
111 void ReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults) override;
112
113 private:
114 C* m_owner;
115
116}; // end of class MemberNrHandoverManagementSapProvider
117
118template <class C>
123
124template <class C>
125void
127 NrRrcSap::MeasResults measResults)
128{
129 m_owner->DoReportUeMeas(rnti, measResults);
130}
131
137template <class C>
139{
140 public:
147
148 // Delete default constructor to avoid misuse
150
151 // inherited from NrHandoverManagementSapUser
152 std::vector<uint8_t> AddUeMeasReportConfigForHandover(
153 NrRrcSap::ReportConfigEutra reportConfig) override;
154 void TriggerHandover(uint16_t rnti, uint16_t targetCellId) override;
155
156 private:
157 C* m_owner;
158
159}; // end of class MemberNrAnrSapUser
160
161template <class C>
166
167template <class C>
168std::vector<uint8_t>
170 NrRrcSap::ReportConfigEutra reportConfig)
171{
172 return m_owner->DoAddUeMeasReportConfigForHandover(reportConfig);
173}
174
175template <class C>
176void
177MemberNrHandoverManagementSapUser<C>::TriggerHandover(uint16_t rnti, uint16_t targetCellId)
178{
179 return m_owner->DoTriggerHandover(rnti, targetCellId);
180}
181
182} // end of namespace ns3
183
184#endif /* NR_HANDOVER_MANAGEMENT_SAP_H */
Template for the implementation of the NrHandoverManagementSapProvider as a member of an owner class ...
void ReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults) override
Send a UE measurement report to handover algorithm.
Template for the implementation of the NrHandoverManagementSapUser as a member of an owner class of t...
void TriggerHandover(uint16_t rnti, uint16_t targetCellId) override
Instruct the eNodeB RRC entity to prepare a handover.
std::vector< uint8_t > AddUeMeasReportConfigForHandover(NrRrcSap::ReportConfigEutra reportConfig) override
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance.
virtual void ReportUeMeas(uint16_t rnti, NrRrcSap::MeasResults measResults)=0
Send a UE measurement report to handover algorithm.
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance.
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)=0
Instruct the eNodeB RRC entity to prepare a handover.
virtual std::vector< uint8_t > AddUeMeasReportConfigForHandover(NrRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
MeasResults structure.
Definition nr-rrc-sap.h:723
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition nr-rrc-sap.h:360