• S
    bridge: Eliminate unnecessary forward delay · ef647f13
    Stephen Hemminger 提交于
    From: Stephen Hemminger <shemminger@vyatta.com>
    
    Based upon original patch by Herbert Xu, which contained
    the following problem description:
    
    --------------------
    When the forward delay is set to zero, we still delay the setting
    of the forwarding state by one or possibly two timers depending
    on whether STP is enabled.  This could either turn out to be
    instantaneous, or horribly slow depending on the load of the
    machine.
    
    As there is nothing preventing us from enabling forwarding straight
    away, this patch eliminates this potential delay by executing the
    code directly if the forward delay is zero.
    
    The effect of this problem is that immediately after the carrier
    comes on a port, the bridge will drop all packets received from
    that port until it enters forwarding mode, thus causing unnecessary
    packet loss.
    
    Note that this patch doesn't fully remove the delay due to the
    link watcher.  We should also check the carrier state when we
    are about to drop an incoming packet because the port is disabled.
    But that's for another patch.
    --------------------
    
    This version of the fix takes a different approach, in that
    it just does the state change directly.
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    ef647f13
br_stp.c 10.8 KB