Re: 2.6.27: persistent MAC assignment to bridge not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 8 May 2009 17:20:08 -0600Daniel Robbins <drobbins@xxxxxxxxxx> wrote:
> This commit is in my 2.6.27-based kernel. It does not appear to be> working. Can you show me what steps I should take to confirm that this> sticky code is functioning properly, ie commands and expected results?> > Thanks.> > -Daniel> > On Fri, May 8, 2009 at 4:54 PM, Stephen Hemminger <shemminger@xxxxxxxxxx> wrote:> > On Fri, 8 May 2009 15:31:43 -0600> > Daniel Robbins <drobbins@xxxxxxxxxx> wrote:> >> >> Hi All,> >>> >> I am trying to figure out how to get a persistent, non-changing MAC> >> address assigned to a bridge. It looks like there is new functionality> >> in 2.6.27 to allow this to happen, specifically, in:> >>> >> void br_stp_recalculate_bridge_id(struct net_bridge *br)> >> [...]> >>        /* user has chosen a value so keep it */> >>         if (br->flags & BR_SET_MAC_ADDR)> >>                 return;> >>> >> and in..> >>> >> static int br_set_mac_address(struct net_device *dev, void *p)> >> [...]> >>         br->flags |= BR_SET_MAC_ADDR;> >>> >> However, I cannot get this functionality to work as it appears it> >> should. If I manually set a bridge's MAC address to an arbitrary> >> value, as follows:> >>> >> # ifconfig br0 hw ether "xx:xx:xx:xx:xx:xx"> >>> >> Then, subsequent calls such as the following seem to still change the> >> bridge's MAC address:> >>> >> # brctl addif br0 veth100.0> >> # brctl delif br0 veth100.0> >>> >> Am I doing something wrong? What is the proper way to take advantage> >> of the new code in 2.6.27?> >>> >> The only mechanism that I have found that appears to achieve my> >> desired result is application of Deitmar Maurer's 2.6.24 patch which,> >> after being applied, seems to disable the dynamic nature of the> >> bridge's MAC, so that br0 persistently uses the MAC of the first> >> interface that was added to the bridge. Here is this patch that seems> >> to be working for me:> >>> >> --- linux-2.6.24-openvz.org/net/bridge/br_stp_if.c.org  2008-06-11> >> 09:15:16.000000000 +0200> >> +++ linux-2.6.24-openvz.org/net/bridge/br_stp_if.c      2008-06-11> >> 09:44:53.000000000 +0200> >> @@ -217,10 +217,7 @@> >>        struct net_bridge_port *p;> >>> >>        list_for_each_entry(p, &br->port_list, list) {> >> -               if (addr == br_mac_zero ||> >> -                   memcmp(p->dev->dev_addr, addr, ETH_ALEN) < 0)> >> -                       addr = p->dev->dev_addr;> >> -> >> +               addr = p->dev->dev_addr;> >>        }> >>> >>        if (compare_ether_addr(br->bridge_id.addr, addr))> >> --------------------------> >>> >> However, when I look at the 2.6.27 source code, it seems like this> >> patch should no longer be needed and an "ifconfig br0 hw ether> >> "xx:xx:xx:xx:xx:xx" should be sufficient. Am I doing something wrong?> >>> >> Thanks for your time,> >>> >> Daniel Robbins> >> > It was fixed by:> >> > Author: Stephen Hemminger <shemminger@xxxxxxxxxx>  2008-06-17 16:10:06> > Committer: David S. Miller <davem@xxxxxxxxxxxxx>  2008-06-17 16:10:06> > Parent: 0b040829952d84bf2a62526f0e24b624e0699447 (net: remove CVS keywords)> > Branches: master, remotes/origin/master> > Follows: v2.6.26-rc6> > Precedes: v2.6.27-rc1> >> >    bridge: make bridge address settings sticky> >> >    Normally, the bridge just chooses the smallest mac address as the> >    bridge id and mac address of bridge device. But if the administrator> >    has explictly set the interface address then don't change it.> >> >    Signed-off-by: Stephen Hemminger <shemminger@xxxxxxxxxx>> >    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>> >> >
# brctl addbr brex0# modprobe dummy
# ip li set dev brex0 addr 0c:01:02:03:04:05# ip li show dev brex022: brex0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN     link/ether 0c:01:02:03:04:05 brd ff:ff:ff:ff:ff:ff# brctl addif brex0 dummy0# ip li show dev brex022: brex0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN     link/ether 0c:01:02:03:04:05 brd ff:ff:ff:ff:ff:ff
-- _______________________________________________Bridge mailing listBridge@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx://lists.linux-foundation.org/mailman/listinfo/bridge


[Index of Archives]     [Netdev]     [AoE Tools]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux