atropos.dp
Class Driver

java.lang.Object
  |
  +--java.util.Date
        |
        +--atropos.lp.AvnmpTime
              |
              +--atropos.lp.AvnmpDebug
                    |
                    +--atropos.gvt.Gvt
                          |
                          +--atropos.lp.AvnmpLP
                                |
                                +--atropos.dp.Driver
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable, ConfigInterface, java.io.Serializable, SnmpInterface

public class Driver
extends AvnmpLP
implements SnmpInterface, ConfigInterface

This class implements an AVNMP Driver process. The general idea is to have a working process modified as follows:


 Predict -> output -> getvm() 
 

Configuring AVNMP

  • setDestination() must be called to set the destination of driver packets. setDestination is called within the exec() of AvnmpSmartDriver.
  • addEntry must be called within the PP object in order to set the AVNMP routing.
  • portTable must be set with the proper port numbers.
  • setParameterTimes must be set with the proper parameters and the times they become effective.
  • Sync must be injected from the driver node. Sync packets will flood the network with smallstate information required for AVNMP startup.
  • PredictedLoad within the driver must be defined or overridden accordingly.
  • setGenRate, setStepSize, setTimeToRun, setDestination need to be set accordingly within the driver. Also setGenRate, setStepSize, setTimeToRun need to be set accordingly within the logical process.
  • The SNMP agent port is set in context() and context(). See snmpContext.
  • Sync contains "others" which needs to be updated.
  • This research is funded by DARPA/ITO Contract Number: F30602-98-C-0230 supported by the Air Force Research Laboratory/IF.

    Version:
    $Revision: 1.2 $ $State: Exp $
    Author:
    Steve Bush
    See Also:
    Serialized Form

    Inner classes inherited from class atropos.lp.AvnmpLP
    AvnmpLP.ParmTable, AvnmpLP.parmTime
     
    Field Summary
     snmp.agent.AppCommunicator context
              The Snmp Agent Context
     
    Fields inherited from class atropos.lp.AvnmpLP
    gvtupdate, islp, lookahead, LpNum, lvt, name, numAnti, numCausalityRb, numPackets, numToleranceRb, outq_size, parmTable, procList, ReRate, start_time, stateq, stepsize, terminal, Tla, tolerance, Tspeedup, Ttrb, Tttask, vminq, vmoutq, VmRate
     
    Fields inherited from class atropos.gvt.Gvt
    COLLECTMIN, GvtReportInput, GvtUpdateRequest, GvtUpdateResponse, IDLE, lm, REPORTLOCAL, START
     
    Fields inherited from class atropos.lp.AvnmpDebug
    dlevel, DRIVER_D, GVT_D, html, LP_D, LPSTATE_D, MEASURE_D, NodeName, PACKET_D, PAYLOAD_D, PP_D, PREDM_D, RECQ_D, ROLLBACK_D, SNDQ_D, STATEQ_D, SYSTEM_D, TIME_D, TOLERANCE_D
     
    Fields inherited from interface atropos.lp.SnmpInterface
    active, AppOid, avnmpMIB, avnmpTable, cpu95Percentile, cpuApp, cpuAppType, cpuAvgHighError, cpuAvgLowError, cpuAvgUtilization, cpuID, cpuPrediction, cpuPredictionAppType, cpuPredictionAvgUtil, cpuPredictionID, cpuPredictionPredictedTime, cpuPredictionTable, cpuPredictionVariance, cpuUtilizationTable, cpuVariance, experimental, loadApp, loadAppPackets, loadAppUptime, loadPredictionID, loadPredictionPort, loadPredictionPredictedLoad, loadPredictionPredictedTime, loadPredictionTable, logicalProcessCausalityRollbacks, logicalProcessELkAhead, logicalProcessErb, logicalProcessETask, logicalProcessGVT, logicalProcessGvtUpdate, logicalProcessID, logicalProcessLookAhead, logicalProcessLVT, logicalProcessNumAnti, logicalProcessNumNoState, logicalProcessNumPkts, logicalProcessPktPred, logicalProcessPredAcc, logicalProcessPropX, logicalProcessPropY, logicalProcessQRSize, logicalProcessQSSize, logicalProcessReal, logicalProcessReRate, logicalProcessSpeedup, logicalProcessSQSize, logicalProcessStateError, logicalProcessStatePred, logicalProcessStepSize, logicalProcessTableIndex, logicalProcessTdiff, logicalProcessTolerance, logicalProcessToleranceRollbacks, logicalProcessUptime, logicalProcessVirtual, logicalProcessVmRate, longRunning, longRunningPackets, longRunningTable, lrAppType, lrCpuActualTime, lrCpuPacketID, lrCpuPredicted95Percentile, predVarMIB, shortRunning, shortRunningPackets, shortRunningTable, srAppType, srCpuActualTime, srCpuPacketID, srCpuPredicted95Percentile
     
    Fields inherited from interface atropos.lp.ConfigInterface
    Dvm, initTolerance, logdir, lvm, ootLimit, pdir, rmlog, rmplots, rmsnmp, runMinutes, snmpdir, VirtualMessageRatio
     
    Constructor Summary
    Driver(java.lang.String name, java.lang.String nn)
              Construct a driver process.
     
    Method Summary
     PayLoad Compute(PayLoad pl)
              This method is not used by the Driver.
     java.lang.Double getPPstate()
              This method is not used by the Driver.
     AvnmpQueue Output()
              Send VirtualMessageRatio virtual messages for each real message.
     int portTable()
               
     AvnmpPacket Predict()
              Predict a new value and create packet to send.
     java.lang.Double PredictedLoadFit()
              This is the hook into a load prediction method.
     java.lang.Double PredictedLoadRandom()
              This is the hook into a perfect prediction with random noise.
     AvnmpPacket Real()
              Send a real packet.
     void Rollback(java.lang.Long rb)
              Rollback based upon out-of-tolerance rollback from logical processes.
     void setPPstate(java.lang.Double is)
              This method is not by the Driver.
     
    Methods inherited from class atropos.lp.AvnmpLP
    checkParameterTimes, displayConfiguration, displayLvt, displayLVT, displayQueues, finalize, getCausalityRollbacks, getGenRate, getlvt, getnext, getRealTime, getRecQSize, getSndQSize, getstate, getStateQSize, getTolerance, getToleranceRollbacks, getvm, inputvm, isDriver, isLP, isQuitTime, logState, myname, savestate, setGenRate, setGVTUpdate, setLookahead, setParameterTimes, setProcList, setStepsize, toString
     
    Methods inherited from class atropos.gvt.Gvt
    addProcs, calcLocalMinimum, collectMinima, getNumProcs, getNumUpdates, getProcReport, getState, getTimeSinceLastUpdate, getUpdateInterval, isDone, isUpdateTime, reportIn, reportLocalMinimum, resetGvt, startGvt, storeIn, storeOut
     
    Methods inherited from class atropos.lp.AvnmpDebug
    debugType, log, log, log, log, measure, resetLog, setLevel, writeLog
     
    Methods inherited from class atropos.lp.AvnmpTime
    add, adjustRelative, diff, now, resetRelative, set, startTime, time
     
    Methods inherited from class java.util.Date
    after, before, clone, compareTo, compareTo, equals, getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear, hashCode, parse, setDate, setHours, setMinutes, setMonth, setSeconds, setTime, setYear, toGMTString, toLocaleString, UTC
     
    Methods inherited from class java.lang.Object
    getClass, notify, notifyAll, wait, wait, wait
     

    Field Detail

    context

    public transient snmp.agent.AppCommunicator context
    The Snmp Agent Context
    Constructor Detail

    Driver

    public Driver(java.lang.String name,
                  java.lang.String nn)
    Construct a driver process.
    Parameters:
    name - This is the process name
    context - This is the SNMP agent context
    Method Detail

    Rollback

    public void Rollback(java.lang.Long rb)
    Rollback based upon out-of-tolerance rollback from logical processes.
    Parameters:
    rb - The time to which rollback should take place.

    Output

    public AvnmpQueue Output()
    Send VirtualMessageRatio virtual messages for each real message.
    Returns:
    Queue of packets with VirtualMessageRatio virtual messages for each real message.
    See Also:
    ConfigInterface.VirtualMessageRatio

    Predict

    public AvnmpPacket Predict()
    Predict a new value and create packet to send. For testing purposes the value sent by the prediction is pure error. In this demo we are estimating the load. We can use Normal(0,1) to add error to our estimation.
    Returns:
    packet with newly predicted value.
    See Also:
    AvnmpPacket.AvnmpPacket(byte a, String Source, long rt, String Destination, long st, Object pl)

    PredictedLoadFit

    public java.lang.Double PredictedLoadFit()
    This is the hook into a load prediction method.
    Returns:
    The predicted load on this outgoing link.

    PredictedLoadRandom

    public java.lang.Double PredictedLoadRandom()
    This is the hook into a perfect prediction with random noise.
    Returns:
    The predicted load on this outgoing link.

    Real

    public AvnmpPacket Real()
    Send a real packet.
    Returns:
    The real packet.
    See Also:
    AvnmpPacket.AvnmpPacket(byte a, String Source, long rt, long st, AvnmpLP mylp)

    Compute

    public PayLoad Compute(PayLoad pl)
    This method is not used by the Driver. It would normally be overwritten by the method to compute new values based on a given input.
    Overrides:
    Compute in class AvnmpLP
    Parameters:
    pl - The input packet's payload.
    Returns:
    The computed output packet's payload.

    getPPstate

    public java.lang.Double getPPstate()
    This method is not used by the Driver. It would normally be overwritten by a method to obtain the current state.
    Overrides:
    getPPstate in class AvnmpLP
    Returns:
    Return the physical process state.

    setPPstate

    public void setPPstate(java.lang.Double is)
    This method is not by the Driver. It would normally be overwritten by a method to set the current state.
    Overrides:
    setPPstate in class AvnmpLP
    Parameters:
    is - Set the physical process state.

    portTable

    public int portTable()
    Overrides:
    portTable in class AvnmpLP


    Copyright © 2002 GE Corporate Research and Development. All Rights Reserved.