home > Components > Pathfinder

Pathfinder component notes

Overview

The pathfinder component takes a requested path from the user and finds the actual path through the network that can be used to realize the suggested path. The input path may simply consist of the source and destination hosts, or it may specify edge routers of the various domains which it will traverse, or it may be a fully specified path.

Currently OSCARS implements the following pathfinding solutions:

The OSCARS administrator can choose which method of pathfinding they want to use at configuration time.

Moreover, OSCARS developers with different needs may develop their own pathfinder implementation by creating a new class that implements the Pathfinder java interface.

Details

Static Pathfinder

This pathfinding method is the most trivial one, for interdomain paths it chooses from routes in the MySql interdomainroute table. For local paths, it will parse an xml file describing topology specified by the oscars.properties file pathfinder.staticxml.file.

TERCE Pathfinder

This pathfinder will use the TERCE pathfinding web service to find a path from the ingress to the egress. See the TERCE documentation for more details.

perfsonar Pathfinder

Perfsonar will caluclate a path based on information from the Topology Server.

Topology database graph Pathfinder

This method will try to find the least-cost path from the ingress to the egress. It is used at ESNet, and relies on the domain administrator having assigned a cost to the various links in the topology database.

Configuration

The admin must choose which pathfinder class they want to run by configuring the OSCARS server through oscars.properties. The relevant property is pathfinder.pathMethod. Valid values are:

Development

To develop a new Pathfinder method, the developer should implement the net.es.oscars.pathfinder.Pathfinder interface in their own class. Then a short name for the method must be chosen, and PathfinderFactory must be modified to load the appropriate class when the pathfinder.pathMethod property has that value.