]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
interfaces: fallback to fixed MAC if already a local MAC
authorVincent Bernat <vincent@bernat.im>
Sat, 10 May 2014 07:03:03 +0000 (09:03 +0200)
committerVincent Bernat <vincent@bernat.im>
Sat, 10 May 2014 07:03:29 +0000 (09:03 +0200)
This is what is documented in the manual page.

src/daemon/interfaces.c

index 2c772459a071f44cf82f56df00d25e7e822e0d27..9460782a0a78f295fcf3fd98d94b56af1607cb02 100644 (file)
@@ -573,15 +573,11 @@ interfaces_send_helper(struct lldpd *cfg,
 
                switch (cfg->g_config.c_bond_slave_src_mac_type) {
                case LLDP_BOND_SLAVE_SRC_MAC_TYPE_LOCALLY_ADMINISTERED:
-                       if (*src_mac & MAC_UL_ADMINISTERED_BIT_MASK) {
-                               /* If locally administered bit already set,
-                                * use zero mac
-                                */
-                               memset(src_mac, 0, ETHER_ADDR_LEN);
+                       if (!(*src_mac & MAC_UL_ADMINISTERED_BIT_MASK)) {
+                               *src_mac |= MAC_UL_ADMINISTERED_BIT_MASK;
                                break;
                        }
-                       *src_mac |= MAC_UL_ADMINISTERED_BIT_MASK;
-                       break;
+                       /* Fallback to fixed value */
                case LLDP_BOND_SLAVE_SRC_MAC_TYPE_FIXED:
                        memcpy(src_mac, arbitrary, ETHER_ADDR_LEN);
                        break;