BSDCan2017 - 0722d

BSDCan 2017
The Technical BSD Conference

Karim Fodil-Lemelin
Philip Paeps
Day Talks #2 - 10 June - 2017-06-10
Room DMS 1140
Start time 11:15
Duration 01:00
ID 809
Event type Lecture
Track Hacking
Language used for presentation English

Not simply pieces of string

Ethernet in the 21st Century

We present the design of the Spanning Tree Protocols as documented in IEEE standard 802.1Q-2011 and their implementation in the FreeBSD kernel. We begin by explaining the theory behind the protocols and why they are needed. We look at how Spanning Tree became Rapid Spanning Tree and finally (for now) Multiple Spanning Tree. We then explore the FreeBSD implementations of these protocols, in particular the work sponsored by XipLink to support MSTP.

While FreeBSD is well-known for its comprehensive support of layer 3 (IPv4, IPv6) and layer 4 (TCP, SCTP) networking protocols, the lower layers of its network stack enjoy rather less praise.

XipLink has been successfully using FreeBSD for its network optimizer since the 1990s and has done many exciting things with the link-layer. Complexity arising in switched networks and the never ending quest for reliability pushed XipLink to integrate CARP with bridging and STP. Last year, when it came time to extend this work to support VLANs, they quickly realized that Multiple Spanning Tree is required to support complex VLAN topologies. XipLink is proud to sponsor the development of MSTP on FreeBSD.

We present some of the FreeBSD limitations encountered trying to make CARP, Bridge, VLAN and STP work together, along with the challenges of implementing MSTP. We also offer suggestions for future work.