#!/bin/sh . /lib/functions.sh . /lib/ramips.sh . /lib/functions/uci-defaults.sh . /lib/functions/system.sh ramips_setup_rt3x5x_vlans() { if [ ! -x /sbin/swconfig ]; then # legacy default ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" return fi local wanports="" local lanports="" for port in 5 4 3 2 1 0; do if [ `swconfig dev rt305x port $port get disable` = "1" ]; then continue fi if [ `swconfig dev rt305x port $port get lan` = "0" ]; then wanports="$port:wan $wanports" else lanports="$port:lan $lanports" fi done ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" ucidef_add_switch "rt305x" $lanports $wanports "6@eth0" } ramips_setup_interfaces() { local board="$1" case $board in 3g150b|\ 3g300m|\ all0256n|\ all5002|\ all5003|\ broadway|\ dcs-930|\ dcs-930l-b1|\ ht-tm02|\ linkits7688 | \ linkits7688d | \ microwrt|\ ncs601w|\ w150m|\ wnce2001|\ zte-q7) ucidef_add_switch "switch0" ucidef_add_switch_attr "switch0" "reset" "false" ucidef_set_interface_lan "eth0" ;; 3g-6200nl|\ mlw221|\ mr-102n) ucidef_set_interface_lan "eth0.2" ;; 3g-6200n|\ ai-br100|\ db-wrt01|\ dir-300-b7|\ dir-320-b1|\ dir-610-a1|\ dir-615-h1|\ firewrt|\ hlk-rm04|\ miwifi-mini|\ mt7621|\ mt7628|\ mzk-750dhp|\ mzk-w300nh2|\ oy-0001|\ pbr-m1|\ psg1208|\ sap-g3200u3|\ wf-2881|\ whr-300hp2|\ whr-600d|\ witi|\ wsr-1166|\ wsr-600|\ wt1520|\ y1|\ zbt-wg2626|\ youku-yk1) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0" ;; a5-v11) ucidef_add_switch "switch0" \ "0:lan" "6t@eth0" ;; ar670w|\ ar725w|\ rt-n15|\ wl-351) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0" ;; asl26555|\ re6500|\ rp-n53) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0" ;; atp-52b|\ awm002-evb|\ awm003-evb|\ dir-645|\ dir-860l-b1|\ f5d8235-v1|\ f5d8235-v2|\ gl-mt300a|\ hg255d|\ mzk-wdpr|\ jhr-n805r|\ jhr-n825r|\ jhr-n926r|\ rt-n14u|\ ubnt-erx|\ ur-326n4g|\ wrtnode|\ wrtnode2p | \ wrtnode2r | \ wt3020|\ zbt-wa05) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0" ;; awapn2403) ucidef_add_switch "switch0" \ "0:lan" "1:wan" "6@eth0" ;; b2c|\ nw718|\ psr-680w|\ sl-r7205|\ ur-336un|\ w502u|\ wr6202) ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" ;; br-6475nd) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "9@eth0" ;; cf-wr800n|\ ex2700) ucidef_add_switch "switch0" \ "4:lan" "6t@eth0" ;; cy-swr1100) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0" ;; d105|\ hpm|\ na930|\ wli-tx4-ag300n) ucidef_set_interface_lan "eth0" ;; e1700|\ mt7620a_mt7530) ucidef_add_switch "switch1" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0" ;; hc5*61|\ y1s) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "5:lan" "0:wan" "6@eth0" ;; m2m) ucidef_add_switch "switch0" ucidef_add_switch_attr "switch0" "reset" "false" ucidef_set_interface_lan "eth0" ;; mlwg2|\ wizard8800|\ wl-330n|\ wmr-300) ucidef_set_interface_lan "eth0.1" ;; mzk-dp150n|\ vocore) ucidef_add_switch "switch0" \ "0:lan" "4:lan" "6t@eth0" ;; rt-n56u) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0" ;; tew-691gr|\ tew-692gr) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0" ;; v11st-fe|\ wzr-agl300nh) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0" ;; wcr-150gn) ucidef_add_switch "switch0" \ "0:lan" "6t@eth0" ;; whr-1166d) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6@eth0" ;; wizfi630a) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "0:wan" "6@eth0" ;; zbt-we826|\ zbt-wr8305rt) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0" ;; *) RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"` if [ -n "${RT3X5X}" ]; then ramips_setup_rt3x5x_vlans else ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" fi ;; esac } ramips_setup_macs() { local board="$1" local lan_mac="" local wan_mac="" case $board in a5-v11|\ bc2|\ broadway|\ d105|\ dir-300-b7|\ dir-320-b1|\ dir-620-a1|\ esr-9753|\ freestation5|\ hlk-rm04|\ mpr-a1|\ mpr-a2|\ psr-680w|\ sl-r7205|\ y1|\ y1s) lan_mac=$(cat /sys/class/net/eth0/address) lan_mac=$(macaddr_setbit_la "$lan_mac") wan_mac=$(macaddr_add "$lan_mac" 1) ;; all0239-3g|\ carambola|\ freestation5|\ w502u|\ wnce2001) wan_mac=$(mtd_get_mac_binary factory 46) ;; br-6475nd) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(mtd_get_mac_binary devdata 7) ;; cy-swr1100|\ dir-645) lan_mac=$(mtd_get_mac_ascii nvram lanmac) wan_mac=$(mtd_get_mac_ascii nvram wanmac) ;; e1700) wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR) ;; hc5*61) lan_mac=`mtd_get_mac_ascii bdinfo "Vfac_mac "` [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 1) ;; ht-tm02) lan_mac=$(cat /sys/class/net/eth0/address) ;; linkits7688 | \ linkits7688d) wan_mac=$(mtd_get_mac_binary factory 4) lan_mac=$(mtd_get_mac_binary factory 46) ;; m3|\ m4|\ x5|\ x8) lan_mac=$(cat /sys/class/net/eth0/address) lan_mac=$(macaddr_add "$lan_mac" -2) ;; oy-0001) lan_mac=$(mtd_get_mac_binary factory 40) wan_mac=$(mtd_get_mac_binary factory 46) ;; rt-n56u) lan_mac=$(cat /sys/class/net/eth0/address) lan_mac=$(macaddr_setbit_la "$lan_mac") wan_mac=$(mtd_get_mac_binary factory 32772) ;; tew-691gr) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 3) ;; tew-692gr) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 4) ;; tiny-ac) lan_mac=$(mtd_get_mac_ascii u-boot-env LAN_MAC_ADDR) wan_mac=$(mtd_get_mac_ascii u-boot-env WAN_MAC_ADDR) ;; w306r-v20) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 5) ;; wcr-150gn) wan_mac=$(mtd_get_mac_binary factory 40) ;; whr-1166d|\ whr-300hp2|\ whr-600d|\ wsr-600) wan_mac=$(mtd_get_mac_binary factory 4) lan_mac=$wan_mac ;; wizfi630a) lan_mac=$(mtd_get_mac_binary factory 4) wan_mac=$(mtd_get_mac_binary factory 40) ;; wsr-1166) local index="$(find_mtd_index "board_data")" wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)" lan_mac=$wan_mac ;; *) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(macaddr_add "$lan_mac" 1) ;; esac [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac } board_config_update board=$(ramips_board_name) ramips_setup_interfaces $board ramips_setup_macs $board board_config_flush exit 0