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:
- static
- perfsonar
- TERCE pathfinding
- Topology database database graph pathfinding
The OSCARS administrator can choose which method of pathfinding he wants 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 calculate 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:
- static to use static pathfinder
- terce to use TERCE web interface
- perfsonar for the perfsonar pathfinder
- dbgraph for the database-generated graph pathfinder
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.




