gov.nist.antd.diffserv
Class WFQScheduler

java.lang.Object
  |
  +--gov.nist.antd.diffserv.DiffServPacketScheduler
        |
        +--gov.nist.antd.diffserv.WFQScheduler

public class WFQScheduler
extends DiffServPacketScheduler

In weighted scheduling, weight for each queue is allocated, and the relative portion of the bandwidth is allocated to the queue according to its weight. DiffServPacketScheduler also configures the DataLinkMapping of the dispatched DiffServ packet from queue. Currently, MPLS LSP or usual IP packet forwarding can be configured as DataLink for DiffServ packet flow.

   
 (Example DML Configuration)
  	diffServFlow [
   		# DiffServ Classifier Configuration
   		Classifier [
   			CT_EF [    SrcHostIdList [ ID 151 ]   DestHostIdList [ ID 150 ]
   				   Protocol 17      ToS 0
   				   SrcPortMin 0     SrcPortMax 20000     DestPortMin 0    DestPortMax 20000  ]
   			CT_AF4 [   SrcHostIdList [ ID 153 ]   DestHostIdList [ ID 152 ]
   				   Protocol 17      ToS 0
   				   SrcPortMin 0     SrcPortMax 20000     DestPortMin 0    DestPortMax 20000  ]
   			CT_BF [    SrcHostIdList [ ID 155 ]   DestHostIdList [ ID 154 ]
   				   Protocol 17      ToS 0
   				   SrcPortMin 0     SrcPortMax 20000     DestPortMin 0    DestPortMax 20000  ]
   		]
   		# DiffServ ActionPrifile Configuration
   		ActionProfile [
   			Prf_EF [   Priority 5    Weight 1
   				   _find .dictionary.DiffServ_Parameters.Meter
   				   _find .dictionary.DiffServ_Parameters.Queue	]
   			Prf_AF4 [  Priority 3    Weight 1
   				   _find .dictionary.DiffServ_Parameters.Meter
   				   _find .dictionary.DiffServ_Parameters.Queue	]
   			Prf_BF [   Priority 1    Weight 1
   				   _find .dictionary.DiffServ_Parameters.Queue	]
   		]
   		# DiffServ Packet Scheduler Configuration
   		PacketScheduler [
   			name WFQ use gov.nist.antd.DiffServ.WFQScheduler
   			ClassType [ CT EF CT AF4 CT BF ]
   			_find .dictionary.DiffServ_Parameters.TrafficShaper
   			DataLink_Mapping[
   				MPLS_LSP [
   					pathID DiffServ-161-160-WFQ
   					SetUpTime 14
   					Weight 300
   					_find .dictionary.DiffServ_Parameters.TrafficParameters
					NodeList [
						Node [ ID 161 ] Node [ ID 121 ] Node [ ID 221 ] 
						Node [ ID 220 ] Node [ ID 120 ] Node [ ID 160 ]
					]
				]
			]
   		]
  	]
 

 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:
Young-Tak Kim
, Eun-Hyuk Lim , borchert

Nested Class Summary
 
Nested classes inherited from class gov.nist.antd.diffserv.DiffServPacketScheduler
DiffServPacketScheduler.SchedulingQueueEntry
 
Field Summary
 
Fields inherited from class gov.nist.antd.diffserv.DiffServPacketScheduler
childScheduler, debug, DiffServFlowID, DSTConditioner, FlowProfile, ipsess, isActive, isMPLS, isPrimary, isWFQScheduler, localHost, mplsmgmt, MPLSSignalingInfoList, name, nextSchedulingTime, parentScheduler, parentScheulerInfo, SchedulingBurstSize, SchedulingQueueTable, SchedulingRate, SchedulingRateForSecondary, SchedulingRateList, SchedulingTimer, sCRLDPInfo, SumWeight, useClass
 
Constructor Summary
WFQScheduler()
           
 
Method Summary
 void config(com.renesys.raceway.DML.Configuration cfg)
          Method config
 void Scheduling()
          Method Scheduling
 MessageWrapper SecondaryScheduling()
          Method SecondaryScheduling
 void setWFQParms()
          Method setWFQParms
 MessageWrapper WFQScheduling()
          Method WFQScheduling
 
Methods inherited from class gov.nist.antd.diffserv.DiffServPacketScheduler
ActivateQueue, configClassType, configDataLinkMapping, configSecondaryScheduler, configTrafficShpaer, createSchedulingTimer, DeActivateQueue, getClassTypeInfo, holdingScheduler, init, initSecondary, LSPEstablish, PacketForwarding, setLSPReleaseTimer, setLSPStartTimer, setNextSchedulingTimer, setSchedulingInfoToChildScheduler, setSchedulingRate, setSchedulingRate, setupLSPandQueue, setWFQRx, startSchedule
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WFQScheduler

public WFQScheduler()
Method Detail

config

public void config(com.renesys.raceway.DML.Configuration cfg)
            throws com.renesys.raceway.DML.configException
Method config

Overrides:
config in class DiffServPacketScheduler
Parameters:
cfg - - XXX
Throws:
com.renesys.raceway.DML.configException

setWFQParms

public void setWFQParms()
Method setWFQParms


Scheduling

public void Scheduling()
Method Scheduling

Specified by:
Scheduling in class DiffServPacketScheduler

SecondaryScheduling

public MessageWrapper SecondaryScheduling()
Method SecondaryScheduling

Specified by:
SecondaryScheduling in class DiffServPacketScheduler
Returns:
The scheduled message wrapper.

WFQScheduling

public MessageWrapper WFQScheduling()
Method WFQScheduling

Returns:
The scheduled message wrapper.