be.ac.ulg.montefiore.run.totem.domain.model
Interface BandwidthManagement

All Known Implementing Classes:
BandwidthSharingBandwidthManagement, DiffServBandwidthManagement

public interface BandwidthManagement

This class manages link bandwidth. Lsps can be added or remove temporarily to see the effect on reservable bandwidth. Lsp can also be added or removed permanently, changing the reservation in the links.

Creation date: 30/10/2006

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

Method Summary
 void addLsp(Lsp lsp)
          Add lsp reservation.
 void addLspTemp(Lsp lsp)
          Adds a lsp temporarily.
 void cancelChanges()
          Cancel changes made by adding and removing lsp temporarily.
 java.util.List<Lsp> getPreemptList(Lsp lsp)
          Returns the list of lsps to be preempted when a lsp is to be added to the domain.
 float getReservableBandwidth(int priority, Link link, java.util.Set<Link> protectedLinks)
          Returns the maximum reservable bandwidth at priority level priority for a lsp traversing the link link.
 void init()
          Initialise the Bandwidth Management object with the lsps already present in the domain.
 void recomputeRbw(Link link)
          Recompute the reservable bandwidth (rbw array) of the link link.
Warning: all rbw values should be set to 0 before calling this method.
 void removeLsp(Lsp lsp)
          Removes lsp reservation.
 void removeLspTemp(Lsp lsp)
          Removes a lsp temporarily.
 boolean usePreemption()
          returns true if preemption is supported by the class.
 

Method Detail

getPreemptList

java.util.List<Lsp> getPreemptList(Lsp lsp)
                                   throws LinkCapacityExceededException
Returns the list of lsps to be preempted when a lsp is to be added to the domain. The lsps to be preemped are temporarily removed (see removeLspTemp(Lsp)).

Parameters:
lsp - the Lsp to be added to the domain
Returns:
Throws:
LinkCapacityExceededException - if not enough bandwidth can be freed to accept the lsp

init

void init()
          throws LinkCapacityExceededException
Initialise the Bandwidth Management object with the lsps already present in the domain. This must be called prior to use.

Throws:
LinkCapacityExceededException - if the calculated bandwidth exceed link capacity

addLsp

void addLsp(Lsp lsp)
            throws LinkCapacityExceededException,
                   DiffServConfigurationException,
                   LspNotFoundException
Add lsp reservation. It adds some reservation to the links in the path of the lsp.

Parameters:
lsp -
Throws:
LinkCapacityExceededException
DiffServConfigurationException
LspNotFoundException - if the argument is a backup lsp and the primary lsp cannot be found in the domain

removeLsp

void removeLsp(Lsp lsp)
               throws DiffServConfigurationException,
                      LspNotFoundException,
                      LinkCapacityExceededException
Removes lsp reservation. It removes some reservation to the links in the path of the lsp.

Parameters:
lsp -
Throws:
DiffServConfigurationException
LspNotFoundException
LinkCapacityExceededException

removeLspTemp

void removeLspTemp(Lsp lsp)
                   throws LinkCapacityExceededException,
                          DiffServConfigurationException,
                          LspNotFoundException
Removes a lsp temporarily. The result of this removing is seen when the #getReservableBandwidth(int, Link, java.util.Set) method is called. This can be undone by a call to cancelChanges() .

Parameters:
lsp -
Throws:
LinkCapacityExceededException
DiffServConfigurationException
LspNotFoundException

addLspTemp

void addLspTemp(Lsp lsp)
                throws LinkCapacityExceededException,
                       DiffServConfigurationException,
                       LspNotFoundException
Adds a lsp temporarily. The result of this adding is seen when the #getReservableBandwidth(int, Link, java.util.Set) method is called. This can be undone by a call to cancelChanges() .

Parameters:
lsp -
Throws:
LinkCapacityExceededException
DiffServConfigurationException
LspNotFoundException

cancelChanges

void cancelChanges()
Cancel changes made by adding and removing lsp temporarily.


getReservableBandwidth

float getReservableBandwidth(int priority,
                             Link link,
                             java.util.Set<Link> protectedLinks)
Returns the maximum reservable bandwidth at priority level priority for a lsp traversing the link link. If protectedLinks is given, the reservable bandwidth for a backup lsp protecting those links is returned, otherwise, a primary lsp is assumed.
This method takes the temporarily added and removed lsps into account.

Parameters:
priority -
link -
protectedLinks -
Returns:

usePreemption

boolean usePreemption()
returns true if preemption is supported by the class.

Returns:

recomputeRbw

void recomputeRbw(Link link)
                  throws LinkCapacityExceededException
Recompute the reservable bandwidth (rbw array) of the link link.
Warning: all rbw values should be set to 0 before calling this method.

Parameters:
link -
Throws:
LinkCapacityExceededException


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