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

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 Initialize (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)
 
- 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 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 DoInitialize (void)
 
virtual void NotifyNewAggregate (void)
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Detailed Description

Virtual class for uplink scheduler.

Config Paths

ns3::UplinkScheduler 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 are defined for this type.
No TraceSources are defined for this type.

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

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.

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

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

References m_isIrIntrvlAllocated.

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

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
virtual void ns3::UplinkScheduler::OnSetRequestedBandwidth ( ServiceFlowRecord sfr)
pure virtual
virtual void ns3::UplinkScheduler::ProcessBandwidthRequest ( const BandwidthRequestHeader bwRequestHdr)
pure virtual
virtual void ns3::UplinkScheduler::Schedule ( void  )
pure virtual
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: