A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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
27namespace ns3
28{
29
30/**
31 * \brief Service Access Point (SAP) offered by the Frequency Reuse algorithm
32 * instance to the eNodeB RRC instance.
33 *
34 * This is the *LteFfrRrcSapProvider*, i.e., the part of the SAP
35 * that contains the Frequency Reuse algorithm methods called by the eNodeB RRC
36 * instance.
37 */
39{
40 public:
41 virtual ~LteFfrRrcSapProvider();
42
43 /**
44 * \brief SetCellId
45 * \param cellId the Cell Identifier
46 */
47 virtual void SetCellId(uint16_t cellId) = 0;
48
49 /**
50 * \brief Configure DL and UL bandwidth in Frequency Reuse Algorithm
51 * function is called during Cell configuration
52 * \param ulBandwidth UL bandwidth in number of RB
53 * \param dlBandwidth DL bandwidth in number of RB
54 */
55 virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth) = 0;
56
57 /**
58 * \brief Send a UE measurement report to Frequency Reuse algorithm.
59 * \param rnti Radio Network Temporary Identity, an integer identifying the UE
60 * where the report originates from
61 * \param measResults a single report of one measurement identity
62 *
63 * The received measurement report is a result of the UE measurement
64 * configuration previously configured by calling
65 * LteFfrRrcSapUser::AddUeMeasReportConfigForFfr. The report
66 * may be stored and utilised for the purpose of making decisions within which
67 * sub-band UE should be served.
68 */
69 virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) = 0;
70
71 /**
72 * \brief RecvLoadInformation
73 * \param params the EpcX2Sap::LoadInformationParams
74 */
76
77}; // end of class LteFfrRrcSapProvider
78
79/**
80 * \brief Service Access Point (SAP) offered by the eNodeB RRC instance to the
81 * Frequency Reuse algorithm instance.
82 *
83 * This is the *LteFfrRrcSapUser*, i.e., the part of the SAP that
84 * contains the eNodeB RRC methods called by the Frequency Reuse algorithm instance.
85 */
87{
88 public:
89 virtual ~LteFfrRrcSapUser();
90
91 /**
92 * \brief Request a certain reporting configuration to be fulfilled by the UEs
93 * attached to the eNodeB entity.
94 * \param reportConfig the UE measurement reporting configuration
95 * \return the measurement identity associated with this newly added
96 * reporting configuration
97 *
98 * The eNodeB RRC entity is expected to configure the same reporting
99 * configuration in each of the attached UEs. When later in the simulation a
100 * UE measurement report is received from a UE as a result of this
101 * configuration, the eNodeB RRC entity shall forward this report to the
102 * Frequency Reuse algorithm through the LteFfrRrcSapProvider::ReportUeMeas
103 * SAP function.
104 *
105 * \note This function is only valid before the simulation begins.
106 */
108
109 /**
110 * \brief Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration
111 * to inform UE about new PdschConfigDedicated (i.e. P_a value).
112 * Also Downlink Power Allocation is done based on this value.
113 * \param rnti Radio Network Temporary Identity, an integer identifying the
114 * UE which shall perform the handover
115 * \param pdschConfigDedicated new PdschConfigDedicated to be configured for UE
116 *
117 * This function is used by the Frequency Reuse algorithm entity when it decides
118 * that PDSCH for this UE should be allocated with different transmit power.
119 *
120 * The process to produce the decision is up to the implementation of Frequency Reuse
121 * algorithm. It is typically based on the reported UE measurements, which are
122 * received through the LteFfrRrcSapProvider::ReportUeMeas function.
123 */
124 virtual void SetPdschConfigDedicated(uint16_t rnti,
125 LteRrcSap::PdschConfigDedicated pdschConfigDedicated) = 0;
126
127 /**
128 * \brief SendLoadInformation
129 * \param params the EpcX2Sap::LoadInformationParams
130 */
132
133}; // end of class LteFfrRrcSapUser
134
135/**
136 * \brief Template for the implementation of the LteFfrRrcSapProvider
137 * as a member of an owner class of type C to which all methods are
138 * forwarded.
139 */
140template <class C>
142{
143 public:
144 /**
145 * Constructor
146 * \param owner the owner class
147 */
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; ///< the owner class
161
162}; // end of class MemberLteFfrRrcSapProvider
163
164template <class C>
166 : m_owner(owner)
167{
168}
169
170template <class C>
171void
173{
174 m_owner->DoSetCellId(cellId);
175}
176
177template <class C>
178void
179MemberLteFfrRrcSapProvider<C>::SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
180{
181 m_owner->DoSetBandwidth(ulBandwidth, dlBandwidth);
182}
183
184template <class C>
185void
187{
188 m_owner->DoReportUeMeas(rnti, measResults);
189}
190
191template <class C>
192void
194{
195 m_owner->DoRecvLoadInformation(params);
196}
197
198/**
199 * \brief Template for the implementation of the LteFfrRrcSapUser
200 * as a member of an owner class of type C to which all methods are
201 * forwarded.
202 */
203template <class C>
205{
206 public:
207 /**
208 * Constructor
209 *
210 * \param owner the owner class
211 */
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; ///< the owner class
227
228}; // end of class LteFfrRrcSapUser
229
230template <class C>
232 : m_owner(owner)
233{
234}
235
236template <class C>
237uint8_t
239{
240 return m_owner->DoAddUeMeasReportConfigForFfr(reportConfig);
241}
242
243template <class C>
244void
246 uint16_t rnti,
247 LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
248{
249 m_owner->DoSetPdschConfigDedicated(rnti, pdschConfigDedicated);
250}
251
252template <class C>
253void
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.
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