be.ac.ulg.montefiore.run.totem.trafficMatrix.generation
Class POPPOPTrafficMatrixGeneration

java.lang.Object
  extended by be.ac.ulg.montefiore.run.totem.trafficMatrix.generation.POPPOPTrafficMatrixGeneration

public class POPPOPTrafficMatrixGeneration
extends java.lang.Object

This class generates a POP-POP XML intra-domain traffic matrix from an XML interdomain traffic matrix. In an XML inter-domain traffic matrix, we have for each node some destinations prefixes for which we need to know the corresponding egress node. For this, we replay BGP dumps in C-BGP.

Creation date: 04-03-2005

Author:
Olivier Delcourt (delcourt@run.montefiore.ulg.ac.be), Simon Balon (balon@run.montefiore.ulg.ac.be)

Field Summary
static double notRoutedTraffic
           
 
Constructor Summary
POPPOPTrafficMatrixGeneration()
           
 
Method Summary
 TrafficMatrix generatePOPPOPTrafficMatrix(Domain domain, java.lang.String trafficMatrixFileName)
          This method can be used to generate an XML traffic matrix from a text-file traffic matrix.
 TrafficMatrix generateTrafficMatrix(TrafficMatrix tm, java.util.HashMap hashMap, Domain domain, CBGP cbgpInstance, java.lang.String netflowXMLTrafficMatrixFileName)
          This methods takes a CBGP instance to which all messages (dumps & updates) have been passed and generates an intra-domain traffic matrix from an interdomain XML traffic matrix.
 void loadDump(Domain domain, CBGP cbgpInstance, java.lang.String BGPbaseDirectory, java.lang.String BGPdirFileName, java.util.List prefixes)
          This method loads prefixes from BGP dumps into an existing CBGP instance.
 void loadUpdates(Domain domain, CBGP cbgpInstance, java.lang.String updatesBaseDirectory, java.lang.String YYYYMMDDHHMM)
          This methods loads all the updates corresponding to a certain time interval into a specified CBGP instance.
 java.util.HashMap readCluster(Domain domain, java.lang.String clusterFileName, CBGP cbgpInstance, java.lang.String BGPbaseDirectory, java.lang.String BGPdirFileName)
          This method reads a cluster file resulting from bgpsum2.pl and loads all cluster prefixes in an existing C-BGP instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

notRoutedTraffic

public static double notRoutedTraffic
Constructor Detail

POPPOPTrafficMatrixGeneration

public POPPOPTrafficMatrixGeneration()
Method Detail

loadDump

public void loadDump(Domain domain,
                     CBGP cbgpInstance,
                     java.lang.String BGPbaseDirectory,
                     java.lang.String BGPdirFileName,
                     java.util.List prefixes)
              throws java.lang.Exception
This method loads prefixes from BGP dumps into an existing CBGP instance.

Parameters:
cbgpInstance - the CBGP instance into which prefixes will be loaded
BGPbaseDirectory - the directories containing dumps
BGPdirFileName - the directory and filename of the dumps found in BGPbaseDirectory/id/ or BGPbaseDirectory/rid/
prefixes - the list of prefixes that must be loaded //TODO: support null for this parameter to load all prefixes
Throws:
java.lang.Exception

generatePOPPOPTrafficMatrix

public TrafficMatrix generatePOPPOPTrafficMatrix(Domain domain,
                                                 java.lang.String trafficMatrixFileName)
                                          throws java.lang.Exception
This method can be used to generate an XML traffic matrix from a text-file traffic matrix. Typical format: src_node dst_node flow_size where src_node and dst_node must be IP addresses corresponding to RIDs in the XML topology format.

Parameters:
domain -
trafficMatrixFileName -
Returns:
Throws:
java.lang.Exception

readCluster

public java.util.HashMap readCluster(Domain domain,
                                     java.lang.String clusterFileName,
                                     CBGP cbgpInstance,
                                     java.lang.String BGPbaseDirectory,
                                     java.lang.String BGPdirFileName)
                              throws java.lang.Exception
This method reads a cluster file resulting from bgpsum2.pl and loads all cluster prefixes in an existing C-BGP instance.

Parameters:
clusterFileName - The name of the clustering file resulting from the perl script.
cbgpInstance - the CBGP instance in
BGPbaseDirectory -
BGPdirFileName -
Returns:
Throws:
java.lang.Exception

generateTrafficMatrix

public TrafficMatrix generateTrafficMatrix(TrafficMatrix tm,
                                           java.util.HashMap hashMap,
                                           Domain domain,
                                           CBGP cbgpInstance,
                                           java.lang.String netflowXMLTrafficMatrixFileName)
                                    throws java.lang.Exception
This methods takes a CBGP instance to which all messages (dumps & updates) have been passed and generates an intra-domain traffic matrix from an interdomain XML traffic matrix.

Parameters:
tm - this parameter can be an existing traffic matrix to which you want to add new traffic (for example to generate a traffic matrix for two hours...)
hashMap - an hashMap mapping a prefix to a cluster (which has been advertised in C-BGP)
domain - the concerned domain
cbgpInstance - the corresponding C-BGP instance
netflowXMLTrafficMatrixFileName - the inter-domain XML traffic matrix generated using NetFlow
Returns:
Throws:
java.lang.Exception

loadUpdates

public void loadUpdates(Domain domain,
                        CBGP cbgpInstance,
                        java.lang.String updatesBaseDirectory,
                        java.lang.String YYYYMMDDHHMM)
                 throws java.lang.Exception
This methods loads all the updates corresponding to a certain time interval into a specified CBGP instance. // TODO: update this method to get it working

Parameters:
domain -
cbgpInstance - the CBGP instance
updatesBaseDirectory - the base directory containing updates, then stored in subdirectories according routers names
YYYYMMDDHHMM - updates should be stored in files updatesYYYYMMDDHHMM
Throws:
java.lang.Exception


Copyright © 2004-2006 Research Unit in Networking, All Rights Reserved.