A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lte-fr-no-op-algorithm.cc
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
11
12#include <ns3/log.h>
13
14namespace ns3
15{
16
17NS_LOG_COMPONENT_DEFINE("LteFrNoOpAlgorithm");
18
19NS_OBJECT_ENSURE_REGISTERED(LteFrNoOpAlgorithm);
20
29
34
35void
42
45{
46 static TypeId tid = TypeId("ns3::LteFrNoOpAlgorithm")
48 .SetGroupName("Lte")
49 .AddConstructor<LteFrNoOpAlgorithm>();
50 return tid;
51}
52
53void
59
66
67void
73
80
81void
87
88void
93
94std::vector<bool>
96{
97 NS_LOG_FUNCTION(this);
98 std::vector<bool> rbgMap;
99 int rbgSize = GetRbgSize(m_dlBandwidth);
100 rbgMap.resize(m_dlBandwidth / rbgSize, false);
101 return rbgMap;
102}
103
104bool
106{
107 NS_LOG_FUNCTION(this);
108 return true;
109}
110
111std::vector<bool>
113{
114 NS_LOG_FUNCTION(this);
115 std::vector<bool> rbgMap;
116 rbgMap.resize(m_ulBandwidth, false);
117 return rbgMap;
118}
119
120bool
122{
123 NS_LOG_FUNCTION(this);
124 return true;
125}
126
127void
130{
131 NS_LOG_FUNCTION(this);
132 NS_LOG_WARN("Method should not be called, because it is empty");
133}
134
135void
138{
139 NS_LOG_FUNCTION(this);
140 NS_LOG_WARN("Method should not be called, because it is empty");
141}
142
143void
144LteFrNoOpAlgorithm::DoReportUlCqiInfo(std::map<uint16_t, std::vector<double>> ulCqiMap)
145{
146 NS_LOG_FUNCTION(this);
147 NS_LOG_WARN("Method should not be called, because it is empty");
148}
149
150uint8_t
152{
153 NS_LOG_FUNCTION(this);
154 return 1; // 1 is mapped to 0 for Accumulated mode, and to -1 in Absolute mode TS36.213
155 // Table 5.1.1.1-2
156}
157
158uint16_t
164
165void
167{
168 NS_LOG_FUNCTION(this << rnti << (uint16_t)measResults.measId);
169 NS_LOG_WARN("Method should not be called, because it is empty");
170}
171
172void
174{
175 NS_LOG_FUNCTION(this);
176 NS_LOG_WARN("Method should not be called, because it is empty");
177}
178
179} // end of namespace ns3
The abstract base class of a Frequency Reuse algorithm.
int GetRbgSize(int dlbandwidth)
Get RBG size for DL Bandwidth according to table 7.1.6.1-1 of 36.213.
uint8_t m_dlBandwidth
downlink bandwidth in RBs
uint8_t m_ulBandwidth
uplink bandwidth in RBs
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the MAC Scheduler ins...
Definition lte-ffr-sap.h:29
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
FR algorithm implementation which simply does nothing.
LteFfrSapProvider * m_ffrSapProvider
FFR SAP provider.
friend class MemberLteFfrSapProvider< LteFrNoOpAlgorithm >
let the forwarder class access the protected and private members
std::vector< bool > DoGetAvailableUlRbg() override
Implementation of LteFfrSapProvider::GetAvailableUlRbg.
LteFfrRrcSapUser * m_ffrRrcSapUser
FFR RRC SAP user.
bool DoIsUlRbgAvailableForUe(int i, uint16_t rnti) override
Implementation of LteFfrSapProvider::IsUlRbgAvailableForUe.
friend class MemberLteFfrRrcSapProvider< LteFrNoOpAlgorithm >
let the forwarder class access the protected and private members
void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults) override
Implementation of LteFfrRrcSapProvider::ReportUeMeas.
std::vector< bool > DoGetAvailableDlRbg() override
Implementation of LteFfrSapProvider::GetAvailableDlRbg.
bool DoIsDlRbgAvailableForUe(int i, uint16_t rnti) override
Implementation of LteFfrSapProvider::IsDlRbgAvailableForUe.
LteFfrSapProvider * GetLteFfrSapProvider() override
Export the "provider" part of the LteFfrSap interface.
void DoReportDlCqiInfo(const FfMacSchedSapProvider::SchedDlCqiInfoReqParameters &params) override
DoReportDlCqiInfo.
static TypeId GetTypeId()
Get the type ID.
uint16_t DoGetMinContinuousUlBandwidth() override
DoGetMinContinuousUlBandwidth in number of RB.
LteFfrRrcSapProvider * GetLteFfrRrcSapProvider() override
Export the "provider" part of the LteFfrRrcSap interface.
LteFfrRrcSapProvider * m_ffrRrcSapProvider
FFR RRC SAP provider.
void DoInitialize() override
Initialize() implementation.
void DoRecvLoadInformation(EpcX2Sap::LoadInformationParams params) override
DoRecvLoadInformation.
void DoDispose() override
Destructor implementation.
void Reconfigure() override
Automatic FR reconfiguration.
uint8_t DoGetTpc(uint16_t rnti) override
DoGetTpc for UE.
void SetLteFfrSapUser(LteFfrSapUser *s) override
Set the "user" part of the LteFfrSap interface that this frequency reuse algorithm instance will inte...
void DoReportUlCqiInfo(const FfMacSchedSapProvider::SchedUlCqiInfoReqParameters &params) override
DoReportUlCqiInfo.
LteFrNoOpAlgorithm()
Creates a NoOP FR algorithm instance.
LteFfrSapUser * m_ffrSapUser
FFR SAP user.
void SetLteFfrRrcSapUser(LteFfrRrcSapUser *s) override
Set the "user" part of the LteFfrRrcSap interface that this frequency reuse algorithm instance will i...
virtual void DoInitialize()
Initialize() implementation.
Definition object.cc:440
a unique identifier for an interface.
Definition type-id.h:48
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition type-id.cc:1001
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition log.h:191
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
Definition log.h:250
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition object-base.h:35
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
Parameters of the SCHED_DL_CQI_INFO_REQ primitive.
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
MeasResults structure.
uint8_t measId
measure ID