be.ac.ulg.montefiore.run.totem.repository.DAMOTE
Class DAMOTE

java.lang.Object
  extended by be.ac.ulg.montefiore.run.totem.repository.DAMOTE.DAMOTE
All Implemented Interfaces:
DomainSyncAlgorithm, LSPBackupRouting, LSPPrimaryRouting, TotemAlgorithm

public class DAMOTE
extends java.lang.Object
implements LSPPrimaryRouting, LSPBackupRouting, DomainSyncAlgorithm

This class implements the integration of DAMOTE (ULg). DAMOTE is a Decentralized Agent for Mpls Online Traffic Engineering.

The specific parameter required by this algorithm is:

Creation date: 24-mar.-2004

Author:
Olivier Delcourt (delcourt@run.montefiore.ulg.ac.be), Gaƫl Monfort (monfort@run.montefiore.ulg.ac.be)

Constructor Summary
DAMOTE()
           
 
Method Summary
 void addLSP(Lsp lsp)
          Adds an LSP to DAMOTE database
 java.util.List<ParameterDescriptor> getDetourRoutingParameters()
           
 JNIDAMOTE getJniInstance()
           
 DAMOTEChangeListener getListener()
           
 java.util.List<ParameterDescriptor> getPrimaryRoutingParameters()
           
 java.util.HashMap getRunningParameters()
          Returns the parameters given when the algorithm was started
 java.util.List<ParameterDescriptor> getStartAlgoParameters()
          Returns the optional parameters that can be given when starting the algorithm
 void invalidateDB()
          Tells the algo that the database is not up-to-date
 boolean isDBValid()
          return true if the local DB is up-to-date
 void printDamoteDB()
          Print DAMOTE database content
 void removeLSP(java.lang.String lspid)
          Remove an LSP from DAMOTE database
 void restart()
          restarts the algorithm with the same parameters
 TotemActionList routeBypass(LSPBypassRoutingParameter param)
          Computes a bypass.
 TotemActionList routeDetour(Domain dom, LSPDetourRoutingParameter param)
          Computes a global detour or local detours for a primary LSP
 TotemActionList routeLSP(Domain dom, LSPPrimaryRoutingParameter param)
          Computes a path with DAMOTE for one demand from a source node to a destination node with a bandwidth requirement
 TotemActionList routeNLSP(Domain dom, java.util.List<LSPPrimaryRoutingParameter> param)
          Computes paths with DAMOTE for a list of demands.
 void start(java.util.HashMap params)
          Initializes DAMOTE
 void stop()
          Cleans all damote data structures
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DAMOTE

public DAMOTE()
Method Detail

getJniInstance

public JNIDAMOTE getJniInstance()

isDBValid

public boolean isDBValid()
Description copied from interface: DomainSyncAlgorithm
return true if the local DB is up-to-date

Specified by:
isDBValid in interface DomainSyncAlgorithm
Returns:

invalidateDB

public void invalidateDB()
Description copied from interface: DomainSyncAlgorithm
Tells the algo that the database is not up-to-date

Specified by:
invalidateDB in interface DomainSyncAlgorithm

restart

public void restart()
Description copied from interface: DomainSyncAlgorithm
restarts the algorithm with the same parameters

Specified by:
restart in interface DomainSyncAlgorithm

printDamoteDB

public void printDamoteDB()
Print DAMOTE database content


start

public void start(java.util.HashMap params)
           throws AlgorithmInitialisationException
Initializes DAMOTE

Specified by:
start in interface TotemAlgorithm
Parameters:
params - general configuration parameters, the score function specific parameters,...
Throws:
AlgorithmInitialisationException

stop

public void stop()
Cleans all damote data structures

Specified by:
stop in interface TotemAlgorithm

routeNLSP

public TotemActionList routeNLSP(Domain dom,
                                 java.util.List<LSPPrimaryRoutingParameter> param)
                          throws RoutingException,
                                 NoRouteToHostException,
                                 LocalDatabaseException
Computes paths with DAMOTE for a list of demands. This method just calls the routeLSP method for each demand.

Specified by:
routeNLSP in interface LSPPrimaryRouting
Parameters:
param - the list of the demand specified as a list of LSPPrimaryRoutingParameter
Returns:
a list of AddLspAction
Throws:
RoutingException
NoRouteToHostException
LocalDatabaseException

routeLSP

public TotemActionList routeLSP(Domain dom,
                                LSPPrimaryRoutingParameter param)
                         throws RoutingException,
                                NoRouteToHostException,
                                LocalDatabaseException
Computes a path with DAMOTE for one demand from a source node to a destination node with a bandwidth requirement

Specified by:
routeLSP in interface LSPPrimaryRouting
Parameters:
param - contains the source, destination, bandwidth, PL, OA, ...
Returns:
a list of actions
Throws:
RoutingException
NoRouteToHostException
LocalDatabaseException

routeDetour

public TotemActionList routeDetour(Domain dom,
                                   LSPDetourRoutingParameter param)
                            throws RoutingException,
                                   NoRouteToHostException,
                                   LocalDatabaseException
Computes a global detour or local detours for a primary LSP

Specified by:
routeDetour in interface LSPBackupRouting
Parameters:
dom -
param - the primary LSP id, backup type, preemption support, add lsp support
Returns:
a list of actions (addDetourLspAction)
Throws:
RoutingException
NoRouteToHostException
LocalDatabaseException

addLSP

public void addLSP(Lsp lsp)
            throws RoutingException
Adds an LSP to DAMOTE database

Parameters:
lsp - the LSP to be added
Throws:
RoutingException

removeLSP

public void removeLSP(java.lang.String lspid)
               throws RoutingException
Remove an LSP from DAMOTE database

Parameters:
lspid -
Throws:
RoutingException

routeBypass

public TotemActionList routeBypass(LSPBypassRoutingParameter param)
                            throws RoutingException,
                                   NoRouteToHostException,
                                   NotYetImplementedException
Description copied from interface: LSPBackupRouting
Computes a bypass. This method must change because, we don't have algorithm able to compute bypass.

Specified by:
routeBypass in interface LSPBackupRouting
Parameters:
param - specifies the parameters for the backup routing algorithm
Returns:
the bypass computed
Throws:
RoutingException
NoRouteToHostException
NotYetImplementedException

getListener

public DAMOTEChangeListener getListener()

getStartAlgoParameters

public java.util.List<ParameterDescriptor> getStartAlgoParameters()
Description copied from interface: TotemAlgorithm
Returns the optional parameters that can be given when starting the algorithm

Specified by:
getStartAlgoParameters in interface TotemAlgorithm
Returns:
the list of algorithm parameters

getRunningParameters

public java.util.HashMap getRunningParameters()
Description copied from interface: TotemAlgorithm
Returns the parameters given when the algorithm was started

Specified by:
getRunningParameters in interface TotemAlgorithm
Returns:

getPrimaryRoutingParameters

public java.util.List<ParameterDescriptor> getPrimaryRoutingParameters()
Specified by:
getPrimaryRoutingParameters in interface LSPPrimaryRouting

getDetourRoutingParameters

public java.util.List<ParameterDescriptor> getDetourRoutingParameters()
Specified by:
getDetourRoutingParameters in interface LSPBackupRouting


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