A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
src
lte
model
lte-handover-management-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_HANDOVER_MANAGEMENT_SAP_H
23
#define LTE_HANDOVER_MANAGEMENT_SAP_H
24
25
#include <ns3/lte-rrc-sap.h>
26
27
namespace
ns3
{
28
29
38
class
LteHandoverManagementSapProvider
39
{
40
public
:
41
virtual
~LteHandoverManagementSapProvider
();
42
54
virtual
void
ReportUeMeas
(uint16_t rnti,
55
LteRrcSap::MeasResults
measResults) = 0;
56
57
};
// end of class LteHandoverManagementSapProvider
58
59
67
class
LteHandoverManagementSapUser
68
{
69
public
:
70
virtual
~LteHandoverManagementSapUser
();
71
88
virtual
uint8_t
AddUeMeasReportConfigForHandover
(
LteRrcSap::ReportConfigEutra
reportConfig) = 0;
89
103
virtual
void
TriggerHandover
(uint16_t rnti, uint16_t targetCellId) = 0;
104
105
};
// end of class LteHandoverManagementSapUser
106
107
108
114
template
<
class
C>
115
class
MemberLteHandoverManagementSapProvider
:
public
LteHandoverManagementSapProvider
116
{
117
public
:
123
MemberLteHandoverManagementSapProvider
(C* owner);
124
125
// inherited from LteHandoverManagemenrSapProvider
126
virtual
void
ReportUeMeas
(uint16_t rnti,
LteRrcSap::MeasResults
measResults);
127
128
private
:
129
MemberLteHandoverManagementSapProvider
();
130
C*
m_owner
;
131
132
};
// end of class MemberLteHandoverManagementSapProvider
133
134
135
template
<
class
C>
136
MemberLteHandoverManagementSapProvider<C>::MemberLteHandoverManagementSapProvider
(C* owner)
137
: m_owner (owner)
138
{
139
}
140
141
142
template
<
class
C>
143
void
144
MemberLteHandoverManagementSapProvider<C>::ReportUeMeas
(uint16_t rnti,
LteRrcSap::MeasResults
measResults)
145
{
146
m_owner->DoReportUeMeas (rnti, measResults);
147
}
148
149
150
156
template
<
class
C>
157
class
MemberLteHandoverManagementSapUser
:
public
LteHandoverManagementSapUser
158
{
159
public
:
165
MemberLteHandoverManagementSapUser
(C* owner);
166
167
// inherited from LteHandoverManagementSapUser
168
virtual
uint8_t
AddUeMeasReportConfigForHandover
(
LteRrcSap::ReportConfigEutra
reportConfig);
169
virtual
void
TriggerHandover
(uint16_t rnti, uint16_t targetCellId);
170
171
private
:
172
MemberLteHandoverManagementSapUser
();
173
C*
m_owner
;
174
175
};
// end of class MemberLteAnrSapUser
176
177
178
template
<
class
C>
179
MemberLteHandoverManagementSapUser<C>::MemberLteHandoverManagementSapUser
(C* owner)
180
: m_owner (owner)
181
{
182
}
183
184
185
template
<
class
C>
186
uint8_t
187
MemberLteHandoverManagementSapUser<C>::AddUeMeasReportConfigForHandover
(
LteRrcSap::ReportConfigEutra
reportConfig)
188
{
189
return
m_owner->DoAddUeMeasReportConfigForHandover (reportConfig);
190
}
191
192
193
template
<
class
C>
194
void
195
MemberLteHandoverManagementSapUser<C>::TriggerHandover
(uint16_t rnti, uint16_t targetCellId)
196
{
197
return
m_owner->DoTriggerHandover (rnti, targetCellId);
198
}
199
200
201
}
// end of namespace ns3
202
203
204
#endif
/* LTE_HANDOVER_MANAGEMENT_SAP_H */
ns3::MemberLteHandoverManagementSapUser::m_owner
C * m_owner
the owner class
Definition:
lte-handover-management-sap.h:173
ns3::MemberLteHandoverManagementSapUser
Template for the implementation of the LteHandoverManagementSapUser as a member of an owner class of ...
Definition:
lte-handover-management-sap.h:157
ns3::LteRrcSap::ReportConfigEutra
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition:
lte-rrc-sap.h:354
ns3::LteHandoverManagementSapUser::TriggerHandover
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)=0
Instruct the eNodeB RRC entity to prepare a handover.
ns3::LteRrcSap::MeasResults
MeasResults structure.
Definition:
lte-rrc-sap.h:671
ns3::MemberLteHandoverManagementSapProvider::m_owner
C * m_owner
the owner class
Definition:
lte-handover-management-sap.h:130
ns3::MemberLteHandoverManagementSapProvider
Template for the implementation of the LteHandoverManagementSapProvider as a member of an owner class...
Definition:
lte-handover-management-sap.h:115
ns3::MemberLteHandoverManagementSapProvider::ReportUeMeas
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Send a UE measurement report to handover algorithm.
Definition:
lte-handover-management-sap.h:144
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteHandoverManagementSapProvider::ReportUeMeas
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to handover algorithm.
ns3::MemberLteHandoverManagementSapUser::TriggerHandover
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)
Instruct the eNodeB RRC entity to prepare a handover.
Definition:
lte-handover-management-sap.h:195
ns3::MemberLteHandoverManagementSapUser::AddUeMeasReportConfigForHandover
virtual uint8_t AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
Definition:
lte-handover-management-sap.h:187
ns3::MemberLteHandoverManagementSapProvider::MemberLteHandoverManagementSapProvider
MemberLteHandoverManagementSapProvider()
ns3::LteHandoverManagementSapUser::~LteHandoverManagementSapUser
virtual ~LteHandoverManagementSapUser()
Definition:
lte-handover-management-sap.cc:32
ns3::LteHandoverManagementSapProvider
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance...
Definition:
lte-handover-management-sap.h:38
ns3::LteHandoverManagementSapUser::AddUeMeasReportConfigForHandover
virtual uint8_t AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
ns3::MemberLteHandoverManagementSapUser::MemberLteHandoverManagementSapUser
MemberLteHandoverManagementSapUser()
ns3::LteHandoverManagementSapProvider::~LteHandoverManagementSapProvider
virtual ~LteHandoverManagementSapProvider()
Definition:
lte-handover-management-sap.cc:27
ns3::LteHandoverManagementSapUser
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance...
Definition:
lte-handover-management-sap.h:67
Generated on Wed Nov 7 2018 10:02:01 for ns-3 by
1.8.14