1. 23 7月, 2011 1 次提交
    • S
      bridge: send proper message_age in config BPDU · 0c03150e
      stephen hemminger 提交于
      A bridge topology with three systems:
      
            +------+  +------+
            | A(2) |--| B(1) |
            +------+  +------+
                 \    /
                +------+
                | C(3) |
                +------+
      
      What is supposed to happen:
       * bridge with the lowest ID is elected root (for example: B)
       * C detects that A->C is higher cost path and puts in blocking state
      
      What happens. Bridge with lowest id (B) is elected correctly as
      root and things start out fine initially. But then config BPDU
      doesn't get transmitted from A -> C. Because of that
      the link from A-C is transistioned to the forwarding state.
      
      The root cause of this is that the configuration messages
      is generated with bogus message age, and dropped before
      sending.
      
      In the standardmessage_age is supposed to be:
        the time since the generation of the Configuration BPDU by
        the Root that instigated the generation of this Configuration BPDU.
      
      Reimplement this by recording the timestamp (age + jiffies) when
      recording config information. The old code incorrectly used the time
      elapsed on the ageing timer which was incorrect.
      
      See also:
        https://bugzilla.vyatta.com/show_bug.cgi?id=7164Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0c03150e
  2. 05 4月, 2011 1 次提交
    • S
      bridge: range check STP parameters · 14f98f25
      stephen hemminger 提交于
      Apply restrictions on STP parameters based 802.1D 1998 standard.
         * Fixes missing locking in set path cost ioctl
         * Uses common code for both ioctl and sysfs
      
      This is based on an earlier patch Sasikanth V but with overhaul.
      
      Note:
      1. It does NOT enforce the restriction on the relationship max_age and
         forward delay or hello time because in existing implementation these are
         set as independant operations.
      
      2. If STP is disabled, there is no restriction on forward delay
      
      3. No restriction on holding time because users use Linux code to act
         as hub or be sticky.
      
      4. Although standard allow 0-255, Linux only allows 0-63 for port priority
         because more bits are reserved for port number.
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      14f98f25
  3. 15 3月, 2011 2 次提交
  4. 16 5月, 2010 1 次提交
  5. 28 2月, 2010 1 次提交
  6. 06 8月, 2009 1 次提交
  7. 18 5月, 2009 1 次提交
    • S
      bridge: fix initial packet flood if !STP · 4f0611af
      Stephen Hemminger 提交于
      If bridge is configured with no STP and forwarding delay of 0 (which
      is typical for virtualization) then when link starts it will flood all
      packets for the first 20 seconds.
      
      This bug was introduced by a combination of earlier changes:
        * forwarding database uses hold time of zero to indicate
          user wants to always flood packets
        * optimzation of the case of forwarding delay of 0 avoids the initial
          timer tick
      
      The fix is to just skip all the topology change detection code if
      kernel STP is not being used.
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4f0611af
  8. 06 8月, 2008 1 次提交
    • 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
  9. 12 6月, 2008 1 次提交
  10. 19 5月, 2008 1 次提交
  11. 31 5月, 2007 1 次提交
  12. 09 5月, 2007 1 次提交
  13. 26 4月, 2007 1 次提交
  14. 11 2月, 2007 1 次提交
  15. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4