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;
 
   87                             const uint32_t &allocationSize,
 
   88                             uint32_t &symbolsToAllocation,
 
   89                             uint32_t &availableSymbols);
 
   96                                  uint32_t &symbolsToAllocation,
 
   97                                  uint32_t &availableSymbols);
 
  102                                  uint32_t &symbolsToAllocation,
 
  103                                  uint32_t &availableSymbols);
 
  108                                  uint32_t &symbolsToAllocation,
 
  109                                  uint32_t &availableSymbols);
 
  204                                  uint32_t &symbolsToAllocation, uint32_t &availableSymbols, uint32_t allocationSizeBytes);
 
Ptr< UlJob > DequeueJob(UlJob::JobPriority priority)
Dequeue a job from a priority queue. 
 
void AllocateInitialRangingInterval(uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
 
uint32_t CalculateAllocationStartTime(void)
 
keep track of time values and allow control of global simulation resolution 
 
smart pointer class similar to boost::intrusive_ptr 
 
void GetChannelDescriptorsToUpdate(bool &, bool &, bool &, bool &)
 
uint32_t CountSymbolsJobs(Ptr< UlJob > job)
 
this class implements a structure to manage some parameters and statistics related to a service flow ...
 
uint32_t GetPendingSize(ServiceFlow *serviceFlow)
 
static TypeId GetTypeId(void)
 
void AddUplinkAllocation(OfdmUlMapIe &ulMapIe, const uint32_t &allocationSize, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
 
bool ServiceBandwidthRequestsBytes(ServiceFlow *serviceFlow, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols, uint32_t allocationSizeBytes)
 
std::list< Ptr< UlJob > > m_uplinkJobs_low
 
Virtual class for uplink scheduler. 
 
uint32_t CountSymbolsQueue(std::list< Ptr< UlJob > > jobs)
 
void OnSetRequestedBandwidth(ServiceFlowRecord *sfr)
 
void UplinkSchedWindowTimer(void)
Reset the current window. According to a configured time, reset the window. 
 
std::list< Ptr< UlJob > > m_uplinkJobs_high
 
void ProcessBandwidthRequest(const BandwidthRequestHeader &bwRequestHdr)
 
this class implements the bandwidth-request mac Header as described by IEEE Standard for Local and me...
 
void CheckMinimumBandwidth(uint32_t &availableSymbols)
Check if Minimum bandwidth is guarantee. Migrate requests if necessary. 
 
This class implements a Migration-based Quality of Service uplink scheduler(MBQoS). 
 
~UplinkSchedulerMBQoS(void)
 
void EnqueueJob(UlJob::JobPriority priority, Ptr< UlJob > job)
Enqueue a job in a priority queue. 
 
Ptr< UlJob > CreateUlJob(SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedType, ReqType reqType)
 
void ServiceBandwidthRequests(const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
 
void ServiceUnsolicitedGrants(const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols)
 
void SetupServiceFlow(SSRecord *ssRecord, ServiceFlow *serviceFlow)
 
This class is used by the base station to store some information related to subscriber station in the...
 
std::list< Ptr< UlJob > > m_uplinkJobs_inter
 
std::list< OfdmUlMapIe > m_uplinkAllocations
 
std::list< OfdmUlMapIe > GetUplinkAllocations(void) const 
 
Time DetermineDeadline(ServiceFlow *serviceFlow)
Calculates deadline of a request. 
 
a unique identifier for an interface. 
 
void CheckDeadline(uint32_t &availableSymbols)
Check deadline from jobs. Migrate requests if necessary.