24 #include "ns3/lte-rrc-sap.h"
41 m_changePdschConfigDedicated (false),
44 m_acculumatedMode (false)
72 .AddConstructor<LteFfrSimple> ()
73 .AddAttribute (
"UlSubBandOffset",
74 "Uplink Offset in number of Resource Block Groups",
77 MakeUintegerChecker<uint8_t> ())
78 .AddAttribute (
"UlSubBandwidth",
79 "Uplink Transmission SubBandwidth Configuration in number of Resource Block Groups",
82 MakeUintegerChecker<uint8_t> ())
83 .AddAttribute (
"DlSubBandOffset",
84 "Downlink Offset in number of Resource Block Groups",
87 MakeUintegerChecker<uint8_t> ())
88 .AddAttribute (
"DlSubBandwidth",
89 "Downlink Transmission SubBandwidth Configuration in number of Resource Block Groups",
92 MakeUintegerChecker<uint8_t> ())
93 .AddTraceSource (
"ChangePdschConfigDedicated",
94 "trace fired upon change of PdschConfigDedicated",
138 NS_LOG_LOGIC (
this <<
" requesting Event A4 measurements"
139 <<
" (threshold = 0" <<
")");
285 std::map<uint16_t, LteRrcSap::PdschConfigDedicated>::iterator it;
287 it =
m_ues.find (rnti);
289 if (it ==
m_ues.end ())
293 m_ues.insert (std::pair<uint16_t, LteRrcSap::PdschConfigDedicated> (rnti,
294 pdschConfigDedicated));
308 std::map<uint16_t, LteRrcSap::PdschConfigDedicated>::iterator it;
309 for (it =
m_ues.begin (); it !=
m_ues.end (); it++)
RSRQ is used for the threshold.
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 "...
virtual void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Implementation of LteFfrRrcSapProvider::ReportUeMeas.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register the class in the ns-3 factory.
virtual void DoReportUlCqiInfo(const struct FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms)
DoReportUlCqiInfo.
LteFfrSapProvider * m_ffrSapProvider
void SetTpc(uint32_t tpc, uint32_t num, bool acculumatedMode)
ThresholdEutra threshold1
Threshold for event A1, A2, A4, and A5.
Specifies criteria for triggering of an E-UTRA measurement reporting event.
uint8_t m_ulBandwidth
uplink bandwidth in RBs
std::map< uint16_t, LteRrcSap::PdschConfigDedicated > m_ues
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
virtual std::vector< bool > DoGetAvailableDlRbg()
Implementation of LteFfrSapProvider::GetAvailableDlRbg.
virtual LteFfrSapProvider * GetLteFfrSapProvider()
Export the "provider" part of the LteFfrSap interface.
virtual std::vector< bool > DoGetAvailableUlRbg()
Implementation of LteFfrSapProvider::GetAvailableUlRbg.
std::vector< bool > m_dlRbgMap
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
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 SetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pdschConfigDedicated)=0
Instruct the eNodeB RRC entity to perform RrcConnectionReconfiguration to inform UE about new PdschCo...
LteFfrRrcSapUser * m_ffrRrcSapUser
Template for the implementation of the LteFfrSapProvider as a member of an owner class of type C to w...
virtual bool DoIsDlRbgAvailableForUe(int i, uint16_t rnti)
Implementation of LteFfrSapProvider::IsDlRbgAvailableForUe.
static TypeId GetTypeId()
void ChangePdschConfigDedicated(bool change)
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the MAC Scheduler ins...
Hold an unsigned integer type.
uint8_t m_dlBandwidth
downlink bandwidth in RBs
virtual void SetLteFfrRrcSapUser(LteFfrRrcSapUser *s)
Set the "user" part of the LteFfrRrcSap interface that this frequency reuse algorithm instance will i...
virtual bool DoIsUlRbgAvailableForUe(int i, uint16_t rnti)
Implementation of LteFfrSapProvider::IsUlRbgAvailableForUe.
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
Event A1: Serving becomes better than absolute threshold.
virtual void Reconfigure()
Automatic FR reconfiguration.
The abstract base class of a Frequency Reuse algorithm.
std::vector< bool > m_ulRbgMap
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
enum ns3::LteRrcSap::ReportConfigEutra::@73 eventId
Choice of E-UTRA event triggered reporting criteria.
uint8_t range
Value range used in RSRP/RSRQ threshold.
virtual uint8_t DoGetMinContinuousUlBandwidth()
DoGetMinContinuousUlBandwidth in number of RB.
virtual uint8_t DoGetTpc(uint16_t rnti)
DoGetTpc for UE.
LteFfrSapUser * m_ffrSapUser
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
Parameters of the SCHED_DL_CQI_INFO_REQ primitive.
enum ns3::LteRrcSap::ReportConfigEutra::@77 reportInterval
Indicates the interval between periodical reports.
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
LteFfrSimple()
Creates a trivial ffr algorithm instance.
enum ns3::LteRrcSap::ReportConfigEutra::@75 triggerQuantity
The quantities used to evaluate the triggering condition for the event, see 3GPP TS 36...
virtual void SetLteFfrSapUser(LteFfrSapUser *s)
Set the "user" part of the LteFfrSap interface that this frequency reuse algorithm instance will inte...
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.
virtual void DoReportDlCqiInfo(const struct FfMacSchedSapProvider::SchedDlCqiInfoReqParameters ¶ms)
DoReportDlCqiInfo.
void SetPdschConfigDedicated(LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
LteFfrRrcSapProvider * m_ffrRrcSapProvider
TracedCallback< uint16_t, uint8_t > m_changePdschConfigDedicatedTrace
Reference Signal Received Quality.
void UpdatePdschConfigDedicated()
enum ns3::LteRrcSap::ThresholdEutra::@71 choice
virtual void DoRecvLoadInformation(EpcX2Sap::LoadInformationParams params)
DoRecvLoadInformation.
a unique identifier for an interface.
virtual void DoInitialize()
This method is called only once by Object::Initialize.
TypeId SetParent(TypeId tid)
bool m_changePdschConfigDedicated
virtual void DoInitialize(void)
This method is called only once by Object::Initialize.