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",
96 "ns3::LteFfrSimple::PdschTracedCallback")
139 NS_LOG_LOGIC (
this <<
" requesting Event A4 measurements"
140 <<
" (threshold = 0" <<
")");
286 std::map<uint16_t, LteRrcSap::PdschConfigDedicated>::iterator it;
288 it =
m_ues.find (rnti);
290 if (it ==
m_ues.end ())
294 m_ues.insert (std::pair<uint16_t, LteRrcSap::PdschConfigDedicated> (rnti,
295 pdschConfigDedicated));
309 std::map<uint16_t, LteRrcSap::PdschConfigDedicated>::iterator it;
310 for (it =
m_ues.begin (); it !=
m_ues.end (); it++)
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 "...
virtual void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)
Implementation of LteFfrRrcSapProvider::ReportUeMeas.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
virtual void DoReportUlCqiInfo(const struct FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms)
DoReportUlCqiInfo.
enum ns3::LteRrcSap::ReportConfigEutra::@70 eventId
Choice of E-UTRA event triggered reporting criteria.
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...
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
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()
Destructor implementation.
virtual void Reconfigure()
Automatic FR reconfiguration.
The abstract base class of a Frequency Reuse algorithm.
std::vector< bool > m_ulRbgMap
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
Reference Signal Received Quality.
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
enum ns3::LteRrcSap::ReportConfigEutra::@72 triggerQuantity
The quantities used to evaluate the triggering condition for the event, see 3GPP TS 36...
Parameters of the SCHED_DL_CQI_INFO_REQ primitive.
Parameters of the SCHED_UL_CQI_INFO_REQ primitive.
enum ns3::LteRrcSap::ThresholdEutra::@68 choice
LteFfrSimple()
Creates a trivial ffr algorithm instance.
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)
enum ns3::LteRrcSap::ReportConfigEutra::@74 reportInterval
Indicates the interval between periodical reports.
LteFfrRrcSapProvider * m_ffrRrcSapProvider
TracedCallback< uint16_t, uint8_t > m_changePdschConfigDedicatedTrace
void UpdatePdschConfigDedicated()
virtual void DoRecvLoadInformation(EpcX2Sap::LoadInformationParams params)
DoRecvLoadInformation.
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.
virtual void DoInitialize()
Initialize() implementation.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
bool m_changePdschConfigDedicated
RSRQ is used for the threshold.
Event A1: Serving becomes better than absolute threshold.