A Discrete-Event Network Simulator
API
lte-ffr-rrc-sap.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2014 Piotr Gawlowicz
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: Piotr Gawlowicz <gawlowicz.p@gmail.com>
19  *
20  */
21 
22 #ifndef LTE_FFR_RRC_SAP_H
23 #define LTE_FFR_RRC_SAP_H
24 
25 #include <ns3/lte-rrc-sap.h>
26 #include <ns3/epc-x2-sap.h>
27 
28 namespace ns3 {
29 
39 {
40 public:
41  virtual ~LteFfrRrcSapProvider ();
42 
47  virtual void SetCellId (uint16_t cellId ) = 0;
48 
55  virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth) = 0;
56 
69  virtual void ReportUeMeas (uint16_t rnti,
70  LteRrcSap::MeasResults measResults) = 0;
71 
77 
78 }; // end of class LteFfrRrcSapProvider
79 
80 
89 {
90 public:
91  virtual ~LteFfrRrcSapUser ();
92 
109  virtual uint8_t AddUeMeasReportConfigForFfr (LteRrcSap::ReportConfigEutra reportConfig) = 0;
110 
126  virtual void SetPdschConfigDedicated (uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated) = 0;
127 
133 
134 }; // end of class LteFfrRrcSapUser
135 
136 
142 template <class C>
144 {
145 public:
150  MemberLteFfrRrcSapProvider (C* owner);
151 
152  // inherited from LteHandoverManagemenrSapProvider
153  virtual void SetCellId (uint16_t cellId );
154  virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth);
155  virtual void ReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults);
157 
158 private:
160  C* m_owner;
161 
162 }; // end of class MemberLteFfrRrcSapProvider
163 
164 
165 template <class C>
167  : m_owner (owner)
168 {
169 }
170 
171 template <class C>
172 void
174 {
175  m_owner->DoSetCellId (cellId);
176 }
177 
178 template <class C>
179 void
180 MemberLteFfrRrcSapProvider<C>::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
181 {
182  m_owner->DoSetBandwidth (ulBandwidth, dlBandwidth);
183 }
184 
185 template <class C>
186 void
188 {
189  m_owner->DoReportUeMeas (rnti, measResults);
190 }
191 
192 template <class C>
193 void
195 {
196  m_owner->DoRecvLoadInformation (params);
197 }
198 
204 template <class C>
206 {
207 public:
213  MemberLteFfrRrcSapUser (C* owner);
214 
215  // inherited from LteFfrRrcSapUser
216  virtual uint8_t AddUeMeasReportConfigForFfr (LteRrcSap::ReportConfigEutra reportConfig);
217 
218  virtual void SetPdschConfigDedicated (uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated);
219 
221 private:
223  C* m_owner;
224 
225 }; // end of class LteFfrRrcSapUser
226 
227 template <class C>
229  : m_owner (owner)
230 {
231 }
232 
233 template <class C>
234 uint8_t
236 {
237  return m_owner->DoAddUeMeasReportConfigForFfr (reportConfig);
238 }
239 
240 template <class C>
241 void
243 {
244  m_owner->DoSetPdschConfigDedicated (rnti, pdschConfigDedicated);
245 }
246 
247 template <class C>
248 void
250 {
251  m_owner->DoSendLoadInformation (params);
252 }
253 
254 } // end of namespace ns3
255 
256 
257 #endif /* LTE_FFR_RRC_SAP_H */
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
virtual void RecvLoadInformation(EpcX2Sap::LoadInformationParams params)=0
RecvLoadInformation.
virtual void SetCellId(uint16_t cellId)=0
SetCellId.
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
Configure DL and UL bandwidth in Frequency Reuse Algorithm function is called during Cell configurati...
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to Frequency Reuse algorithm.
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
virtual void SetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated)=0
Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration to inform UE about new PdschCo...
virtual uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)=0
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
virtual void SendLoadInformation(EpcX2Sap::LoadInformationParams params)=0
SendLoadInformation.
Template for the implementation of the LteFfrRrcSapProvider as a member of an owner class of type C t...
virtual void SetCellId(uint16_t cellId)
SetCellId.
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Send a UE measurement report to Frequency Reuse algorithm.
virtual void RecvLoadInformation(EpcX2Sap::LoadInformationParams params)
RecvLoadInformation.
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
Configure DL and UL bandwidth in Frequency Reuse Algorithm function is called during Cell configurati...
Template for the implementation of the LteFfrRrcSapUser as a member of an owner class of type C to wh...
virtual void SendLoadInformation(EpcX2Sap::LoadInformationParams params)
SendLoadInformation.
virtual uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
C * m_owner
the owner class
virtual void SetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration to inform UE about new PdschCo...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters of the LOAD INFORMATION message.
Definition: epc-x2-sap.h:304
MeasResults structure.
Definition: lte-rrc-sap.h:680
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:155
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:362