5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-anr-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_ANR_SAP_H
8#define NR_ANR_SAP_H
9
10#include "nr-rrc-sap.h"
11
12namespace ns3
13{
14
23{
24 public:
25 virtual ~NrAnrSapProvider() = default;
26
36 virtual void ReportUeMeas(NrRrcSap::MeasResults measResults) = 0;
37
42 virtual void AddNeighbourRelation(uint16_t cellId) = 0;
43
50 virtual bool GetNoRemove(uint16_t cellId) const = 0;
51
59 virtual bool GetNoHo(uint16_t cellId) const = 0;
60
69 virtual bool GetNoX2(uint16_t cellId) const = 0;
70
71}; // end of class NrAnrSapProvider
72
81{
82 public:
83 virtual ~NrAnrSapUser() = default;
84
101
102}; // end of class NrAnrSapUser
103
108template <class C>
110{
111 public:
117 MemberNrAnrSapProvider(C* owner);
118
119 // Delete default constructor to avoid misuse
120 MemberNrAnrSapProvider() = delete;
121
122 // inherited from NrAnrSapProvider
123 void ReportUeMeas(NrRrcSap::MeasResults measResults) override;
124 void AddNeighbourRelation(uint16_t cellId) override;
125 bool GetNoRemove(uint16_t cellId) const override;
126 bool GetNoHo(uint16_t cellId) const override;
127 bool GetNoX2(uint16_t cellId) const override;
128
129 private:
130 C* m_owner;
131
132}; // end of class MemberNrAnrSapProvider
133
134template <class C>
136 : m_owner(owner)
137{
138}
139
140template <class C>
141void
143{
144 m_owner->DoReportUeMeas(measResults);
145}
146
147template <class C>
148void
150{
151 m_owner->DoAddNeighbourRelation(cellId);
152}
153
154template <class C>
155bool
157{
158 return m_owner->DoGetNoRemove(cellId);
159}
160
161template <class C>
162bool
164{
165 return m_owner->DoGetNoHo(cellId);
166}
167
168template <class C>
169bool
171{
172 return m_owner->DoGetNoX2(cellId);
173}
174
179template <class C>
181{
182 public:
188 MemberNrAnrSapUser(C* owner);
189
190 // Delete default constructor to avoid misuse
191 MemberNrAnrSapUser() = delete;
192
193 // inherited from NrAnrSapUser
194 uint8_t AddUeMeasReportConfigForAnr(NrRrcSap::ReportConfigEutra reportConfig) override;
195
196 private:
197 C* m_owner;
198
199}; // end of class MemberNrAnrSapUser
200
201template <class C>
203 : m_owner(owner)
204{
205}
206
207template <class C>
208uint8_t
210{
211 return m_owner->DoAddUeMeasReportConfigForAnr(reportConfig);
212}
213
214} // end of namespace ns3
215
216#endif /* NR_ANR_SAP_H */
Template for the implementation of the NrAnrSapProvider as a member of an owner class of type C to wh...
Definition nr-anr-sap.h:110
void AddNeighbourRelation(uint16_t cellId) override
Add a new Neighbour Relation entry.
Definition nr-anr-sap.h:149
bool GetNoRemove(uint16_t cellId) const override
Get the value of No Remove field of a neighbouring cell from the Neighbour Relation Table (NRT).
Definition nr-anr-sap.h:156
void ReportUeMeas(NrRrcSap::MeasResults measResults) override
Send a UE measurement report to the ANC instance.
Definition nr-anr-sap.h:142
bool GetNoX2(uint16_t cellId) const override
Get the value of No X2 field of a neighbouring cell from the Neighbour Relation Table (NRT).
Definition nr-anr-sap.h:170
bool GetNoHo(uint16_t cellId) const override
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT).
Definition nr-anr-sap.h:163
Template for the implementation of the NrAnrSapUser as a member of an owner class of type C to which ...
Definition nr-anr-sap.h:181
uint8_t AddUeMeasReportConfigForAnr(NrRrcSap::ReportConfigEutra reportConfig) override
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
Definition nr-anr-sap.h:209
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Definition nr-anr-sap.h:23
virtual void ReportUeMeas(NrRrcSap::MeasResults measResults)=0
Send a UE measurement report to the ANC instance.
virtual bool GetNoX2(uint16_t cellId) const =0
Get the value of No X2 field of a neighbouring cell from the Neighbour Relation Table (NRT).
virtual bool GetNoRemove(uint16_t cellId) const =0
Get the value of No Remove field of a neighbouring cell from the Neighbour Relation Table (NRT).
virtual void AddNeighbourRelation(uint16_t cellId)=0
Add a new Neighbour Relation entry.
virtual bool GetNoHo(uint16_t cellId) const =0
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT).
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
Definition nr-anr-sap.h:81
virtual uint8_t AddUeMeasReportConfigForAnr(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