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
28namespace ns3 {
29
39{
40public:
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{
90public:
91 virtual ~LteFfrRrcSapUser ();
92
110
126 virtual void SetPdschConfigDedicated (uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated) = 0;
127
133
134}; // end of class LteFfrRrcSapUser
135
136
142template <class C>
144{
145public:
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
158private:
161
162}; // end of class MemberLteFfrRrcSapProvider
163
164
165template <class C>
167 : m_owner (owner)
168{
169}
170
171template <class C>
172void
174{
175 m_owner->DoSetCellId (cellId);
176}
177
178template <class C>
179void
180MemberLteFfrRrcSapProvider<C>::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
181{
182 m_owner->DoSetBandwidth (ulBandwidth, dlBandwidth);
183}
184
185template <class C>
186void
188{
189 m_owner->DoReportUeMeas (rnti, measResults);
190}
191
192template <class C>
193void
195{
196 m_owner->DoRecvLoadInformation (params);
197}
198
204template <class C>
206{
207public:
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
221private:
224
225}; // end of class LteFfrRrcSapUser
226
227template <class C>
229 : m_owner (owner)
230{
231}
232
233template <class C>
234uint8_t
236{
237 return m_owner->DoAddUeMeasReportConfigForFfr (reportConfig);
238}
239
240template <class C>
241void
243{
244 m_owner->DoSetPdschConfigDedicated (rnti, pdschConfigDedicated);
245}
246
247template <class C>
248void
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