|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
23 #ifndef UPLINK_SCHEDULER_MBQOS_H
24 #define UPLINK_SCHEDULER_MBQOS_H
28 #include "ns3/nstime.h"
32 #include "ns3/object.h"
38 class BaseStationNetDevice;
41 class ServiceFlowRecord;
115 const uint32_t &allocationSize,
116 uint32_t &symbolsToAllocation,
117 uint32_t &availableSymbols);
136 uint32_t &symbolsToAllocation,
137 uint32_t &availableSymbols);
151 uint32_t &symbolsToAllocation,
152 uint32_t &availableSymbols);
167 uint32_t &symbolsToAllocation,
168 uint32_t &availableSymbols);
299 uint32_t &symbolsToAllocation, uint32_t &availableSymbols, uint32_t allocationSizeBytes);
a unique identifier for an interface.
void SetupServiceFlow(SSRecord *ssRecord, ServiceFlow *serviceFlow)
Setup service flow.
static TypeId GetTypeId(void)
Get the type ID.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
~UplinkSchedulerMBQoS(void)
uint32_t CountSymbolsJobs(Ptr< UlJob > job)
This class implements the bandwidth-request mac Header as described by IEEE Standard for Local and me...
this class implements a structure to manage some parameters and statistics related to a service flow
void CheckMinimumBandwidth(uint32_t &availableSymbols)
Check if Minimum bandwidth is guarantee. Migrate requests if necessary.
void ServiceUnsolicitedGrants(const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
Service unsolicited grants.
Smart pointer class similar to boost::intrusive_ptr.
ModulationType
ModulationType enumeration.
std::list< Ptr< UlJob > > m_uplinkJobs_low
uplink jobs low priority
void AllocateInitialRangingInterval(uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
Allocate initial ranging interval.
Ptr< UlJob > DequeueJob(UlJob::JobPriority priority)
Dequeue a job from a priority queue.
uint32_t GetPendingSize(ServiceFlow *serviceFlow)
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
Time DetermineDeadline(ServiceFlow *serviceFlow)
Calculates deadline of a request.
void GetChannelDescriptorsToUpdate(bool &updateDcd, bool &updateUcd, bool &sendDcd, bool &sendUcd)
Determines if channel descriptors sent in the current frame are required to be updated.
void UplinkSchedWindowTimer(void)
Reset the current window.
This class is used by the base station to store some information related to subscriber station in the...
void OnSetRequestedBandwidth(ServiceFlowRecord *sfr)
Set requested bandwidth.
Time m_windowInterval
windows interval
Simulation virtual time values and global simulation resolution.
bool ServiceBandwidthRequestsBytes(ServiceFlow *serviceFlow, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols, uint32_t allocationSizeBytes)
Service bandwidth requests bytes.
std::list< OfdmUlMapIe > GetUplinkAllocations(void) const
Get uplink allocations.
std::list< Ptr< UlJob > > m_uplinkJobs_inter
uplink jobs intermedite priority
void AddUplinkAllocation(OfdmUlMapIe &ulMapIe, const uint32_t &allocationSize, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
Add uplink allocation.
void EnqueueJob(UlJob::JobPriority priority, Ptr< UlJob > job)
Enqueue a job in a priority queue.
void CheckDeadline(uint32_t &availableSymbols)
Check deadline from jobs. Migrate requests if necessary.
ReqType
Request type enumeration.
uint32_t CountSymbolsQueue(std::list< Ptr< UlJob > > jobs)
Ptr< UlJob > CreateUlJob(SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedType, ReqType reqType)
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
std::list< Ptr< UlJob > > m_uplinkJobs_high
uplink jobs high priority
void ServiceBandwidthRequests(const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
Service bandwidth requests.
This class implements service flows as described by the IEEE-802.16 standard.
void InitOnce(void)
This method is called once to initialize window.
void Schedule(void)
Schedule function.
std::list< OfdmUlMapIe > m_uplinkAllocations
uplink allocations
void ProcessBandwidthRequest(const BandwidthRequestHeader &bwRequestHdr)
Process bandwidth request function.
This class implements a Migration-based Quality of Service uplink scheduler(MBQoS).
JobPriority
Job priority enumeration.
uint32_t CalculateAllocationStartTime(void)
Calculate allocation start time.
Virtual class for uplink scheduler.