gov.nist.antd.mpls.mgmt.mpls_interface
Class PriorityScheduler

java.lang.Object
  |
  +--gov.nist.antd.mpls.mgmt.mpls_interface.MPLSPacketScheduler
        |
        +--gov.nist.antd.mpls.mgmt.mpls_interface.PriorityScheduler

public class PriorityScheduler
extends MPLSPacketScheduler

Scheduler for the Priority Scheduling. In priority-based scheduling the higher priority packet flow exclusively use the bandwidth regardless of the lower-priority queue status.

 This class was developed at the National Institute of Standards and
 Technology by employees of the Federal Government in the course of
 their official duties. Pursuant to title 17 Section 105 of the United
 States Code this software is not subject to copyright protection and
 is in the public domain.
 NIST assumes no responsibility whatsoever for its use by other parties,
 and makes no guarantees, expressed or implied, about its quality,
 reliability, or any other characteristic.
 
We would appreciate acknowledgement if the software is used.
NIST ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.

Author:
EunHyuk Lim (ehlim@antd.nist.gov, othree28@hotmail.com)
, borchert , Chul Kim

Nested Class Summary
 class PriorityScheduler.PriorityInfo
          Class PriorityInfo
 
Field Summary
 java.util.Hashtable priorityQueueHTable
          Field PriorityQueueHTable - Priority Queue Table(HashTable)
 java.util.Vector priorityQueueVTable
          Field PriorityQueueVTable - Priority Queue Table(Vector)
 
Fields inherited from class gov.nist.antd.mpls.mgmt.mpls_interface.MPLSPacketScheduler
childScheduler, debug, hostID, isActive, isPrimary, localHost, mplsInterfaceInfo, nextSchedulingTime, parentScheduler, schedulingBurstSize, schedulingQueueTable, schedulingRate, schedulingTimer
 
Constructor Summary
PriorityScheduler()
          Constructor PriorityScheduler
 
Method Summary
 void addPriorityQueue(MPLSSchedulingQueueEntry msqe)
          Method addPriorityQueue Add the Priority Queue to the table
 void init(MPLSInterfaceInfo minfo)
          Initializes the queue
 MessageWrapper priorityScheduling()
          Method PrioirtyScheduling
 void removePriorityQueue(MPLSSchedulingQueueEntry msqe)
          Method removePriorityQueue Remove the priority queue from table
 void scheduling()
          Scheduling the next message.
 MessageWrapper secondaryScheduling()
          Method SecondaryScheduling
 
Methods inherited from class gov.nist.antd.mpls.mgmt.mpls_interface.MPLSPacketScheduler
createSchedulingTimer, createSecondaryScheduler, getChildScheduler, getParentScheduler, holdingScheduler, initSecondary, packetForwarding, setNextSchedulingTimer, setSchedulingRate, startScheduling
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

priorityQueueHTable

public java.util.Hashtable priorityQueueHTable
Field PriorityQueueHTable - Priority Queue Table(HashTable)


priorityQueueVTable

public java.util.Vector priorityQueueVTable
Field PriorityQueueVTable - Priority Queue Table(Vector)

Constructor Detail

PriorityScheduler

public PriorityScheduler()
Constructor PriorityScheduler

Method Detail

init

public void init(MPLSInterfaceInfo minfo)
Initializes the queue

Overrides:
init in class MPLSPacketScheduler
Parameters:
minfo - The mpls information for the queue.

addPriorityQueue

public void addPriorityQueue(MPLSSchedulingQueueEntry msqe)
Method addPriorityQueue Add the Priority Queue to the table

Parameters:
msqe - - XXX

removePriorityQueue

public void removePriorityQueue(MPLSSchedulingQueueEntry msqe)
Method removePriorityQueue Remove the priority queue from table

Parameters:
msqe - - XXX

scheduling

public void scheduling()
Scheduling the next message.

Specified by:
scheduling in class MPLSPacketScheduler

secondaryScheduling

public MessageWrapper secondaryScheduling()
Method SecondaryScheduling

Specified by:
secondaryScheduling in class MPLSPacketScheduler
Returns:
The MessageWrapper

priorityScheduling

public MessageWrapper priorityScheduling()
Method PrioirtyScheduling

Returns:
ProtocolMessage - XXX