#include <lte-enb-mac.h>
Classes | |
struct | NcRaPreambleInfo |
Public Member Functions | |
virtual void | DoDispose (void) |
void | DoReceivePhyPdu (Ptr< Packet > p) |
FfMacCschedSapUser * | GetFfMacCschedSapUser (void) |
Get the control scheduler SAP user. More... | |
FfMacSchedSapUser * | GetFfMacSchedSapUser (void) |
Get the scheduler 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 | SetFfMacCschedSapProvider (FfMacCschedSapProvider *s) |
Set the control scheduler SAP provider. More... | |
void | SetFfMacSchedSapProvider (FfMacSchedSapProvider *s) |
Set the scheduler SAP provider. 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 | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Private Member Functions | |
void | DoAddLc (LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser *msu) |
void | DoAddUe (uint16_t rnti) |
LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue | DoAllocateNcRaPreamble (uint16_t rnti) |
void | DoConfigureMac (uint8_t ulBandwidth, uint8_t dlBandwidth) |
void | DoCschedCellConfigCnf (FfMacCschedSapUser::CschedCellConfigCnfParameters params) |
void | DoCschedCellConfigUpdateInd (FfMacCschedSapUser::CschedCellConfigUpdateIndParameters params) |
void | DoCschedLcConfigCnf (FfMacCschedSapUser::CschedLcConfigCnfParameters params) |
void | DoCschedLcReleaseCnf (FfMacCschedSapUser::CschedLcReleaseCnfParameters params) |
void | DoCschedUeConfigCnf (FfMacCschedSapUser::CschedUeConfigCnfParameters params) |
void | DoCschedUeConfigUpdateInd (FfMacCschedSapUser::CschedUeConfigUpdateIndParameters params) |
void | DoCschedUeReleaseCnf (FfMacCschedSapUser::CschedUeReleaseCnfParameters params) |
void | DoDlInfoListElementHarqFeeback (DlInfoListElement_s params) |
LteEnbCmacSapProvider::RachConfig | DoGetRachConfig () |
void | DoReceiveLteControlMessage (Ptr< LteControlMessage > msg) |
void | DoReceiveRachPreamble (uint8_t prachId) |
void | DoReconfigureLc (LteEnbCmacSapProvider::LcInfo lcinfo) |
void | DoReleaseLc (uint16_t rnti, uint8_t lcid) |
void | DoRemoveUe (uint16_t rnti) |
void | DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters) |
void | DoSchedDlConfigInd (FfMacSchedSapUser::SchedDlConfigIndParameters ind) |
void | DoSchedUlConfigInd (FfMacSchedSapUser::SchedUlConfigIndParameters params) |
void | DoSubframeIndication (uint32_t frameNo, uint32_t subframeNo) |
void | DoTransmitPdu (LteMacSapProvider::TransmitPduParameters) |
void | DoUeUpdateConfigurationReq (LteEnbCmacSapProvider::UeConfig params) |
void | DoUlCqiReport (FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqi) |
void | DoUlInfoListElementHarqFeeback (UlInfoListElement_s params) |
void | ReceiveBsrMessage (MacCeListElement_s bsr) |
Receive a CE element containing the buffer status report. More... | |
void | ReceiveDlCqiLteControlMessage (Ptr< DlCqiLteControlMessage > msg) |
Receive a DL CQI ideal control message. More... | |
Private Attributes | |
std::map< uint8_t, NcRaPreambleInfo > | m_allocatedNcRaPreambleMap |
LteEnbCmacSapProvider * | m_cmacSapProvider |
LteEnbCmacSapUser * | m_cmacSapUser |
FfMacCschedSapProvider * | m_cschedSapProvider |
FfMacCschedSapUser * | m_cschedSapUser |
std::vector< CqiListElement_s > | m_dlCqiReceived |
std::vector< DlInfoListElement_s > | m_dlInfoListReceived |
TracedCallback< uint32_t, uint32_t, uint16_t, uint8_t, uint16_t, uint8_t, uint16_t > | m_dlScheduling |
LteEnbPhySapProvider * | m_enbPhySapProvider |
LteEnbPhySapUser * | m_enbPhySapUser |
uint32_t | m_frameNo |
uint8_t | m_macChTtiDelay |
LteMacSapProvider * | m_macSapProvider |
LteMacSapUser * | m_macSapUser |
std::map< uint16_t, DlHarqProcessesBuffer_t > | m_miDlHarqProcessesPackets |
uint8_t | m_numberOfRaPreambles |
uint8_t | m_preambleTransMax |
std::map< uint8_t, uint32_t > | m_rapIdRntiMap |
uint8_t | m_raResponseWindowSize |
std::map< uint8_t, uint32_t > | m_receivedRachPreambleCount |
std::map< uint16_t, std::map < uint8_t, LteMacSapUser * > > | m_rlcAttached |
FfMacSchedSapProvider * | m_schedSapProvider |
FfMacSchedSapUser * | m_schedSapUser |
uint32_t | m_subframeNo |
std::vector< MacCeListElement_s > | m_ulCeReceived |
std::vector < FfMacSchedSapProvider::SchedUlCqiInfoReqParameters > | m_ulCqiReceived |
std::vector< UlInfoListElement_s > | m_ulInfoListReceived |
TracedCallback< uint32_t, uint32_t, uint16_t, uint8_t, uint16_t > | m_ulScheduling |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This class implements the MAC layer of the eNodeB device
ns3::LteEnbMac is accessible through the following paths with Config::Set and Config::Connect:
Definition at line 50 of file lte-enb-mac.h.
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden 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 363 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
FfMacCschedSapUser * ns3::LteEnbMac::GetFfMacCschedSapUser | ( | void | ) |
Get the control scheduler SAP user.
Definition at line 399 of file lte-enb-mac.cc.
FfMacSchedSapUser * ns3::LteEnbMac::GetFfMacSchedSapUser | ( | void | ) |
Get the scheduler SAP user.
Definition at line 387 of file lte-enb-mac.cc.
LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider | ( | void | ) |
Get the control MAC SAP provider.
Definition at line 425 of file lte-enb-mac.cc.
LteEnbPhySapUser * ns3::LteEnbMac::GetLteEnbPhySapUser | ( | ) |
Get the eNB-PHY SAP User.
Definition at line 438 of file lte-enb-mac.cc.
LteMacSapProvider * ns3::LteEnbMac::GetLteMacSapProvider | ( | void | ) |
Get the MAC SAP provider.
Definition at line 413 of file lte-enb-mac.cc.
|
private |
Receive a CE element containing the buffer status report.
msg | the BSR message |
Definition at line 657 of file lte-enb-mac.cc.
References NS_LOG_FUNCTION.
|
private |
Receive a DL CQI ideal control message.
msg | the DL CQI message |
Definition at line 644 of file lte-enb-mac.cc.
References NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
void ns3::LteEnbMac::SetFfMacCschedSapProvider | ( | FfMacCschedSapProvider * | s | ) |
Set the control scheduler SAP provider.
s | a pointer to the control scheduler SAP provider |
Definition at line 393 of file lte-enb-mac.cc.
void ns3::LteEnbMac::SetFfMacSchedSapProvider | ( | FfMacSchedSapProvider * | s | ) |
Set the scheduler SAP provider.
s | a pointer SAP provider of the FF packet scheduler |
Definition at line 381 of file lte-enb-mac.cc.
void ns3::LteEnbMac::SetLteEnbCmacSapUser | ( | LteEnbCmacSapUser * | s | ) |
Set the control MAC SAP user.
s | a pointer to the control MAC SAP user |
Definition at line 419 of file lte-enb-mac.cc.
void ns3::LteEnbMac::SetLteEnbPhySapProvider | ( | LteEnbPhySapProvider * | s | ) |
Set the PHY SAP Provider.
s | a pointer to the PHY SAP provider |
Definition at line 431 of file lte-enb-mac.cc.
void ns3::LteEnbMac::SetLteMacSapUser | ( | LteMacSapUser * | s | ) |
Set the MAC SAP user.
s | a pointer to the MAC SAP user |
Definition at line 407 of file lte-enb-mac.cc.
|
private |
map storing as key the random acccess preamble IDs allocated for non-contention based access, and as value the associated info
Definition at line 258 of file lte-enb-mac.h.
|
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 227 of file lte-enb-mac.h.
|
private |
Trace information regarding UL scheduling Frame number, Subframe number, RNTI, MCS of TB, size of TB
Definition at line 232 of file lte-enb-mac.h.