Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c2886d6259b8faac4c05ffd9c3c401ac84478de0
Commit:     c2886d6259b8faac4c05ffd9c3c401ac84478de0
Parent:     2111f8b9e58fd04b87b8b07d66485f255a57b0bb
Author:     Stephen Hemminger <[EMAIL PROTECTED]>
AuthorDate: Wed Apr 25 22:07:58 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Apr 25 22:30:02 2007 -0700

    [BRIDGE]: if no STP then forward all BPDUs
    
    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 <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/bridge/br_input.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 5662567..420bbb9 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -136,8 +136,14 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, 
struct sk_buff *skb)
                if (skb->protocol == htons(ETH_P_PAUSE))
                        goto drop;
 
-               return (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev,
-                               NULL, br_handle_local_finish) == 0) ? skb : 
NULL;
+               /* Process STP BPDU's through normal netif_receive_skb() path */
+               if (p->br->stp_enabled != BR_NO_STP) {
+                       if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev,
+                                   NULL, br_handle_local_finish))
+                               return NULL;
+                       else
+                               return skb;
+               }
        }
 
        switch (p->state) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to