A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
lte-handover-management-sap.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013 Budiarto Herman
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Budiarto Herman <budiarto.herman@magister.fi>
18
*
19
*/
20
21
#ifndef LTE_HANDOVER_MANAGEMENT_SAP_H
22
#define LTE_HANDOVER_MANAGEMENT_SAP_H
23
24
#include "
lte-rrc-sap.h
"
25
26
namespace
ns3
27
{
28
37
class
LteHandoverManagementSapProvider
38
{
39
public
:
40
virtual
~LteHandoverManagementSapProvider
();
41
53
virtual
void
ReportUeMeas
(uint16_t rnti,
LteRrcSap::MeasResults
measResults) = 0;
54
55
};
// end of class LteHandoverManagementSapProvider
56
64
class
LteHandoverManagementSapUser
65
{
66
public
:
67
virtual
~LteHandoverManagementSapUser
();
68
85
virtual
std::vector<uint8_t>
AddUeMeasReportConfigForHandover
(
86
LteRrcSap::ReportConfigEutra
reportConfig) = 0;
87
101
virtual
void
TriggerHandover
(uint16_t rnti, uint16_t targetCellId) = 0;
102
103
};
// end of class LteHandoverManagementSapUser
104
110
template
<
class
C>
111
class
MemberLteHandoverManagementSapProvider
:
public
LteHandoverManagementSapProvider
112
{
113
public
:
119
MemberLteHandoverManagementSapProvider
(C* owner);
120
121
// Delete default constructor to avoid misuse
122
MemberLteHandoverManagementSapProvider
() =
delete
;
123
124
// inherited from LteHandoverManagementSapProvider
125
void
ReportUeMeas
(uint16_t rnti,
LteRrcSap::MeasResults
measResults)
override
;
126
127
private
:
128
C*
m_owner
;
129
130
};
// end of class MemberLteHandoverManagementSapProvider
131
132
template
<
class
C>
133
MemberLteHandoverManagementSapProvider<C>::MemberLteHandoverManagementSapProvider
(C* owner)
134
: m_owner(owner)
135
{
136
}
137
138
template
<
class
C>
139
void
140
MemberLteHandoverManagementSapProvider<C>::ReportUeMeas
(uint16_t rnti,
141
LteRrcSap::MeasResults
measResults)
142
{
143
m_owner->DoReportUeMeas(rnti, measResults);
144
}
145
151
template
<
class
C>
152
class
MemberLteHandoverManagementSapUser
:
public
LteHandoverManagementSapUser
153
{
154
public
:
160
MemberLteHandoverManagementSapUser
(C* owner);
161
162
// Delete default constructor to avoid misuse
163
MemberLteHandoverManagementSapUser
() =
delete
;
164
165
// inherited from LteHandoverManagementSapUser
166
std::vector<uint8_t>
AddUeMeasReportConfigForHandover
(
167
LteRrcSap::ReportConfigEutra
reportConfig)
override
;
168
void
TriggerHandover
(uint16_t rnti, uint16_t targetCellId)
override
;
169
170
private
:
171
C*
m_owner
;
172
173
};
// end of class MemberLteAnrSapUser
174
175
template
<
class
C>
176
MemberLteHandoverManagementSapUser<C>::MemberLteHandoverManagementSapUser
(C* owner)
177
: m_owner(owner)
178
{
179
}
180
181
template
<
class
C>
182
std::vector<uint8_t>
183
MemberLteHandoverManagementSapUser<C>::AddUeMeasReportConfigForHandover
(
184
LteRrcSap::ReportConfigEutra
reportConfig)
185
{
186
return
m_owner->DoAddUeMeasReportConfigForHandover(reportConfig);
187
}
188
189
template
<
class
C>
190
void
191
MemberLteHandoverManagementSapUser<C>::TriggerHandover
(uint16_t rnti, uint16_t targetCellId)
192
{
193
return
m_owner->DoTriggerHandover(rnti, targetCellId);
194
}
195
196
}
// end of namespace ns3
197
198
#endif
/* LTE_HANDOVER_MANAGEMENT_SAP_H */
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::LteHandoverManagementSapProvider::ReportUeMeas
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to handover algorithm.
ns3::LteHandoverManagementSapProvider::~LteHandoverManagementSapProvider
virtual ~LteHandoverManagementSapProvider()
Definition:
lte-handover-management-sap.cc:26
ns3::LteHandoverManagementSapUser
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance.
Definition:
lte-handover-management-sap.h:65
ns3::LteHandoverManagementSapUser::~LteHandoverManagementSapUser
virtual ~LteHandoverManagementSapUser()
Definition:
lte-handover-management-sap.cc:30
ns3::LteHandoverManagementSapUser::AddUeMeasReportConfigForHandover
virtual std::vector< uint8_t > AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
ns3::LteHandoverManagementSapUser::TriggerHandover
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)=0
Instruct the eNodeB RRC entity to prepare a handover.
ns3::MemberLteHandoverManagementSapProvider
Template for the implementation of the LteHandoverManagementSapProvider as a member of an owner class...
Definition:
lte-handover-management-sap.h:112
ns3::MemberLteHandoverManagementSapProvider::ReportUeMeas
void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override
Send a UE measurement report to handover algorithm.
Definition:
lte-handover-management-sap.h:140
ns3::MemberLteHandoverManagementSapProvider::MemberLteHandoverManagementSapProvider
MemberLteHandoverManagementSapProvider()=delete
ns3::MemberLteHandoverManagementSapProvider::m_owner
C * m_owner
the owner class
Definition:
lte-handover-management-sap.h:128
ns3::MemberLteHandoverManagementSapUser
Template for the implementation of the LteHandoverManagementSapUser as a member of an owner class of ...
Definition:
lte-handover-management-sap.h:153
ns3::MemberLteHandoverManagementSapUser::TriggerHandover
void TriggerHandover(uint16_t rnti, uint16_t targetCellId) override
Instruct the eNodeB RRC entity to prepare a handover.
Definition:
lte-handover-management-sap.h:191
ns3::MemberLteHandoverManagementSapUser::m_owner
C * m_owner
the owner class
Definition:
lte-handover-management-sap.h:171
ns3::MemberLteHandoverManagementSapUser::AddUeMeasReportConfigForHandover
std::vector< uint8_t > AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig) override
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
Definition:
lte-handover-management-sap.h:183
ns3::MemberLteHandoverManagementSapUser::MemberLteHandoverManagementSapUser
MemberLteHandoverManagementSapUser()=delete
lte-rrc-sap.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteRrcSap::MeasResults
MeasResults structure.
Definition:
lte-rrc-sap.h:717
ns3::LteRrcSap::ReportConfigEutra
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition:
lte-rrc-sap.h:373
src
lte
model
lte-handover-management-sap.h
Generated on Sun Mar 3 2024 17:11:02 for ns-3 by
1.9.1