This class implements a Migration-based Quality of Service uplink scheduler(MBQoS).
More...
Public Member Functions |
| UplinkSchedulerMBQoS (Time time) |
std::list< OfdmUlMapIe > | GetUplinkAllocations (void) const |
void | GetChannelDescriptorsToUpdate (bool &, bool &, bool &, bool &) |
uint32_t | CalculateAllocationStartTime (void) |
void | AddUplinkAllocation (OfdmUlMapIe &ulMapIe, const uint32_t &allocationSize, uint32_t &symbolsToAllocation, uint32_t &availableSymbols) |
void | Schedule (void) |
void | ServiceUnsolicitedGrants (const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols) |
void | ServiceBandwidthRequests (const SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols) |
bool | ServiceBandwidthRequests (ServiceFlow *serviceFlow, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols) |
void | AllocateInitialRangingInterval (uint32_t &symbolsToAllocation, uint32_t &availableSymbols) |
void | SetupServiceFlow (SSRecord *ssRecord, ServiceFlow *serviceFlow) |
void | CheckDeadline (uint32_t &availableSymbols) |
| Check deadline from jobs. Migrate requests if necessary.
|
void | CheckMinimumBandwidth (uint32_t &availableSymbols) |
| Check if Minimum bandwidth is guarantee. Migrate requests if necessary.
|
void | UplinkSchedWindowTimer (void) |
| Reset the current window. According to a configured time, reset the window.
|
void | EnqueueJob (UlJob::JobPriority priority, Ptr< UlJob > job) |
| Enqueue a job in a priority queue.
|
Ptr< UlJob > | DequeueJob (UlJob::JobPriority priority) |
| Dequeue a job from a priority queue.
|
void | ProcessBandwidthRequest (const BandwidthRequestHeader &bwRequestHdr) |
Time | DetermineDeadline (ServiceFlow *serviceFlow) |
| Calculates deadline of a request.
|
void | InitOnce (void) |
uint32_t | CountSymbolsQueue (std::list< Ptr< UlJob > > jobs) |
uint32_t | CountSymbolsJobs (Ptr< UlJob > job) |
void | OnSetRequestedBandwidth (ServiceFlowRecord *sfr) |
Ptr< UlJob > | CreateUlJob (SSRecord *ssRecord, enum ServiceFlow::SchedulingType schedType, ReqType reqType) |
uint32_t | GetPendingSize (ServiceFlow *serviceFlow) |
bool | ServiceBandwidthRequestsBytes (ServiceFlow *serviceFlow, enum ServiceFlow::SchedulingType schedulingType, OfdmUlMapIe &ulMapIe, const WimaxPhy::ModulationType modulationType, uint32_t &symbolsToAllocation, uint32_t &availableSymbols, uint32_t allocationSizeBytes) |
Static Public Member Functions |
static TypeId | GetTypeId (void) |
| This method returns the TypeId associated to ns3::UplinkSchedulerMBQoS.
|
This class implements a Migration-based Quality of Service uplink scheduler(MBQoS).
This uplink scheduler uses three queues, the low priority queue, the intermediate queue and the high priority queue. The scheduler serves the requests in strict priority order from the high priority queue to the low priority queue. The low priority queue stores the bandwidth requests of the BE service flow. The intermediate queue holds bandwidth requests sent by rtPS and by nrtPS connections. rtPS and nrtPS requests can migrate to the high priority queue to guarantee that their QoS requirements are met. Besides the requests migrated from the intermediate queue, the high priority queue stores periodic grants and unicast request opportunities that must be scheduled in the following frame. To guarantee the maximum delay requirement, the BS assigns a deadline to each rtPS bandwidth request in the intermediate queue. The minimum bandwidth requirement of both rtPS and nrtPS connections is guaranteed over a window of duration T . Implementation of uplink scheduler: Freitag, J.; da Fonseca, N.L.S., "Uplink Scheduling with Quality of Service in IEEE 802.16 Networks," Global Telecommunications Conference, 2007. GLOBECOM '07. IEEE , vol., no., pp.2503-2508, 26-30 Nov. 2007 URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4411386&isnumber=4410910
static TypeId ns3::UplinkSchedulerMBQoS::GetTypeId |
( |
void |
| ) |
[static] |
This method returns the TypeId associated to ns3::UplinkSchedulerMBQoS.
This object is accessible through the following paths with Config::Set and Config::Connect:
-
/NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/NoiseModel/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Channel/PropagationModel/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Mac/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::UanNetDevice/Transducer/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/NoiseModel/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Channel/$ns3::UanChannel/PropagationModel/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/NoiseModel/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::BaseStationNetDevice/UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::UplinkScheduler/$ns3::UplinkSchedulerMBQoS
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/Phy/Channel/$ns3::UanChannel/PropagationModel/$ns3::UplinkSchedulerMBQoS
Attributes defined for this type:
-
WindowInterval: The time to wait to reset window
-
Set with class: TimeValue
-
Underlying type: Time
-
Initial value: +1000000000.0ns
-
Flags: construct write read
No TraceSources defined for this type.
Reimplemented from ns3::UplinkScheduler.