git: kernel - Greatly enhance if_bridge

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Feb 22 21:04:24 PST 2011


commit 3677aae9940f65b6eccefd9b6742704ed7c0582c
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Feb 22 20:56:42 2011 -0800

    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.

Summary of changes:
 sbin/ifconfig/ifbridge.c      |    9 ++++
 share/man/man4/bridge.4       |   47 +++++++++++++++++++-
 sys/net/bridge/bridgestp.c    |   96 +++++++++++++++++++++++++++++++++++++----
 sys/net/bridge/if_bridge.c    |   57 +++++++++++++++++++++++-
 sys/net/bridge/if_bridgevar.h |    8 +++
 5 files changed, 202 insertions(+), 15 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/3677aae9940f65b6eccefd9b6742704ed7c0582c


-- 
DragonFly BSD source repository





More information about the Commits mailing list