aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_stp_bpdu.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-03-21 01:59:21 -0500
committerDavid S. Miller <davem@davemloft.net>2006-03-21 01:59:21 -0500
commitfda93d92d7824159d8532995072dde2bee4bc4b3 (patch)
treeba28fcd6637d848bbee4a6e22f642a69cbe1c71f /net/bridge/br_stp_bpdu.c
parentcf0f02d04a830c8202e6a8f8bb37acc6c1629a91 (diff)
[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 a99e90e2095..ed3a5441a47 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
47 skb->dev = dev; 47 skb->dev = dev;
48 skb->protocol = htons(ETH_P_802_2); 48 skb->protocol = htons(ETH_P_802_2);
49 skb->mac.raw = skb_put(skb, size); 49 skb->mac.raw = skb_put(skb, size);
50 memcpy(skb->mac.raw, bridge_ula, ETH_ALEN); 50 memcpy(skb->mac.raw, p->br->group_addr, ETH_ALEN);
51 memcpy(skb->mac.raw+ETH_ALEN, dev->dev_addr, ETH_ALEN); 51 memcpy(skb->mac.raw+ETH_ALEN, dev->dev_addr, ETH_ALEN);
52 skb->mac.raw[2*ETH_ALEN] = 0; 52 skb->mac.raw[2*ETH_ALEN] = 0;
53 skb->mac.raw[2*ETH_ALEN+1] = length; 53 skb->mac.raw[2*ETH_ALEN+1] = length;
@@ -171,7 +171,7 @@ int br_stp_rcv(struct sk_buff *skb, struct net_device *dev,
171 || !(br->dev->flags & IFF_UP)) 171 || !(br->dev->flags & IFF_UP))
172 goto out; 172 goto out;
173 173
174 if (compare_ether_addr(dest, bridge_ula) != 0) 174 if (compare_ether_addr(dest, br->group_addr) != 0)
175 goto out; 175 goto out;
176 176
177 buf = skb_pull(skb, 3); 177 buf = skb_pull(skb, 3);