A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::LteEnbMac Class Reference

#include <lte-enb-mac.h>

+ Inheritance diagram for ns3::LteEnbMac:

Classes

struct  NcRaPreambleInfo
 

Public Member Functions

virtual void DoDispose (void)
 
void DoReceivePhyPdu (Ptr< Packet > p)
 
FfMacCschedSapUserGetFfMacCschedSapUser (void)
 Get the control scheduler SAP user. More...
 
FfMacSchedSapUserGetFfMacSchedSapUser (void)
 Get the scheduler SAP user. More...
 
LteEnbCmacSapProviderGetLteEnbCmacSapProvider (void)
 Get the control MAC SAP provider. More...
 
LteEnbPhySapUserGetLteEnbPhySapUser ()
 Get the eNB-PHY SAP User. More...
 
LteMacSapProviderGetLteMacSapProvider (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
 
SimpleRefCountoperator= (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
 
LteEnbCmacSapProviderm_cmacSapProvider
 
LteEnbCmacSapUserm_cmacSapUser
 
FfMacCschedSapProviderm_cschedSapProvider
 
FfMacCschedSapUserm_cschedSapUser
 
std::vector< CqiListElement_sm_dlCqiReceived
 
std::vector< DlInfoListElement_sm_dlInfoListReceived
 
TracedCallback< uint32_t,
uint32_t, uint16_t, uint8_t,
uint16_t, uint8_t, uint16_t > 
m_dlScheduling
 
LteEnbPhySapProviderm_enbPhySapProvider
 
LteEnbPhySapUserm_enbPhySapUser
 
uint32_t m_frameNo
 
uint8_t m_macChTtiDelay
 
LteMacSapProviderm_macSapProvider
 
LteMacSapUserm_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
 
FfMacSchedSapProviderm_schedSapProvider
 
FfMacSchedSapUserm_schedSapUser
 
uint32_t m_subframeNo
 
std::vector< MacCeListElement_sm_ulCeReceived
 
std::vector
< FfMacSchedSapProvider::SchedUlCqiInfoReqParameters
m_ulCqiReceived
 
std::vector< UlInfoListElement_sm_ulInfoListReceived
 
TracedCallback< uint32_t,
uint32_t, uint16_t, uint8_t,
uint16_t > 
m_ulScheduling
 

Friends

class EnbMacMemberFfMacCschedSapUser
 
class EnbMacMemberFfMacSchedSapUser
 
class EnbMacMemberLteEnbCmacSapProvider
 
class EnbMacMemberLteEnbPhySapUser
 
class EnbMacMemberLteMacSapProvider< LteEnbMac >
 

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)
 

Detailed Description

This class implements the MAC layer of the eNodeB device

Config Paths

ns3::LteEnbMac is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::LteEnbNetDevice/LteEnbMac
  • /NodeList/[i]/DeviceList/[i]/$ns3::LteNetDevice/$ns3::LteEnbNetDevice/LteEnbMac

Attributes

  • NumberOfRaPreambles: how many random access preambles are available for the contention based RACH process
  • PreambleTransMax: Maximum number of random access preamble transmissions
  • RaResponseWindowSize: length of the window (in TTIs) for the reception of the random access response (RAR); the resulting RAR timeout is this value + 3 ms

TraceSources

  • DlScheduling: Information regarding DL scheduling.
  • UlScheduling: Information regarding UL scheduling.

Definition at line 50 of file lte-enb-mac.h.

Member Function Documentation

void ns3::LteEnbMac::DoDispose ( void  )
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.

Returns
a pointer to 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.

Returns
a pointer to the SAP user of the scheduler

Definition at line 387 of file lte-enb-mac.cc.

LteEnbCmacSapProvider * ns3::LteEnbMac::GetLteEnbCmacSapProvider ( void  )

Get the control MAC SAP provider.

Returns
a pointer to 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.

Returns
a pointer to the SAP User of the PHY

Definition at line 438 of file lte-enb-mac.cc.

LteMacSapProvider * ns3::LteEnbMac::GetLteMacSapProvider ( void  )

Get the MAC SAP provider.

Returns
a pointer to the SAP provider of the MAC

Definition at line 413 of file lte-enb-mac.cc.

void ns3::LteEnbMac::ReceiveBsrMessage ( MacCeListElement_s  bsr)
private

Receive a CE element containing the buffer status report.

Parameters
msgthe BSR message

Definition at line 657 of file lte-enb-mac.cc.

References NS_LOG_FUNCTION.

void ns3::LteEnbMac::ReceiveDlCqiLteControlMessage ( Ptr< DlCqiLteControlMessage msg)
private

Receive a DL CQI ideal control message.

Parameters
msgthe 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.

Parameters
sa 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.

Parameters
sa 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.

Parameters
sa 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.

Parameters
sa 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.

Parameters
sa pointer to the MAC SAP user

Definition at line 407 of file lte-enb-mac.cc.

Member Data Documentation

std::map<uint8_t, NcRaPreambleInfo> ns3::LteEnbMac::m_allocatedNcRaPreambleMap
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.

TracedCallback<uint32_t, uint32_t, uint16_t, uint8_t, uint16_t, uint8_t, uint16_t> ns3::LteEnbMac::m_dlScheduling
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.

TracedCallback<uint32_t, uint32_t, uint16_t, uint8_t, uint16_t> ns3::LteEnbMac::m_ulScheduling
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.


The documentation for this class was generated from the following files: