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};
153
154template <class C>
156 : m_owner(owner)
157{
158}
159
160template <class C>
161void
163{
164 m_owner->DoSetCellId(cellId);
165}
166
167template <class C>
168void
169MemberLteFfrRrcSapProvider<C>::SetBandwidth(uint8_t ulBandwidth, uint8_t dlBandwidth)
170{
171 m_owner->DoSetBandwidth(ulBandwidth, dlBandwidth);
172}
173
174template <class C>
175void
177{
178 m_owner->DoReportUeMeas(rnti, measResults);
179}
180
181template <class C>
182void
184{
185 m_owner->DoRecvLoadInformation(params);
186}
187
188/**
189 * @brief Template for the implementation of the LteFfrRrcSapUser
190 * as a member of an owner class of type C to which all methods are
191 * forwarded.
192 */
193template <class C>
195{
196 public:
197 /**
198 * Constructor
199 *
200 * @param owner the owner class
201 */
202 MemberLteFfrRrcSapUser(C* owner);
203
204 // Delete default constructor to avoid misuse
206
207 // inherited from LteFfrRrcSapUser
208 uint8_t AddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig) override;
209
210 void SetPdschConfigDedicated(uint16_t rnti,
211 LteRrcSap::PdschConfigDedicated pdschConfigDedicated) override;
212
214
215 private:
216 C* m_owner; ///< the owner class
217
218 // end of class LteFfrRrcSapUser
219};
220
221template <class C>
223 : m_owner(owner)
224{
225}
226
227template <class C>
228uint8_t
230{
231 return m_owner->DoAddUeMeasReportConfigForFfr(reportConfig);
232}
233
234template <class C>
235void
237 uint16_t rnti,
238 LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
239{
240 m_owner->DoSetPdschConfigDedicated(rnti, pdschConfigDedicated);
241}
242
243template <class C>
244void
246{
247 m_owner->DoSendLoadInformation(params);
248}
249
250} // end of namespace ns3
251
252#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.