If you are using a bond interface, the bond interface and the slave
interfaces will share the same MAC address.  This can eventually
cause connman to crash, because several things depend on a unique
MAC address per interface.
---
 src/rtnl.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/rtnl.c b/src/rtnl.c
index be1bce9..a46aa28 100644
--- a/src/rtnl.c
+++ b/src/rtnl.c
@@ -402,7 +402,6 @@ static void process_newlink(unsigned short type, int index, 
unsigned flags,
                        unsigned change, struct ifinfomsg *msg, int bytes)
 {
        struct ether_addr address = {{ 0, 0, 0, 0, 0, 0 }};
-       struct ether_addr compare = {{ 0, 0, 0, 0, 0, 0 }};
        struct rtnl_link_stats stats;
        unsigned char operstate = 0xff;
        struct interface_data *interface;
@@ -431,6 +430,12 @@ static void process_newlink(unsigned short type, int 
index, unsigned flags,
                                                address.ether_addr_octet[4],
                                                address.ether_addr_octet[5]);
 
+       if (flags & IFF_SLAVE) {
+               connman_info("%s {newlink} ignoring slave, index %d address %s",
+                                               ifname, index, str);
+               return;
+       }
+
        switch (type) {
        case ARPHRD_ETHER:
        case ARPHRD_LOOPBACK:
@@ -442,9 +447,8 @@ static void process_newlink(unsigned short type, int index, 
unsigned flags,
                break;
        }
 
-       if (memcmp(&address, &compare, ETH_ALEN) != 0)
-               connman_info("%s {newlink} index %d address %s mtu %u",
-                                               ifname, index, str, mtu);
+       connman_info("%s {newlink} index %d address %s mtu %u",
+                                       ifname, index, str, mtu);
 
        if (operstate != 0xff)
                connman_info("%s {newlink} index %d operstate %u <%s>",
-- 
1.7.9.5

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to