NameDateSize

..23-Jun-20157

base.hH A D23-Jun-20156.5 KiB

ChangeLogH A D23-Jun-20152.1 KiB

choose.hH A D23-Jun-20151.4 KiB

COPYINGH A D23-Jun-201525.8 KiB

COPYING.descripH A D23-Jun-201523

edge.cH A D23-Jun-20153 KiB

edge.hH A D23-Jun-20151.4 KiB

llib-lrstpH A D23-Jun-20151,007

mapfile-versH A D23-Jun-20151.9 KiB

migrate.cH A D23-Jun-20153.4 KiB

migrate.hH A D23-Jun-20151.3 KiB

p2p.cH A D23-Jun-20152.3 KiB

p2p.hH A D23-Jun-20151.3 KiB

pcost.cH A D23-Jun-20153.7 KiB

pcost.hH A D23-Jun-20151.3 KiB

port.cH A D23-Jun-20156.7 KiB

port.hH A D23-Jun-20155.9 KiB

portinfo.cH A D23-Jun-201514.6 KiB

portinfo.hH A D23-Jun-20151.3 KiB

READMEH A D23-Jun-20151.3 KiB

README.authorsH A D23-Jun-201569

README.CVS.HOWTOH A D23-Jun-2015899

README.filesH A D23-Jun-20152.5 KiB

README.newsH A D23-Jun-2015575

rolesel.cH A D23-Jun-20159.9 KiB

rolesel.hH A D23-Jun-20151.3 KiB

roletrns.cH A D23-Jun-201512.1 KiB

roletrns.hH A D23-Jun-20151.3 KiB

statmch.cH A D23-Jun-20153.4 KiB

statmch.hH A D23-Jun-20153 KiB

stp_bpdu.hH A D23-Jun-20152.7 KiB

stp_in.cH A D23-Jun-201526 KiB

stp_in.hH A D23-Jun-20155.8 KiB

stp_to.hH A D23-Jun-20152 KiB

stp_vectors.hH A D23-Jun-20153 KiB

stpm.cH A D23-Jun-20158 KiB

stpm.hH A D23-Jun-20154.1 KiB

stpmgmt.cH A D23-Jun-20153.8 KiB

sttrans.cH A D23-Jun-20153.6 KiB

sttrans.hH A D23-Jun-20151.3 KiB

times.cH A D23-Jun-20152.6 KiB

times.hH A D23-Jun-20151.6 KiB

TODOH A D23-Jun-2015567

topoch.cH A D23-Jun-20156.4 KiB

topoch.hH A D23-Jun-20151.3 KiB

transmit.cH A D23-Jun-201510.5 KiB

transmit.hH A D23-Jun-20151.3 KiB

uid_stp.hH A D23-Jun-20156 KiB

vector.cH A D23-Jun-20154.9 KiB

vector.hH A D23-Jun-20152.2 KiB

README

1
2
3The Rapid Spanning Tree Library project contains a  full  implementation
4of 802.1s as an library  with API.  There is two  processes,  using this
5library: 'bridge' & 'mngr'. First simulates RSTP bridge behavior, second
6is dedicated to link/unlink 'bridges' into virtual RSTP domain (VRSTPD).
7Both 'bridge' & 'mngr' has its own simple CLI like language of commands;
8these  commands  allow  to manage the VRSTPD.  There are  tools to trace
9state machine transitions and get traps about drastic changes.
10
11Purpose: studying, debugging, development.
12
13The library may be used in real bridges/routers while bounding to a real
14system depending environment.
15
16To run:
171. In one shell run 'mngr'
18./mngr
19You will get prompt of 'mngr'; type '?' and get full help of
20'mngr' commands.
21
222. In another shell run bridge instance.
23./bridge
24You will get prompt of 'bridge'; type '?' and get full help
25of bridge management commands.
26
273. You may (and should) run a number of bridge instances, each in its 
28separate shell (this way you will be able manage them).
29
30For example, if there were two bridge instances, you may see examples
31of the dialog in files mngr.txt, B5055.txt and B5056.txt.
32
33Note: prompt both of 'mngr' and of 'bridge' instance contains time stamp,
34while all these process run onto the same computer, these time stamps
35are synchronized.
36
37 
38

README.authors

1Alex Rozin <alexr@nbase.co.il>
2Michael Rozhavsky <mike@nbase.co.il>
3
4

README.CVS.HOWTO

1Anonymous CVS Access 
2
3This project's SourceForge CVS repository can be checked out through
4anonymous (pserver) CVS with the following instruction set. The module
5you wish to check out must be specified as the modulename. When prompted
6for a password for anonymous, simply press the Enter key. 
7
8cvs -d:pserver:anonymous@cvs.rstplib.sourceforge.net:/cvsroot/rstplib login 
9 
10cvs -z3 -d:pserver:anonymous@cvs.rstplib.sourceforge.net:/cvsroot/rstplib co modulename 
11
12Updates from within the module's directory do not need the -d parameter.
13
14Developer CVS Access via SSH 
15
16Only project developers can access the CVS tree via this method. SSH1 must
17be installed on your client machine. Substitute modulename and developername
18with the proper values. Enter your site password when prompted. 
19
20export CVS_RSH=ssh 
21 
22cvs -z3 -d:ext:developername@cvs.rstplib.sourceforge.net:/cvsroot/rstplib co modulename 
23

README.files

1This guide describes the list of the files of the project.
2==========================================================
3
4There are two target binaries: mngr & bridge
5o The first  is  a simplest  tools  to  connect/disconnect
6  bridges and  check  their current connection.  These its
7  functions are managed from command line simple  language
8  and use the library libcli.a (see below). Beside it mngr
9  serves to transport BPDU messages between  bridges;  for 
10  this purpose mngr uses the library libuid.a
11  The source code of the mngr: file mngr.c
12
13o The second is a simulation of virtual  RSTP  bridge.  It
14  accepts two types of messages: UID_CNTRL & UID_BPDU (see
15  file uid.h).  This program  is  linked with the same two
16  libraries libcli.a & libuid.a;  beside  it uses a system
17  independent librstp.a: implementation of Rapid  Spanning
18  Tree (802.1w) - see below.
19  The source code of the bridge: files bridge.c,stp_cli.c,
20  stp_to.c
21    * bridge.c - simulates the main bridge behavior
22    * stp_cli.c - consists from command line functions
23    * stp_to.c - API, that librstp.a uses for its purposes.
24  The management communication between bridge and librstp.a
25  uses structures and definitions from the header uid_stp.h
26
27o libcli.a - library for command line features. It has only
28  one file cli.c, the API is described in the header cli.h.
29
30o libuid.a - the 'transport' library: the source code you
31  may find in the file uid_sock.c and in the two headers:
32  uid.h & uid_sock.h
33
34o (so far, so good) librstp.a - it is a heart of the project
35  Actually, it implements 802.1w state machines. Files
36  stpm.c - the RSTP instance (some reflection of Port0)
37  port.c - the RSTP port instance
38  portinfo.c - Port Information State Machine, 17.21
39  rolesel.c - Port Role Selection State Machine, 17.22 
40  roletrns.c - Port Role Transition State Machine, 17.23
41  sttrans.c - Port State Transition State Machine, 17.24
42  topoch.c - Topology Change State Machine, 17.25
43  migrate.c - Port Protocol Migration State Machine, 17.26
44  transmit.c - Port Transmit State Machine 17.27
45  pcost.c - Path Cost Resolution State Machine
46  edge.c - operEdge Port Resolution State Machine
47  p2p.c - operPointToPoit Resolution State Machine
48  statmch.c - generic state machine implementation
49  vector.c - Priority Vectors manipulations
50  times.c - Times manipulations 
51  stp_in.c - API for calls from outside.
52  sttrans.c - API for calls from outside (dedicated for creation
53              deleting, starting & stopping the RSTP instance) less
54              relevant to the project.
55
56
57
58
59

README.news

1- All per Port variables have been moved from the State
2  Machines into the Port instance (it made the state
3  machines much more clear)
4
5- In libcli.a instead of stupid fgets() function we use
6  now readline (thanks to Michel Roshavsky)
7
8- 'mcheck' support
9
10- 'nonStp' support (I know, that it is out the standard,
11  but it seems to be useful (see a discussion on
12http://www1.ietf.org/mail-archive/working-groups/bridge/current/msg00038.html)
13  and our customers demand it
14
15- The function rolesel.c has been drastically fixed, IMHO
16  closer to the standard
17
18- Nicer output
19
20