21 #ifndef UPLINK_SCHEDULER_H
22 #define UPLINK_SCHEDULER_H
26 #include "ns3/nstime.h"
33 class BaseStationNetDevice;
36 class ServiceFlowRecord;
151 const uint32_t &allocationSize,
152 uint32_t &symbolsToAllocation,
153 uint32_t &availableSymbols) = 0;
171 uint32_t &symbolsToAllocation,
172 uint32_t &availableSymbols) = 0;
186 uint32_t &symbolsToAllocation,
187 uint32_t &availableSymbols) = 0;
202 uint32_t &symbolsToAllocation,
203 uint32_t &availableSymbols) = 0;
This class implements the bandwidth-request mac Header as described by IEEE Standard for Local and me...
A base class which provides memory management and object aggregation.
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
Smart pointer class similar to boost::intrusive_ptr.
This class is used by the base station to store some information related to subscriber station in the...
This class implements service flows as described by the IEEE-802.16 standard.
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
this class implements a structure to manage some parameters and statistics related to a service flow
Simulation virtual time values and global simulation resolution.
a unique identifier for an interface.
Virtual class for uplink scheduler.
virtual bool GetIsInvIrIntrvlAllocated(void) const
virtual void SetUcdTimeStamp(Time ucdTimeStamp)
Set UCD timestamp.
virtual void SetupServiceFlow(SSRecord *ssRecord, ServiceFlow *serviceFlow)=0
Setp service flow function.
virtual uint32_t CalculateAllocationStartTime(void)=0
virtual void SetDcdTimeStamp(Time dcdTimeStamp)
Set DCD timestamp.
virtual void SetNrIrOppsAllocated(uint8_t nrIrOppsAllocated)
Set the number of IR opps allocated.
virtual ~UplinkScheduler(void)
virtual Time GetDcdTimeStamp(void) const
virtual void SetBs(Ptr< BaseStationNetDevice > bs)
Set base station device.
virtual void Schedule(void)=0
Schedule function.
Time m_ucdTimeStamp
UCD timestamp.
virtual void SetIsIrIntrvlAllocated(bool isIrIntrvlAllocated)
Set if the IR interval is allocated.
std::list< OfdmUlMapIe > m_uplinkAllocations
uplink allocations
virtual uint8_t GetNrIrOppsAllocated(void) const
Time m_timeStampIrInterval
timestamp IR interval
Time m_dcdTimeStamp
DCD timestamp.
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.
virtual void SetIsInvIrIntrvlAllocated(bool isInvIrIntrvlAllocated)
Set if the Inv IR interval is allocated.
virtual void OnSetRequestedBandwidth(ServiceFlowRecord *sfr)=0
Set requested bandwidth.
static TypeId GetTypeId(void)
Get the type ID.
bool m_isIrIntrvlAllocated
is IR interval allocated
virtual void AddUplinkAllocation(OfdmUlMapIe &ulMapIe, const uint32_t &allocationSize, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
Add uplink allocation.
uint8_t m_nrIrOppsAllocated
number IR opps allocated
virtual Time GetTimeStampIrInterval(void)
Ptr< BaseStationNetDevice > m_bs
the base station
virtual bool GetIsIrIntrvlAllocated(void) const
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.
virtual Time GetUcdTimeStamp(void) const
virtual std::list< OfdmUlMapIe > GetUplinkAllocations(void) const
virtual void SetTimeStampIrInterval(Time timeStampIrInterval)
Set timestamp IR interval.
virtual void InitOnce(void)=0
one time initialization function
virtual void GetChannelDescriptorsToUpdate(bool &, bool &, bool &, bool &)=0
Determines if channel descriptors sent in the current frame are required to be updated.
virtual void AllocateInitialRangingInterval(uint32_t &symbolsToAllocation, uint32_t &availableSymbols)=0
Allocate initial ranging interval function.
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.
virtual void ProcessBandwidthRequest(const BandwidthRequestHeader &bwRequestHdr)=0
Process bandwidth request function.
bool m_isInvIrIntrvlAllocated
is Inv IR interval allocated
virtual Ptr< BaseStationNetDevice > GetBs(void)
ModulationType
ModulationType enumeration.
Every class exported by the ns3 library is enclosed in the ns3 namespace.