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

Virtual class for uplink scheduler. More...

#include <bs-uplink-scheduler.h>

+ Inheritance diagram for ns3::UplinkScheduler:
+ Collaboration diagram for ns3::UplinkScheduler:

Public Member Functions

 UplinkScheduler (void)
 UplinkScheduler (Ptr< BaseStationNetDevice > bs)
virtual ~UplinkScheduler (void)
virtual void AddUplinkAllocation (OfdmUlMapIe &ulMapIe, const uint32_t &allocationSize, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
virtual void AllocateInitialRangingInterval (uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
virtual uint32_t CalculateAllocationStartTime (void)=0
virtual Ptr< BaseStationNetDeviceGetBs (void)
virtual void GetChannelDescriptorsToUpdate (bool &, bool &, bool &, bool &)=0
virtual Time GetDcdTimeStamp (void) const
virtual bool GetIsInvIrIntrvlAllocated (void) const
virtual bool GetIsIrIntrvlAllocated (void) const
virtual uint8_t GetNrIrOppsAllocated (void) const
virtual Time GetTimeStampIrInterval (void)
virtual Time GetUcdTimeStamp (void) const
virtual std::list< OfdmUlMapIeGetUplinkAllocations (void) const
virtual void InitOnce (void)=0
virtual void OnSetRequestedBandwidth (ServiceFlowRecord *sfr)=0
virtual void ProcessBandwidthRequest (const BandwidthRequestHeader &bwRequestHdr)=0
virtual void Schedule (void)=0
virtual void ServiceBandwidthRequests (const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
virtual bool ServiceBandwidthRequests (ServiceFlow *serviceFlow, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
virtual void ServiceUnsolicitedGrants (const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
virtual void SetBs (Ptr< BaseStationNetDevice > bs)
virtual void SetDcdTimeStamp (Time dcdTimeStamp)
virtual void SetIsInvIrIntrvlAllocated (bool isInvIrIntrvlAllocated)
virtual void SetIsIrIntrvlAllocated (bool isIrIntrvlAllocated)
virtual void SetNrIrOppsAllocated (uint8_t nrIrOppsAllocated)
virtual void SetTimeStampIrInterval (Time timeStampIrInterval)
virtual void SetUcdTimeStamp (Time ucdTimeStamp)
virtual void SetupServiceFlow (SSRecord *ssRecord, ServiceFlow *serviceFlow)=0
- Public Member Functions inherited from ns3::Object
 Object ()
virtual ~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 Start (void)
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 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
virtual ~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)
 This method returns the TypeId associated to ns3::UplinkScheduler.

Private Attributes

Ptr< BaseStationNetDevicem_bs
Time m_dcdTimeStamp
bool m_isInvIrIntrvlAllocated
bool m_isIrIntrvlAllocated
uint8_t m_nrIrOppsAllocated
Time m_timeStampIrInterval
Time m_ucdTimeStamp
std::list< OfdmUlMapIem_uplinkAllocations

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoDispose (void)
virtual void DoStart (void)
virtual void NotifyNewAggregate (void)

Detailed Description

Virtual class for uplink scheduler.

Definition at line 42 of file bs-uplink-scheduler.h.

Constructor & Destructor Documentation

ns3::UplinkScheduler::UplinkScheduler ( void  )

Definition at line 41 of file bs-uplink-scheduler.cc.

ns3::UplinkScheduler::UplinkScheduler ( Ptr< BaseStationNetDevice bs)

Definition at line 52 of file bs-uplink-scheduler.cc.

ns3::UplinkScheduler::~UplinkScheduler ( void  )
virtual

Definition at line 63 of file bs-uplink-scheduler.cc.

References m_bs, and m_uplinkAllocations.

Member Function Documentation

virtual void ns3::UplinkScheduler::AddUplinkAllocation ( OfdmUlMapIe ulMapIe,
const uint32_t &  allocationSize,
uint32_t &  symbolsToAllocation,
uint32_t &  availableSymbols 
)
pure virtual
virtual void ns3::UplinkScheduler::AllocateInitialRangingInterval ( uint32_t &  symbolsToAllocation,
uint32_t &  availableSymbols 
)
pure virtual
virtual uint32_t ns3::UplinkScheduler::CalculateAllocationStartTime ( void  )
pure virtual

Implemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Referenced by ns3::BaseStationNetDevice::CreateUlMap().

+ Here is the caller graph for this function:

Ptr< BaseStationNetDevice > ns3::UplinkScheduler::GetBs ( void  )
virtual

Definition at line 164 of file bs-uplink-scheduler.cc.

References m_bs.

Referenced by ns3::UplinkSchedulerSimple::AllocateInitialRangingInterval(), ns3::UplinkSchedulerMBQoS::AllocateInitialRangingInterval(), ns3::UplinkSchedulerRtps::AllocateInitialRangingInterval(), ns3::UplinkSchedulerSimple::CalculateAllocationStartTime(), ns3::UplinkSchedulerRtps::CalculateAllocationStartTime(), ns3::UplinkSchedulerMBQoS::CalculateAllocationStartTime(), ns3::UplinkSchedulerMBQoS::CheckDeadline(), ns3::UplinkSchedulerMBQoS::CheckMinimumBandwidth(), ns3::UplinkSchedulerMBQoS::CountSymbolsJobs(), ns3::UplinkSchedulerSimple::GetChannelDescriptorsToUpdate(), ns3::UplinkSchedulerRtps::GetChannelDescriptorsToUpdate(), ns3::UplinkSchedulerMBQoS::GetChannelDescriptorsToUpdate(), ns3::UplinkSchedulerMBQoS::ProcessBandwidthRequest(), ns3::UplinkSchedulerSimple::Schedule(), ns3::UplinkSchedulerRtps::Schedule(), ns3::UplinkSchedulerMBQoS::Schedule(), ns3::UplinkSchedulerSimple::ServiceBandwidthRequests(), ns3::UplinkSchedulerRtps::ServiceBandwidthRequests(), ns3::UplinkSchedulerMBQoS::ServiceBandwidthRequests(), ns3::UplinkSchedulerMBQoS::ServiceBandwidthRequestsBytes(), ns3::UplinkSchedulerSimple::ServiceUnsolicitedGrants(), ns3::UplinkSchedulerRtps::ServiceUnsolicitedGrants(), ns3::UplinkSchedulerMBQoS::ServiceUnsolicitedGrants(), ns3::UplinkSchedulerSimple::SetupServiceFlow(), ns3::UplinkSchedulerMBQoS::SetupServiceFlow(), ns3::UplinkSchedulerRtps::SetupServiceFlow(), ns3::UplinkSchedulerRtps::ULSchedulerRTPSConnection(), and ns3::UplinkSchedulerMBQoS::UplinkSchedWindowTimer().

+ Here is the caller graph for this function:

virtual void ns3::UplinkScheduler::GetChannelDescriptorsToUpdate ( bool &  ,
bool &  ,
bool &  ,
bool &   
)
pure virtual

Determines if channel descriptors sent in the current frame are required to be updated

Implemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Referenced by ns3::BaseStationNetDevice::CreateMapMessages().

+ Here is the caller graph for this function:

Time ns3::UplinkScheduler::GetDcdTimeStamp ( void  ) const
virtual
bool ns3::UplinkScheduler::GetIsInvIrIntrvlAllocated ( void  ) const
virtual

Definition at line 109 of file bs-uplink-scheduler.cc.

References m_isInvIrIntrvlAllocated.

Referenced by ns3::BSLinkManager::ProcessRangingRequest().

+ Here is the caller graph for this function:

bool ns3::UplinkScheduler::GetIsIrIntrvlAllocated ( void  ) const
virtual

Definition at line 96 of file bs-uplink-scheduler.cc.

References m_isIrIntrvlAllocated.

Referenced by ns3::BSLinkManager::ProcessRangingRequest().

+ Here is the caller graph for this function:

uint8_t ns3::UplinkScheduler::GetNrIrOppsAllocated ( void  ) const
virtual
Time ns3::UplinkScheduler::GetTimeStampIrInterval ( void  )
virtual
TypeId ns3::UplinkScheduler::GetTypeId ( void  )
static

This method returns the TypeId associated to ns3::UplinkScheduler.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/UplinkScheduler
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler

No Attributes defined for this type.
No TraceSources defined for this type.

Reimplemented from ns3::Object.

Reimplemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Definition at line 75 of file bs-uplink-scheduler.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

Time ns3::UplinkScheduler::GetUcdTimeStamp ( void  ) const
virtual
std::list< OfdmUlMapIe > ns3::UplinkScheduler::GetUplinkAllocations ( void  ) const
virtual
void ns3::UplinkScheduler::InitOnce ( void  )
pure virtual

Implemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Definition at line 69 of file bs-uplink-scheduler.cc.

Referenced by ns3::BaseStationNetDevice::Start().

+ Here is the caller graph for this function:

virtual void ns3::UplinkScheduler::OnSetRequestedBandwidth ( ServiceFlowRecord sfr)
pure virtual

Implemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Referenced by ns3::BandwidthManager::ProcessBandwidthRequest().

+ Here is the caller graph for this function:

virtual void ns3::UplinkScheduler::ProcessBandwidthRequest ( const BandwidthRequestHeader bwRequestHdr)
pure virtual

Implemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Referenced by ns3::BandwidthManager::ProcessBandwidthRequest().

+ Here is the caller graph for this function:

virtual void ns3::UplinkScheduler::Schedule ( void  )
pure virtual

Implemented in ns3::UplinkSchedulerMBQoS, ns3::UplinkSchedulerRtps, and ns3::UplinkSchedulerSimple.

Referenced by ns3::BaseStationNetDevice::StartDlSubFrame().

+ Here is the caller graph for this function:

virtual void ns3::UplinkScheduler::ServiceBandwidthRequests ( const SSRecord ssRecord,
enum ServiceFlow::SchedulingType  schedulingType,
OfdmUlMapIe ulMapIe,
const WimaxPhy::ModulationType  modulationType,
uint32_t &  symbolsToAllocation,
uint32_t &  availableSymbols 
)
pure virtual
virtual bool ns3::UplinkScheduler::ServiceBandwidthRequests ( ServiceFlow serviceFlow,
enum ServiceFlow::SchedulingType  schedulingType,
OfdmUlMapIe ulMapIe,
const WimaxPhy::ModulationType  modulationType,
uint32_t &  symbolsToAllocation,
uint32_t &  availableSymbols 
)
pure virtual
virtual void ns3::UplinkScheduler::ServiceUnsolicitedGrants ( const SSRecord ssRecord,
enum ServiceFlow::SchedulingType  schedulingType,
OfdmUlMapIe ulMapIe,
const WimaxPhy::ModulationType  modulationType,
uint32_t &  symbolsToAllocation,
uint32_t &  availableSymbols 
)
pure virtual
void ns3::UplinkScheduler::SetIsInvIrIntrvlAllocated ( bool  isInvIrIntrvlAllocated)
virtual
virtual void ns3::UplinkScheduler::SetupServiceFlow ( SSRecord ssRecord,
ServiceFlow serviceFlow 
)
pure virtual

Member Data Documentation

Ptr<BaseStationNetDevice> ns3::UplinkScheduler::m_bs
private

Definition at line 111 of file bs-uplink-scheduler.h.

Referenced by GetBs(), SetBs(), and ~UplinkScheduler().

Time ns3::UplinkScheduler::m_dcdTimeStamp
private

Definition at line 117 of file bs-uplink-scheduler.h.

Referenced by GetDcdTimeStamp(), and SetDcdTimeStamp().

bool ns3::UplinkScheduler::m_isInvIrIntrvlAllocated
private

Definition at line 116 of file bs-uplink-scheduler.h.

Referenced by GetIsInvIrIntrvlAllocated(), and SetIsInvIrIntrvlAllocated().

bool ns3::UplinkScheduler::m_isIrIntrvlAllocated
private

Definition at line 115 of file bs-uplink-scheduler.h.

Referenced by GetIsIrIntrvlAllocated(), and SetIsIrIntrvlAllocated().

uint8_t ns3::UplinkScheduler::m_nrIrOppsAllocated
private

Definition at line 114 of file bs-uplink-scheduler.h.

Referenced by GetNrIrOppsAllocated(), and SetNrIrOppsAllocated().

Time ns3::UplinkScheduler::m_timeStampIrInterval
private

Definition at line 113 of file bs-uplink-scheduler.h.

Referenced by GetTimeStampIrInterval(), and SetTimeStampIrInterval().

Time ns3::UplinkScheduler::m_ucdTimeStamp
private

Definition at line 118 of file bs-uplink-scheduler.h.

Referenced by GetUcdTimeStamp(), and SetUcdTimeStamp().

std::list<OfdmUlMapIe> ns3::UplinkScheduler::m_uplinkAllocations
private

Definition at line 112 of file bs-uplink-scheduler.h.

Referenced by GetUplinkAllocations(), and ~UplinkScheduler().


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