26 Apr, 2007

6 commits

  • If a bridge is not running STP, then it has no way to detect a cycle
    in the network. But if it is not running STP and some other machine
    or device is running STP, then if STP BPDU's get forwarded to it can
    detect the cycle.

    This is how the old 2.4 and early 2.6 code worked.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Pause frames should never make it out of the network device into
    the stack. But if a device was misconfigured, it might happen.
    So drop pause frames in bridge.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • The change to forward STP bpdu's (for usermode STP) through normal path,
    changed the packet type in the process. Since link local stuff is multicast, it
    should stay pkt_type = PACKET_MULTICAST. The code was probably copy/pasted
    incorrectly from the bridge pseudo-device receive path.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • While in the STP learning state, don't route packets; wait until
    forwarding delay has expired. The purpose of the forwarding delay
    is to detect loops in the network, and if a brouter started up
    and started forwarding, it could cause a flood.

    Signed-off-by: Stephen Hemminger

    Stephen Hemminger
     
  • Change the bridging hook to be simple function with return value
    rather than modifying the skb argument. This could generate better
    code and is cleaner.

    Signed-off-by: Stephen Hemminger

    Stephen Hemminger
     
  • Use logic operations rather than memcmp() to compare destination
    address with link local multicast addresses.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

11 Feb, 2007

1 commit


06 May, 2006

1 commit


12 Apr, 2006

1 commit

  • This change allows link local packets (like 802.3ad and Spanning Tree
    Protocol) to be processed even when the bridge is not using the port.
    It fixes the chicken-egg problem for bridging a bonded device, and
    may also fix problems with spanning tree failover.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

21 Mar, 2006

4 commits

  • Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Andrew Morton
     
  • Bridge's communicate with each other using Spanning Tree Protocol
    over a standard multicast address. There are times when testing or
    layering bridges over existing topologies or tunnels, when it is
    useful to use alternative multicast addresses for STP packets.

    The 802.1d standard has some unused addresses, that can be used for this.
    This patch is restrictive in that it only allows one of the possible
    addresses in the standard.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Use LLC for the receive path of Spanning Tree Protocol packets.
    This allows link local multicast packets to be received by
    other protocols (if they care), and uses the existing LLC
    code to get STP packets back into bridge code.

    The bridge multicast address is also checked, so bridges using
    other link local multicast addresses are ignored. This allows
    for use of different multicast addresses to define separate STP
    domains.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • The netfilter hook that is used to receive frames doesn't need to be a
    stub. It is only called in two ways, both of which ignore the return
    value.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

10 Feb, 2006

1 commit


07 Jan, 2006

1 commit


04 Jan, 2006

1 commit


01 Nov, 2005

1 commit


22 Jun, 2005

1 commit


30 May, 2005

2 commits

  • This improves the bridge local receive path by avoiding going
    through another softirq. The bridge receive path is already being called
    from a netif_receive_skb() there is no point in going through another
    receiveq round trip.

    Recursion is limited because bridge can never be a port of a bridge
    so handle_bridge() always returns.

    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Avoid poisoning of the bridge forwarding table by frames that have been
    dropped by filtering. This prevents spoofed source addresses on hostile
    side of bridge from causing packet leakage, a small but possible security
    risk.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

17 Apr, 2005

1 commit

  • 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!

    Linus Torvalds