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 
76  virtual void RecvLoadInformation (EpcX2Sap::LoadInformationParams params) = 0;
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 
132  virtual void SendLoadInformation (EpcX2Sap::LoadInformationParams params) = 0;
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 SetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration to inform UE about new PdschCo...
Template for the implementation of the LteFfrRrcSapProvider as a member of an owner class of type C t...
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:354
virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
Configure DL and UL bandwidth in Frequency Reuse Algorithm function is called during Cell configurati...
virtual void RecvLoadInformation(EpcX2Sap::LoadInformationParams params)=0
RecvLoadInformation.
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 SetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated)=0
Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration to inform UE about new PdschCo...
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.
MeasResults structure.
Definition: lte-rrc-sap.h:671
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Send a UE measurement report to Frequency Reuse algorithm.
virtual uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)
Request a certain reporting configuration to be fulfilled by the UEs attached to the eNodeB entity...
virtual void SendLoadInformation(EpcX2Sap::LoadInformationParams params)=0
SendLoadInformation.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
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 SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)=0
Configure DL and UL bandwidth in Frequency Reuse Algorithm function is called during Cell configurati...
C * m_owner
the owner class
Parameters of the LOAD INFORMATION message.
Definition: epc-x2-sap.h:303
virtual void RecvLoadInformation(EpcX2Sap::LoadInformationParams params)
RecvLoadInformation.
virtual void SetCellId(uint16_t cellId)
SetCellId.
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:154
virtual void SetCellId(uint16_t cellId)=0
SetCellId.