#
# Copyright (c) 2015 The Linux Foundation. All rights reserved.
# Copyright (c) 2011-2015 OpenWrt.org
#

. /lib/functions/uci-defaults.sh
. /lib/functions/system.sh

ipq806x_setup_interfaces()
{
	local board="$1"

	case "$board" in
	arris,tr4400-v2)
		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "eth2"
		;;
	askey,rt4230w-rev6|\
	asrock,g10|\
	buffalo,wxr-2533dhp|\
	compex,wpq864|\
	linksys,e8350-v1|\
	linksys,ea7500-v1|\
	linksys,ea8500|\
	nec,wg2600hp|\
	nec,wg2600hp3|\
	netgear,d7800|\
	netgear,r7500|\
	netgear,r7500v2|\
	netgear,r7800|\
	netgear,xr450|\
	netgear,xr500|\
	qcom,ipq8064-ap148|\
	tplink,ad7200|\
	tplink,c2600|\
	tplink,vr2600v|\
	zyxel,nbg6817)
		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
		ucidef_set_network_device_conduit "lan1" "eth1"
		ucidef_set_network_device_conduit "lan2" "eth1"
		ucidef_set_network_device_conduit "lan3" "eth1"
		ucidef_set_network_device_conduit "lan4" "eth1"
		ucidef_set_network_device_conduit "wan" "eth0"
		;;
	asus,onhub|\
	ruijie,rg-mtfi-m520|\
	tplink,onhub)
		ucidef_set_interfaces_lan_wan "lan1" "wan"
		ucidef_set_network_device_conduit "lan1" "eth1"
		ucidef_set_network_device_conduit "wan" "eth0"
		;;
	edgecore,ecw5410|\
	extreme,ap3935)
		ucidef_set_interfaces_lan_wan "eth1" "eth0"
		;;
	fortinet,fap-421e|\
	ignitenet,ss-w2-ac2600|\
	ubnt,unifi-ac-hd)
		ucidef_set_interface_lan "eth0 eth1"
		;;
	xiaomi,mi-router-hd)
		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
		ucidef_set_network_device_conduit "lan1" "eth1"
		ucidef_set_network_device_conduit "lan2" "eth1"
		ucidef_set_network_device_conduit "lan3" "eth1"
		ucidef_set_network_device_conduit "wan" "eth0"
		;;
	meraki,mr42)
		ucidef_set_interface_lan "eth0"
		;;
	meraki,mr52)
		ucidef_set_interfaces_lan_wan "eth0" "eth1"
		;;
	qcom,ipq8064-ap161)
		ucidef_set_interface_lan "eth1 eth2 lan1 lan2 lan3 lan4" "wan"
		;;
	qcom,ipq8064-db149)
		ucidef_set_interface_lan "eth1 eth2 eth3 lan1 lan2 lan3 lan4" "wan"
		;;
	*)
		echo "Unsupported hardware. Network interfaces not intialized"
		;;
	esac
}

ipq806x_setup_macs()
{
	local board="$1"

	case "$board" in
	asrock,g10)
		hw_mac_addr=$(mtd_get_mac_ascii hwconfig HW.LAN.MAC.Address)
		ucidef_set_interface_macaddr "lan" "$hw_mac_addr"
		hw_mac_addr=$(mtd_get_mac_ascii hwconfig HW.WAN.MAC.Address)
		ucidef_set_interface_macaddr "wan" "$(macaddr_add $hw_mac_addr 1)"
		;;
	ruijie,rg-mtfi-m520)
		hw_mac_addr=$(mtd_get_mac_ascii PRODUCTINFO ethaddr)
		ucidef_set_interface_macaddr "wan" "$hw_mac_addr"
		ucidef_set_interface_macaddr "lan" "$(macaddr_add $hw_mac_addr 1)"
		;;
	esac
}

board_config_update
board=$(board_name)

ipq806x_setup_macs $board
ipq806x_setup_interfaces $board

board_config_flush

exit 0
