Selma Yilmaz- Research

Implementation of APMS in SSF Network Simulator

We have used the 2.0.0 release of Java SSFNet. For more information on SSFNet, including tutorials, please visit the SSF Research Network home page at http://www.ssfnet.org

Modified Files
BGPSession.java Overwritten to be able to implement APMS. Each router running BGP keeps local history of the number
of times a route is adopted and later abadoned. Decision processes are changed to classify the state
of the network as either conflict-free or potentially-conflicting by observing its local history.
Based on the degree of measured conflicts, either the path preferences are changed to increase the
preference for observably stable paths over flapping paths, or the the flapping paths are suppressed.
After reaching stability, detected by counting the number of keepalive messages received, some of the
original local preferences are restored with a small probability.
APMS also includes a mechanism to distinguish route flaps due to topology changes, so as not to confuse
them with those due to policy conflicts.
LocRIB.java LocRIB class is updated to be able to handle epsilon routes.
PeerEntry.java PeerEntry class is updated to be able to figure out the most stable peer.
Route.java Route class is updated to be able to keep track of original local preference assigned to the route, originalDOP, and the current local preference of the route, currentDOP. A boolean variable called epsilon has been added to indicate whether or not this route is suppressed.
UpdateMessage.java UpdateMessage class is changed to include two new fields called fail and originatorFAIL. fail indicates whether the update message is due to a topology change, and originatorFAIL is the list of ASes which heard about a particular topology change, and adapted to the new topology.
Predicate.java Predicate class is updated to be able handle epsilon routes.

Last Update: November 8, 2005