This guide describes the list of the files of the project.
==========================================================
There are two target binaries: mngr & bridge
o The first is a simplest tools to connect/disconnect
bridges and check their current connection. These its
functions are managed from command line simple language
and use the library libcli.a (see below). Beside it mngr
serves to transport BPDU messages between bridges; for
this purpose mngr uses the library libuid.a
The source code of the mngr: file mngr.c
o The second is a simulation of virtual RSTP bridge. It
accepts two types of messages: UID_CNTRL & UID_BPDU (see
file uid.h). This program is linked with the same two
libraries libcli.a & libuid.a; beside it uses a system
independent librstp.a: implementation of Rapid Spanning
Tree (802.1w) - see below.
The source code of the bridge: files bridge.c,stp_cli.c,
stp_to.c
* bridge.c - simulates the main bridge behavior
* stp_cli.c - consists from command line functions
* stp_to.c - API, that librstp.a uses for its purposes.
The management communication between bridge and librstp.a
uses structures and definitions from the header uid_stp.h
o libcli.a - library for command line features. It has only
one file cli.c, the API is described in the header cli.h.
o libuid.a - the 'transport' library: the source code you
may find in the file uid_sock.c and in the two headers:
uid.h & uid_sock.h
o (so far, so good) librstp.a - it is a heart of the project
Actually, it implements 802.1w state machines. Files
stpm.c - the RSTP instance (some reflection of Port0)
port.c - the RSTP port instance
portinfo.c - Port Information State Machine, 17.21
rolesel.c - Port Role Selection State Machine, 17.22
roletrns.c - Port Role Transition State Machine, 17.23
sttrans.c - Port State Transition State Machine, 17.24
topoch.c - Topology Change State Machine, 17.25
migrate.c - Port Protocol Migration State Machine, 17.26
transmit.c - Port Transmit State Machine 17.27
pcost.c - Path Cost Resolution State Machine
edge.c - operEdge Port Resolution State Machine
p2p.c - operPointToPoit Resolution State Machine
statmch.c - generic state machine implementation
vector.c - Priority Vectors manipulations
times.c - Times manipulations
stp_in.c - API for calls from outside.
sttrans.c - API for calls from outside (dedicated for creation
deleting, starting & stopping the RSTP instance) less
relevant to the project.