Active Virtual Network Management Prediction (AVNMP) Manual and Installation

This research is funded by DARPA/ITO Contract Number: F30602-98-C-0230 supported by the Air Force Research Laboratory/IF.
The project web site is http://www.crd.ge.com/~bushsf/an

Stephen F. Bush and Amit Kulkarni
(bushsf@crd.ge.com, kulkarni@crd.ge.com)


Running AVNMP

The instructions given in this document assume that the Magician Execution Environment (EE) is being used. Once the Magician EE is setup, there should be a network configuration file in the Magician Four11 directory that describes the  EE topology. Start the appropriate Host and Nodes for your configuration. Note that wallclock time on all nodes should be synchronized for best performance.
  1. The CLASSPATH must include a path to the base of the avnmp packages. This is the directory into which the  the avnmp package is installed. If the package creates a directory called avnmp, then the CLASSPATH should point to the directory in which avnmp resides.
    1. The CLASSPATH must include the path to the base of the Magician packages.
    2. The CLASSPATH must include a path to the directory immediately above the included snmp package. This would be .../avnmp/java.
    3. The CLASSPATH within .../magician/starth must include the class paths listed above.
  2. The java compiler must be specified by setting the JAVADIR environment variable to the directory in which bin resides, e.g. "setenv JAVADIR /home/bushsf/java1.3.0/j2sdk1_3_0beta".
    1. The Debug level can be set by adjusting the value of AvnmpDebug in your environment,  e.g. "setenv AvnmpDebug 255" (See AvnmpDebug).
  3. At the Magician host enter (assuming host name is AH-1):
    1. send avnmp.java.start.InjectSnmp AH-1                             (this injects SNMP instrumentation into the network)
    2. send avnmp.java.load.LoadGen AH-1                                  (this begins a sample application called LoadGen)
    3. send avnmp.java.start.Flood AH-1                                        (this injects the logical processes into the network)
    4. send avnmp.java.start.AvnmpSmartDriver AH-1            (this starts the driving process on the host node)
  4. An SNMP walk of the MIB at any  of the running nodes will display the AVNMP state, application predicted state, and actual application state. The mibs are included in mib-avnmp.txt and mib-loadpred.txt.
  5. LoadGen attempts to transmit packets to AN-5. This is currently hardcoded in avnmp.java.load.LoadGen  and can be changed and recompiled if necessary.


Installation

  1. Uncompress and untar the Java source files.                         (gunzip avnmp-beta.tar.gz, tar xvf avnmp-beta.tar)
  2. Run the top level Make to build the executable code.         (make)
  3. An example load prediction application is included.          (LoadGen)

Getting the Code

  1. This package contains the AVNMP code. New versions can be retrieved from http://www.crd.ge.com/~bushsf/an.
  2. The Magician execution environment is required to run AVNMP and is available from the University of Kansas or contact Amit Kulkarni.
  3. An SNMP client is not required, but is useful for monitoring and managing the system. SNMP packages are available from many sources, one source is http://www.net.cmu.edu/groups/netdev/software.html.
This should be enough information to start running. The remaining content of this file provides more detail about the program organization and customization.

AVNMP FILES and Java Packages

The complete AVNMP documentation is found in the AVNMP API .

Startup

Sample Application


avnmp.java.lp.ConfigInterface  Parameters

Operational Configuration Parameters

AVNMP Dependencies

Specific ties to the Magician environment are noted in green.
Specific ties to the AVNMP-Enhanced application are in red.
Interfaces to SNMP are in pink.
 
AVNMP Dependencies Table
Class Description Magician Interfaces Application Interfaces Management Interfaces
Amain
Starts up an individual LP on a node. The steps to incorporate this into an execution environment.
This is an active packet and thus is highly Magician dependent.    
AvnmpSmartDriver Starts up an individual Driving Process on a node.  This is an active packet and thus is highly Magician dependent.    
Flood Starts Amain on all Active Nodes. Magician dependent.    
InjectSnmp Injects the SNMP protocol interface in order to hold the predicted values and to manage the AVNMP system.     Primarily handles management functionality of instrumenting all active applications on the node with SNMP.
Driver Generates virtual messages. Magician dependent calls are made to NetLoggerEventManager and
SPThread.currentSPThread.sleep()
   
Gvt Global Virtual Time implementation.      
HtmlDebug Write HTML log files.      
AvnmpBW Add itself to the receive queue with some measurement hooks that are Magician dependent. 
This is an active packet and thus is currently highly Magician dependent.
  • queueSize()
  • xmitRate()
  • recvRate()
  • Seconds()
  • GetNodeName()

  • smallstate access to add itself to the receive queue
   
SnmpInterface Holds all the Object IDs of which AVNMP needs to be aware.     This is a management function.
ConfigInterface Holds configurable information for the system.      
AvnmpDebug Set debug level.      
AvnmpDriverRb
Accesses smallstate to notify DP of rollback.
   
AvnmpLP The Logical Process     Many calls to the management interface.
AvnmpPacket The virtual message (streptichron) -
AvnmpPacket.compPred() checks the predicted accuracy by calling PayLoad.streptiChron().
    Calls the management interface to accuracy of prediction with actual application. avnmp.java.lp.SnmpInterface holds the object id information for AVNMP and the application.
AvnmpQueue General queue base class      
AvnmpRecQueue This is the logical process receive queue.   This is where AvnmpPacket.compPred() is called which ties to the application. Calls the application via the management framework interface.
AvnmpSndQueue Saves sent messages      
AvnmpStat (utility) Implements variable statistics.      
AvnmpState Logical Process state      
AvnmpStateQueue Logical Process State Queue     Includes updateSnmpObjects(). This is where the prediction is stored in the MIB.
AvnmpTime Base class for time management.      
PredMeasure (utility) This is a utility to check the prediction accuracy weighted by time.      
PredVector (utility) Vector of PredMeasure objects.     Contains SnmpAgentContext.updateSubAgent().
GnuPlot Write data to be plotted into GnuPlot files.      
PP This is the model of the process to be AVNMP-Enhanced.       
PayLoad No ties to Magician other than Node names for the route.   Highly application dependent. Contains source route for load prediction application.  
splitElement, splitTable Implements probabilistic routing.   Used in PayLoad to include probabilities of splits and joins in a route. Implements load application.  
LoadGen (Sample Application) Generates packets. This is a  Magician active packet. This is the application.  
LoadPacket (Sample Application) Packets generated by LoadGen. This is a  Magician active packet. This is the application. Load and Uptime are available via the management interface.

The complete AVNMP documentation is found in the AVNMP API .