A Discrete-Event Network Simulator
API
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)
 Constructor. More...
 
virtual ~UplinkScheduler (void)
 
virtual void AddUplinkAllocation (OfdmUlMapIe &ulMapIe, const uint32_t &allocationSize, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
 Add uplink allocation. More...
 
virtual void AllocateInitialRangingInterval (uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
 Allocate initial ranging interval function. More...
 
virtual uint32_t CalculateAllocationStartTime (void)=0
 
virtual Ptr< BaseStationNetDeviceGetBs (void)
 
virtual void GetChannelDescriptorsToUpdate (bool &, bool &, bool &, bool &)=0
 Determines if channel descriptors sent in the current frame are required to be updated. More...
 
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
 one time initialization function More...
 
virtual void OnSetRequestedBandwidth (ServiceFlowRecord *sfr)=0
 Set requested bandwidth. More...
 
virtual void ProcessBandwidthRequest (const BandwidthRequestHeader &bwRequestHdr)=0
 Process bandwidth request function. More...
 
virtual void Schedule (void)=0
 Schedule function. More...
 
virtual void ServiceBandwidthRequests (const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
 Service bandwidth request function. More...
 
virtual bool ServiceBandwidthRequests (ServiceFlow *serviceFlow, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
 Service bandwidth request function. More...
 
virtual void ServiceUnsolicitedGrants (const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
 Service unsolicited grants function. More...
 
virtual void SetBs (Ptr< BaseStationNetDevice > bs)
 Set base station device. More...
 
virtual void SetDcdTimeStamp (Time dcdTimeStamp)
 Set DCD timestamp. More...
 
virtual void SetIsInvIrIntrvlAllocated (bool isInvIrIntrvlAllocated)
 Set if the Inv IR interval is allocated. More...
 
virtual void SetIsIrIntrvlAllocated (bool isIrIntrvlAllocated)
 Set if the IR interval is allocated. More...
 
virtual void SetNrIrOppsAllocated (uint8_t nrIrOppsAllocated)
 Set the number of IR opps allocated. More...
 
virtual void SetTimeStampIrInterval (Time timeStampIrInterval)
 Set timestamp IR interval. More...
 
virtual void SetUcdTimeStamp (Time ucdTimeStamp)
 Set UCD timestamp. More...
 
virtual void SetupServiceFlow (SSRecord *ssRecord, ServiceFlow *serviceFlow)=0
 Setp service flow function. 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
 Get the most derived TypeId for this Object. 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...
 
template<>
Ptr< ObjectGetObject () const
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 
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 ()
 Default 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 operator. 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)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Attributes

Ptr< BaseStationNetDevicem_bs
 the base station More...
 
Time m_dcdTimeStamp
 DCD timestamp. More...
 
bool m_isInvIrIntrvlAllocated
 is Inv IR interval allocated More...
 
bool m_isIrIntrvlAllocated
 is IR interval allocated More...
 
uint8_t m_nrIrOppsAllocated
 number IR opps allocated More...
 
Time m_timeStampIrInterval
 timestamp IR interval More...
 
Time m_ucdTimeStamp
 UCD timestamp. More...
 
std::list< OfdmUlMapIem_uplinkAllocations
 uplink allocations More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoDispose (void)
 Destructor implementation. 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

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::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/UplinkScheduler"

No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 88 bytes (on a 64-bit architecture).

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

Constructor & Destructor Documentation

◆ UplinkScheduler() [1/2]

ns3::UplinkScheduler::UplinkScheduler ( void  )

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

◆ UplinkScheduler() [2/2]

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

Constructor.

Parameters
bsbase station device

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

◆ ~UplinkScheduler()

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

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

References m_bs, and m_uplinkAllocations.

Member Function Documentation

◆ AddUplinkAllocation()

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

Add uplink allocation.

Parameters
ulMapIethe UL map IE
allocationSizethe allocation size
symbolsToAllocationthe symbols to allocation
availableSymbolsthe available symbols

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

◆ AllocateInitialRangingInterval()

virtual void ns3::UplinkScheduler::AllocateInitialRangingInterval ( uint32_t &  symbolsToAllocation,
uint32_t &  availableSymbols 
)
pure virtual

Allocate initial ranging interval function.

Parameters
symbolsToAllocationthe symbols to allocation
availableSymbolsthe available symbols

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

◆ CalculateAllocationStartTime()

virtual uint32_t ns3::UplinkScheduler::CalculateAllocationStartTime ( void  )
pure virtual
Returns
the calculated allocation start time

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

◆ GetBs()

Ptr< BaseStationNetDevice > ns3::UplinkScheduler::GetBs ( void  )
virtual
Returns
the base station device

Definition at line 165 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:

◆ GetChannelDescriptorsToUpdate()

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.

◆ GetDcdTimeStamp()

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

◆ GetIsInvIrIntrvlAllocated()

bool ns3::UplinkScheduler::GetIsInvIrIntrvlAllocated ( void  ) const
virtual
Returns
true if the Inv IR interval is allocated

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

References m_isInvIrIntrvlAllocated.

◆ GetIsIrIntrvlAllocated()

bool ns3::UplinkScheduler::GetIsIrIntrvlAllocated ( void  ) const
virtual
Returns
true if the IR interval is allocated

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

References m_isIrIntrvlAllocated.

◆ GetNrIrOppsAllocated()

uint8_t ns3::UplinkScheduler::GetNrIrOppsAllocated ( void  ) const
virtual
Returns
the number of IR opps allocated

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

References m_nrIrOppsAllocated.

Referenced by ns3::UplinkSchedulerSimple::AllocateInitialRangingInterval(), ns3::UplinkSchedulerMBQoS::AllocateInitialRangingInterval(), and ns3::UplinkSchedulerRtps::AllocateInitialRangingInterval().

+ Here is the caller graph for this function:

◆ GetTimeStampIrInterval()

Time ns3::UplinkScheduler::GetTimeStampIrInterval ( void  )
virtual
Returns
the timestamp of the IR interval

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

References m_timeStampIrInterval.

Referenced by ns3::UplinkSchedulerSimple::AllocateInitialRangingInterval(), ns3::UplinkSchedulerMBQoS::AllocateInitialRangingInterval(), and ns3::UplinkSchedulerRtps::AllocateInitialRangingInterval().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::UplinkScheduler::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

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

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ GetUcdTimeStamp()

Time ns3::UplinkScheduler::GetUcdTimeStamp ( void  ) const
virtual

◆ GetUplinkAllocations()

std::list< OfdmUlMapIe > ns3::UplinkScheduler::GetUplinkAllocations ( void  ) const
virtual
Returns
uplink allocations

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

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

References m_uplinkAllocations.

◆ InitOnce()

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

one time initialization function

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

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

◆ OnSetRequestedBandwidth()

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

Set requested bandwidth.

Parameters
sfrservice flow record

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

◆ ProcessBandwidthRequest()

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

Process bandwidth request function.

Parameters
bwRequestHdr

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

◆ Schedule()

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

◆ ServiceBandwidthRequests() [1/2]

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

Service bandwidth request function.

Parameters
ssRecordthe SS record
schedulingTypethe scheduling type
ulMapIethe UL map IE
modulationTypethe modulation type
symbolsToAllocationthe symbols to allocation
availableSymbolsthe available symbols

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

◆ ServiceBandwidthRequests() [2/2]

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

Service bandwidth request function.

Parameters
serviceFlowthe service flow
schedulingTypethe scheduling type
ulMapIethe UL map IE
modulationTypethe modulation type
symbolsToAllocationthe symbols to allocation
availableSymbolsthe available symbols
Returns
true if successful

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

◆ ServiceUnsolicitedGrants()

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

Service unsolicited grants function.

Parameters
ssRecordthe SS record
schedulingTypethe scheduling type
ulMapIethe UL map IE
modulationTypethe modulation type
symbolsToAllocationthe symbols to allocation
availableSymbolsthe available symbols

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

◆ SetBs()

void ns3::UplinkScheduler::SetBs ( Ptr< BaseStationNetDevice bs)
virtual

◆ SetDcdTimeStamp()

void ns3::UplinkScheduler::SetDcdTimeStamp ( Time  dcdTimeStamp)
virtual

◆ SetIsInvIrIntrvlAllocated()

void ns3::UplinkScheduler::SetIsInvIrIntrvlAllocated ( bool  isInvIrIntrvlAllocated)
virtual

Set if the Inv IR interval is allocated.

Parameters
isInvIrIntrvlAllocated

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

References m_isInvIrIntrvlAllocated.

Referenced by ns3::UplinkSchedulerSimple::Schedule(), ns3::UplinkSchedulerRtps::Schedule(), ns3::UplinkSchedulerMBQoS::Schedule(), ns3::UplinkSchedulerRtps::UplinkSchedulerRtps(), and ns3::UplinkSchedulerSimple::UplinkSchedulerSimple().

+ Here is the caller graph for this function:

◆ SetIsIrIntrvlAllocated()

◆ SetNrIrOppsAllocated()

void ns3::UplinkScheduler::SetNrIrOppsAllocated ( uint8_t  nrIrOppsAllocated)
virtual

◆ SetTimeStampIrInterval()

void ns3::UplinkScheduler::SetTimeStampIrInterval ( Time  timeStampIrInterval)
virtual

◆ SetUcdTimeStamp()

void ns3::UplinkScheduler::SetUcdTimeStamp ( Time  ucdTimeStamp)
virtual

◆ SetupServiceFlow()

virtual void ns3::UplinkScheduler::SetupServiceFlow ( SSRecord ssRecord,
ServiceFlow serviceFlow 
)
pure virtual

Setp service flow function.

Parameters
ssRecordthe SS record
serviceFlowthe service flow

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

Member Data Documentation

◆ m_bs

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

the base station

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

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

◆ m_dcdTimeStamp

Time ns3::UplinkScheduler::m_dcdTimeStamp
private

DCD timestamp.

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

Referenced by GetDcdTimeStamp(), and SetDcdTimeStamp().

◆ m_isInvIrIntrvlAllocated

bool ns3::UplinkScheduler::m_isInvIrIntrvlAllocated
private

is Inv IR interval allocated

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

Referenced by GetIsInvIrIntrvlAllocated(), and SetIsInvIrIntrvlAllocated().

◆ m_isIrIntrvlAllocated

bool ns3::UplinkScheduler::m_isIrIntrvlAllocated
private

is IR interval allocated

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

Referenced by GetIsIrIntrvlAllocated(), and SetIsIrIntrvlAllocated().

◆ m_nrIrOppsAllocated

uint8_t ns3::UplinkScheduler::m_nrIrOppsAllocated
private

number IR opps allocated

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

Referenced by GetNrIrOppsAllocated(), and SetNrIrOppsAllocated().

◆ m_timeStampIrInterval

Time ns3::UplinkScheduler::m_timeStampIrInterval
private

timestamp IR interval

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

Referenced by GetTimeStampIrInterval(), and SetTimeStampIrInterval().

◆ m_ucdTimeStamp

Time ns3::UplinkScheduler::m_ucdTimeStamp
private

UCD timestamp.

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

Referenced by GetUcdTimeStamp(), and SetUcdTimeStamp().

◆ m_uplinkAllocations

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

uplink allocations

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

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


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