summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_stp_bpdu.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-03-20 22:59:21 -0800
committerDavid S. Miller <davem@davemloft.net>2006-03-20 22:59:21 -0800
commitfda93d92d7824159d8532995072dde2bee4bc4b3 (patch)
treeba28fcd6637d848bbee4a6e22f642a69cbe1c71f /net/bridge/br_stp_bpdu.c
parentcf0f02d04a830c8202e6a8f8bb37acc6c1629a91 (diff)
downloadlinux-fda93d92d7824159d8532995072dde2bee4bc4b3.tar.gz
linux-fda93d92d7824159d8532995072dde2bee4bc4b3.tar.bz2
linux-fda93d92d7824159d8532995072dde2bee4bc4b3.zip
[BRIDGE]: allow show/store of group multicast address
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 <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_stp_bpdu.c')
-rw-r--r--net/bridge/br_stp_bpdu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/bridge/br_stp_bpdu.c b/net/bridge/br_stp_bpdu.c
index a99e90e20952..ed3a5441a47e 100644
--- a/net/bridge/br_stp_bpdu.c
+++ b/net/bridge/br_stp_bpdu.c
@@ -47,7 +47,7 @@ static void br_send_bpdu(struct net_bridge_port *p, unsigned char *data, int len
skb->dev = dev;
skb->protocol = htons(ETH_P_802_2);
skb->mac.raw = skb_put(skb, size);
- memcpy(skb->mac.raw, bridge_ula, ETH_ALEN);
+ memcpy(skb->mac.raw, p->br->group_addr, ETH_ALEN);
memcpy(skb->mac.raw+ETH_ALEN, dev->dev_addr, ETH_ALEN);
skb->mac.raw[2*ETH_ALEN] = 0;
skb->mac.raw[2*ETH_ALEN+1] = length;
@@ -171,7 +171,7 @@ int br_stp_rcv(struct sk_buff *skb, struct net_device *dev,
|| !(br->dev->flags & IFF_UP))
goto out;
- if (compare_ether_addr(dest, bridge_ula) != 0)
+ if (compare_ether_addr(dest, br->group_addr) != 0)
goto out;
buf = skb_pull(skb, 3);