A Discrete-Event Network Simulator
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
27namespace ns3 {
28
29
38{
39public:
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
98{
99public:
100 virtual ~LteAnrSapUser ();
101
118
119}; // end of class LteAnrSapUser
120
121
122
127template <class C>
129{
130public:
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
145private:
148
149}; // end of class MemberLteAnrSapProvider
150
151
152template <class C>
154 : m_owner (owner)
155{
156}
157
158
159template <class C>
160void
162{
163 m_owner->DoReportUeMeas (measResults);
164}
165
166
167template <class C>
168void
170{
171 m_owner->DoAddNeighbourRelation (cellId);
172}
173
174
175template <class C>
176bool
178{
179 return m_owner->DoGetNoRemove (cellId);
180}
181
182
183template <class C>
184bool
186{
187 return m_owner->DoGetNoHo (cellId);
188}
189
190
191template <class C>
192bool
194{
195 return m_owner->DoGetNoX2 (cellId);
196}
197
198
199
204template <class C>
206{
207public:
213 MemberLteAnrSapUser (C* owner);
214
215 // inherited from LteAnrSapUser
216 virtual uint8_t AddUeMeasReportConfigForAnr (LteRrcSap::ReportConfigEutra reportConfig);
217
218private:
221
222}; // end of class MemberLteAnrSapUser
223
224
225template <class C>
227 : m_owner (owner)
228{
229}
230
231
232template <class C>
233uint8_t
235{
236 return m_owner->DoAddUeMeasReportConfigForAnr (reportConfig);
237}
238
239
240} // end of namespace ns3
241
242
243#endif /* LTE_ANR_SAP_H */
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Definition: lte-anr-sap.h:38
virtual void AddNeighbourRelation(uint16_t cellId)=0
Add a new Neighbour Relation entry.
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 GetNoHo(uint16_t cellId) const =0
Get the value of No HO field of a neighbouring cell from the Neighbour Relation Table (NRT).
virtual ~LteAnrSapProvider()
Definition: lte-anr-sap.cc:28
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to the ANC instance.
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).
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
Definition: lte-anr-sap.h:98
virtual uint8_t AddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
virtual ~LteAnrSapUser()
Definition: lte-anr-sap.cc:33
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
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
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
virtual void AddNeighbourRelation(uint16_t cellId)
Add a new Neighbour Relation entry.
Definition: lte-anr-sap.h:169
C * m_owner
the owner class
Definition: lte-anr-sap.h:147
virtual void ReportUeMeas(LteRrcSap::MeasResults measResults)
Send a UE measurement report to the ANC instance.
Definition: lte-anr-sap.h:161
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
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
C * m_owner
the owner class
Definition: lte-anr-sap.h:220
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
Every class exported by the ns3 library is enclosed in the ns3 namespace.
MeasResults structure.
Definition: lte-rrc-sap.h:680
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:362