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 std::vector<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 std::vector<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 std::vector<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 */
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance.
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to handover algorithm.
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance.
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.
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)=0
Instruct the eNodeB RRC entity to prepare a handover.
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.
Template for the implementation of the LteHandoverManagementSapUser as a member of an owner class of ...
virtual void TriggerHandover(uint16_t rnti, uint16_t targetCellId)
Instruct the eNodeB RRC entity to prepare a handover.
virtual std::vector< uint8_t > AddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
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