A Discrete-Event Network Simulator
API
lte-ffr-rrc-sap.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Piotr Gawlowicz
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: Piotr Gawlowicz <gawlowicz.p@gmail.com>
18  *
19  */
20 
21 #ifndef LTE_FFR_RRC_SAP_H
22 #define LTE_FFR_RRC_SAP_H
23 
24 #include "epc-x2-sap.h"
25 #include "lte-rrc-sap.h"
26 
27 namespace ns3
28 {
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, LteRrcSap::MeasResults measResults) = 0;
70 
76 
77 }; // end of class LteFfrRrcSapProvider
78 
87 {
88  public:
89  virtual ~LteFfrRrcSapUser();
90 
108 
124  virtual void SetPdschConfigDedicated(uint16_t rnti,
125  LteRrcSap::PdschConfigDedicated pdschConfigDedicated) = 0;
126 
132 
133 }; // end of class LteFfrRrcSapUser
134 
140 template <class C>
142 {
143  public:
148  MemberLteFfrRrcSapProvider(C* owner);
149 
150  // Delete default constructor to avoid misuse
152 
153  // inherited from LteHandoverManagementSapProvider
154  void SetCellId(uint16_t cellId) override;
155  void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth) override;
156  void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override;
158 
159  private:
160  C* m_owner;
161 
162 }; // end of class MemberLteFfrRrcSapProvider
163 
164 template <class C>
166  : m_owner(owner)
167 {
168 }
169 
170 template <class C>
171 void
173 {
174  m_owner->DoSetCellId(cellId);
175 }
176 
177 template <class C>
178 void
179 MemberLteFfrRrcSapProvider<C>::SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
180 {
181  m_owner->DoSetBandwidth(ulBandwidth, dlBandwidth);
182 }
183 
184 template <class C>
185 void
187 {
188  m_owner->DoReportUeMeas(rnti, measResults);
189 }
190 
191 template <class C>
192 void
194 {
195  m_owner->DoRecvLoadInformation(params);
196 }
197 
203 template <class C>
205 {
206  public:
212  MemberLteFfrRrcSapUser(C* owner);
213 
214  // Delete default constructor to avoid misuse
216 
217  // inherited from LteFfrRrcSapUser
218  uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig) override;
219 
220  void SetPdschConfigDedicated(uint16_t rnti,
221  LteRrcSap::PdschConfigDedicated pdschConfigDedicated) override;
222 
224 
225  private:
226  C* m_owner;
227 
228 }; // end of class LteFfrRrcSapUser
229 
230 template <class C>
232  : m_owner(owner)
233 {
234 }
235 
236 template <class C>
237 uint8_t
239 {
240  return m_owner->DoAddUeMeasReportConfigForFfr(reportConfig);
241 }
242 
243 template <class C>
244 void
246  uint16_t rnti,
247  LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
248 {
249  m_owner->DoSetPdschConfigDedicated(rnti, pdschConfigDedicated);
250 }
251 
252 template <class C>
253 void
255 {
256  m_owner->DoSendLoadInformation(params);
257 }
258 
259 } // end of namespace ns3
260 
261 #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...
void RecvLoadInformation(EpcX2Sap::LoadInformationParams params) override
RecvLoadInformation.
void SetCellId(uint16_t cellId) override
SetCellId.
void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override
Send a UE measurement report to Frequency Reuse algorithm.
void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth) override
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...
void SendLoadInformation(EpcX2Sap::LoadInformationParams params) override
SendLoadInformation.
void SetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated) override
Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration to inform UE about new PdschCo...
uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig) override
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity.
C * m_owner
the owner class
Every class exported by the ns3 library is enclosed in the ns3 namespace.
params
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
Parameters of the LOAD INFORMATION message.
Definition: epc-x2-sap.h:306
MeasResults structure.
Definition: lte-rrc-sap.h:717
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:163
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:373