A Discrete-Event Network Simulator
API
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 
39 {
40 public:
42 
54  virtual void ReportUeMeas (uint16_t rnti,
55  LteRrcSap::MeasResults measResults) = 0;
56 
57 }; // end of class LteHandoverManagementSapProvider
58 
59 
68 {
69 public:
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>
116 {
117 public:
124 
125  // inherited from LteHandoverManagemenrSapProvider
126  virtual void ReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults);
127 
128 private:
130  C* m_owner;
131 
132 }; // end of class MemberLteHandoverManagementSapProvider
133 
134 
135 template <class C>
137  : m_owner (owner)
138 {
139 }
140 
141 
142 template <class C>
143 void
145 {
146  m_owner->DoReportUeMeas (rnti, measResults);
147 }
148 
149 
150 
156 template <class C>
158 {
159 public:
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:
173  C* m_owner;
174 
175 }; // end of class MemberLteAnrSapUser
176 
177 
178 template <class C>
180  : m_owner (owner)
181 {
182 }
183 
184 
185 template <class C>
186 uint8_t
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 */
Template for the implementation of the LteHandoverManagementSapUser as a member of an owner class of ...
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:354
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)=0
Instruct the eNodeB RRC entity to prepare a handover.
MeasResults structure.
Definition: lte-rrc-sap.h:671
Template for the implementation of the LteHandoverManagementSapProvider as a member of an owner class...
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Send a UE measurement report to handover algorithm.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to handover algorithm.
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)
Instruct the eNodeB RRC entity to prepare a handover.
virtual uint8_t AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance...
virtual uint8_t AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance...