gov.nist.antd.diffserv
Class DiffServREDQueue

java.lang.Object
  |
  +--gov.nist.antd.diffserv.SimplePacketQueue
        |
        +--gov.nist.antd.diffserv.DiffServQueue
              |
              +--gov.nist.antd.diffserv.DiffServREDQueue

public class DiffServREDQueue
extends DiffServQueue

The class DiffServREDQueue.

 RED (Random Early Detection) with algorithmic drop Ref.  
	[1] RFC 2309 Recommendations on Queue Management and Congestion
	     avoidance in Internet, April 1998.
	[2] Sally Floyd and Van Jacobson, "Random Early Detection Gateways for
	     congestion Avoidance, IEEE/ACM Tansactions on Networking, 
	     Vol. 1, No. 4, August 1993.
  
 In this implementation, we assume there is three color marking
 in front of this RED queue. 
 The packet drop is handled by next rule :
   - Green packet : Normal RED processing
   - Yellow packet : Normal Green processing => new processing can be designed
   - Red packet : drop  

 =========================
 Example DML configuration
 =========================
	Queue [ 
		name RED use SSF.DiffServ.DiffServREDQueue
  		BufferSize 100000
  		THmin 40000
  		THmax 90000
  		Pmax 0.02
     		mean_pkt_size 1000
  		QueueWeight 0.002
  	]
 

 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

Field Summary
 double avgQlength
          Field avgQlength - XXX
 int count
          Field count - XXX
 int mean_pkt_size
          Field mean_pkt_size - XXX
 double Pa
          Field Pa, Pb - XXX
 double Pb
          Field Pa, Pb - XXX
 double Pmax
          Field Pmax - XXX
 double q_time
          Field q_time - XXX
 boolean QueueEmpty
          Field QueueEmpty - XXX
 double QueueWeight
          Field QueueWeight - XXX
 double THmax
          Field THmax - XXX
 double THmin
          Field THmin - XXX
 
Fields inherited from class gov.nist.antd.diffserv.DiffServQueue
bitrate, BufferSize, ClassType, ClassTypeString, debug, dequeueCount, DiffServFlowID, dropBytes, dropCount, DSFP, DSPSchduler, HostID, incomingBytes, incomingCount, isActive, islog, isWFQ, localHost, name, nextEFt, outgoingBytes, outgoingCount, prevdropBytes, prevdropCount, prevEFt, previncomingBytes, previncomingCount, prevoutgoingBytes, prevoutgoingCount, Rx, totalQueueingDelay, use
 
Fields inherited from class gov.nist.antd.diffserv.SimplePacketQueue
fifoQueue
 
Constructor Summary
DiffServREDQueue()
          Constructor DiffServREDQueue
 
Method Summary
private  void calculateAvgQlength()
           
 void config(com.renesys.raceway.DML.Configuration cfg)
          Method config XXX
 MessageWrapper dequeue()
          Returns the dequeued MessageWrapper.
 boolean enqueue(ProtocolMessage message, ProtocolSession fromSession)
          Method enqueue XXX
 
Methods inherited from class gov.nist.antd.diffserv.DiffServQueue
calculatEFtForWFQ, disableQueue, enableQueue, getAvgQueueingDelay, getDropPacketBytes, getDropPacketCount, getIncomingPacketBytes, getIncomingPacketCount, getOutgoingPacketBytes, getOutgoingPacketCount, init, setupWFQParms
 
Methods inherited from class gov.nist.antd.diffserv.SimplePacketQueue
getAvailableQLength, getFirstPacket, getMaxSize, getQLength, init, isEmpty, isFull, reset, setMaxSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

THmin

public double THmin
Field THmin - XXX


THmax

public double THmax
Field THmax - XXX


Pmax

public double Pmax
Field Pmax - XXX


mean_pkt_size

public int mean_pkt_size
Field mean_pkt_size - XXX


QueueWeight

public double QueueWeight
Field QueueWeight - XXX


avgQlength

public double avgQlength
Field avgQlength - XXX


q_time

public double q_time
Field q_time - XXX


Pa

public double Pa
Field Pa, Pb - XXX


Pb

public double Pb
Field Pa, Pb - XXX


count

public int count
Field count - XXX


QueueEmpty

public boolean QueueEmpty
Field QueueEmpty - XXX

Constructor Detail

DiffServREDQueue

public DiffServREDQueue()
Constructor DiffServREDQueue

Method Detail

config

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

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

calculateAvgQlength

private void calculateAvgQlength()

enqueue

public boolean enqueue(ProtocolMessage message,
                       ProtocolSession fromSession)
Method enqueue XXX

Overrides:
enqueue in class DiffServQueue
Parameters:
message - - XXX
fromSession - - XXX
Returns:
boolean - XXX

dequeue

public MessageWrapper dequeue()
Returns the dequeued MessageWrapper.

Overrides:
dequeue in class DiffServQueue
Returns:
The dequeued message wrapper.