This class implements the MAC layer of the eNodeB device. More...
#include "lte-enb-mac.h"
Classes | |
struct | NcRaPreambleInfo |
info associated with a preamble allocated for non-contention based RA More... | |
Public Types | |
typedef void(* | DlSchedulingTracedCallback) (const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs0, const uint16_t tbs0Size, const uint8_t mcs1, const uint16_t tbs1Size, const uint8_t ccId) |
TracedCallback signature for DL scheduling events. More... | |
typedef void(* | UlSchedulingTracedCallback) (const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs, const uint16_t tbsSize) |
TracedCallback signature for UL scheduling events. More... | |
Public Member Functions | |
LteEnbMac () | |
~LteEnbMac () override | |
void | DoDispose () override |
Destructor implementation. More... | |
void | DoReceivePhyPdu (Ptr< Packet > p) |
legacy public for use the Phy callback More... | |
FfMacCschedSapUser * | GetFfMacCschedSapUser () |
Get the control scheduler SAP user. More... | |
FfMacSchedSapUser * | GetFfMacSchedSapUser () |
Get the scheduler SAP user. More... | |
LteCcmMacSapProvider * | GetLteCcmMacSapProvider () |
Get the eNB-ComponentCarrierManager SAP User. More... | |
LteEnbCmacSapProvider * | GetLteEnbCmacSapProvider () |
Get the control MAC SAP provider. More... | |
LteEnbPhySapUser * | GetLteEnbPhySapUser () |
Get the eNB-PHY SAP User. More... | |
LteMacSapProvider * | GetLteMacSapProvider () |
Get the MAC SAP provider. More... | |
void | SetComponentCarrierId (uint8_t index) |
Set the component carrier ID. More... | |
void | SetFfMacCschedSapProvider (FfMacCschedSapProvider *s) |
Set the control scheduler SAP provider. More... | |
void | SetFfMacSchedSapProvider (FfMacSchedSapProvider *s) |
Set the scheduler SAP provider. More... | |
void | SetLteCcmMacSapUser (LteCcmMacSapUser *s) |
Set the ComponentCarrierManager SAP user. More... | |
void | SetLteEnbCmacSapUser (LteEnbCmacSapUser *s) |
Set the control MAC SAP user. More... | |
void | SetLteEnbPhySapProvider (LteEnbPhySapProvider *s) |
Set the PHY SAP Provider. More... | |
void | SetLteMacSapUser (LteMacSapUser *s) |
Set the MAC SAP user. More... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. More... | |
~Object () override | |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose () |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. More... | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. More... | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. More... | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized () const |
Check if the object has been initialized. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. More... | |
Private Attributes | |
std::map< uint8_t, NcRaPreambleInfo > | m_allocatedNcRaPreambleMap |
map storing as key the random access preamble IDs allocated for non-contention based access, and as value the associated info More... | |
LteCcmMacSapProvider * | m_ccmMacSapProvider |
CCM MAC SAP provider. More... | |
LteCcmMacSapUser * | m_ccmMacSapUser |
CCM MAC SAP user. More... | |
LteEnbCmacSapProvider * | m_cmacSapProvider |
the CMAC SAP provider More... | |
LteEnbCmacSapUser * | m_cmacSapUser |
the CMAC SAP user More... | |
uint8_t | m_componentCarrierId |
component carrier Id used to address sap More... | |
uint8_t | m_connEstFailCount |
the counter value for T300 timer expiration More... | |
FfMacCschedSapProvider * | m_cschedSapProvider |
the Csched SAP provider More... | |
FfMacCschedSapUser * | m_cschedSapUser |
the CSched SAP user More... | |
std::vector< CqiListElement_s > | m_dlCqiReceived |
DL-CQI received. More... | |
std::vector< DlInfoListElement_s > | m_dlInfoListReceived |
DL HARQ feedback received. More... | |
TracedCallback< DlSchedulingCallbackInfo > | m_dlScheduling |
Trace information regarding DL scheduling Frame number, Subframe number, RNTI, MCS of TB1, size of TB1, MCS of TB2 (0 if not present), size of TB2 (0 if not present) More... | |
LteEnbPhySapProvider * | m_enbPhySapProvider |
the ENB Phy SAP provider More... | |
LteEnbPhySapUser * | m_enbPhySapUser |
the ENB Phy SAP user More... | |
uint32_t | m_frameNo |
frame number of current subframe indication More... | |
uint8_t | m_macChTtiDelay |
delay of MAC, PHY and channel in terms of TTIs More... | |
LteMacSapProvider * | m_macSapProvider |
the MAC SAP provider More... | |
LteMacSapUser * | m_macSapUser |
the MAC SAP user More... | |
std::map< uint16_t, DlHarqProcessesBuffer_t > | m_miDlHarqProcessesPackets |
Packet under transmission of the DL HARQ process. More... | |
uint8_t | m_numberOfRaPreambles |
number of RA preambles More... | |
uint8_t | m_preambleTransMax |
preamble transmit maximum More... | |
std::map< uint16_t, uint32_t > | m_rapIdRntiMap |
RAPID RNTI map. More... | |
uint8_t | m_raResponseWindowSize |
RA response window size. More... | |
std::map< uint8_t, uint32_t > | m_receivedRachPreambleCount |
received RACH preamble count More... | |
std::map< uint16_t, std::map< uint8_t, LteMacSapUser * > > | m_rlcAttached |
RNTI, LC ID, SAP of the RLC instance. More... | |
FfMacSchedSapProvider * | m_schedSapProvider |
the Sched SAP provider More... | |
FfMacSchedSapUser * | m_schedSapUser |
the Sched SAP user More... | |
uint32_t | m_subframeNo |
subframe number of current subframe indication More... | |
std::vector< MacCeListElement_s > | m_ulCeReceived |
CE received (BSR up to now) More... | |
std::vector< FfMacSchedSapProvider::SchedUlCqiInfoReqParameters > | m_ulCqiReceived |
UL-CQI received. More... | |
std::vector< UlInfoListElement_s > | m_ulInfoListReceived |
UL HARQ feedback received. More... | |
TracedCallback< uint32_t, uint32_t, uint16_t, uint8_t, uint16_t, uint8_t > | m_ulScheduling |
Trace information regarding UL scheduling Frame number, Subframe number, RNTI, MCS of TB, size of TB, component carrier id. More... | |
Friends | |
class | EnbMacMemberFfMacCschedSapUser |
allow EnbMacMemberFfMacCschedSapUser class friend access More... | |
class | EnbMacMemberFfMacSchedSapUser |
allow EnbMacMemberFfMacSchedSapUser class friend access More... | |
class | EnbMacMemberLteEnbCmacSapProvider |
allow EnbMacMemberLteEnbCmacSapProvider class friend access More... | |
class | EnbMacMemberLteEnbPhySapUser |
allow EnbMacMemberLteEnbPhySapUser class friend access More... | |
class | EnbMacMemberLteMacSapProvider< LteEnbMac > |
allow EnbMacMemberLteMacSapProvider<LteEnbMac> class friend access More... | |
class | MemberLteCcmMacSapProvider< LteEnbMac > |
allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoInitialize () |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
This class implements the MAC layer of the eNodeB device.
Definition at line 57 of file lte-enb-mac.h.
typedef void(* ns3::LteEnbMac::DlSchedulingTracedCallback) (const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs0, const uint16_t tbs0Size, const uint8_t mcs1, const uint16_t tbs1Size, const uint8_t ccId) |
TracedCallback signature for DL scheduling events.
[in] | frame | Frame number. |
[in] | subframe | Subframe number. |
[in] | rnti | The C-RNTI identifying the UE. |
[in] | mcs0 | The MCS for transport block.. |
[in] | tbs0Size | |
[in] | mcs1 | The MCS for transport block. |
[in] | tbs1Size | |
[in] | component | carrier id |
Definition at line 166 of file lte-enb-mac.h.
typedef void(* ns3::LteEnbMac::UlSchedulingTracedCallback) (const uint32_t frame, const uint32_t subframe, const uint16_t rnti, const uint8_t mcs, const uint16_t tbsSize) |
TracedCallback signature for UL scheduling events.
[in] | frame | Frame number. |
[in] | subframe | Subframe number. |
[in] | rnti | The C-RNTI identifying the UE. |
[in] | mcs | The MCS for transport block |
[in] | tbsSize |
Definition at line 184 of file lte-enb-mac.h.
ns3::LteEnbMac::LteEnbMac | ( | ) |
Definition at line 362 of file lte-enb-mac.cc.
References EnbMacMemberFfMacCschedSapUser, EnbMacMemberFfMacSchedSapUser, EnbMacMemberLteEnbCmacSapProvider, EnbMacMemberLteEnbPhySapUser, EnbMacMemberLteMacSapProvider< LteEnbMac >, m_ccmMacSapProvider, m_cmacSapProvider, m_cschedSapUser, m_enbPhySapUser, m_macSapProvider, m_schedSapUser, MemberLteCcmMacSapProvider< LteEnbMac >, and NS_LOG_FUNCTION.
|
override |
Definition at line 374 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
|
private |
Add LC function.
lcinfo | the LC info |
msu | the LTE MAC SAP user |
Definition at line 865 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedLcConfigReq(), ns3::LogicalChannelConfigListElement_s::DIR_BOTH, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, m_cschedSapProvider, ns3::LogicalChannelConfigListElement_s::m_eRabGuaranteedBitrateDl, ns3::LogicalChannelConfigListElement_s::m_eRabGuaranteedBitrateUl, ns3::LogicalChannelConfigListElement_s::m_eRabMaximulBitrateDl, ns3::LogicalChannelConfigListElement_s::m_eRabMaximulBitrateUl, ns3::LogicalChannelConfigListElement_s::m_logicalChannelGroup, ns3::LogicalChannelConfigListElement_s::m_logicalChannelIdentity, ns3::LogicalChannelConfigListElement_s::m_qci, m_rlcAttached, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_ASSERT_MSG, NS_LOG_ERROR, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, ns3::LteEnbCmacSapProvider::LcInfo::qci, ns3::LteEnbCmacSapProvider::LcInfo::resourceType, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::AddLc().
|
private |
Add UE function.
rnti | the RNTI |
Definition at line 784 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReq(), m_cschedSapProvider, m_miDlHarqProcessesPackets, m_rlcAttached, NS_ASSERT_MSG, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::AddUe().
|
private |
Allocate NC RA preamble function.
rnti | the RNTI |
Allocate preamble only if its free. The non-contention preamble assigned to UE during handover or PDCCH order is valid only until the time duration of the “expiryTime” of the preamble is reached. This timer value is only maintained at the eNodeB and the UE has no way of knowing if this timer has expired. If the UE tries to send the preamble again after the expiryTime and the preamble is re-assigned to another UE, it results in errors. This has been solved by re-assigning the preamble to another UE only if it is not being used (An UE can be using the preamble even after the expiryTime duration).
Definition at line 957 of file lte-enb-mac.cc.
References ns3::LteEnbMac::NcRaPreambleInfo::expiryTime, ns3::LteEnbCmacSapUser::IsRandomAccessCompleted(), m_allocatedNcRaPreambleMap, m_cmacSapUser, m_numberOfRaPreambles, m_preambleTransMax, m_raResponseWindowSize, ns3::MilliSeconds(), ns3::Simulator::Now(), NS_LOG_INFO, ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::raPrachMaskIndex, ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::raPreambleId, ns3::LteEnbMac::NcRaPreambleInfo::rnti, and ns3::LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue::valid.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::AllocateNcRaPreamble().
|
private |
Configure MAC function.
ulBandwidth | the UL bandwidth |
dlBandwidth | the DL bandwidth |
Definition at line 771 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedCellConfigReq(), ns3::LteEnbPhySapProvider::GetMacChTtiDelay(), m_cschedSapProvider, m_enbPhySapProvider, m_macChTtiDelay, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ConfigureMac().
|
private |
CSched Cell Config configure function.
params | FfMacCschedSapUser::CschedCellConfigCnfParameters |
Definition at line 1234 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedCellConfigCnf().
|
private |
CSched Cell Config Update Indication function.
params | FfMacCschedSapUser::CschedCellConfigUpdateIndParameters |
Definition at line 1277 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedCellConfigUpdateInd().
|
private |
CSched LC Config configure function.
params | FfMacCschedSapUser::CschedLcConfigCnfParameters |
Definition at line 1246 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedLcConfigCnf().
|
private |
CSched LC Release configure function.
params | FfMacCschedSapUser::CschedLcReleaseCnfParameters |
Definition at line 1254 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedLcReleaseCnf().
|
private |
CSched UE Config configure function.
params | FfMacCschedSapUser::CschedUeConfigCnfParameters |
Definition at line 1240 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeConfigCnf().
|
private |
CSched UE Config Update Indication function.
params | FfMacCschedSapUser::CschedUeConfigUpdateIndParameters |
Definition at line 1266 of file lte-enb-mac.cc.
References m_cmacSapUser, ns3::LteEnbCmacSapUser::UeConfig::m_rnti, ns3::LteEnbCmacSapUser::UeConfig::m_transmissionMode, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, and ns3::LteEnbCmacSapUser::RrcConfigurationUpdateInd().
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeConfigUpdateInd().
|
private |
CSched UE Release configure function.
params | FfMacCschedSapUser::CschedUeReleaseCnfParameters |
Definition at line 1260 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeReleaseCnf().
|
overridevirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 380 of file lte-enb-mac.cc.
References m_ccmMacSapProvider, m_cmacSapProvider, m_cschedSapUser, m_dlCqiReceived, m_dlInfoListReceived, m_enbPhySapUser, m_macSapProvider, m_miDlHarqProcessesPackets, m_schedSapUser, m_ulCeReceived, m_ulCqiReceived, m_ulInfoListReceived, and NS_LOG_FUNCTION.
|
private |
DL Info List ELements HARQ Feedback function.
params | DlInfoListElement_s |
Definition at line 1291 of file lte-enb-mac.cc.
References ns3::DlInfoListElement_s::ACK, m_dlInfoListReceived, m_miDlHarqProcessesPackets, ns3::DlInfoListElement_s::NACK, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::DlInfoListElementHarqFeedback(), and DoReceiveLteControlMessage().
|
private |
Get RACH configuration function.
Definition at line 946 of file lte-enb-mac.cc.
References m_connEstFailCount, m_numberOfRaPreambles, m_preambleTransMax, m_raResponseWindowSize, and two-ray-to-three-gpp-ch-calibration::rc.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::GetRachConfig().
|
private |
Receive a DL CQI ideal control message.
msg | the DL CQI message |
Definition at line 631 of file lte-enb-mac.cc.
References ns3::LteControlMessage::BSR, ns3::LteControlMessage::DL_CQI, ns3::LteControlMessage::DL_HARQ, DoDlInfoListElementHarqFeedback(), NS_LOG_FUNCTION, NS_LOG_LOGIC, ReceiveBsrMessage(), and ReceiveDlCqiLteControlMessage().
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceiveLteControlMessage().
legacy public for use the Phy callback
p | packet |
Definition at line 709 of file lte-enb-mac.cc.
References ns3::LteRadioBearerTag::GetLcid(), ns3::LteRadioBearerTag::GetRnti(), ns3::LteMacSapUser::ReceivePduParameters::lcid, m_rlcAttached, NS_ASSERT_MSG, NS_LOG_FUNCTION, ns3::LteMacSapUser::ReceivePduParameters::p, ns3::Packet::RemovePacketTag(), and ns3::LteMacSapUser::ReceivePduParameters::rnti.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceivePhyPdu().
|
private |
Receive RACH Preamble function.
prachId | PRACH ID number |
Definition at line 658 of file lte-enb-mac.cc.
References m_receivedRachPreambleCount, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceiveRachPreamble().
|
private |
Reconfigure LC function.
lcinfo | the LC info |
Definition at line 912 of file lte-enb-mac.cc.
References NS_FATAL_ERROR.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ReconfigureLc().
|
private |
Release LC function.
rnti | the RNTI |
lcid | the LCID |
Definition at line 918 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedLcReleaseReq(), m_cschedSapProvider, m_rlcAttached, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ReleaseLc().
|
private |
Remove UE function.
rnti | the RNTI |
Definition at line 821 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeReleaseReq(), m_allocatedNcRaPreambleMap, m_cschedSapProvider, m_miDlHarqProcessesPackets, m_receivedRachPreambleCount, m_rlcAttached, m_ulCeReceived, NS_LOG_DEBUG, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::RemoveUe().
|
private |
Report Buffer Status function.
params | LteMacSapProvider::ReportBufferStatusParameters |
Definition at line 1040 of file lte-enb-mac.cc.
References ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_logicalChannelIdentity, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rlcRetransmissionHolDelay, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rlcRetransmissionQueueSize, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rlcStatusPduSize, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rlcTransmissionQueueHolDelay, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rlcTransmissionQueueSize, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReqParameters::m_rnti, m_schedSapProvider, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, and ns3::FfMacSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Report MAC CE to scheduler.
bsr | the BSR |
Definition at line 698 of file lte-enb-mac.cc.
References m_ulCeReceived, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
inlineprivate |
Report SR to scheduler.
rnti | RNTI of the UE that requested the SR |
Since SR is not implemented in LTE, this method does nothing.
Definition at line 354 of file lte-enb-mac.h.
|
private |
Sched DL Config Indication function.
ind | FfMacSchedSapUser::SchedDlConfigIndParameters |
Definition at line 1059 of file lte-enb-mac.cc.
References ns3::LteMacSapUser::TxOpportunityParameters::bytes, ns3::DlSchedulingCallbackInfo::componentCarrierId, ns3::LteMacSapUser::TxOpportunityParameters::componentCarrierId, ns3::Packet::Copy(), ns3::DlSchedulingCallbackInfo::frameNo, ns3::LteMacSapUser::TxOpportunityParameters::harqId, two-ray-to-three-gpp-ch-calibration::k, ns3::LteMacSapUser::TxOpportunityParameters::layer, ns3::LteMacSapUser::TxOpportunityParameters::lcid, ns3::FfMacSchedSapUser::SchedDlConfigIndParameters::m_buildDataList, ns3::FfMacSchedSapUser::SchedDlConfigIndParameters::m_buildRarList, m_componentCarrierId, m_dlScheduling, m_enbPhySapProvider, m_frameNo, m_miDlHarqProcessesPackets, m_rapIdRntiMap, m_rlcAttached, m_subframeNo, ns3::DlSchedulingCallbackInfo::mcsTb1, ns3::DlSchedulingCallbackInfo::mcsTb2, NS_ASSERT, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::RarLteControlMessage::Rar::rapId, ns3::RarLteControlMessage::Rar::rarPayload, ns3::DlSchedulingCallbackInfo::rnti, ns3::LteMacSapUser::TxOpportunityParameters::rnti, ns3::LteEnbPhySapProvider::SendLteControlMessage(), ns3::LteEnbPhySapProvider::SendMacPdu(), ns3::DlSchedulingCallbackInfo::sizeTb1, ns3::DlSchedulingCallbackInfo::sizeTb2, and ns3::DlSchedulingCallbackInfo::subframeNo.
Referenced by ns3::EnbMacMemberFfMacSchedSapUser::SchedDlConfigInd().
|
private |
Sched UL Config Indication function.
params | FfMacSchedSapUser::SchedUlConfigIndParameters |
Definition at line 1205 of file lte-enb-mac.cc.
References m_componentCarrierId, ns3::FfMacSchedSapUser::SchedUlConfigIndParameters::m_dciList, m_enbPhySapProvider, m_frameNo, m_subframeNo, m_ulScheduling, NS_LOG_FUNCTION, and ns3::LteEnbPhySapProvider::SendLteControlMessage().
Referenced by ns3::EnbMacMemberFfMacSchedSapUser::SchedUlConfigInd().
|
private |
Subrame Indication function.
frameNo | frame number |
subframeNo | subframe number |
Definition at line 476 of file lte-enb-mac.cc.
References ns3::LteEnbCmacSapUser::AllocateTemporaryCellRnti(), m_allocatedNcRaPreambleMap, m_cmacSapUser, ns3::FfMacSchedSapProvider::SchedDlCqiInfoReqParameters::m_cqiList, m_dlCqiReceived, ns3::FfMacSchedSapProvider::SchedDlTriggerReqParameters::m_dlInfoList, m_dlInfoListReceived, ns3::RachListElement_s::m_estimatedSize, m_frameNo, ns3::FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters::m_macCeList, m_macChTtiDelay, ns3::FfMacSchedSapProvider::SchedDlRachInfoReqParameters::m_rachList, m_rapIdRntiMap, m_receivedRachPreambleCount, ns3::RachListElement_s::m_rnti, m_schedSapProvider, ns3::FfMacSchedSapProvider::SchedDlTriggerReqParameters::m_sfnSf, ns3::FfMacSchedSapProvider::SchedDlCqiInfoReqParameters::m_sfnSf, ns3::FfMacSchedSapProvider::SchedUlTriggerReqParameters::m_sfnSf, ns3::FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters::m_sfnSf, m_subframeNo, m_ulCeReceived, m_ulCqiReceived, ns3::FfMacSchedSapProvider::SchedUlTriggerReqParameters::m_ulInfoList, m_ulInfoListReceived, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::FfMacSchedSapProvider::SchedDlCqiInfoReq(), ns3::FfMacSchedSapProvider::SchedDlRachInfoReq(), ns3::FfMacSchedSapProvider::SchedDlTriggerReq(), ns3::FfMacSchedSapProvider::SchedUlCqiInfoReq(), ns3::FfMacSchedSapProvider::SchedUlMacCtrlInfoReq(), ns3::FfMacSchedSapProvider::SchedUlTriggerReq(), and UL_PUSCH_TTIS_DELAY.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::SubframeIndication().
|
private |
Transmit PDU function.
params | LteMacSapProvider::TransmitPduParameters |
Definition at line 1022 of file lte-enb-mac.cc.
References ns3::LteRadioBearerTag::GetLayer(), m_componentCarrierId, m_enbPhySapProvider, m_miDlHarqProcessesPackets, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, two-ray-to-three-gpp-ch-calibration::params, and ns3::LteEnbPhySapProvider::SendMacPdu().
|
private |
UE Update configuration request function.
params | LteEnbCmacSapProvider::UeConfig |
Definition at line 933 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReq(), m_cschedSapProvider, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_reconfigureFlag, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::UeUpdateConfigurationReq().
|
private |
UL CQI report.
ulcqi | FfMacSchedSapProvider::SchedUlCqiInfoReqParameters |
Definition at line 666 of file lte-enb-mac.cc.
References ns3::FfMacSchedSapProvider::SchedUlCqiInfoReqParameters::m_ulCqi, m_ulCqiReceived, NS_LOG_DEBUG, ns3::UlCqi_s::PUSCH, and ns3::UlCqi_s::SRS.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::UlCqiReport().
|
private |
UL Info List ELements HARQ Feedback function.
params | UlInfoListElement_s |
Definition at line 1284 of file lte-enb-mac.cc.
References m_ulInfoListReceived, NS_LOG_FUNCTION, and two-ray-to-three-gpp-ch-calibration::params.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::UlInfoListElementHarqFeedback().
FfMacCschedSapUser * ns3::LteEnbMac::GetFfMacCschedSapUser | ( | ) |
Get the control scheduler SAP user.
Definition at line 422 of file lte-enb-mac.cc.
References m_cschedSapUser.
FfMacSchedSapUser * ns3::LteEnbMac::GetFfMacSchedSapUser | ( | ) |
Get the scheduler SAP user.
Definition at line 410 of file lte-enb-mac.cc.
References m_schedSapUser.
LteCcmMacSapProvider * ns3::LteEnbMac::GetLteCcmMacSapProvider | ( | ) |
Get the eNB-ComponentCarrierManager SAP User.
Definition at line 470 of file lte-enb-mac.cc.
References m_ccmMacSapProvider.
LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider | ( | ) |
Get the control MAC SAP provider.
Definition at line 446 of file lte-enb-mac.cc.
References m_cmacSapProvider.
LteEnbPhySapUser * ns3::LteEnbMac::GetLteEnbPhySapUser | ( | ) |
Get the eNB-PHY SAP User.
Definition at line 458 of file lte-enb-mac.cc.
References m_enbPhySapUser.
LteMacSapProvider * ns3::LteEnbMac::GetLteMacSapProvider | ( | ) |
Get the MAC SAP provider.
Definition at line 434 of file lte-enb-mac.cc.
References m_macSapProvider.
|
static |
Get the type ID.
Definition at line 316 of file lte-enb-mac.cc.
References m_componentCarrierId, m_connEstFailCount, m_dlScheduling, m_numberOfRaPreambles, m_preambleTransMax, m_raResponseWindowSize, m_ulScheduling, ns3::MakeTraceSourceAccessor(), ns3::MakeUintegerAccessor(), and ns3::TypeId::SetParent().
|
private |
Receive a CE element containing the buffer status report.
bsr | the BSR message |
Definition at line 691 of file lte-enb-mac.cc.
References m_ccmMacSapUser, m_componentCarrierId, NS_LOG_FUNCTION, and ns3::LteCcmMacSapUser::UlReceiveMacCe().
Referenced by DoReceiveLteControlMessage().
|
private |
Receive a DL CQI ideal control message.
msg | the DL CQI message |
Definition at line 680 of file lte-enb-mac.cc.
References m_dlCqiReceived, ns3::CqiListElement_s::m_rnti, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by DoReceiveLteControlMessage().
void ns3::LteEnbMac::SetComponentCarrierId | ( | uint8_t | index | ) |
Set the component carrier ID.
index | the component carrier ID |
Definition at line 398 of file lte-enb-mac.cc.
References m_componentCarrierId.
void ns3::LteEnbMac::SetFfMacCschedSapProvider | ( | FfMacCschedSapProvider * | s | ) |
Set the control scheduler SAP provider.
s | a pointer to the control scheduler SAP provider |
Definition at line 416 of file lte-enb-mac.cc.
References m_cschedSapProvider.
void ns3::LteEnbMac::SetFfMacSchedSapProvider | ( | FfMacSchedSapProvider * | s | ) |
Set the scheduler SAP provider.
s | a pointer SAP provider of the FF packet scheduler |
Definition at line 404 of file lte-enb-mac.cc.
References m_schedSapProvider.
void ns3::LteEnbMac::SetLteCcmMacSapUser | ( | LteCcmMacSapUser * | s | ) |
Set the ComponentCarrierManager SAP user.
s | a pointer to the ComponentCarrierManager provider |
Definition at line 464 of file lte-enb-mac.cc.
References m_ccmMacSapUser.
void ns3::LteEnbMac::SetLteEnbCmacSapUser | ( | LteEnbCmacSapUser * | s | ) |
Set the control MAC SAP user.
s | a pointer to the control MAC SAP user |
Definition at line 440 of file lte-enb-mac.cc.
References m_cmacSapUser.
void ns3::LteEnbMac::SetLteEnbPhySapProvider | ( | LteEnbPhySapProvider * | s | ) |
Set the PHY SAP Provider.
s | a pointer to the PHY SAP provider |
Definition at line 452 of file lte-enb-mac.cc.
References m_enbPhySapProvider.
void ns3::LteEnbMac::SetLteMacSapUser | ( | LteMacSapUser * | s | ) |
Set the MAC SAP user.
s | a pointer to the MAC SAP user |
Definition at line 428 of file lte-enb-mac.cc.
References m_macSapUser.
|
friend |
allow EnbMacMemberFfMacCschedSapUser class friend access
Definition at line 66 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberFfMacSchedSapUser class friend access
Definition at line 64 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteEnbCmacSapProvider class friend access
Definition at line 60 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteEnbPhySapUser class friend access
Definition at line 68 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteMacSapProvider<LteEnbMac> class friend access
Definition at line 60 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access
Definition at line 68 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
private |
map storing as key the random access preamble IDs allocated for non-contention based access, and as value the associated info
Definition at line 458 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoRemoveUe(), and DoSubframeIndication().
|
private |
CCM MAC SAP provider.
Definition at line 409 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteCcmMacSapProvider().
|
private |
CCM MAC SAP user.
Definition at line 410 of file lte-enb-mac.h.
Referenced by ReceiveBsrMessage(), and SetLteCcmMacSapUser().
|
private |
the CMAC SAP provider
Definition at line 395 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteEnbCmacSapProvider().
|
private |
the CMAC SAP user
Definition at line 397 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoCschedUeConfigUpdateInd(), DoSubframeIndication(), and SetLteEnbCmacSapUser().
|
private |
component carrier Id used to address sap
Definition at line 465 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), DoTransmitPdu(), GetTypeId(), ReceiveBsrMessage(), and SetComponentCarrierId().
|
private |
the counter value for T300 timer expiration
Definition at line 440 of file lte-enb-mac.h.
Referenced by DoGetRachConfig(), and GetTypeId().
|
private |
the Csched SAP provider
Definition at line 400 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoConfigureMac(), DoReleaseLc(), DoRemoveUe(), DoUeUpdateConfigurationReq(), and SetFfMacCschedSapProvider().
|
private |
the CSched SAP user
Definition at line 402 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetFfMacCschedSapUser().
|
private |
DL-CQI received.
Definition at line 380 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and ReceiveDlCqiLteControlMessage().
|
private |
DL HARQ feedback received.
Definition at line 385 of file lte-enb-mac.h.
Referenced by DoDispose(), DoDlInfoListElementHarqFeedback(), and DoSubframeIndication().
|
private |
Trace information regarding DL scheduling Frame number, Subframe number, RNTI, MCS of TB1, size of TB1, MCS of TB2 (0 if not present), size of TB2 (0 if not present)
Definition at line 424 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and GetTypeId().
|
private |
the ENB Phy SAP provider
Definition at line 405 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), DoSchedDlConfigInd(), DoSchedUlConfigInd(), DoTransmitPdu(), and SetLteEnbPhySapProvider().
|
private |
the ENB Phy SAP user
Definition at line 406 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteEnbPhySapUser().
|
private |
frame number of current subframe indication
Definition at line 414 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().
|
private |
delay of MAC, PHY and channel in terms of TTIs
Definition at line 432 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), and DoSubframeIndication().
|
private |
the MAC SAP provider
Definition at line 394 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteMacSapProvider().
|
private |
|
private |
Packet under transmission of the DL HARQ process.
Definition at line 435 of file lte-enb-mac.h.
Referenced by DoAddUe(), DoDispose(), DoDlInfoListElementHarqFeedback(), DoRemoveUe(), DoSchedDlConfigInd(), and DoTransmitPdu().
|
private |
number of RA preambles
Definition at line 437 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
preamble transmit maximum
Definition at line 438 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
RAPID RNTI map.
Definition at line 462 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and DoSubframeIndication().
|
private |
RA response window size.
Definition at line 439 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
received RACH preamble count
Definition at line 460 of file lte-enb-mac.h.
Referenced by DoReceiveRachPreamble(), DoRemoveUe(), and DoSubframeIndication().
|
private |
RNTI, LC ID, SAP of the RLC instance.
Definition at line 378 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoReceivePhyPdu(), DoReleaseLc(), DoRemoveUe(), and DoSchedDlConfigInd().
|
private |
the Sched SAP provider
Definition at line 399 of file lte-enb-mac.h.
Referenced by DoReportBufferStatus(), DoSubframeIndication(), and SetFfMacSchedSapProvider().
|
private |
the Sched SAP user
Definition at line 401 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetFfMacSchedSapUser().
|
private |
subframe number of current subframe indication
Definition at line 418 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().
|
private |
CE received (BSR up to now)
Definition at line 383 of file lte-enb-mac.h.
Referenced by DoDispose(), DoRemoveUe(), DoReportMacCeToScheduler(), and DoSubframeIndication().
|
private |
UL-CQI received.
Definition at line 382 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and DoUlCqiReport().
|
private |
UL HARQ feedback received.
Definition at line 387 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and DoUlInfoListElementHarqFeedback().
|
private |
Trace information regarding UL scheduling Frame number, Subframe number, RNTI, MCS of TB, size of TB, component carrier id.
Definition at line 430 of file lte-enb-mac.h.
Referenced by DoSchedUlConfigInd(), and GetTypeId().