A Discrete-Event Network Simulator
API
ns3::LteEnbMac Class Reference

This class implements the MAC layer of the eNodeB device. More...

#include "lte-enb-mac.h"

+ Inheritance diagram for ns3::LteEnbMac:
+ Collaboration diagram for ns3::LteEnbMac:

Classes

struct  NcRaPreambleInfo
 info associated with a preamble allocated for non-contention based RA More...
 

Public Types

typedef void(* DlSchedulingTracedCallback) (uint32_t frame, uint32_t subframe, uint16_t rnti, uint8_t mcs0, uint16_t tbs0Size, uint8_t mcs1, uint16_t tbs1Size)
 TracedCallback signature for DL scheduling events. More...
 
typedef void(* UlSchedulingTracedCallback) (uint32_t frame, uint32_t subframe, uint16_t rnti, uint8_t mcs, 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)
 
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
 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
 Implement the GetInstanceTypeId method defined in ObjectBase. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. 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)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

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, NcRaPreambleInfom_allocatedNcRaPreambleMap
 map storing as key the random acccess preamble IDs allocated for non-contention based access, and as value the associated info More...
 
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
 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...
 
LteEnbPhySapProviderm_enbPhySapProvider
 
LteEnbPhySapUserm_enbPhySapUser
 
uint32_t m_frameNo
 
uint8_t m_macChTtiDelay
 
LteMacSapProviderm_macSapProvider
 
LteMacSapUserm_macSapUser
 
std::map< uint16_t, DlHarqProcessesBuffer_tm_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::SchedUlCqiInfoReqParametersm_ulCqiReceived
 
std::vector< UlInfoListElement_sm_ulInfoListReceived
 
TracedCallback< uint32_t, uint32_t, uint16_t, uint8_t, uint16_t > m_ulScheduling
 Trace information regarding UL scheduling Frame number, Subframe number, RNTI, MCS of TB, size of TB. More...
 

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)
 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...
 

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::LteNetDevice/$ns3::LteEnbNetDevice/LteEnbMac"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::LteEnbNetDevice/LteEnbMac"

Attributes

  • NumberOfRaPreambles: how many random access preambles are available for the contention based RACH process
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 4:64
    • Initial value: 50
    • Flags: construct write read
  • PreambleTransMax: Maximum number of random access preamble transmissions
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 3:200
    • Initial value: 50
    • Flags: construct write read
  • 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
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 2:10
    • Initial value: 3
    • Flags: construct write read

TraceSources

Size of this type is 528 bytes (on a 64-bit architecture).

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

Member Typedef Documentation

typedef void(* ns3::LteEnbMac::DlSchedulingTracedCallback) (uint32_t frame, uint32_t subframe, uint16_t rnti, uint8_t mcs0, uint16_t tbs0Size, uint8_t mcs1, uint16_t tbs1Size)

TracedCallback signature for DL scheduling events.

Parameters
[in]frameFrame number.
[in]subframeSubframe number.
[in]rntiThe C-RNTI identifying the UE.
[in]mcs0The MCS for transport block..
[in]tbs0Size
[in]mcs1The MCS for transport block.
[in]tbs1Size

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

typedef void(* ns3::LteEnbMac::UlSchedulingTracedCallback) (uint32_t frame, uint32_t subframe, uint16_t rnti, uint8_t mcs, uint16_t tbsSize)

TracedCallback signature for UL scheduling events.

Parameters
[in]frameFrame number.
[in]subframeSubframe number.
[in]rntiThe C-RNTI identifying the UE.
[in]mcsThe MCS for transport block
[in]tbsSize

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

Constructor & Destructor Documentation

ns3::LteEnbMac::~LteEnbMac ( void  )
virtual

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

References NS_LOG_FUNCTION.

Member Function Documentation

void ns3::LteEnbMac::DoAddLc ( LteEnbCmacSapProvider::LcInfo  lcinfo,
LteMacSapUser msu 
)
private

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

References ns3::FfMacCschedSapProvider::CschedLcConfigReq(), ns3::LogicalChannelConfigListElement_s::DIR_BOTH, ns3::LteEnbCmacSapProvider::LcInfo::gbrDl, ns3::LteEnbCmacSapProvider::LcInfo::gbrUl, ns3::LteEnbCmacSapProvider::LcInfo::isGbr, ns3::LteEnbCmacSapProvider::LcInfo::lcGroup, ns3::LteEnbCmacSapProvider::LcInfo::lcId, m_cschedSapProvider, ns3::LogicalChannelConfigListElement_s::m_direction, ns3::LogicalChannelConfigListElement_s::m_eRabGuaranteedBitrateDl, ns3::LogicalChannelConfigListElement_s::m_eRabGuaranteedBitrateUl, ns3::LogicalChannelConfigListElement_s::m_eRabMaximulBitrateDl, ns3::LogicalChannelConfigListElement_s::m_eRabMaximulBitrateUl, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_logicalChannelConfigList, ns3::LogicalChannelConfigListElement_s::m_logicalChannelGroup, ns3::LogicalChannelConfigListElement_s::m_logicalChannelIdentity, ns3::LogicalChannelConfigListElement_s::m_qci, ns3::LogicalChannelConfigListElement_s::m_qosBearerType, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_reconfigureFlag, m_rlcAttached, ns3::FfMacCschedSapProvider::CschedLcConfigReqParameters::m_rnti, ns3::LteEnbCmacSapProvider::LcInfo::mbrDl, ns3::LteEnbCmacSapProvider::LcInfo::mbrUl, NS_ASSERT_MSG, NS_LOG_ERROR, NS_LOG_FUNCTION, ns3::LogicalChannelConfigListElement_s::QBT_GBR, ns3::LogicalChannelConfigListElement_s::QBT_NON_GBR, ns3::LteEnbCmacSapProvider::LcInfo::qci, and ns3::LteEnbCmacSapProvider::LcInfo::rnti.

Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::AddLc().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoConfigureMac ( uint8_t  ulBandwidth,
uint8_t  dlBandwidth 
)
private
void ns3::LteEnbMac::DoCschedCellConfigCnf ( FfMacCschedSapUser::CschedCellConfigCnfParameters  params)
private

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

References NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedCellConfigCnf().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoCschedCellConfigUpdateInd ( FfMacCschedSapUser::CschedCellConfigUpdateIndParameters  params)
private

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

References NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedCellConfigUpdateInd().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoCschedLcConfigCnf ( FfMacCschedSapUser::CschedLcConfigCnfParameters  params)
private

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

References NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedLcConfigCnf().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoCschedLcReleaseCnf ( FfMacCschedSapUser::CschedLcReleaseCnfParameters  params)
private

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

References NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedLcReleaseCnf().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoCschedUeConfigCnf ( FfMacCschedSapUser::CschedUeConfigCnfParameters  params)
private

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

References NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeConfigCnf().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoCschedUeReleaseCnf ( FfMacCschedSapUser::CschedUeReleaseCnfParameters  params)
private

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

References NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberFfMacCschedSapUser::CschedUeReleaseCnf().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoDispose ( void  )
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 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 365 of file lte-enb-mac.cc.

References 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.

void ns3::LteEnbMac::DoReceiveLteControlMessage ( Ptr< LteControlMessage msg)
private
void ns3::LteEnbMac::DoReceivePhyPdu ( Ptr< Packet p)

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

References ns3::LteRadioBearerTag::GetLcid(), ns3::LteRadioBearerTag::GetRnti(), m_rlcAttached, NS_ASSERT_MSG, NS_LOG_FUNCTION, and ns3::Packet::RemovePacketTag().

Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceivePhyPdu().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoReceiveRachPreamble ( uint8_t  prachId)
private

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

References m_receivedRachPreambleCount, and NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberLteEnbPhySapUser::ReceiveRachPreamble().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoReconfigureLc ( LteEnbCmacSapProvider::LcInfo  lcinfo)
private

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

References NS_FATAL_ERROR.

Referenced by ns3::EnbMacMemberLteEnbCmacSapProvider::ReconfigureLc().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoReleaseLc ( uint16_t  rnti,
uint8_t  lcid 
)
private
void ns3::LteEnbMac::DoRemoveUe ( uint16_t  rnti)
private
void ns3::LteEnbMac::DoSchedUlConfigInd ( FfMacSchedSapUser::SchedUlConfigIndParameters  params)
private
void ns3::LteEnbMac::DoSubframeIndication ( uint32_t  frameNo,
uint32_t  subframeNo 
)
private

Definition at line 448 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, MAX_CQI_LIST, 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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::LteEnbMac::DoUlInfoListElementHarqFeeback ( UlInfoListElement_s  params)
private

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

References m_ulInfoListReceived, and NS_LOG_FUNCTION.

Referenced by ns3::EnbMacMemberLteEnbPhySapUser::UlInfoListElementHarqFeeback().

+ Here is the caller graph for this function:

FfMacCschedSapUser * ns3::LteEnbMac::GetFfMacCschedSapUser ( void  )

Get the control scheduler SAP user.

Returns
a pointer to the control scheduler SAP user

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

References m_cschedSapUser.

FfMacSchedSapUser * ns3::LteEnbMac::GetFfMacSchedSapUser ( void  )

Get the scheduler SAP user.

Returns
a pointer to the SAP user of the scheduler

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

References m_schedSapUser.

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

Get the control MAC SAP provider.

Returns
a pointer to the control MAC SAP provider

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

References m_cmacSapProvider.

LteEnbPhySapUser * ns3::LteEnbMac::GetLteEnbPhySapUser ( )

Get the eNB-PHY SAP User.

Returns
a pointer to the SAP User of the PHY

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

References m_enbPhySapUser.

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

Get the MAC SAP provider.

Returns
a pointer to the SAP provider of the MAC

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

References m_macSapProvider.

TypeId ns3::LteEnbMac::GetTypeId ( void  )
static
void ns3::LteEnbMac::ReceiveBsrMessage ( MacCeListElement_s  bsr)
private

Receive a CE element containing the buffer status report.

Parameters
bsrthe BSR message

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

References m_ulCeReceived, and NS_LOG_FUNCTION.

Referenced by DoReceiveLteControlMessage().

+ Here is the caller graph for this function:

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

Receive a DL CQI ideal control message.

Parameters
msgthe DL CQI message

Definition at line 650 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().

+ Here is the caller graph for this function:

void ns3::LteEnbMac::SetFfMacCschedSapProvider ( FfMacCschedSapProvider s)

Set the control scheduler SAP provider.

Parameters
sa pointer to the control scheduler SAP provider

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

References m_cschedSapProvider.

void ns3::LteEnbMac::SetFfMacSchedSapProvider ( FfMacSchedSapProvider s)

Set the scheduler SAP provider.

Parameters
sa pointer SAP provider of the FF packet scheduler

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

References m_schedSapProvider.

void ns3::LteEnbMac::SetLteEnbCmacSapUser ( LteEnbCmacSapUser s)

Set the control MAC SAP user.

Parameters
sa pointer to the control MAC SAP user

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

References m_cmacSapUser.

void ns3::LteEnbMac::SetLteEnbPhySapProvider ( LteEnbPhySapProvider s)

Set the PHY SAP Provider.

Parameters
sa pointer to the PHY SAP provider

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

References m_enbPhySapProvider.

void ns3::LteEnbMac::SetLteMacSapUser ( LteMacSapUser s)

Set the MAC SAP user.

Parameters
sa pointer to the MAC SAP user

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

References m_macSapUser.

Friends And Related Function Documentation

friend class EnbMacMemberFfMacCschedSapUser
friend

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

Referenced by LteEnbMac().

friend class EnbMacMemberFfMacSchedSapUser
friend

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

Referenced by LteEnbMac().

friend class EnbMacMemberLteEnbCmacSapProvider
friend

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

Referenced by LteEnbMac().

friend class EnbMacMemberLteEnbPhySapUser
friend

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

Referenced by LteEnbMac().

friend class EnbMacMemberLteMacSapProvider< LteEnbMac >
friend

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

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 288 of file lte-enb-mac.h.

Referenced by DoAllocateNcRaPreamble(), and DoSubframeIndication().

LteEnbCmacSapProvider* ns3::LteEnbMac::m_cmacSapProvider
private

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

Referenced by DoDispose(), GetLteEnbCmacSapProvider(), and LteEnbMac().

LteEnbCmacSapUser* ns3::LteEnbMac::m_cmacSapUser
private
FfMacCschedSapProvider* ns3::LteEnbMac::m_cschedSapProvider
private
FfMacCschedSapUser* ns3::LteEnbMac::m_cschedSapUser
private

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

Referenced by DoDispose(), GetFfMacCschedSapUser(), and LteEnbMac().

std::vector<CqiListElement_s> ns3::LteEnbMac::m_dlCqiReceived
private

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

Referenced by DoDispose(), DoSubframeIndication(), and ReceiveDlCqiLteControlMessage().

std::vector<DlInfoListElement_s> ns3::LteEnbMac::m_dlInfoListReceived
private

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

Referenced by DoDispose(), DoDlInfoListElementHarqFeeback(), and DoSubframeIndication().

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 256 of file lte-enb-mac.h.

Referenced by DoSchedDlConfigInd(), and GetTypeId().

LteEnbPhySapProvider* ns3::LteEnbMac::m_enbPhySapProvider
private
LteEnbPhySapUser* ns3::LteEnbMac::m_enbPhySapUser
private

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

Referenced by DoDispose(), GetLteEnbPhySapUser(), and LteEnbMac().

uint32_t ns3::LteEnbMac::m_frameNo
private

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

Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().

uint8_t ns3::LteEnbMac::m_macChTtiDelay
private

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

Referenced by DoConfigureMac(), and DoSubframeIndication().

LteMacSapProvider* ns3::LteEnbMac::m_macSapProvider
private

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

Referenced by DoDispose(), GetLteMacSapProvider(), and LteEnbMac().

LteMacSapUser* ns3::LteEnbMac::m_macSapUser
private

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

Referenced by SetLteMacSapUser().

std::map<uint16_t, DlHarqProcessesBuffer_t> ns3::LteEnbMac::m_miDlHarqProcessesPackets
private
uint8_t ns3::LteEnbMac::m_numberOfRaPreambles
private

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

Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().

uint8_t ns3::LteEnbMac::m_preambleTransMax
private

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

Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().

std::map<uint8_t, uint32_t> ns3::LteEnbMac::m_rapIdRntiMap
private

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

Referenced by DoSchedDlConfigInd(), and DoSubframeIndication().

uint8_t ns3::LteEnbMac::m_raResponseWindowSize
private

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

Referenced by DoAllocateNcRaPreamble(), DoGetRachConfig(), and GetTypeId().

std::map<uint8_t, uint32_t> ns3::LteEnbMac::m_receivedRachPreambleCount
private

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

Referenced by DoReceiveRachPreamble(), and DoSubframeIndication().

std::map<uint16_t, std::map<uint8_t, LteMacSapUser*> > ns3::LteEnbMac::m_rlcAttached
private
FfMacSchedSapProvider* ns3::LteEnbMac::m_schedSapProvider
private
FfMacSchedSapUser* ns3::LteEnbMac::m_schedSapUser
private

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

Referenced by DoDispose(), GetFfMacSchedSapUser(), and LteEnbMac().

uint32_t ns3::LteEnbMac::m_subframeNo
private

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

Referenced by DoSchedDlConfigInd(), DoSchedUlConfigInd(), and DoSubframeIndication().

std::vector<MacCeListElement_s> ns3::LteEnbMac::m_ulCeReceived
private

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

Referenced by DoDispose(), DoSubframeIndication(), and ReceiveBsrMessage().

std::vector<FfMacSchedSapProvider::SchedUlCqiInfoReqParameters> ns3::LteEnbMac::m_ulCqiReceived
private

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

Referenced by DoDispose(), DoSubframeIndication(), and DoUlCqiReport().

std::vector<UlInfoListElement_s> ns3::LteEnbMac::m_ulInfoListReceived
private

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

Referenced by DoDispose(), DoSubframeIndication(), and DoUlInfoListElementHarqFeeback().

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 262 of file lte-enb-mac.h.

Referenced by DoSchedUlConfigInd(), and GetTypeId().


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