#!/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_add_switch "rt305x" $lanports $wanports "6t@eth0" } ramips_setup_interfaces() { local board="$1" case $board in 11acnas|\ w2914nsv2) ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0" ;; 3g150b|\ 3g300m|\ a5-v11|\ all0256n|\ all5002|\ all5003|\ broadway|\ dcs-930|\ dcs-930l-b1|\ ht-tm02|\ linkits7688 | \ linkits7688d | \ m2m|\ microwrt|\ mpr-a2|\ ncs601w|\ omega2 | \ omega2p | \ timecloud|\ w150m|\ widora-neo|\ wnce2001|\ zbt-cpe102|\ zte-q7) ucidef_add_switch "switch0" ucidef_add_switch_attr "switch0" "enable" "false" ucidef_set_interface_lan "eth0" ;; mlw221|\ mr-102n) ucidef_set_interface_lan "eth0.2" ;; 3g-6200n|\ ac1200pro|\ ai-br100|\ db-wrt01|\ dir-300-b7|\ dir-320-b1|\ dir-610-a1|\ dir-615-h1|\ firewrt|\ hlk-rm04|\ mac1200rv2|\ miwifi-mini|\ miwifi-nano|\ mt7621|\ mt7628|\ mzk-750dhp|\ mzk-w300nh2|\ nixcore|\ oy-0001|\ pbr-m1|\ psg1208|\ psg1218|\ sap-g3200u3|\ sk-wb8|\ vr500|\ wf-2881|\ witi|\ wl-wn575a3|\ wndr3700v5|\ wt1520|\ y1|\ youku-yk1|\ zbt-ape522ii|\ zbt-we826|\ zbt-wg2626|\ zbt-wg3526|\ zbt-wr8305rt) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0" ;; whr-300hp2|\ whr-600d|\ wsr-1166|\ wsr-600) ucidef_add_switch "switch0" \ "0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@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|\ c20i|\ c50|\ dir-645|\ dir-860l-b1|\ f5d8235-v2|\ gl-mt300a|\ gl-mt300n|\ gl-mt750|\ hg255d|\ jhr-n805r|\ jhr-n825r|\ jhr-n926r|\ mzk-wdpr|\ rb750gr3|\ 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) 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" ;; cs-qr10|\ d105|\ dch-m225|\ ex2700|\ hpm|\ mzk-ex300np|\ mzk-ex750np|\ na930|\ pbr-d1|\ wli-tx4-ag300n|\ wmr-300|\ wrh-300cr) ucidef_set_interface_lan "eth0" ;; duzun-dm06) ucidef_add_switch "switch0" \ "1:lan" "0:wan" "6@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" ;; kn_rc|\ kn_rf) ucidef_add_switch "switch" \ "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6@eth0" ;; kng_rc) ucidef_add_switch "switch1" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "7t@eth0" ;; mlwg2|\ wizard8800|\ wl-330n) ucidef_set_interface_lan "eth0.1" ;; mr200) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "6t@eth0" ucidef_set_interface_wan "usb0" ;; mzk-dp150n|\ vocore) ucidef_add_switch "switch0" \ "0:lan" "4:lan" "6t@eth0" ;; newifi-d1) ucidef_set_interface_lan_wan "eth0.1" "eth0.2" ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "5:wan" "6t@eth0" "7t@eth0" ucidef_add_switch "switch1" \ "4:lan" "6t@eth0" "7t@eth0" ;; rt-n56u) ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "8@eth0" ;; tew-691gr|\ tew-692gr|\ wlr-6000) ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0" ;; vocore2) ucidef_add_switch "switch0" \ "0:lan" "2:lan" "6t@eth0" ;; f5d8235-v1|\ tew-714tru|\ 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" ;; *) 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|\ ht-tm02) lan_mac=$(cat /sys/class/net/eth0/address) ;; all0239-3g|\ carambola|\ freestation5|\ w502u|\ wnce2001) wan_mac=$(mtd_get_mac_binary factory 46) ;; bc2|\ broadway|\ d105|\ dir-300-b7|\ dir-320-b1|\ dir-620-a1|\ esr-9753|\ freestation5|\ hlk-rm04|\ mpr-a1|\ 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) ;; br-6475nd) lan_mac=$(cat /sys/class/net/eth0/address) wan_mac=$(mtd_get_mac_binary devdata 7) ;; cy-swr1100|\ dch-m225) lan_mac=$(mtd_get_mac_ascii factory lanmac) ;; dir-645) lan_mac=$(mtd_get_mac_ascii nvram lanmac) wan_mac=$(mtd_get_mac_ascii nvram wanmac) ;; dir-860l-b1) lan_mac=$(mtd_get_mac_ascii factory lanmac) wan_mac=$(mtd_get_mac_ascii factory 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) ;; kng_rc) wan_mac=$(mtd_get_mac_binary factory 28) ;; linkits7688 | \ linkits7688d) wan_mac=$(mtd_get_mac_binary factory 4) lan_mac=$(mtd_get_mac_binary factory 46) ;; mac1200rv2) lan_mac=$(mtd_get_mac_binary factory_info 13) wan_mac=$(macaddr_add "$lan_mac" 1) ;; m3|\ m4|\ x5|\ x8) lan_mac=$(cat /sys/class/net/eth0/address) lan_mac=$(macaddr_add "$lan_mac" -2) ;; newifi-d1) lan_mac=$(cat /sys/class/net/eth0/address) lan_mac=$(macaddr_add "$lan_mac" 2) ;; omega2|\ omega2p) wan_mac=$(mtd_get_mac_binary factory 4) lan_mac=$(mtd_get_mac_binary factory 46) ;; 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) ;; sk-wb8) wan_mac=$(mtd_get_mac_binary factory 57350) ;; tew-691gr) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 3) ;; tew-692gr) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 4)" 1) ;; 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) ;; vr500) lan_mac=$(mtd_get_mac_binary factory 57344) wan_mac=$(mtd_get_mac_binary factory 57350) ;; 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) ;; wlr-6000) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 32772)" 2) ;; 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