
Rapid Spanning Tree Visio Simulation
=====================================

Requirements
------------
This software has been software has been built and tested on Visio 2002 (SR1) running under WinXP. It is also intended to run under Visio 2000 (SR1) and on Win 2000, WIN NT4 and Win98/Me.  It is your responsibility, not ours, to ensure that you are running a legally licensed copy of Visio. We do not distribute Visio.

Distribution
-------------
Releases of the simulation tool for standards contribution and study are distributed by posting a .zip file in the P802.1 documents directory and announcing this on the P802.1 email exploder.
 
Documentation
-------------

See the Rapid Spanning Tree Simulation Guide (PDF) that accompanies the standard distribution.

Version 2402 Release Notes (5-APR-2004)
--------------------------

Version 2402 of the RSTP Simulation attempts to implement P802.1D/D4 which is the sponsor ballot approved version and should thus be technically identifical  to IEEE Std 802.1D-2004 when that text is available. This version also includes 2 UNAPPROVED TECHNICAL CHANGES to 802.1D-2004. The first is a correction of an editing mishap to the text of the procedure recordDispute(), i.e. the technical substance is now what was intended by the comment applied to P802.1D/D3. The second is a allSynced bug discussed on the 802.1 email reflector 3/10/2004. A brief note on the bug is included in this release not below.

A counter for the number of times the Filtering Database is flushed on each port is included. It assumes a model where the filtering database can be flushed instantly. If, for example, the database took 10 milliseconds to flush the count would be somewhat lower since high flush count are usually associated with closely packed events.

As noted in the simulation guide the implementation is deliberately slow, rescheduling internal events with additional millisecond delays so that the progress of the state machines can be more readily seen.
-------------------------------------------------------------------

1. recordDispute()
The text should have been edited to read:

If an RST BPDU with the learning flag set has been received:
a) the disputed variable is set; and
b) the agreed variable is cleared.


2. Fix to allSynced bug

There was a bug in the definition of the allSynced condition which
exposed a state machine race. agree could go false on one port, and then
true again without (apparently) allSynced ever becoming true, which is the
one and only condition for setting agree true. Previously the definition of
allSynced included being false when updtinfo was set for any port. This has
been restored and fixes the bug.
