A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
lte-anr-sap.h
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2013 Budiarto Herman
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Budiarto Herman <budiarto.herman@magister.fi>
19
*
20
*/
21
22
#ifndef LTE_ANR_SAP_H
23
#define LTE_ANR_SAP_H
24
25
#include <ns3/lte-rrc-sap.h>
26
27
namespace
ns3
{
28
29
37
class
LteAnrSapProvider
38
{
39
public
:
40
virtual
~LteAnrSapProvider
();
41
51
virtual
void
ReportUeMeas
(
LteRrcSap::MeasResults
measResults) = 0;
52
57
virtual
void
AddNeighbourRelation
(uint16_t cellId) = 0;
58
65
virtual
bool
GetNoRemove
(uint16_t cellId)
const
= 0;
66
74
virtual
bool
GetNoHo
(uint16_t cellId)
const
= 0;
75
84
virtual
bool
GetNoX2
(uint16_t cellId)
const
= 0;
85
86
};
// end of class LteAnrSapProvider
87
88
89
97
class
LteAnrSapUser
98
{
99
public
:
100
virtual
~LteAnrSapUser
();
101
117
virtual
uint8_t
AddUeMeasReportConfigForAnr
(
LteRrcSap::ReportConfigEutra
reportConfig) = 0;
118
119
};
// end of class LteAnrSapUser
120
121
122
127
template
<
class
C>
128
class
MemberLteAnrSapProvider
:
public
LteAnrSapProvider
129
{
130
public
:
136
MemberLteAnrSapProvider
(C* owner);
137
138
// inherited from LteAnrSapProvider
139
virtual
void
ReportUeMeas
(
LteRrcSap::MeasResults
measResults);
140
virtual
void
AddNeighbourRelation
(uint16_t cellId);
141
virtual
bool
GetNoRemove
(uint16_t cellId)
const
;
142
virtual
bool
GetNoHo
(uint16_t cellId)
const
;
143
virtual
bool
GetNoX2
(uint16_t cellId)
const
;
144
145
private
:
146
MemberLteAnrSapProvider
();
147
C*
m_owner
;
148
149
};
// end of class MemberLteAnrSapProvider
150
151
152
template
<
class
C>
153
MemberLteAnrSapProvider<C>::MemberLteAnrSapProvider
(C* owner)
154
: m_owner (owner)
155
{
156
}
157
158
159
template
<
class
C>
160
void
161
MemberLteAnrSapProvider<C>::ReportUeMeas
(
LteRrcSap::MeasResults
measResults)
162
{
163
m_owner->DoReportUeMeas (measResults);
164
}
165
166
167
template
<
class
C>
168
void
169
MemberLteAnrSapProvider<C>::AddNeighbourRelation
(uint16_t cellId)
170
{
171
m_owner->DoAddNeighbourRelation (cellId);
172
}
173
174
175
template
<
class
C>
176
bool
177
MemberLteAnrSapProvider<C>::GetNoRemove
(uint16_t cellId)
const
178
{
179
return
m_owner->DoGetNoRemove (cellId);
180
}
181
182
183
template
<
class
C>
184
bool
185
MemberLteAnrSapProvider<C>::GetNoHo
(uint16_t cellId)
const
186
{
187
return
m_owner->DoGetNoHo (cellId);
188
}
189
190
191
template
<
class
C>
192
bool
193
MemberLteAnrSapProvider<C>::GetNoX2
(uint16_t cellId)
const
194
{
195
return
m_owner->DoGetNoX2 (cellId);
196
}
197
198
199
204
template
<
class
C>
205
class
MemberLteAnrSapUser
:
public
LteAnrSapUser
206
{
207
public
:
213
MemberLteAnrSapUser
(C* owner);
214
215
// inherited from LteAnrSapUser
216
virtual
uint8_t
AddUeMeasReportConfigForAnr
(
LteRrcSap::ReportConfigEutra
reportConfig);
217
218
private
:
219
MemberLteAnrSapUser
();
220
C*
m_owner
;
221
222
};
// end of class MemberLteAnrSapUser
223
224
225
template
<
class
C>
226
MemberLteAnrSapUser<C>::MemberLteAnrSapUser
(C* owner)
227
: m_owner (owner)
228
{
229
}
230
231
232
template
<
class
C>
233
uint8_t
234
MemberLteAnrSapUser<C>::AddUeMeasReportConfigForAnr
(
LteRrcSap::ReportConfigEutra
reportConfig)
235
{
236
return
m_owner->DoAddUeMeasReportConfigForAnr (reportConfig);
237
}
238
239
240
}
// end of namespace ns3
241
242
243
#endif
/* LTE_ANR_SAP_H */
ns3::LteAnrSapProvider::AddNeighbourRelation
virtual void AddNeighbourRelation(uint16_t cellId)=0
Add a new Neighbour Relation entry.
ns3::MemberLteAnrSapProvider::ReportUeMeas
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)
Send a UE measurement report to the ANC instance.
Definition:
lte-anr-sap.h:161
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteAnrSapProvider::GetNoRemove
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).
ns3::MemberLteAnrSapUser
Template for the implementation of the LteAnrSapUser as a member of an owner class of type C to which...
Definition:
lte-anr-sap.h:206
ns3::MemberLteAnrSapProvider
Template for the implementation of the LteAnrSapProvider as a member of an owner class of type C to w...
Definition:
lte-anr-sap.h:129
ns3::MemberLteAnrSapProvider::AddNeighbourRelation
virtual void AddNeighbourRelation(uint16_t cellId)
Add a new Neighbour Relation entry.
Definition:
lte-anr-sap.h:169
ns3::MemberLteAnrSapUser::AddUeMeasReportConfigForAnr
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
Definition:
lte-anr-sap.h:234
ns3::LteAnrSapUser::AddUeMeasReportConfigForAnr
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
ns3::LteAnrSapProvider::~LteAnrSapProvider
virtual ~LteAnrSapProvider()
Definition:
lte-anr-sap.cc:28
ns3::MemberLteAnrSapProvider::MemberLteAnrSapProvider
MemberLteAnrSapProvider()
ns3::LteAnrSapProvider
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Definition:
lte-anr-sap.h:38
ns3::LteRrcSap::ReportConfigEutra
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition:
lte-rrc-sap.h:362
ns3::MemberLteAnrSapProvider::GetNoHo
virtual bool GetNoHo(uint16_t cellId) const
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT).
Definition:
lte-anr-sap.h:185
ns3::MemberLteAnrSapUser::MemberLteAnrSapUser
MemberLteAnrSapUser()
ns3::MemberLteAnrSapUser::m_owner
C * m_owner
the owner class
Definition:
lte-anr-sap.h:220
ns3::LteRrcSap::MeasResults
MeasResults structure.
Definition:
lte-rrc-sap.h:679
ns3::LteAnrSapProvider::GetNoX2
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).
ns3::LteAnrSapProvider::GetNoHo
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).
ns3::LteAnrSapUser::~LteAnrSapUser
virtual ~LteAnrSapUser()
Definition:
lte-anr-sap.cc:33
ns3::LteAnrSapUser
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
Definition:
lte-anr-sap.h:98
ns3::LteAnrSapProvider::ReportUeMeas
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to the ANC instance.
ns3::MemberLteAnrSapProvider::GetNoX2
virtual bool GetNoX2(uint16_t cellId) const
Get the value of No X2 field of a neighbouring cell from the Neighbour Relation Table (NRT).
Definition:
lte-anr-sap.h:193
ns3::MemberLteAnrSapProvider::GetNoRemove
virtual bool GetNoRemove(uint16_t cellId) const
Get the value of No Remove field of a neighbouring cell from the Neighbour Relation Table (NRT).
Definition:
lte-anr-sap.h:177
ns3::MemberLteAnrSapProvider::m_owner
C * m_owner
the owner class
Definition:
lte-anr-sap.h:147
src
lte
model
lte-anr-sap.h
Generated on Fri Oct 1 2021 17:03:18 for ns-3 by
1.8.20