# # Copyright (c) 2015 The Linux Foundation. All rights reserved. # Copyright (c) 2011-2015 OpenWrt.org # . /lib/functions/uci-defaults.sh . /lib/functions/system.sh ipq40xx_setup_interfaces() { local board="$1" case "$board" in 8dev,habanero-dvk|\ avm,fritzbox-4040|\ asus,rt-ac42u|\ asus,rt-ac58u|\ linksys,ea6350v3|\ linksys,ea8300|\ linksys,mr8300|\ mikrotik,hap-ac2|\ mikrotik,hap-ac3|\ mikrotik,hap-ac3-lte6-kit|\ p2w,r619ac-64m|\ p2w,r619ac-128m|\ pakedge,wr-1|\ teltonika,rutx50|\ yyets,le1|\ zyxel,nbg6617) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" ;; 8dev,jalapeno|\ alfa-network,ap120c-ac|\ asus,map-ac2200|\ cilab,meshpoint-one|\ edgecore,ecw5211|\ glinet,gl-ap1300|\ glinet,gl-b2200|\ google,wifi|\ linksys,whw03v2|\ luma,wrtq-329acn|\ mikrotik,cap-ac|\ netgear,wac510|\ sony,ncp-hg100-cellular|\ wallys,dr40x9|\ zte,mf18a|\ zte,mf289f) ucidef_set_interfaces_lan_wan "lan" "wan" ;; aruba,ap-303|\ aruba,ap-365|\ avm,fritzrepeater-1200|\ dlink,dap-2610|\ extreme-networks,ws-ap3915i|\ meraki,mr33|\ meraki,mr74|\ mikrotik,lhgg-60ad|\ mikrotik,sxtsq-5-ac|\ netgear,ex6100v2|\ netgear,ex6150v2|\ zte,mf282plus) ucidef_set_interface_lan "lan" ;; avm,fritzbox-7530) ucidef_set_interface_lan "lan1 lan2 lan3 lan4" ;; avm,fritzrepeater-3000|\ cellc,rtl30vw) ucidef_set_interface_lan "lan1 lan2" ;; compex,wpj428) ucidef_set_interface_lan "lan1 lan2" ;; devolo,magic-2-wifi-next) ucidef_set_interface_lan "lan1 lan2 ghn" ;; extreme-networks,ws-ap391x) ucidef_set_interfaces_lan_wan "sw-eth1 sw-eth2 sw-eth3 sw-eth5" "sw-eth4" ;; linksys,whw01) ucidef_set_interface_lan "eth1 eth2" ;; glinet,gl-a1300|\ glinet,gl-b1300|\ mobipromo,cm520-79f) ucidef_set_interfaces_lan_wan "lan1 lan2" "wan" ;; mikrotik,wap-ac|\ mikrotik,wap-ac-lte|\ mikrotik,wap-r-ac) ucidef_set_interface_lan "sw-eth1 sw-eth2" ;; aruba,ap-303h|\ buffalo,wtr-m2133hp|\ ezviz,cs-w3-wd1200g-eup|\ netgear,rbr40|\ netgear,rbs40|\ netgear,rbr50|\ netgear,rbs50|\ netgear,srr60|\ netgear,srs60) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan" ;; openmesh,a42|\ openmesh,a62) ucidef_set_interfaces_lan_wan "ethernet2" "ethernet1" ;; plasmacloud,pa1200|\ plasmacloud,pa2200) ucidef_set_interfaces_lan_wan "ethernet1" "ethernet2" ;; qxwlan,e2600ac-c1) ucidef_set_interfaces_lan_wan "sw-eth1" "sw-eth2" ;; qxwlan,e2600ac-c2) ucidef_set_interfaces_lan_wan "sw-eth1 sw-eth2" "sw-eth3" ;; zte,mf286d) ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" "wan" ;; zte,mf287|\ zte,mf287plus|\ zte,mf287pro) ucidef_set_interface_lan "lan1 lan2 lan3 lan4" ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi" ;; netgear,lbr20) ucidef_set_interface_lan "lan1 lan2" ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi" ;; *) echo "Unsupported hardware. Network interfaces not initialized" ;; esac } ipq40xx_setup_dsl() { local board="$1" local annex="j" local tone="b" local xfer_mode="" case "$board" in avm,fritzbox-7530) ;; *) return 0 ;; esac ucidef_add_atm_bridge "1" "32" "llc" "bridged" "dsl" ucidef_add_vdsl_modem "$annex" "$tone" "$xfer_mode" ucidef_set_interface_wan "dsl0" "pppoe" } ipq40xx_setup_macs() { local board="$1" local lan_mac="" local wan_mac="" local label_mac="" case "$board" in 8dev,habanero-dvk) label_mac=$(mtd_get_mac_binary "ART" 0x1006) ;; asus,rt-ac42u) label_mac=$(mtd_get_mac_binary_ubi Factory 0x1006) ;; asus,rt-ac58u) wan_mac=$(mtd_get_mac_binary_ubi Factory 0x1006) lan_mac=$(mtd_get_mac_binary_ubi Factory 0x5006) label_mac=$wan_mac ;; avm,fritzbox-7530) local tffsdev=$(find_mtd_chardev "nand-tffs") wan_mac=$(/usr/bin/fritz_tffs_nand -b -d $tffsdev -n macdsl) ;; cilab,meshpoint-one) label_mac=$(mtd_get_mac_binary "ART" 0x1006) ;; devolo,magic-2-wifi-next) lan_mac=$(mtd_get_mac_ascii APPSBLENV MacAddress0) label_mac=$lan_mac ;; dlink,dap-2610) lan_mac=$(mtd_get_mac_ascii bdcfg lanmac) label_mac=$lan_mac ;; engenius,eap2200|\ engenius,emd1) lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr) label_mac=$lan_mac ;; engenius,emr3500) wan_mac=$(mtd_get_mac_ascii 0:APPSBLENV wanaddr) lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr) label_mac=$wan_mac ;; engenius,ens620ext) wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) lan_mac=$(macaddr_add "$wan_mac" 1) ;; ezviz,cs-w3-wd1200g-eup) label_mac=$(mtd_get_mac_binary "ART" 0x6) ;; google,wifi) wan_mac=$(get_mac_label) lan_mac=$(macaddr_add "$wan_mac" 1) ;; linksys,ea6350v3|\ linksys,ea8300 |\ linksys,mr8300) wan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) lan_mac=$(macaddr_add "$wan_mac" 1) ;; mikrotik,cap-ac |\ mikrotik,hap-ac2|\ mikrotik,hap-ac3|\ mikrotik,hap-ac3-lte6-kit) wan_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base) lan_mac=$(macaddr_add $wan_mac 1) label_mac="$wan_mac" ;; mikrotik,lhgg-60ad|\ mikrotik,sxtsq-5-ac) lan_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base) label_mac="$lan_mac" ;; netgear,rbr50|\ netgear,rbs50|\ netgear,srr60|\ netgear,srs60|\ pakedge,wr-1) wan_mac=$(macaddr_add $(get_mac_label) 1) ;; esac [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac } board_config_update board=$(board_name) ipq40xx_setup_interfaces $board ipq40xx_setup_dsl $board ipq40xx_setup_macs $board board_config_flush exit 0