Hi there,

The patch attached.

Cheers,
Vlad.
Signed-off-by: Vlad Drukker <[EMAIL PROTECTED]>
---
[PATCH] fix 802.3ad multicast frame handling

when bridging two 802.3ad bonds there is a bug.
core netif code does handle_bridge before calling protocol handler for
ETH_P_SLOW packet_type. when bridge internal BR_STATE_DISABLED is set
for bonded port, netif_carrier_ok() always fails for bond, ETH_P_SLOW packet is
dropped by br_handle_frame() before it reaches protocol handler
registered by 802.3ad bond.

---
commit 0ae728740782b88e402f1dac718da866d20b9a9f
tree dd1ee0e7da4f589e5d72805c1b80d6598a267fb9
parent b388f6305555d956a22905243ae3cc54c3b43c3f
author Vlad Drukker <[EMAIL PROTECTED]> Mon, 10 Apr 2006 17:08:50 +0300
committer Vlad Drukker <[EMAIL PROTECTED]> Mon, 10 Apr 2006 17:08:50 +0300

 net/core/dev.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index 434220d..a351687 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1614,6 +1614,8 @@ static __inline__ int handle_bridge(stru
 	struct net_bridge_port *port;
 
 	if ((*pskb)->pkt_type == PACKET_LOOPBACK ||
+	    ((*pskb)->dev->priv_flags & IFF_MASTER_8023AD && 
+	    (*pskb)->protocol == __constant_htons(ETH_P_SLOW)) ||
 	    (port = rcu_dereference((*pskb)->dev->br_port)) == NULL)
 		return 0;
 

Reply via email to