diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-03-21 01:59:21 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-21 01:59:21 -0500 |
commit | fda93d92d7824159d8532995072dde2bee4bc4b3 (patch) | |
tree | ba28fcd6637d848bbee4a6e22f642a69cbe1c71f /net/bridge/br_stp_bpdu.c | |
parent | cf0f02d04a830c8202e6a8f8bb37acc6c1629a91 (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.c | 4 |
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); |