[source] bcm53xx: set WAN MAC address to don't share one with LAN interface

LEDE Commits lede-commits at lists.infradead.org
Thu Feb 2 23:05:38 PST 2017


rmilecki pushed a commit to source.git, branch lede-17.01:
https://git.lede-project.org/5ed23223fd1f53dd7b0501d640374627e1f32785

commit 5ed23223fd1f53dd7b0501d640374627e1f32785
Author: Rafał Miłecki <rafal at milecki.pl>
AuthorDate: Wed Feb 1 16:45:19 2017 +0100

    bcm53xx: set WAN MAC address to don't share one with LAN interface
    
    After analyzing numerous NVRAMs and vendor firmwares it seems the base
    MAC address is used for LAN interface. WAN interface has different one
    which sometimes is set directly in NVRAM and sometines needs to be
    calculated.
    
    Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 target/linux/bcm53xx/base-files/etc/board.d/02_network | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/target/linux/bcm53xx/base-files/etc/board.d/02_network b/target/linux/bcm53xx/base-files/etc/board.d/02_network
index 0a055f4..fa2837c 100755
--- a/target/linux/bcm53xx/base-files/etc/board.d/02_network
+++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network
@@ -25,22 +25,28 @@ buffalo,wzr-1750dhp)
 	;;
 esac
 
+wan_macaddr="$(nvram get wan_hwaddr)"
 case "$board" in
 asus,rt-ac87u)
 	ifname=eth1
+	etXmacaddr=$(nvram get et1macaddr)
 	;;
 dlink,dir-885l | \
 netgear,r7900 | \
 netgear,r8000 | \
 netgear,r8500)
-
 	ifname=eth2
+	etXmacaddr=$(nvram get et2macaddr)
 	;;
 *)
 	ifname=eth0
+	etXmacaddr=$(nvram get et0macaddr)
 	;;
 esac
 
+# If WAN MAC isn't explicitly set, calculate it using base MAC as reference.
+[ -z "$wan_macaddr" -a -n "$etXmacaddr" ] && wan_macaddr=$(macaddr_add "$etXmacaddr" 1)
+
 # Workaround for devices using eth2 connected to (CPU) switch port 8
 case "$board" in
 dlink,dir-885l | \
@@ -55,6 +61,7 @@ netgear,r8500)
 	# assigned. Manually assign eth2's MAC to the LAN.
 	et2macaddr="$(nvram get et2macaddr)"
 	[ -n "$et2macaddr" ] && ucidef_set_interface_macaddr "lan" "$et2macaddr"
+	[ -n "$wan_macaddr" ] && ucidef_set_interface_macaddr "wan" "$wan_macaddr"
 
 	board_config_flush
 	exit 0
@@ -85,6 +92,8 @@ else
 		"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@$ifname"
 fi
 
+[ -n "$wan_macaddr" ] && ucidef_set_interface_macaddr "wan" "$wan_macaddr"
+
 board_config_flush
 
 exit 0



More information about the lede-commits mailing list