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>
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 */
202
203 // Delete default constructor to avoid misuse
205
206 // inherited from LteFfrRrcSapUser
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>
224
225template <class C>
226uint8_t
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.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition ptr.h:436
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.