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. | |
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. | |
Public Member Functions | |
LteEnbMac () | |
~LteEnbMac () override | |
void | DoDispose () override |
Destructor implementation. | |
void | DoReceivePhyPdu (Ptr< Packet > p) |
legacy public for use the Phy callback | |
FfMacCschedSapUser * | GetFfMacCschedSapUser () |
Get the control scheduler SAP user. | |
FfMacSchedSapUser * | GetFfMacSchedSapUser () |
Get the scheduler SAP user. | |
LteCcmMacSapProvider * | GetLteCcmMacSapProvider () |
Get the eNB-ComponentCarrierManager SAP User. | |
LteEnbCmacSapProvider * | GetLteEnbCmacSapProvider () |
Get the control MAC SAP provider. | |
LteEnbPhySapUser * | GetLteEnbPhySapUser () |
Get the eNB-PHY SAP User. | |
LteMacSapProvider * | GetLteMacSapProvider () |
Get the MAC SAP provider. | |
void | SetComponentCarrierId (uint8_t index) |
Set the component carrier ID. | |
void | SetFfMacCschedSapProvider (FfMacCschedSapProvider *s) |
Set the control scheduler SAP provider. | |
void | SetFfMacSchedSapProvider (FfMacSchedSapProvider *s) |
Set the scheduler SAP provider. | |
void | SetLteCcmMacSapUser (LteCcmMacSapUser *s) |
Set the ComponentCarrierManager SAP user. | |
void | SetLteEnbCmacSapUser (LteEnbCmacSapUser *s) |
Set the control MAC SAP user. | |
void | SetLteEnbPhySapProvider (LteEnbPhySapProvider *s) |
Set the PHY SAP Provider. | |
void | SetLteMacSapUser (LteMacSapUser *s) |
Set the MAC SAP user. | |
Public Member Functions inherited from ns3::Object | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const override |
Get the most derived TypeId for this Object. | |
template<typename T > | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId () |
Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId () |
Get the type ID. | |
Private Member Functions | |
void | DoAddLc (LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu) |
Add LC function. | |
void | DoAddUe (uint16_t rnti) |
Add UE function. | |
LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue | DoAllocateNcRaPreamble (uint16_t rnti) |
Allocate NC RA preamble function. | |
void | DoConfigureMac (uint16_t ulBandwidth, uint16_t dlBandwidth) |
Configure MAC function. | |
void | DoCschedCellConfigCnf (FfMacCschedSapUser::CschedCellConfigCnfParameters params) |
CSched Cell Config configure function. | |
void | DoCschedCellConfigUpdateInd (FfMacCschedSapUser::CschedCellConfigUpdateIndParameters params) |
CSched Cell Config Update Indication function. | |
void | DoCschedLcConfigCnf (FfMacCschedSapUser::CschedLcConfigCnfParameters params) |
CSched LC Config configure function. | |
void | DoCschedLcReleaseCnf (FfMacCschedSapUser::CschedLcReleaseCnfParameters params) |
CSched LC Release configure function. | |
void | DoCschedUeConfigCnf (FfMacCschedSapUser::CschedUeConfigCnfParameters params) |
CSched UE Config configure function. | |
void | DoCschedUeConfigUpdateInd (FfMacCschedSapUser::CschedUeConfigUpdateIndParameters params) |
CSched UE Config Update Indication function. | |
void | DoCschedUeReleaseCnf (FfMacCschedSapUser::CschedUeReleaseCnfParameters params) |
CSched UE Release configure function. | |
void | DoDlInfoListElementHarqFeedback (DlInfoListElement_s params) |
DL Info List Elements HARQ Feedback function. | |
LteEnbCmacSapProvider::RachConfig | DoGetRachConfig () const |
Get RACH configuration function. | |
void | DoReceiveLteControlMessage (Ptr< LteControlMessage > msg) |
Receive a DL CQI ideal control message. | |
void | DoReceiveRachPreamble (uint8_t prachId) |
Receive RACH Preamble function. | |
void | DoReconfigureLc (LteEnbCmacSapProvider::LcInfo lcinfo) |
Reconfigure LC function. | |
void | DoReleaseLc (uint16_t rnti, uint8_t lcid) |
Release LC function. | |
void | DoRemoveUe (uint16_t rnti) |
Remove UE function. | |
void | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters params) |
Report Buffer Status function. | |
void | DoReportMacCeToScheduler (MacCeListElement_s bsr) |
Report MAC CE to scheduler. | |
void | DoReportSrToScheduler (uint16_t rnti) |
Report SR to scheduler. | |
void | DoSchedDlConfigInd (FfMacSchedSapUser::SchedDlConfigIndParameters ind) |
Sched DL Config Indication function. | |
void | DoSchedUlConfigInd (FfMacSchedSapUser::SchedUlConfigIndParameters params) |
Sched UL Config Indication function. | |
void | DoSubframeIndication (uint32_t frameNo, uint32_t subframeNo) |
Subrame Indication function. | |
void | DoTransmitPdu (LteMacSapProvider::TransmitPduParameters params) |
Transmit PDU function. | |
void | DoUeUpdateConfigurationReq (LteEnbCmacSapProvider::UeConfig params) |
UE Update configuration request function. | |
void | DoUlCqiReport (FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqi) |
UL CQI report. | |
void | DoUlInfoListElementHarqFeedback (UlInfoListElement_s params) |
UL Info List Elements HARQ Feedback function. | |
void | ReceiveBsrMessage (MacCeListElement_s bsr) |
Receive a CE element containing the buffer status report. | |
void | ReceiveDlCqiLteControlMessage (Ptr< DlCqiLteControlMessage > msg) |
Receive a DL CQI ideal control message. | |
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 | |
LteCcmMacSapProvider * | m_ccmMacSapProvider |
CCM MAC SAP provider. | |
LteCcmMacSapUser * | m_ccmMacSapUser |
CCM MAC SAP user. | |
LteEnbCmacSapProvider * | m_cmacSapProvider |
the CMAC SAP provider | |
LteEnbCmacSapUser * | m_cmacSapUser |
the CMAC SAP user | |
uint8_t | m_componentCarrierId |
component carrier Id used to address sap | |
uint8_t | m_connEstFailCount |
the counter value for T300 timer expiration | |
FfMacCschedSapProvider * | m_cschedSapProvider |
the Csched SAP provider | |
FfMacCschedSapUser * | m_cschedSapUser |
the CSched SAP user | |
std::vector< CqiListElement_s > | m_dlCqiReceived |
DL-CQI received. | |
std::vector< DlInfoListElement_s > | m_dlInfoListReceived |
DL HARQ feedback received. | |
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) | |
LteEnbPhySapProvider * | m_enbPhySapProvider |
the ENB Phy SAP provider | |
LteEnbPhySapUser * | m_enbPhySapUser |
the ENB Phy SAP user | |
uint32_t | m_frameNo |
frame number of current subframe indication | |
uint8_t | m_macChTtiDelay |
delay of MAC, PHY and channel in terms of TTIs | |
LteMacSapProvider * | m_macSapProvider |
the MAC SAP provider | |
LteMacSapUser * | m_macSapUser |
the MAC SAP user | |
std::map< uint16_t, DlHarqProcessesBuffer_t > | m_miDlHarqProcessesPackets |
Packet under transmission of the DL HARQ process. | |
uint8_t | m_numberOfRaPreambles |
number of RA preambles | |
uint8_t | m_preambleTransMax |
preamble transmit maximum | |
std::map< uint16_t, uint32_t > | m_rapIdRntiMap |
RAPID RNTI map. | |
uint8_t | m_raResponseWindowSize |
RA response window size. | |
std::map< uint8_t, uint32_t > | m_receivedRachPreambleCount |
received RACH preamble count | |
std::map< uint16_t, std::map< uint8_t, LteMacSapUser * > > | m_rlcAttached |
RNTI, LC ID, SAP of the RLC instance. | |
FfMacSchedSapProvider * | m_schedSapProvider |
the Sched SAP provider | |
FfMacSchedSapUser * | m_schedSapUser |
the Sched SAP user | |
uint32_t | m_subframeNo |
subframe number of current subframe indication | |
std::vector< MacCeListElement_s > | m_ulCeReceived |
CE received (BSR up to now) | |
std::vector< FfMacSchedSapProvider::SchedUlCqiInfoReqParameters > | m_ulCqiReceived |
UL-CQI received. | |
std::vector< UlInfoListElement_s > | m_ulInfoListReceived |
UL HARQ feedback received. | |
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. | |
Friends | |
class | EnbMacMemberFfMacCschedSapUser |
allow EnbMacMemberFfMacCschedSapUser class friend access | |
class | EnbMacMemberFfMacSchedSapUser |
allow EnbMacMemberFfMacSchedSapUser class friend access | |
class | EnbMacMemberLteEnbCmacSapProvider |
allow EnbMacMemberLteEnbCmacSapProvider class friend access | |
class | EnbMacMemberLteEnbPhySapUser |
allow EnbMacMemberLteEnbPhySapUser class friend access | |
class | EnbMacMemberLteMacSapProvider< LteEnbMac > |
allow EnbMacMemberLteMacSapProvider<LteEnbMac> class friend access | |
class | MemberLteCcmMacSapProvider< LteEnbMac > |
allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | DoInitialize () |
Initialize() implementation. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
virtual void | NotifyConstructionCompleted () |
Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
This class implements the MAC layer of the eNodeB device.
Definition at line 46 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 155 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 173 of file lte-enb-mac.h.
ns3::LteEnbMac::LteEnbMac | ( | ) |
Definition at line 351 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 363 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 854 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, 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 773 of file lte-enb-mac.cc.
References ns3::CreateObject(), ns3::FfMacCschedSapProvider::CschedUeConfigReq(), m_cschedSapProvider, m_miDlHarqProcessesPackets, m_rlcAttached, 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 946 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 760 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedCellConfigReq(), ns3::LteEnbPhySapProvider::GetMacChTtiDelay(), m_cschedSapProvider, m_enbPhySapProvider, m_macChTtiDelay, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ConfigureMac().
|
private |
CSched Cell Config configure function.
params | FfMacCschedSapUser::CschedCellConfigCnfParameters |
Definition at line 1223 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 1266 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 1235 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 1243 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 1229 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 1255 of file lte-enb-mac.cc.
References m_cmacSapUser, ns3::LteEnbCmacSapUser::UeConfig::m_rnti, 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 1249 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 369 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 1280 of file lte-enb-mac.cc.
References ns3::DlInfoListElement_s::ACK, ns3::CreateObject(), m_dlInfoListReceived, m_miDlHarqProcessesPackets, ns3::DlInfoListElement_s::NACK, NS_ASSERT, NS_FATAL_ERROR, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::DlInfoListElementHarqFeedback(), and DoReceiveLteControlMessage().
|
private |
Get RACH configuration function.
Definition at line 935 of file lte-enb-mac.cc.
References m_connEstFailCount, m_numberOfRaPreambles, m_preambleTransMax, and m_raResponseWindowSize.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::GetRachConfig().
|
private |
Receive a DL CQI ideal control message.
msg | the DL CQI message |
Definition at line 620 of file lte-enb-mac.cc.
References ns3::LteControlMessage::BSR, ns3::LteControlMessage::DL_CQI, ns3::LteControlMessage::DL_HARQ, DoDlInfoListElementHarqFeedback(), ns3::DynamicCast(), 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 698 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, and ns3::LteMacSapUser::ReceivePduParameters::rnti.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceivePhyPdu().
|
private |
Receive RACH Preamble function.
prachId | PRACH ID number |
Definition at line 647 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 901 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 907 of file lte-enb-mac.cc.
References ns3::FfMacCschedSapProvider::CschedLcReleaseReq(), m_cschedSapProvider, m_rlcAttached, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ReleaseLc().
|
private |
Remove UE function.
rnti | the RNTI |
Definition at line 810 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, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::RemoveUe().
|
private |
Report Buffer Status function.
params | LteMacSapProvider::ReportBufferStatusParameters |
Definition at line 1029 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, and ns3::FfMacSchedSapProvider::SchedDlRlcBufferReq().
|
private |
Report MAC CE to scheduler.
bsr | the BSR |
Definition at line 687 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 343 of file lte-enb-mac.h.
|
private |
Sched DL Config Indication function.
ind | FfMacSchedSapUser::SchedDlConfigIndParameters |
Definition at line 1048 of file lte-enb-mac.cc.
References ns3::LteMacSapUser::TxOpportunityParameters::bytes, ns3::DlSchedulingCallbackInfo::componentCarrierId, ns3::LteMacSapUser::TxOpportunityParameters::componentCarrierId, ns3::Create(), ns3::CreateObject(), ns3::DlSchedulingCallbackInfo::frameNo, ns3::LteMacSapUser::TxOpportunityParameters::harqId, 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 1194 of file lte-enb-mac.cc.
References ns3::Create(), 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().
Subrame Indication function.
frameNo | frame number |
subframeNo | subframe number |
Definition at line 465 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::SchedDlCqiInfoReqParameters::m_sfnSf, ns3::FfMacSchedSapProvider::SchedDlTriggerReqParameters::m_sfnSf, ns3::FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters::m_sfnSf, ns3::FfMacSchedSapProvider::SchedUlTriggerReqParameters::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 1011 of file lte-enb-mac.cc.
References ns3::LteRadioBearerTag::GetLayer(), m_componentCarrierId, m_enbPhySapProvider, m_miDlHarqProcessesPackets, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, and ns3::LteEnbPhySapProvider::SendMacPdu().
|
private |
UE Update configuration request function.
params | LteEnbCmacSapProvider::UeConfig |
Definition at line 922 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, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::UeUpdateConfigurationReq().
|
private |
UL CQI report.
ulcqi | FfMacSchedSapProvider::SchedUlCqiInfoReqParameters |
Definition at line 655 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 1273 of file lte-enb-mac.cc.
References m_ulInfoListReceived, and NS_LOG_FUNCTION.
Referenced by ns3::EnbMacMemberLteEnbPhySapUser::UlInfoListElementHarqFeedback().
FfMacCschedSapUser * ns3::LteEnbMac::GetFfMacCschedSapUser | ( | ) |
Get the control scheduler SAP user.
Definition at line 411 of file lte-enb-mac.cc.
References m_cschedSapUser.
FfMacSchedSapUser * ns3::LteEnbMac::GetFfMacSchedSapUser | ( | ) |
Get the scheduler SAP user.
Definition at line 399 of file lte-enb-mac.cc.
References m_schedSapUser.
LteCcmMacSapProvider * ns3::LteEnbMac::GetLteCcmMacSapProvider | ( | ) |
Get the eNB-ComponentCarrierManager SAP User.
Definition at line 459 of file lte-enb-mac.cc.
References m_ccmMacSapProvider.
LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider | ( | ) |
Get the control MAC SAP provider.
Definition at line 435 of file lte-enb-mac.cc.
References m_cmacSapProvider.
LteEnbPhySapUser * ns3::LteEnbMac::GetLteEnbPhySapUser | ( | ) |
Get the eNB-PHY SAP User.
Definition at line 447 of file lte-enb-mac.cc.
References m_enbPhySapUser.
LteMacSapProvider * ns3::LteEnbMac::GetLteMacSapProvider | ( | ) |
Get the MAC SAP provider.
Definition at line 423 of file lte-enb-mac.cc.
References m_macSapProvider.
|
static |
Get the type ID.
Definition at line 305 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(), ns3::MakeUintegerChecker(), and ns3::TypeId::SetParent().
|
private |
Receive a CE element containing the buffer status report.
bsr | the BSR message |
Definition at line 680 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 669 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 387 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 405 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 393 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 453 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 429 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 441 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 417 of file lte-enb-mac.cc.
References m_macSapUser.
|
friend |
allow EnbMacMemberFfMacCschedSapUser class friend access
Definition at line 55 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberFfMacSchedSapUser class friend access
Definition at line 53 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteEnbCmacSapProvider class friend access
Definition at line 49 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteEnbPhySapUser class friend access
Definition at line 57 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow EnbMacMemberLteMacSapProvider<LteEnbMac> class friend access
Definition at line 49 of file lte-enb-mac.h.
Referenced by LteEnbMac().
|
friend |
allow MemberLteCcmMacSapProvider<LteEnbMac> class friend access
Definition at line 57 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 447 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoRemoveUe(), and DoSubframeIndication().
|
private |
CCM MAC SAP provider.
Definition at line 398 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteCcmMacSapProvider().
|
private |
CCM MAC SAP user.
Definition at line 399 of file lte-enb-mac.h.
Referenced by ReceiveBsrMessage(), and SetLteCcmMacSapUser().
|
private |
the CMAC SAP provider
Definition at line 384 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteEnbCmacSapProvider().
|
private |
the CMAC SAP user
Definition at line 386 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoCschedUeConfigUpdateInd(), DoSubframeIndication(), and SetLteEnbCmacSapUser().
|
private |
component carrier Id used to address sap
Definition at line 454 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 429 of file lte-enb-mac.h.
Referenced by DoGetRachConfig(), and GetTypeId().
|
private |
the Csched SAP provider
Definition at line 389 of file lte-enb-mac.h.
Referenced by DoAddLc(), DoAddUe(), DoConfigureMac(), DoReleaseLc(), DoRemoveUe(), DoUeUpdateConfigurationReq(), and SetFfMacCschedSapProvider().
|
private |
the CSched SAP user
Definition at line 391 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetFfMacCschedSapUser().
|
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 374 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 413 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and GetTypeId().
|
private |
the ENB Phy SAP provider
Definition at line 394 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), DoSchedDlConfigInd(), DoSchedUlConfigInd(), DoTransmitPdu(), and SetLteEnbPhySapProvider().
|
private |
the ENB Phy SAP user
Definition at line 395 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetLteEnbPhySapUser().
|
private |
frame number of current subframe indication
Definition at line 403 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 421 of file lte-enb-mac.h.
Referenced by DoConfigureMac(), and DoSubframeIndication().
|
private |
the MAC SAP provider
Definition at line 383 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 424 of file lte-enb-mac.h.
Referenced by DoAddUe(), DoDispose(), DoDlInfoListElementHarqFeedback(), DoRemoveUe(), DoSchedDlConfigInd(), and DoTransmitPdu().
|
private |
number of RA preambles
Definition at line 426 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
preamble transmit maximum
Definition at line 427 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
RAPID RNTI map.
Definition at line 451 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), and DoSubframeIndication().
|
private |
RA response window size.
Definition at line 428 of file lte-enb-mac.h.
Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().
|
private |
received RACH preamble count
Definition at line 449 of file lte-enb-mac.h.
Referenced by DoReceiveRachPreamble(), DoRemoveUe(), and DoSubframeIndication().
|
private |
RNTI, LC ID, 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 388 of file lte-enb-mac.h.
Referenced by DoReportBufferStatus(), DoSubframeIndication(), and SetFfMacSchedSapProvider().
|
private |
the Sched SAP user
Definition at line 390 of file lte-enb-mac.h.
Referenced by LteEnbMac(), DoDispose(), and GetFfMacSchedSapUser().
|
private |
subframe number of current subframe indication
Definition at line 407 of file lte-enb-mac.h.
Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().
|
private |
CE received (BSR up to now)
Definition at line 372 of file lte-enb-mac.h.
Referenced by DoDispose(), DoRemoveUe(), DoReportMacCeToScheduler(), and DoSubframeIndication().
|
private |
UL-CQI received.
Definition at line 371 of file lte-enb-mac.h.
Referenced by DoDispose(), DoSubframeIndication(), and DoUlCqiReport().
|
private |
UL HARQ feedback received.
Definition at line 376 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 419 of file lte-enb-mac.h.
Referenced by DoSchedUlConfigInd(), and GetTypeId().