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 
75  virtual void RecvLoadInformation (EpcX2Sap::LoadInformationParams params) = 0;
76 
77 }; // end of class LteFfrRrcSapProvider
78 
79 
88 {
89 public:
90  virtual ~LteFfrRrcSapUser ();
91 
108  virtual uint8_t AddUeMeasReportConfigForFfr (LteRrcSap::ReportConfigEutra reportConfig) = 0;
109 
125  virtual void SetPdschConfigDedicated (uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated) = 0;
126 
130  virtual void SendLoadInformation (EpcX2Sap::LoadInformationParams params) = 0;
131 
132 }; // end of class LteFfrRrcSapUser
133 
134 
140 template <class C>
142 {
143 public:
144  MemberLteFfrRrcSapProvider (C* owner);
145 
146  // inherited from LteHandoverManagemenrSapProvider
147  virtual void SetCellId (uint16_t cellId );
148  virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth);
149  virtual void ReportUeMeas (uint16_t rnti, LteRrcSap::MeasResults measResults);
151 
152 private:
155 
156 }; // end of class MemberLteFfrRrcSapProvider
157 
158 
159 template <class C>
161  : m_owner (owner)
162 {
163 }
164 
165 template <class C>
166 void
168 {
169  m_owner->DoSetCellId (cellId);
170 }
171 
172 template <class C>
173 void
174 MemberLteFfrRrcSapProvider<C>::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
175 {
176  m_owner->DoSetBandwidth (ulBandwidth, dlBandwidth);
177 }
178 
179 template <class C>
180 void
182 {
183  m_owner->DoReportUeMeas (rnti, measResults);
184 }
185 
186 template <class C>
187 void
189 {
190  m_owner->DoRecvLoadInformation (params);
191 }
192 
198 template <class C>
200 {
201 public:
202  MemberLteFfrRrcSapUser (C* owner);
203 
204  // inherited from LteFfrRrcSapUser
205  virtual uint8_t AddUeMeasReportConfigForFfr (LteRrcSap::ReportConfigEutra reportConfig);
206 
207  virtual void SetPdschConfigDedicated (uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated);
208 
210 private:
213 
214 }; // end of class LteFfrRrcSapUser
215 
216 template <class C>
218  : m_owner (owner)
219 {
220 }
221 
222 template <class C>
223 uint8_t
225 {
226  return m_owner->DoAddUeMeasReportConfigForFfr (reportConfig);
227 }
228 
229 template <class C>
230 void
232 {
233  m_owner->DoSetPdschConfigDedicated (rnti, pdschConfigDedicated);
234 }
235 
236 template <class C>
237 void
239 {
240  m_owner->DoSendLoadInformation (params);
241 }
242 
243 } // end of namespace ns3
244 
245 
246 #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:321
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.
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...
Parameters of the LOAD INFORMATION message.
Definition: epc-x2-sap.h:300
virtual void RecvLoadInformation(EpcX2Sap::LoadInformationParams params)
RecvLoadInformation.
virtual void SetCellId(uint16_t cellId)
SetCellId.
virtual void SetCellId(uint16_t cellId)=0
SetCellId.