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 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Piotr Gawlowicz <gawlowicz.p@gmail.com>
7 *
8 */
9
10#ifndef LTE_FFR_RRC_SAP_H
11#define LTE_FFR_RRC_SAP_H
12
13#include "epc-x2-sap.h"
14#include "lte-rrc-sap.h"
15
16namespace ns3
17{
18
19/**
20 * \brief Service Access Point (SAP) offered by the Frequency Reuse algorithm
21 * instance to the eNodeB RRC instance.
22 *
23 * This is the *LteFfrRrcSapProvider*, i.e., the part of the SAP
24 * that contains the Frequency Reuse algorithm methods called by the eNodeB RRC
25 * instance.
26 */
28{
29 public:
30 virtual ~LteFfrRrcSapProvider();
31
32 /**
33 * \brief SetCellId
34 * \param cellId the Cell Identifier
35 */
36 virtual void SetCellId(uint16_t cellId) = 0;
37
38 /**
39 * \brief Configure DL and UL bandwidth in Frequency Reuse Algorithm
40 * function is called during Cell configuration
41 * \param ulBandwidth UL bandwidth in number of RB
42 * \param dlBandwidth DL bandwidth in number of RB
43 */
44 virtual void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth) = 0;
45
46 /**
47 * \brief Send a UE measurement report to Frequency Reuse algorithm.
48 * \param rnti Radio Network Temporary Identity, an integer identifying the UE
49 * where the report originates from
50 * \param measResults a single report of one measurement identity
51 *
52 * The received measurement report is a result of the UE measurement
53 * configuration previously configured by calling
54 * LteFfrRrcSapUser::AddUeMeasReportConfigForFfr. The report
55 * may be stored and utilised for the purpose of making decisions within which
56 * sub-band UE should be served.
57 */
58 virtual void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) = 0;
59
60 /**
61 * \brief RecvLoadInformation
62 * \param params the EpcX2Sap::LoadInformationParams
63 */
65
66}; // end of class LteFfrRrcSapProvider
67
68/**
69 * \brief Service Access Point (SAP) offered by the eNodeB RRC instance to the
70 * Frequency Reuse algorithm instance.
71 *
72 * This is the *LteFfrRrcSapUser*, i.e., the part of the SAP that
73 * contains the eNodeB RRC methods called by the Frequency Reuse algorithm instance.
74 */
76{
77 public:
78 virtual ~LteFfrRrcSapUser();
79
80 /**
81 * \brief Request a certain reporting configuration to be fulfilled by the UEs
82 * attached to the eNodeB entity.
83 * \param reportConfig the UE measurement reporting configuration
84 * \return the measurement identity associated with this newly added
85 * reporting configuration
86 *
87 * The eNodeB RRC entity is expected to configure the same reporting
88 * configuration in each of the attached UEs. When later in the simulation a
89 * UE measurement report is received from a UE as a result of this
90 * configuration, the eNodeB RRC entity shall forward this report to the
91 * Frequency Reuse algorithm through the LteFfrRrcSapProvider::ReportUeMeas
92 * SAP function.
93 *
94 * \note This function is only valid before the simulation begins.
95 */
97
98 /**
99 * \brief Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration
100 * to inform UE about new PdschConfigDedicated (i.e. P_a value).
101 * Also Downlink Power Allocation is done based on this value.
102 * \param rnti Radio Network Temporary Identity, an integer identifying the
103 * UE which shall perform the handover
104 * \param pdschConfigDedicated new PdschConfigDedicated to be configured for UE
105 *
106 * This function is used by the Frequency Reuse algorithm entity when it decides
107 * that PDSCH for this UE should be allocated with different transmit power.
108 *
109 * The process to produce the decision is up to the implementation of Frequency Reuse
110 * algorithm. It is typically based on the reported UE measurements, which are
111 * received through the LteFfrRrcSapProvider::ReportUeMeas function.
112 */
113 virtual void SetPdschConfigDedicated(uint16_t rnti,
114 LteRrcSap::PdschConfigDedicated pdschConfigDedicated) = 0;
115
116 /**
117 * \brief SendLoadInformation
118 * \param params the EpcX2Sap::LoadInformationParams
119 */
121
122}; // end of class LteFfrRrcSapUser
123
124/**
125 * \brief Template for the implementation of the LteFfrRrcSapProvider
126 * as a member of an owner class of type C to which all methods are
127 * forwarded.
128 */
129template <class C>
131{
132 public:
133 /**
134 * Constructor
135 * \param owner the owner class
136 */
138
139 // Delete default constructor to avoid misuse
141
142 // inherited from LteHandoverManagementSapProvider
143 void SetCellId(uint16_t cellId) override;
144 void SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth) override;
145 void ReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override;
147
148 private:
149 C* m_owner; ///< the owner class
150
151}; // end of class MemberLteFfrRrcSapProvider
152
153template <class C>
155 : m_owner(owner)
156{
157}
158
159template <class C>
160void
162{
163 m_owner->DoSetCellId(cellId);
164}
165
166template <class C>
167void
168MemberLteFfrRrcSapProvider<C>::SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
169{
170 m_owner->DoSetBandwidth(ulBandwidth, dlBandwidth);
171}
172
173template <class C>
174void
176{
177 m_owner->DoReportUeMeas(rnti, measResults);
178}
179
180template <class C>
181void
183{
184 m_owner->DoRecvLoadInformation(params);
185}
186
187/**
188 * \brief Template for the implementation of the LteFfrRrcSapUser
189 * as a member of an owner class of type C to which all methods are
190 * forwarded.
191 */
192template <class C>
194{
195 public:
196 /**
197 * Constructor
198 *
199 * \param owner the owner class
200 */
201 MemberLteFfrRrcSapUser(C* owner);
202
203 // Delete default constructor to avoid misuse
205
206 // inherited from LteFfrRrcSapUser
207 uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig) override;
208
209 void SetPdschConfigDedicated(uint16_t rnti,
210 LteRrcSap::PdschConfigDedicated pdschConfigDedicated) override;
211
213
214 private:
215 C* m_owner; ///< the owner class
216
217}; // end of class LteFfrRrcSapUser
218
219template <class C>
221 : m_owner(owner)
222{
223}
224
225template <class C>
226uint8_t
228{
229 return m_owner->DoAddUeMeasReportConfigForFfr(reportConfig);
230}
231
232template <class C>
233void
235 uint16_t rnti,
236 LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
237{
238 m_owner->DoSetPdschConfigDedicated(rnti, pdschConfigDedicated);
239}
240
241template <class C>
242void
244{
245 m_owner->DoSendLoadInformation(params);
246}
247
248} // end of namespace ns3
249
250#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.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters of the LOAD INFORMATION message.
Definition epc-x2-sap.h:295
MeasResults structure.
PdschConfigDedicated structure.
Specifies criteria for triggering of an E-UTRA measurement reporting event.