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

Overlay Pathfinder

This pathfinding method is the most trivial one, and relies on the user providing the complete ERO. It will simply map the user-provided path elements in the reservation request to local database pathElem entries.

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.

Traceroute Pathfinder

Traceroute pathfinding will use IP traceroute from the ingress to the egress to do pathfinding. It is most useful when the policy for path creation between any two points in the network coincides with the IP routing policy.

Topology database graph Pathfinder

This method will try to find the least-cost path from the ingress to the egress. It is still under development, 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.