Question about using brctl and changing MAC addresses

From: Philip Prindeville
Date: Sat Mar 08 2008 - 17:18:04 EST


I'm using Linux 2.6.20 (yes, I'll be upgrading to 2.6.24 as soon as it's stable).

I have 4 VIA rhine ethernet controllers on my Soekris net5501, plus an ADSL PCI card (a Sangoma S-518) that runs in AAL5-SNAP mode, so it looks like an Ethernet controller.

I'm trying to bridge eth0 and w1ad (the ADSL interface) into "br0". And I'm trying to force the traffic on br0 to have the MAC address that my ISP insists I use (i.e. that of the crappy little Westell 6100 modem they sent me).

The issue is the following. If I do:

ifconfig w1ad down hw ether x:x:x:x:x:x up

followed by either:

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 w1ad

or:

brctl addbr br0
brctl addif br0 w1ad
brctl addif br0 eth0

the bridge ends up taking the MAC address of eth0 either way, which I don't get (how does it decide which to use?).

I can clone the same MAC address to both eth0 and w1ad, but I don't know if that would cause me any problems or not (I haven't read the STP spec in about 15 years).

What's the solution?

Is there a way to explicitly set the MAC address of the bridge interface?

I tried:

ifconfig br0 down hw ether x:x:x:x:x:x up

but that just results in:

ifconfig: SIOCSIFHWADDR: Cannot assign requested address

So, I'm not clear what the best solution is.

Any guidance is appreciated.

Thanks,

-Philip

--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html