[PATCH] bridge: handle process all link-local frames

Stephen Hemminger shemminger at vyatta.com
Wed Jun 18 00:09:45 BST 2008


BugLink: http://bugs.launchpad.net/bugs/508008

Any frame addressed to link-local addresses should be processed by local
receive path. The earlier code would process them only if STP was enabled.
Since there are other frames like LACP for bonding, we should always
process them.

Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit 43aa1920117801fe9ae3d1fad886b62511e09bee)

Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
---
 net/bridge/br_input.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 0ee79a7..af7ac98 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -136,14 +136,11 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
 		if (skb->protocol == htons(ETH_P_PAUSE))
 			goto drop;
 
-		/* 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;
-		}
+		if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev,
+			    NULL, br_handle_local_finish))
+			return NULL;	/* frame consumed by filter */
+		else
+			return skb;	/* continue processing */
 	}
 
 	switch (p->state) {
-- 
1.6.2.4




More information about the kernel-team mailing list