AVNMP

Active Virtual Network Management Prediction
Chapter 9: Atropos System Operation

Stephen F. Bush and Amit Kulkarni
(bushsf@crd.ge.com, kulkarni@crd.ge.com)
 
Previous Chapter
Beginning of Tutorial
Next Chapter
This chapter assumes that previous chapters covering the Atropos Driving and Logical Processes have been read and understood. In this chapter we look at parameters governing operation of the general Atropos system. Remember that the goal of the Atropos toolkit is to provide the capability to build predictive models inside the network, instrument and control them, and measure the performance. Chapters 5 and 6 discussed instrumentation while Chapters 7 and 8 discussed building the Atropos Driving Process and Logical Process models. 

Key Concepts

The key concept of this chapter is to review the configuration information for general purpose operation of the Atropos system. This consists of directory configuration, performance configuration, debugging configuration, packet routing. Note that there is currently no graphical interface built into the system; the results can be polled from the SNMP MIB using any available SNMP client. The type of results from the Atropos/AVNMP MIB are shown in the following figure. One of the typical tradeoff studies is prediction accuracy, overhead, and the distance into the future that the Atropos system can predict (lookahead) under a variety of conditions and models.

 

Directory Configuration

The code below shows the list of parameters that can be set in avnmp.java.lp.ConfigInterface (ConfigInterface.java). The log() method, shown in the line below, prints a line of debugging information to the directory specified in Table 1 if the first parameter's bit is set in the AvnmpDebug bit-map. See the AtroposDebug documentation for more details about using logging. 
 
 log(AvnmpDebug.PP_D, "debug output");
 
GnuPlot objects will write data in GnuPlot format in the directory specified by plot_data as shown in the line below. The line below records the Local Virtual Time, wallclock time, and the total number of causality based rollbacks in a single GnuPlot file. See the documentation on the GnuPlot class for more details on creating and using this class. 
 
 pCausRB.plot(getlvt()+" "+start_time.time()+" "+numCausalityRb.sum());
 
The snmpdir variable is the directory where the SNMP client would store the data that it collects. This is only included in Atropos so that Atropos can call a script to automatically erase old data before each new execution. rmlog, rmsnmp, and rmplots are only necessary if a script is desired to automatically remove old data before each execution. 

 
Variable Name
Default Value
Purpose
logdir 
../log_data/ 
Directory into which debugging information isplaced 
pdir 
../plot_data/ 
Directory into which plot information is placed 
snmpdir 
../snmp_data/ 
Directory into which SNMP data is stored 
rmlog 
../log_data/rem 
Program to remove all old log data 
rmsnmp 
../snmp_data/rem 
Program to remove all old SNMP data 
rmplots 
../plot_data/rem 
Program to remove all old plot data 
Table 1: Directory Configuration.

Performance Configuration

 
Variable Name
Default Value
Purpose
VirtualMessageRatio
new Integer(1)
Not used
runMinutes
5
Mintutes to run at each tolerance
ootLimit
0.9
Threshold of out-of-tolerance messages at which program exits
initTolerance
1000.0
Initial tolerance; reduced by half after every runMinutes
lvm
0.5
Rate of virtual message generation
Dvm
20000
Time-step of each virtual message
Table 2: Atropos System Variables.

Debugging Control

Debugging can be specified by setting the AvnmpDebugenvironment variable to an int sized bit-mapped value before running the Atropos system. Table 3 below shows each bit of the bit-map the debugging topic that it controls. 
 
Internal Name
Bit Map
Feature Debugged
GVT_D 0x01 Global Virtual Time
RECQ_D 
0x02 
Receive Queue 
SNDQ_D 
0x04 
Send Queue 
PP_D 
0x08 
Physical Process
STATEQ_D 
0x10 
State Queue 
TIME_D 
0x20 
Time Management 
LP_D 
0x40 
Logical Process 
SYSTEM_D 
0x80 
Atropos System (General) 
MEASURE_D 
0x100 
Measurement 
TOLERANCE_D 
0x200 
Tolerance 
ROLLBACK_D 
0x400 
Rollback 
DRIVER_D 
0x800 
Driving Process 
LPSTATE_D 
0x1000 
Logical Process State 
PAYLOAD_D 
0x2000 
Packet Payload 
PREDM_D 
0x4000 
Prediction Accuracy 
PACKET_D 
0x8000 
Packet 
Table 3: Debugging BitMap.

Packet Routing

The Atropos virtual messages (streptichrons) are source routed for experimental purposes. The code segment below from avnmp.java.pp.PayLoad (PayLoad.java)shows how the packet routing is coded based upon source node, destination node, and probability that the path is taken. 
 private void AvnmpRoute1() { 
 tab.addEntry("AH-1", "AN-1", new Double(1.0));

 tab.addEntry("AN-1", "AN-5", new Double(1.0));

 tab.addEntry("AN-5", "AN-1", new Double(0.5));

 tab.addEntry("AN-5", "output", new Double(0.5));

}

Running the Active Application

After reading through this code and understanding what it does, you can compile the code "as-is" using the included Makefile. Run in the Magician execution environment by entering: 
  • send InjectSnmp AH-1 
  • send LoadGenAppBasic AH-1 
  • send Flood AH-1 
  • send AvnmpSmartDriver AH-1 
The object identifiers created within the application and the predictions generated by Atropos should now be queriable via an SNMP client. 
Previous Chapter
Beginning of Tutorial
Next Chapter

 The complete Atropos documentation is found in the Atropos API .

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


SourceForge
Logo