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<> | |
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... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. 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[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] 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... | |
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 (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 568 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 168 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 182 of file lte-enb-mac.h.
ns3::LteEnbMac::LteEnbMac | ( | void | ) |
Definition at line 382 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.
|
virtual |
Definition at line 395 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 887 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_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::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 806 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 |
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 979 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 792 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 1258 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 1301 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 1270 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 1278 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 1264 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 1290 of file lte-enb-mac.cc.
References m_cmacSapUser, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_rnti, ns3::LteEnbCmacSapUser::UeConfig::m_rnti, ns3::FfMacCschedSapUser::CschedUeConfigUpdateIndParameters::m_transmissionMode, ns3::LteEnbCmacSapUser::UeConfig::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 1284 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 401 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 1314 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 968 of file lte-enb-mac.cc.
References ns3::LteEnbCmacSapProvider::RachConfig::connEstFailCount, m_connEstFailCount, 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 648 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 727 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 673 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 934 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 940 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 843 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeReleaseReq(), m_allocatedNcRaPreambleMap, m_cschedSapProvider, m_miDlHarqProcessesPackets, m_receivedRachPreambleCount, m_rlcAttached, ns3::FfMacCschedSapProvider::CschedUeReleaseReqParameters::m_rnti, m_ulCeReceived, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::RemoveUe().
|
private |
Report Buffer Status function.
params | LteMacSapProvider::ReportBufferStatusParameters |
Definition at line 1061 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 716 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 353 of file lte-enb-mac.h.
|
private |
Sched DL Config Indication function.
ind | FfMacSchedSapUser::SchedDlConfigIndParameters |
Definition at line 1084 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, bianchi11ax::k, ns3::LteMacSapUser::TxOpportunityParameters::layer, ns3::LteMacSapUser::TxOpportunityParameters::lcid, 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::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 1226 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 501 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 1044 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 955 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedUeConfigReq(), m_cschedSapProvider, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_reconfigureFlag, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_rnti, ns3::LteEnbCmacSapProvider::UeConfig::m_rnti, ns3::FfMacCschedSapProvider::CschedUeConfigReqParameters::m_transmissionMode, ns3::LteEnbCmacSapProvider::UeConfig::m_transmissionMode, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::UeUpdateConfigurationReq().
|
private |
UL CQI report.
ulcqi | FfMacSchedSapProvider::SchedUlCqiInfoReqParameters |
Definition at line 681 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 1307 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 443 of file lte-enb-mac.cc.
References m_cschedSapUser.
FfMacSchedSapUser * ns3::LteEnbMac::GetFfMacSchedSapUser | ( | void | ) |
Get the scheduler SAP user.
Definition at line 431 of file lte-enb-mac.cc.
References m_schedSapUser.
LteCcmMacSapProvider * ns3::LteEnbMac::GetLteCcmMacSapProvider | ( | ) |
Get the eNB-ComponentCarrierManager SAP User.
Definition at line 495 of file lte-enb-mac.cc.
References m_ccmMacSapProvider.
LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider | ( | void | ) |
Get the control MAC SAP provider.
Definition at line 469 of file lte-enb-mac.cc.
References m_cmacSapProvider.
LteEnbPhySapUser * ns3::LteEnbMac::GetLteEnbPhySapUser | ( | ) |
Get the eNB-PHY SAP User.
Definition at line 482 of file lte-enb-mac.cc.
References m_enbPhySapUser.
LteMacSapProvider * ns3::LteEnbMac::GetLteMacSapProvider | ( | void | ) |
Get the MAC SAP provider.
Definition at line 457 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_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 709 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 696 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 419 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 437 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 425 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 488 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 463 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 475 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 451 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 58 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access
Definition at line 66 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 460 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoRemoveUe(), and DoSubframeIndication().
|
private |
CCM MAC SAP provider.
Definition at line 411 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteCcmMacSapProvider().
|
private |
CCM MAC SAP user.
Definition at line 412 of file lte-enb-mac.h.
Referenced by ReceiveBsrMessage(), and SetLteCcmMacSapUser().
|
private |
the CMAC SAP provider
Definition at line 396 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteEnbCmacSapProvider().
|
private |
the CMAC SAP user
Definition at line 398 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoCschedUeConfigUpdateInd(), DoSubframeIndication(), and SetLteEnbCmacSapUser().
|
private |
component carrier Id used to address sap
Definition at line 467 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 443 of file lte-enb-mac.h.
Referenced by DoGetRachConfig(), and GetTypeId().
|
private |
the Csched SAP provider
Definition at line 402 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoConfigureMac(), DoReleaseLc(), DoRemoveUe(), DoUeUpdateConfigurationReq(), and SetFfMacCschedSapProvider().
|
private |
the CSched SAP user
Definition at line 404 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetFfMacCschedSapUser().
|
private |
DL-CQI received.
Definition at line 379 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and ReceiveDlCqiLteControlMessage().
|
private |
DL HARQ feedback received.
Definition at line 383 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 426 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and GetTypeId().
|
private |
the ENB Phy SAP provider
Definition at line 407 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), DoSchedDlConfigInd(), DoSchedUlConfigInd(), DoTransmitPdu(), and SetLteEnbPhySapProvider().
|
private |
the ENB Phy SAP user
Definition at line 408 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteEnbPhySapUser().
|
private |
frame number of current subframe indication
Definition at line 416 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 435 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), and DoSubframeIndication().
|
private |
the MAC SAP provider
Definition at line 395 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 438 of file lte-enb-mac.h.
Referenced by DoAddUe(), DoDispose(), DoDlInfoListElementHarqFeeback(), DoRemoveUe(), DoSchedDlConfigInd(), and DoTransmitPdu().
|
private |
number of RA preambles
Definition at line 440 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
preamble transmit maximum
Definition at line 441 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
RAPID RNTI map.
Definition at line 464 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and DoSubframeIndication().
|
private |
RA response window size.
Definition at line 442 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
received RACH preamble count
Definition at line 462 of file lte-enb-mac.h.
Referenced by DoReceiveRachPreamble(), DoRemoveUe(), and DoSubframeIndication().
|
private |
RNTI, LC ID, SAP of the RLC instance.
Definition at line 377 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoReceivePhyPdu(), DoReleaseLc(), DoRemoveUe(), and DoSchedDlConfigInd().
|
private |
the Sched SAP provider
Definition at line 401 of file lte-enb-mac.h.
Referenced by DoReportBufferStatus(), DoSubframeIndication(), and SetFfMacSchedSapProvider().
|
private |
the Sched SAP user
Definition at line 403 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetFfMacSchedSapUser().
|
private |
subframe number of current subframe indication
Definition at line 420 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().
|
private |
CE received (BSR up to now)
Definition at line 381 of file lte-enb-mac.h.
Referenced by DoDispose(), DoRemoveUe(), DoReportMacCeToScheduler(), and DoSubframeIndication().
|
private |
UL-CQI received.
Definition at line 380 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and DoUlCqiReport().
|
private |
UL HARQ feedback received.
Definition at line 385 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 433 of file lte-enb-mac.h.
Referenced by DoSchedUlConfigInd(), and GetTypeId().