116 .AddConstructor<LteFrHardAlgorithm> ()
117 .AddAttribute (
"UlSubBandOffset",
118 "Uplink Offset in number of Resource Block Groups",
121 MakeUintegerChecker<uint8_t> ())
122 .AddAttribute (
"UlSubBandwidth",
123 "Uplink Transmission SubBandwidth Configuration in number of Resource Block Groups",
126 MakeUintegerChecker<uint8_t> ())
127 .AddAttribute (
"DlSubBandOffset",
128 "Downlink Offset in number of Resource Block Groups",
131 MakeUintegerChecker<uint8_t> ())
132 .AddAttribute (
"DlSubBandwidth",
133 "Downlink Transmission SubBandwidth Configuration in number of Resource Block Groups",
136 MakeUintegerChecker<uint8_t> ())
245 "(DlOffset+DlSubBand) higher than DlBandwidth");
270 "(UlOffset+UlSubBand) higher than UlBandwidth");
333 NS_LOG_WARN (
"Method should not be called, because it is empty");
340 NS_LOG_WARN (
"Method should not be called, because it is empty");
347 NS_LOG_WARN (
"Method should not be called, because it is empty");
375 NS_LOG_WARN (
"Method should not be called, because it is empty");
382 NS_LOG_WARN (
"Method should not be called, because it is empty");
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
Template for the implementation of the LteFfrRrcSapProvider as a member of an owner class of type C t...
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
virtual void DoDispose()
Destructor implementation.
uint8_t m_ulBandwidth
uplink bandwidth in RBs
LteFrHardAlgorithm()
Creates a trivial ffr algorithm instance.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
virtual bool DoIsDlRbgAvailableForUe(int i, uint16_t rnti)
Implementation of LteFfrSapProvider::IsDlRbgAvailableForUe.
void InitializeDownlinkRbgMaps()
static const struct ns3::FrHardDownlinkDefaultConfiguration g_frHardDownlinkDefaultConfiguration[]
void SetDownlinkConfiguration(uint16_t cellId, uint8_t bandwidth)
Template for the implementation of the LteFfrSapProvider as a member of an owner class of type C to w...
virtual void Reconfigure()
Automatic FR reconfiguration.
virtual void SetLteFfrRrcSapUser(LteFfrRrcSapUser *s)
Set the "user" part of the LteFfrRrcSap interface that this frequency reuse algorithm instance will i...
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the MAC Scheduler ins...
virtual void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Implementation of LteFfrRrcSapProvider::ReportUeMeas.
Hold an unsigned integer type.
virtual ~LteFrHardAlgorithm()
bool m_enabledInUplink
If true FR algorithm will also work in Uplink.
std::vector< bool > m_ulRbgMap
bool m_needReconfiguration
If true FR algorithm will be reconfigured.
uint8_t m_dlBandwidth
downlink bandwidth in RBs
virtual void DoInitialize()
Initialize() implementation.
std::vector< bool > m_dlRbgMap
LteFfrSapProvider * m_ffrSapProvider
LteFfrRrcSapUser * m_ffrRrcSapUser
Every class exported by the ns3 library is enclosed in the ns3 namespace.
The abstract base class of a Frequency Reuse algorithm.
virtual std::vector< bool > DoGetAvailableDlRbg()
Implementation of LteFfrSapProvider::GetAvailableDlRbg.
virtual uint8_t DoGetMinContinuousUlBandwidth()
DoGetMinContinuousUlBandwidth in number of RB.
virtual void DoReportDlCqiInfo(const struct FfMacSchedSapProvider::SchedDlCqiInfoReqParameters ¶ms)
DoReportDlCqiInfo.
void InitializeUplinkRbgMaps()
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
virtual std::vector< bool > DoGetAvailableUlRbg()
Implementation of LteFfrSapProvider::GetAvailableUlRbg.
Parameters of the SCHED_DL_CQI_INFO_REQ primitive.
uint8_t m_frCellTypeId
FFR cell type ID for automatic configuration.
virtual void DoRecvLoadInformation(EpcX2Sap::LoadInformationParams params)
DoRecvLoadInformation.
virtual void SetLteFfrSapUser(LteFfrSapUser *s)
Set the "user" part of the LteFfrSap interface that this frequency reuse algorithm instance will inte...
static const struct ns3::FrHardUplinkDefaultConfiguration g_frHardUplinkDefaultConfiguration[]
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
virtual uint8_t DoGetTpc(uint16_t rnti)
DoGetTpc for UE.
virtual LteFfrRrcSapProvider * GetLteFfrRrcSapProvider()
Export the "provider" part of the LteFfrRrcSap interface.
int GetRbgSize(int dlbandwidth)
Get RBG size for DL Bandwidth according to table 7.1.6.1-1 of 36.213.
LteFfrRrcSapProvider * m_ffrRrcSapProvider
virtual bool DoIsUlRbgAvailableForUe(int i, uint16_t rnti)
Implementation of LteFfrSapProvider::IsUlRbgAvailableForUe.
void SetUplinkConfiguration(uint16_t cellId, uint8_t bandwidth)
const uint16_t NUM_DOWNLINK_CONFS(sizeof(g_ffrEnhancedDownlinkDefaultConfiguration)/sizeof(FfrEnhancedDownlinkDefaultConfiguration))
LteFfrSapUser * m_ffrSapUser
virtual LteFfrSapProvider * GetLteFfrSapProvider()
Export the "provider" part of the LteFfrSap interface.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
const uint16_t NUM_UPLINK_CONFS(sizeof(g_ffrEnhancedUplinkDefaultConfiguration)/sizeof(FfrEnhancedUplinkDefaultConfiguration))
virtual void DoInitialize(void)
Initialize() implementation.
static TypeId GetTypeId()
virtual void DoReportUlCqiInfo(const struct FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms)
DoReportUlCqiInfo.