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

All Known Implementing Classes:
BandwidthSharingBandwidthManagement, BandwidthSharingBandwidthManagementSnapshot, DiffServBandwidthManagement, DiffServBandwidthManagementSnapshot

public interface BandwidthManagement

This class manages link bandwidth.

Creation date: 30/10/2006

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

Method Summary
 void addLsp(Lsp lsp)
          Add lsp reservation.
 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.Collection<Link> protectedLinks)
          Returns the maximum reservable bandwidth at priority level priority for a lsp traversing the link link.
 BandwidthManagement getSnapshot()
          Returns a bandwidth management instance that can be used temporarily.
 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.
 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.

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

getReservableBandwidth

float getReservableBandwidth(int priority,
                             Link link,
                             java.util.Collection<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

getSnapshot

BandwidthManagement getSnapshot()
Returns a bandwidth management instance that can be used temporarily. Adding or removing lsps to the returned instance should not affects link reservation at all on the domain.

Returns:


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