be.ac.ucl.ingi.totem.repository
Class RttMeasurementRequestGeneration

java.lang.Object
  extended by be.ac.ucl.ingi.totem.repository.RttMeasurementRequestGeneration

public class RttMeasurementRequestGeneration
extends java.lang.Object

The RttMeasurementRequestGeneration class is used to generate RttMeasurementRequest from a given domain. Given a domain to which all bgp message have been passed and for which we have the cluster data as specified in POPPOPTrafficMatrixGeneration, given a association of subnet list and dns server and given a traffic matrix containing information for egress data and without transit taffic. The class is used to calculate, for each egress node, the data that will transit by that node and to create a measurement request for these egress nodes, with requests to probe all subnets to which data will exit from that node.

Author:
Thomas Dekens Simon Balon (update to comply with the new CBGP JNI interface)

creation 16 mar. 2007


Constructor Summary
RttMeasurementRequestGeneration()
           
 
Method Summary
 void generateRttMeasurementRequests(Domain domain, java.lang.String netflowTrafficMatrixFilename, java.util.Hashtable<java.lang.String,java.lang.String[]> subnetDNS, CBGP cbgpInstance, java.util.HashMap clust, java.lang.String outputBaseDirectory)
          Given the specified domain, interdomain traffic matrix and instance of cbgp corresponding to the domain and to which all messages have been passed, this method creates directory outputBaseDirectoyr if it doesn't exist and creates for each egress router in the domain a sub directory containing measurements requests.
 double getLamba()
           
 java.lang.String getMeasurementMethod()
           
 int getNumberOfObservations()
           
 int getNumberOfQueries()
          Return the numbers of rtt measures that are taken at each observation
 java.util.Calendar getStartTime()
           
 java.lang.String getTimingUnits()
           
 boolean isPoissonDistribution()
           
 boolean isRandomizeDNSInList()
           
 boolean isTakeFirstMeasureDirectly()
           
static void main(java.lang.String[] args)
           
static java.util.Hashtable<java.lang.String,java.lang.String[]> readSubnetDnsFile(java.lang.String fileLoc)
          Reads the file at fileLoc of format "subnet dnsName dnsIP" and returns a hashtable {subnet, {dnsName, dnsIp}}
 void setLamba(double lamba)
           
 void setMeasurementMethod(java.lang.String measurementMethod)
           
 void setNumberOfObservations(int numberOfObservations)
           
 void setNumberOfQueries(int numberOfQueries)
          Sets the number of rtt measures that are taken at each observation
 void setPoissonDistribution(boolean poissonDistribution)
           
 void setRandomizeDNSInList(boolean randomizeDNSInList)
           
 void setStartTime(java.util.Calendar startTime)
           
 void setTakeFirstMeasureDirectly(boolean takeFirstMeasureDirectly)
           
 void setTimingUnits(java.lang.String timingUnits)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RttMeasurementRequestGeneration

public RttMeasurementRequestGeneration()
Method Detail

generateRttMeasurementRequests

public void generateRttMeasurementRequests(Domain domain,
                                           java.lang.String netflowTrafficMatrixFilename,
                                           java.util.Hashtable<java.lang.String,java.lang.String[]> subnetDNS,
                                           CBGP cbgpInstance,
                                           java.util.HashMap clust,
                                           java.lang.String outputBaseDirectory)
Given the specified domain, interdomain traffic matrix and instance of cbgp corresponding to the domain and to which all messages have been passed, this method creates directory outputBaseDirectoyr if it doesn't exist and creates for each egress router in the domain a sub directory containing measurements requests. The method also creates directories for the results and stores data later used to interpretate the results. This method is partly based on be.ac.ulg.montefiore.run.totem.trafficMatrix.generation.POPPOPTraffixMatrixGeneration.generateTrafficMatrix by O. Delcourt and S.Balon TODO throw exceptions rather than catch and return null TODO due to a Jaxb problem, output of marshalling had to be filtered to enable correct subsequent unmarshalling, as explained at the end. This might be fixed with newer versions of jaxb.

Parameters:
domain - the concerned domain
netflowTrafficMatrixFilename - the inter-domain XML traffic matrix generated using NetFlow, without transit traffic to other nodes and for each flow, src being a local destinatio and dst a distant one, the bandwidth is the sum of the bandwidth in both directions
subnetDNS - a hashtable of type linking a subnet to a {dnsName, dnsAddress} in that subnet, or close to that subnet
cbgpInstance - an instance of CBGP
outputBaseDirectory - the output directory

readSubnetDnsFile

public static java.util.Hashtable<java.lang.String,java.lang.String[]> readSubnetDnsFile(java.lang.String fileLoc)
                                                                                  throws java.io.FileNotFoundException,
                                                                                         java.io.IOException
Reads the file at fileLoc of format "subnet dnsName dnsIP" and returns a hashtable {subnet, {dnsName, dnsIp}}

Parameters:
fileLoc - the location of the file containing lines of the type :"subnet dnsName dnsIP"
Returns:
a hashtable with items : {subnet, [dnsName, dnsIp]}
Throws:
java.io.FileNotFoundException
java.io.IOException

main

public static void main(java.lang.String[] args)
                 throws DomainAlreadyExistException,
                        InvalidDomainException,
                        AlgorithmInitialisationException,
                        java.io.FileNotFoundException,
                        java.lang.Exception
Throws:
DomainAlreadyExistException
InvalidDomainException
AlgorithmInitialisationException
java.io.FileNotFoundException
java.lang.Exception

getLamba

public double getLamba()
Returns:
the lamba

setLamba

public void setLamba(double lamba)
Parameters:
lamba - the lamba to set

getMeasurementMethod

public java.lang.String getMeasurementMethod()
Returns:
the measurementMethod

setMeasurementMethod

public void setMeasurementMethod(java.lang.String measurementMethod)
Parameters:
measurementMethod - the measurementMethod to set

getNumberOfObservations

public int getNumberOfObservations()
Returns:
the numberOfObservations

setNumberOfObservations

public void setNumberOfObservations(int numberOfObservations)
Parameters:
numberOfObservations - the numberOfObservations to set

getNumberOfQueries

public int getNumberOfQueries()
Return the numbers of rtt measures that are taken at each observation

Returns:
the numberOfQueries

setNumberOfQueries

public void setNumberOfQueries(int numberOfQueries)
Sets the number of rtt measures that are taken at each observation

Parameters:
numberOfQueries - the numberOfQueries to set

isPoissonDistribution

public boolean isPoissonDistribution()
Returns:
the poissonDistribution

setPoissonDistribution

public void setPoissonDistribution(boolean poissonDistribution)
Parameters:
poissonDistribution - the poissonDistribution to set

isRandomizeDNSInList

public boolean isRandomizeDNSInList()
Returns:
the randomizeDNSInList

setRandomizeDNSInList

public void setRandomizeDNSInList(boolean randomizeDNSInList)
Parameters:
randomizeDNSInList - the randomizeDNSInList to set

getStartTime

public java.util.Calendar getStartTime()
Returns:
the startTime

setStartTime

public void setStartTime(java.util.Calendar startTime)
Parameters:
startTime - the startTime to set

isTakeFirstMeasureDirectly

public boolean isTakeFirstMeasureDirectly()
Returns:
the takeFirstMeasureDirectly

setTakeFirstMeasureDirectly

public void setTakeFirstMeasureDirectly(boolean takeFirstMeasureDirectly)
Parameters:
takeFirstMeasureDirectly - the takeFirstMeasureDirectly to set

getTimingUnits

public java.lang.String getTimingUnits()
Returns:
the timingUnits

setTimingUnits

public void setTimingUnits(java.lang.String timingUnits)
Parameters:
timingUnits - the timingUnits to set


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