Bees v0.5.0 API

Package apps.pathfinder

A simple routing protocol that builds a tree of nodes for forwarding client packets to a server and multicasting server packets to the clients.

See:
          Description

Class Summary
ConfigurationCapsule Capsule used to tell neighbors about the path to the root of the tree.
MulticastCapsule A MulticastCapsule is a base class for Capsule types that will be multicast from the server node to the clients.
PathfinderBootCapsule Boot capsule used when the pathfinder is acting alone (not a companion).
PathfinderParameters PathfinderParameters holds any arguments to the pathfinder flow.
PathfinderProtocol The PathfinderProtocol is a simple routing protocol that builds a tree of nodes for forwarding client packets to a server and multicasting server packets to the clients.
PathfinderSession PathfinderSession tracks any state global to the pathfinder protocol.
SinkCapsule A SinkCapsule is a base class for Capsule types that originate at the leafs of the pathfinder tree and are directed toward the root.
 

Package apps.pathfinder Description

A simple routing protocol that builds a tree of nodes for forwarding client packets to a server and multicasting server packets to the clients. Pathfinder is an extremely simple routing protocol, it does not require unique addresses for nodes, its only job is to direct traffic to a single root node. While, this is not particularly useful for large and complex networks, it works well enough for protocols that are primarily unidirectional towards the server, like health. In addition, it makes a great example for user defined companion protocols.

Pathfinder functions like a spanning tree protocol, each node broadcasts a ConfigurationCapsule that contains the number of hops to the root node. When one of these capsules is received, the node compares the number of hops against any previously seen capsules and makes a decision:

  1. If the number is less than any seen so far, this neighbor is assumed to be the new "root neighbor". Any packets to be sent to the server will be routed through this neighbor.
  2. If the number is greater than any seen so far, the neighbor is assumed to be a sibling and it is removed from the "children" neighborhood. This prevents extra copies of server broadcasts from being sent to the neighbor.
  3. If the number is negative one, the neighbor thinks we are their parent, thus, they are added to the "children" neighborhood.

In addition to the normal class files, the protocol also carries the protocol.properties file. This is a Java properties file that carries some configuration data and describes the protocol to the webmin interface. Properties that the protocol will pay attention to are as follows:

Note: If you would like to change these in the development environment you need to edit the protocol.properties.in file and rerun make.


Bees v0.5.0 API

This documentation is Copyright (C) 2002 The University of Utah. All Rights Reserved. See the individual source files for distribution terms.
Documentation, software, and mailing lists for Bees v0.5.0 can be found at the Janos Project: http://www.cs.utah.edu/flux/janos/