STP/VTP Protocols Implementation

The STP and VTP protocols implementation was contributed by Adina Iliescu and Marius Chiriac as their bachelor degree project at Politechnical University of Bucharest. At the time of writing the code, the authors didn't find any comprehensive VTP documentation. They had been working hard to get a functional (and interoperable) VTP implementation and had spent a lot of time investigating and analyzing packets generated by genuine Cisco hardware.

Unfortunately, the project was started at a time when LiSA lacked a mechanism for passing packets from kernel space to userspace and vice-versa. The authors decided to implement the two protocols at kernel level, in the very heart of the switching engine. This led to synchronization issues and poor kernel stability. Therefore, their work has never been merged into the main trunk of the LiSA source code.

Meanwhile, we implemented the PF_SWITCH sockets to ease the implementation of userspace support daemons (such as cdpd - which was immediately ported) and pushed the LiSA kernel module a few kernel versions further. This makes the (no longer maintained) STP/VTP code incompatible with current LiSA master branch.

As an acknowledgement of the two authors' hard work and for people to be able to have a look or test their code, the STP/VTP project is still available as a branch in the LiSA git repository. The project is included as a single commit in the stp-vtp branch, in the lisa.git repository.