122 .AddAttribute (
"UlSubBandOffset",
123 "Uplink Offset in number of Resource Block Groups",
126 MakeUintegerChecker<uint8_t> ())
127 .AddAttribute (
"UlSubBandwidth",
128 "Uplink Transmission SubBandwidth Configuration in number of Resource Block Groups",
131 MakeUintegerChecker<uint8_t> ())
132 .AddAttribute (
"DlSubBandOffset",
133 "Downlink Offset in number of Resource Block Groups",
136 MakeUintegerChecker<uint8_t> ())
137 .AddAttribute (
"DlSubBandwidth",
138 "Downlink Transmission SubBandwidth Configuration in number of Resource Block Groups",
141 MakeUintegerChecker<uint8_t> ())
250 "(DlOffset+DlSubBand) higher than DlBandwidth");
275 "(UlOffset+UlSubBand) higher than UlBandwidth");
338 NS_LOG_WARN (
"Method should not be called, because it is empty");
345 NS_LOG_WARN (
"Method should not be called, because it is empty");
352 NS_LOG_WARN (
"Method should not be called, because it is empty");
380 NS_LOG_WARN (
"Method should not be called, because it is empty");
387 NS_LOG_WARN (
"Method should not be called, because it is empty");
uint8_t m_ulSubBand
UL subband.
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
virtual void DoInitialize(void)
Initialize() implementation.
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.
uint8_t m_ulSubBand
UL subband.
virtual void DoDispose()
Destructor implementation.
NS_ASSERT_MSG(false, "Ipv4AddressGenerator::MaskToIndex(): Impossible")
uint8_t m_ulBandwidth
uplink bandwidth in RBs
uint8_t m_dlOffset
DL offset.
LteFrHardAlgorithm()
Creates a trivial ffr algorithm instance.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
uint8_t m_dlBandwidth
DL bandwidth.
virtual bool DoIsDlRbgAvailableForUe(int i, uint16_t rnti)
Implementation of LteFfrSapProvider::IsDlRbgAvailableForUe.
FrHardUplinkDefaultConfiguration structure.
void InitializeDownlinkRbgMaps()
Initialize downlink rbg maps.
static const struct ns3::FrHardDownlinkDefaultConfiguration g_frHardDownlinkDefaultConfiguration[]
the hard downlink default configuration
uint8_t m_dlSubBand
DL subband.
void SetDownlinkConfiguration(uint16_t cellId, uint8_t bandwidth)
Set downlink configuration.
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()
Hard Frequency Reuse algorithm implementation which uses only 1 sub-band.
bool m_enabledInUplink
If true FR algorithm will also work in Uplink.
std::vector< bool > m_ulRbgMap
UL RBG Map.
bool m_needReconfiguration
If true FR algorithm will be reconfigured.
uint8_t m_ulBandwidth
UL bandwidth.
uint8_t m_dlBandwidth
downlink bandwidth in RBs
uint8_t m_dlOffset
DL offset.
virtual void DoInitialize()
Initialize() implementation.
uint8_t m_dlSubBand
DL subband.
std::vector< bool > m_dlRbgMap
DL RBG Map.
LteFfrSapProvider * m_ffrSapProvider
FFR SAP provider.
LteFfrRrcSapUser * m_ffrRrcSapUser
FFR RRC SAP user.
uint8_t m_ulOffset
Ul offset.
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.
FrHardDownlinkDefaultConfiguration structure.
void InitializeUplinkRbgMaps()
Initialize uplink rbg maps.
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
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[]
the hard uplink default configuration
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
FFR RRC SAP provider.
virtual bool DoIsUlRbgAvailableForUe(int i, uint16_t rnti)
Implementation of LteFfrSapProvider::IsUlRbgAvailableForUe.
void SetUplinkConfiguration(uint16_t cellId, uint8_t bandwidth)
Set uplink configuration.
const uint16_t NUM_DOWNLINK_CONFS(sizeof(g_ffrEnhancedDownlinkDefaultConfiguration)/sizeof(FfrEnhancedDownlinkDefaultConfiguration))
LteFfrSapUser * m_ffrSapUser
FFR SAP user.
uint8_t m_ulOffset
UL offset.
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)
Set the parent TypeId.
const uint16_t NUM_UPLINK_CONFS(sizeof(g_ffrEnhancedUplinkDefaultConfiguration)/sizeof(FfrEnhancedUplinkDefaultConfiguration))
static TypeId GetTypeId()
Get the type ID.
virtual void DoReportUlCqiInfo(const struct FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms)
DoReportUlCqiInfo.