GridSim 5.0 beta

gridsim.net.fnb
Class ARED

Object
  extended by Thread
      extended by Sim_entity
          extended by FnbSCFQScheduler
              extended by RED
                  extended by ARED
All Implemented Interfaces:
PacketScheduler, Cloneable, Runnable

public class ARED
extends RED

This class implements the Adaptative Random Early Detection (ARED) policy for the management of network buffers at routers. Its basic functionality is as follows:

For more details, please refer to A. Caminero, A. Sulistio, B. Caminero, C. Carrion, and R. Buyya, Simulation of Buffer Management Policies in Networks for Grids, Proceedings of the 41th Annual Simulation Symposium (ANSS-41, IEEE CS Press, Los Alamitos, CA, USA), April 14-16, 2008, Ottawa, Canada.

Since:
GridSim Toolkit 4.2
Author:
Agustin Caminero

Nested Class Summary
 
Nested classes/interfaces inherited from class Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ARED(String name, double baudRate, double max_p, int max_buf_size, double queue_weight, boolean stats)
          Creates a new Adaptative Random Early Detection (ARED) policy.
 
Method Summary
protected  void initialize()
          This function initializes the parameters of the buffers policies
 boolean setBaudRate(double rate)
          Sets the baud rate that this scheduler will be sending packets at.
 void setThresholds()
          Sets the this class and RED thresholds.
 void updateAREDParameters()
          This function updates the value of max_p, which is the maximum dropping probability for a packet.
 
Methods inherited from class RED
avgQueueSize, deque, enque, getAvg, getMaxP, getMaxTh, getMinTh, setMaxP, setMaxTh, setMinTh, setQueueWeight, updateStats
 
Methods inherited from class FnbSCFQScheduler
body, checkDroppedGlList, getBaudRate, getCounterDroppedPkts, getMaxBufferSize, getMaxBufferSizeInPkts, getRouterID, getSchedID, getSchedName, increaseDroppedPktCounter, insertGlID_userID, insertPacketIntoQueue, isEmpty, makeRoomForPacket, pktListSize, resetCounterDroppedPkts, setBaudRateSCFQ, setMaxBufferSize, setRouterID, setWeights, size
 
Methods inherited from class Sim_entity
add_generator, add_param, add_port, clone, get_id, get_name, get_port, get_port, get_stat, run, send_on, set_invisible, set_stat, sim_cancel, sim_completed, sim_current, sim_get_next, sim_get_next, sim_hold_for, sim_hold, sim_pause_for, sim_pause_for, sim_pause_until, sim_pause_until, sim_pause, sim_process_for, sim_process_for, sim_process_until, sim_process_until, sim_process, sim_putback, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_schedule, sim_select, sim_trace, sim_wait_for, sim_wait_for, sim_wait_for, sim_wait, sim_waiting, sim_waiting
 
Methods inherited from class Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ARED

public ARED(String name,
            double baudRate,
            double max_p,
            int max_buf_size,
            double queue_weight,
            boolean stats)
     throws Exception
Creates a new Adaptative Random Early Detection (ARED) policy.

Parameters:
name - Name of this scheduler
baudRate - baud rate in bits/s of the port that is using this scheduler.
max_p - the maximum dropping probability for an incoming packet
max_buf_size - maximum buffer size for routers
queue_weight - this parameter reflects how important is the last measurement of the buffer size on the calculation of the average buffer size
stats - whether we want to record some stats or not
Throws:
Exception - This happens when the baud rate <= 0
Pre Condition:
baudRate > 0
Post Condition:
$none
Method Detail

updateAREDParameters

public void updateAREDParameters()
This function updates the value of max_p, which is the maximum dropping probability for a packet. It also updates ALPHA, as it depends on max_p.


setThresholds

public void setThresholds()
Sets the this class and RED thresholds.


initialize

protected void initialize()
This function initializes the parameters of the buffers policies

Overrides:
initialize in class RED

setBaudRate

public boolean setBaudRate(double rate)
Sets the baud rate that this scheduler will be sending packets at.

Specified by:
setBaudRate in interface PacketScheduler
Overrides:
setBaudRate in class RED
Parameters:
rate - the baud rate of this scheduler (in bits/s)
Returns:
true if the baud rate has been set properly
Pre Condition:
rate > 0
Post Condition:
$none

GridSim 5.0 beta

The University of Melbourne, Australia, 2009