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 (void) | |
virtual | ~LteEnbMac (void) |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
void | DoReceivePhyPdu (Ptr< Packet > p) |
legacy public for use the Phy callback More... | |
FfMacCschedSapUser * | GetFfMacCschedSapUser (void) |
Get the control scheduler SAP user. More... | |
FfMacSchedSapUser * | GetFfMacSchedSapUser (void) |
Get the scheduler SAP user. More... | |
LteCcmMacSapProvider * | GetLteCcmMacSapProvider () |
Get the eNB-ComponentCarrierManager SAP User. More... | |
LteEnbCmacSapProvider * | GetLteEnbCmacSapProvider (void) |
Get the control MAC SAP provider. More... | |
LteEnbPhySapUser * | GetLteEnbPhySapUser () |
Get the eNB-PHY SAP User. More... | |
LteMacSapProvider * | GetLteMacSapProvider (void) |
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... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Get the most derived TypeId for this Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
bool | IsInitialized (void) 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) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) 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 erros. 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 (void) |
Get the type ID. More... | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
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... | |
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< uint8_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, lcid, 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 (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
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 (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
Related Functions inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid (void) |
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.
ns3::LteEnbMac is accessible through the following paths with Config::Set and Config::Connect:
Size of this type is 448 bytes (on a 64-bit architecture).
Definition at line 55 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 169 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 183 of file lte-enb-mac.h.
ns3::LteEnbMac::LteEnbMac | ( | void | ) |
Definition at line 377 of file lte-enb-mac.cc.
References EnbMacMemberFfMacCschedSapUser, EnbMacMemberFfMacSchedSapUser, EnbMacMemberLteEnbCmacSapProvider, EnbMacMemberLteEnbPhySapUser, m_ccmMacSapProvider, m_cmacSapProvider, m_cschedSapUser, m_enbPhySapUser, m_macSapProvider, m_schedSapUser, and NS_LOG_FUNCTION.
|
virtual |
Definition at line 390 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 844 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::isGbr, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, m_cschedSapProvider, ns3::LogicalChannelConfigListElement_s::m_direction, ns3::LogicalChannelConfigListElement_s::m_eRabGuaranteedBitrateDl, ns3::LogicalChannelConfigListElement_s::m_eRabGuaranteedBitrateUl, ns3::LogicalChannelConfigListElement_s::m_eRabMaximulBitrateDl, ns3::LogicalChannelConfigListElement_s::m_eRabMaximulBitrateUl, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_logicalChannelConfigList, ns3::LogicalChannelConfigListElement_s::m_logicalChannelGroup, ns3::LogicalChannelConfigListElement_s::m_logicalChannelIdentity, ns3::LogicalChannelConfigListElement_s::m_qci, ns3::LogicalChannelConfigListElement_s::m_qosBearerType, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_reconfigureFlag, m_rlcAttached, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_rnti, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_ASSERT_MSG(), NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::LogicalChannelConfigListElement_s::QBT_GBR, ns3::LogicalChannelConfigListElement_s::QBT_NON_GBR, ns3::LteEnbCmacSapProvider::LcInfo::qci, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::AddLc().
|
private |
Add UE function.
rnti | the RNTI |
Definition at line 796 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReq(), m_cschedSapProvider, m_miDlHarqProcessesPackets, m_rlcAttached, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, NS_ASSERT_MSG(), and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::AddUe().
|
private |
Allocate NC RA preamble function.
rnti | the RNTI |
Definition at line 935 of file lte-enb-mac.cc.
References ns3::LteEnbMac::NcRaPreambleInfo::expiryTime, m_allocatedNcRaPreambleMap, 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 782 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedCellConfigReq(), ns3::LteEnbPhySapProvider::GetMacChTtiDelay(), m_cschedSapProvider, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_dlBandwidth, m_enbPhySapProvider, m_macChTtiDelay, ns3::FfMacCschedSapProvider::CschedCellConfigReqParameters::m_ulBandwidth, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ConfigureMac().
|
private |
CSched Cell Config configure function.
params | FfMacCschedSapUser::CschedCellConfigCnfParameters |
Definition at line 1187 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 1230 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 1199 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 1207 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 1193 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 1219 of file lte-enb-mac.cc.
References m_cmacSapUser, ns3::LteEnbCmacSapUser::UeConfig::m_rnti, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_rnti, ns3::LteEnbCmacSapUser::UeConfig::m_transmissionMode, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_transmissionMode, NS_LOG_FUNCTION, and ns3::LteEnbCmacSapUser::RrcConfigurationUpdateInd().
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeConfigUpdateInd().
|
private |
CSched UE Release configure function.
params | FfMacCschedSapUser::CschedUeReleaseCnfParameters |
Definition at line 1213 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeReleaseCnf().
|
virtual |
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 396 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 1243 of file lte-enb-mac.cc.
References ns3::DlInfoListElement_s::ACK, m_dlInfoListReceived, ns3::DlInfoListElement_s::m_harqProcessId, ns3::DlInfoListElement_s::m_harqStatus, m_miDlHarqProcessesPackets, ns3::DlInfoListElement_s::m_rnti, ns3::DlInfoListElement_s::NACK, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::DlInfoListElementHarqFeeback(), and DoReceiveLteControlMessage().
|
private |
Get RACH configuration function.
Definition at line 925 of file lte-enb-mac.cc.
References m_numberOfRaPreambles, m_preambleTransMax, m_raResponseWindowSize, ns3::LteEnbCmacSapProvider::RachConfig::numberOfRaPreambles, ns3::LteEnbCmacSapProvider::RachConfig::preambleTransMax, and ns3::LteEnbCmacSapProvider::RachConfig::raResponseWindowSize.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::GetRachConfig().
|
private |
Receive a DL CQI ideal control message.
msg | the DL CQI message |
Definition at line 643 of file lte-enb-mac.cc.
References ns3::LteControlMessage::BSR, ns3::LteControlMessage::DL_CQI, ns3::LteControlMessage::DL_HARQ, DoDlInfoListElementHarqFeeback(), 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 722 of file lte-enb-mac.cc.
References ns3::LteRadioBearerTag::GetLcid(), ns3::LteRadioBearerTag::GetRnti(), m_rlcAttached, NS_ASSERT_MSG(), NS_LOG_FUNCTION, and ns3::Packet::RemovePacketTag().
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceivePhyPdu().
|
private |
Receive RACH Preamble function.
prachId | PRACH ID number |
Definition at line 668 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 891 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 897 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedLcReleaseReq(), m_cschedSapProvider, ns3::FfMacCschedSapProvider::CschedLcReleaseReqParameters::m_logicalChannelIdentity, m_rlcAttached, ns3::FfMacCschedSapProvider::CschedLcReleaseReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ReleaseLc().
|
private |
Remove UE function.
rnti | the RNTI |
Definition at line 833 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeReleaseReq(), m_cschedSapProvider, m_miDlHarqProcessesPackets, m_rlcAttached, ns3::FfMacCschedSapProvider::CschedUeReleaseReqParameters::m_rnti, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::RemoveUe().
|
private |
Report Buffer Status function.
params | LteMacSapProvider::ReportBufferStatusParameters |
Definition at line 997 of file lte-enb-mac.cc.
References ns3::LteMacSapProvider::ReportBufferStatusParameters::lcid, 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, ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueHolDelay, ns3::LteMacSapProvider::ReportBufferStatusParameters::retxQueueSize, ns3::LteMacSapProvider::ReportBufferStatusParameters::rnti, ns3::FfMacSchedSapProvider::SchedDlRlcBufferReq(), ns3::LteMacSapProvider::ReportBufferStatusParameters::statusPduSize, ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueHolDelay, and ns3::LteMacSapProvider::ReportBufferStatusParameters::txQueueSize.
|
private |
Report MAC CE to scheduler.
bsr | the BSR |
Definition at line 711 of file lte-enb-mac.cc.
References m_ulCeReceived, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
|
private |
Sched DL Config Indication function.
ind | FfMacSchedSapUser::SchedDlConfigIndParameters |
Definition at line 1020 of file lte-enb-mac.cc.
References ns3::DlSchedulingCallbackInfo::componentCarrierId, ns3::Packet::Copy(), ns3::DlSchedulingCallbackInfo::frameNo, list, 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::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 1155 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 496 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 980 of file lte-enb-mac.cc.
References ns3::Packet::AddPacketTag(), ns3::LteMacSapProvider::TransmitPduParameters::componentCarrierId, ns3::LteRadioBearerTag::GetLayer(), ns3::LteMacSapProvider::TransmitPduParameters::harqProcessId, ns3::LteMacSapProvider::TransmitPduParameters::layer, ns3::LteMacSapProvider::TransmitPduParameters::lcid, m_componentCarrierId, m_enbPhySapProvider, m_miDlHarqProcessesPackets, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::LteMacSapProvider::TransmitPduParameters::pdu, ns3::LteMacSapProvider::TransmitPduParameters::rnti, and ns3::LteEnbPhySapProvider::SendMacPdu().
|
private |
UE Update configuration request function.
params | LteEnbCmacSapProvider::UeConfig |
Definition at line 912 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReq(), m_cschedSapProvider, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_reconfigureFlag, ns3::LteEnbCmacSapProvider::UeConfig::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::LteEnbCmacSapProvider::UeConfig::m_transmissionMode, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::UeUpdateConfigurationReq().
|
private |
UL CQI report.
ulcqi | FfMacSchedSapProvider::SchedUlCqiInfoReqParameters |
Definition at line 676 of file lte-enb-mac.cc.
References ns3::UlCqi_s::m_type, 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 1236 of file lte-enb-mac.cc.
References m_ulInfoListReceived, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::UlInfoListElementHarqFeeback().
FfMacCschedSapUser * ns3::LteEnbMac::GetFfMacCschedSapUser | ( | void | ) |
Get the control scheduler SAP user.
Definition at line 438 of file lte-enb-mac.cc.
References m_cschedSapUser.
FfMacSchedSapUser * ns3::LteEnbMac::GetFfMacSchedSapUser | ( | void | ) |
Get the scheduler SAP user.
Definition at line 426 of file lte-enb-mac.cc.
References m_schedSapUser.
LteCcmMacSapProvider * ns3::LteEnbMac::GetLteCcmMacSapProvider | ( | ) |
Get the eNB-ComponentCarrierManager SAP User.
Definition at line 490 of file lte-enb-mac.cc.
References m_ccmMacSapProvider.
LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider | ( | void | ) |
Get the control MAC SAP provider.
Definition at line 464 of file lte-enb-mac.cc.
References m_cmacSapProvider.
LteEnbPhySapUser * ns3::LteEnbMac::GetLteEnbPhySapUser | ( | ) |
Get the eNB-PHY SAP User.
Definition at line 477 of file lte-enb-mac.cc.
References m_enbPhySapUser.
LteMacSapProvider * ns3::LteEnbMac::GetLteMacSapProvider | ( | void | ) |
Get the MAC SAP provider.
Definition at line 452 of file lte-enb-mac.cc.
References m_macSapProvider.
|
static |
Get the type ID.
Definition at line 337 of file lte-enb-mac.cc.
References m_componentCarrierId, 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 704 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 691 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 414 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 432 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 420 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 483 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 458 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 470 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 446 of file lte-enb-mac.cc.
References m_macSapUser.
|
friend |
allow EnbMacMemberFfMacCschedSapUser class friend access
Definition at line 64 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberFfMacSchedSapUser class friend access
Definition at line 62 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteEnbCmacSapProvider class friend access
Definition at line 58 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteEnbPhySapUser class friend access
Definition at line 66 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.
|
friend |
allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access
Definition at line 68 of file lte-enb-mac.h.
|
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 449 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), and DoSubframeIndication().
|
private |
CCM MAC SAP provider.
Definition at line 401 of file lte-enb-mac.h.
Referenced by DoDispose(), GetLteCcmMacSapProvider(), and LteEnbMac().
|
private |
CCM MAC SAP user.
Definition at line 402 of file lte-enb-mac.h.
Referenced by ReceiveBsrMessage(), and SetLteCcmMacSapUser().
|
private |
the CMAC SAP provider
Definition at line 386 of file lte-enb-mac.h.
Referenced by DoDispose(), GetLteEnbCmacSapProvider(), and LteEnbMac().
|
private |
the CMAC SAP user
Definition at line 388 of file lte-enb-mac.h.
Referenced by DoCschedUeConfigUpdateInd(), DoSubframeIndication(), and SetLteEnbCmacSapUser().
|
private |
component carrier Id used to address sap
Definition at line 456 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), DoTransmitPdu(), GetTypeId(), ReceiveBsrMessage(), and SetComponentCarrierId().
|
private |
the Csched SAP provider
Definition at line 392 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoConfigureMac(), DoReleaseLc(), DoRemoveUe(), DoUeUpdateConfigurationReq(), and SetFfMacCschedSapProvider().
|
private |
the CSched SAP user
Definition at line 394 of file lte-enb-mac.h.
Referenced by DoDispose(), GetFfMacCschedSapUser(), and LteEnbMac().
|
private |
DL-CQI received.
Definition at line 369 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and ReceiveDlCqiLteControlMessage().
|
private |
DL HARQ feedback received.
Definition at line 373 of file lte-enb-mac.h.
Referenced by DoDispose(), DoDlInfoListElementHarqFeeback(), 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 416 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and GetTypeId().
|
private |
the ENB Phy SAP provider
Definition at line 397 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), DoSchedDlConfigInd(), DoSchedUlConfigInd(), DoTransmitPdu(), and SetLteEnbPhySapProvider().
|
private |
the ENB Phy SAP user
Definition at line 398 of file lte-enb-mac.h.
Referenced by DoDispose(), GetLteEnbPhySapUser(), and LteEnbMac().
|
private |
frame number of current subframe indication
Definition at line 406 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 425 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), and DoSubframeIndication().
|
private |
the MAC SAP provider
Definition at line 385 of file lte-enb-mac.h.
Referenced by DoDispose(), GetLteMacSapProvider(), and LteEnbMac().
|
private |
|
private |
Packet under transmission of the DL HARQ process.
Definition at line 428 of file lte-enb-mac.h.
Referenced by DoAddUe(), DoDispose(), DoDlInfoListElementHarqFeeback(), DoRemoveUe(), DoSchedDlConfigInd(), and DoTransmitPdu().
|
private |
number of RA preambles
Definition at line 430 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
preamble transmit maximum
Definition at line 431 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
RAPID RNTI map.
Definition at line 453 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and DoSubframeIndication().
|
private |
RA response window size.
Definition at line 432 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
received RACH preamble count
Definition at line 451 of file lte-enb-mac.h.
Referenced by DoReceiveRachPreamble(), and DoSubframeIndication().
|
private |
rnti, lcid, SAP of the RLC instance
Definition at line 367 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoReceivePhyPdu(), DoReleaseLc(), DoRemoveUe(), and DoSchedDlConfigInd().
|
private |
the Sched SAP provider
Definition at line 391 of file lte-enb-mac.h.
Referenced by DoReportBufferStatus(), DoSubframeIndication(), and SetFfMacSchedSapProvider().
|
private |
the Sched SAP user
Definition at line 393 of file lte-enb-mac.h.
Referenced by DoDispose(), GetFfMacSchedSapUser(), and LteEnbMac().
|
private |
subframe number of current subframe indication
Definition at line 410 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().
|
private |
CE received (BSR up to now)
Definition at line 371 of file lte-enb-mac.h.
Referenced by DoDispose(), DoReportMacCeToScheduler(), and DoSubframeIndication().
|
private |
UL-CQI received.
Definition at line 370 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and DoUlCqiReport().
|
private |
UL HARQ feedback received.
Definition at line 375 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and DoUlInfoListElementHarqFeeback().
|
private |
Trace information regarding UL scheduling Frame number, Subframe number, RNTI, MCS of TB, size of TB, component carrier id.
Definition at line 423 of file lte-enb-mac.h.
Referenced by DoSchedUlConfigInd(), and GetTypeId().