kernel - Greatly enhance if_bridge
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 23 Feb 2011 04:56:42 +0000 (20:56 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 23 Feb 2011 04:56:42 +0000 (20:56 -0800)
commit3677aae9940f65b6eccefd9b6742704ed7c0582c
treeb9fddc1679edc480a4c6a7ac5abaaa1192583ad6
parent139b8f347ceba2084f3ddc60686bf4819ecb612d
kernel - Greatly enhance if_bridge

* Document the link0 feature, which enables transparent bridging.

* Implement the link1 feature, automatic failover using a slight mangling
  of the 802.11d protocol.  Both ends must implement the feature for this
  to work.  Essentially this causes CFG 802.11d messages to be generated
  on the hello interval even if a bridge is not the root bridge.

  The bridge also monitors for this traffic and places the link in a special
  L1BLOCKING state if it fails to receive any frames in (10 x hello) (around
  20 seconds usually).  This will automatically cause the bridge to failover
  to other links.

  This only operates on links participating in the STP protocol (see man
  ifconfig), when link1 is set on the bridge interface.  For ethernet
  bridging the link interfaces are typically multiple TAP interfaces.

* Allow all link interfaces participating in a bridge to have the same
  MAC address (used with TAP interfaces typically).  This is mandatory
  if you also intend to use the link1 feature and want your failover to
  be reasonably smooth.  The feature can be useful regardless.

* The ifconfig bridge output now shows additional information about
  link state and who it thinks the root node is.
sbin/ifconfig/ifbridge.c
share/man/man4/bridge.4
sys/net/bridge/bridgestp.c
sys/net/bridge/if_bridge.c
sys/net/bridge/if_bridgevar.h