Browse Source

mac80211: fix MAC address allocations if the local bit is set on the base addr

If it's set, don't subtract 1 from the interface index encoded into the first
byte of the address

Signed-off-by: Felix Fietkau <[email protected]>
Felix Fietkau 5 years ago
parent
commit
866790fd82
1 changed files with 1 additions and 1 deletions
  1. 1 1
      package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh

+ 1 - 1
package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh

@@ -393,7 +393,7 @@ mac80211_generate_mac() {
 	[ "$((0x$mask1))" -gt 0 ] && {
 		b1="0x$1"
 		[ "$id" -gt 0 ] && \
-			b1=$(($b1 ^ ((($id - 1) << 2) | 0x2)))
+			b1=$(($b1 ^ ((($id - !($b1 & 2)) << 2) | 0x2)))
 		printf "%02x:%s:%s:%s:%s:%s" $b1 $2 $3 $4 $5 $6
 		return
 	}