#!/bin/sh
#
# Copyright (C) 2011-2015 OpenWrt.org
#

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

board_config_update

vpi=1
vci=32
annex="a"
tone="av"
xfer_mode=""
encaps="llc"
payload="bridged"
lan_mac=""
wan_mac=""
interface_wan="dsl0"

board=$(board_name)

case "$board" in
audiocodes,mp-252)
	ucidef_add_switch "switch0" \
		"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5t@eth0"
	;;

allnet,all0333cj)
	annex="b"
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_set_interface_lan 'eth0'
	;;

arcadyan,arv4510pw)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:4" "2:lan:2" "1:lan:3" "3:lan:1" "5t@eth0"
	;;

arcadyan,arv4519pw|arcadyan,arv7510pw22|arcadyan,arv7518pw)
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan" "3:lan" "4:lan" "5:lan"
	;;

arcadyan,arv4520pw)
	annex="b"
	ucidef_add_switch "switch0" \
		"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5t@eth0"
	;;

arcadyan,arv4525pw|arcadyan,arv452cqw|arcadyan,arv7525pw|arcadyan,arv752dpw)
	annex="b"
	ucidef_set_interface_lan 'eth0'
	;;

arcadyan,arv7506pw11)
	annex="b"
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary board_config 22)" 2)
	ucidef_add_switch "switch0" \
		"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5t@eth0"
	;;

arcadyan,arv7519pw)
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary board_config 22)" 1)
	ucidef_add_switch "switch0" \
		"0:lan" "1:lan" "2:lan" "3:lan" "4t@eth0"
	;;

arcadyan,arv7519rw22)
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary boardconfig 22)" 1)
	ucidef_add_switch "switch0" \
		"0:lan:5" "2:lan:3" "3:lan:4" "4:lan:1" "5:lan:2" "6t@eth0"
	;;

arcadyan,arv752dpw22|arcadyan,arv8539pw22)
	annex="b"
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan" "3:lan" "4:lan" "5:lan"
	;;

alphanetworks,asl56026)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(mtd_get_mac_ascii uboot_env wanmac)
	ucidef_add_switch "switch0"\
		"2:lan" "3:lan" "6t@eth0"
	;;

bt,homehub-v2b)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"1:lan" "2:lan" "3:lan" "4:lan" "5t@eth0"
	;;

bt,homehub-v3a)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_set_interface_lan 'eth0'
	;;

bt,homehub-v5a)
	lan_mac=$(mtd_get_mac_binary_ubi caldata 4364)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "5:wan:5" "6t@eth0"
	;;

netgear,dgn1000b)
	annex="b"
	ucidef_set_interface_lan 'eth0'
	;;

netgear,dgn3500|netgear,dgn3500b)
	lan_mac=$(mtd_get_mac_ascii uboot-env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5t@eth0"
	;;

netgear,dm200)
	lan_mac=$(mtd_get_mac_binary ART 0)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_set_interface_lan 'eth0'
	;;

lantiq,easy80920-nand|lantiq,easy80920-nor)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan:4" "1:lan:3" "2:lan:2" "4:lan:1" "5:wan:5" "6t@eth0"
	;;

avm,fritz3370-rev2-hynix|\
avm,fritz3370-rev2-micron)
	annex="b"
	lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
	wan_mac=$(macaddr_add "$lan_mac" 3)
	ucidef_add_switch "switch0" \
		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
	;;

avm,fritz7312|\
avm,fritz7320)
	annex="b"
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 2705)" 1)
	ucidef_set_interface_lan 'eth0'
	;;

avm,fritz7360sl)
	annex="b"
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 2705)" 1)
	ucidef_add_switch "switch0" \
		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
	;;

avm,fritz7362sl)
	annex="b"
	lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
	wan_mac=$(fritz_tffs -n macdsl -i $(find_mtd_part "tffs (1)"))
	ucidef_add_switch "switch0" \
		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
	;;

avm,fritz7412)
	tffsdev=$(find_mtd_chardev "nand-tffs")
	annex="b"
	lan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca -o)
	wan_mac=$(/usr/bin/fritz_tffs_nand -d $tffsdev -n macdsl -o)
	ucidef_set_interface_lan 'eth0'
	;;

siemens,gigaset-sx76x)
	annex="b"
	ucidef_add_switch "switch0" \
		"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5t@eth0"
	;;

zte,h201l)
	annex="b"
	ucidef_add_switch "switch0" \
		"0:lan" "1:lan" "2:lan" "3:lan" "4t@eth0"
	;;

zyxel,p-2601hn)
	ucidef_add_switch "switch0" \
		"0:lan" "1:lan" "2:lan" "3:lan" "5t@eth0"
	;;

zyxel,p-2812hnu-f1|zyxel,p-2812hnu-f3)
	lan_mac=$(mtd_get_mac_ascii uboot-env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"0:lan" "1:lan" "2:lan" "4:lan" "5:wan" "6t@eth0"
	;;

tplink,tdw8970|tplink,tdw8980)
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary boardconfig 61696)" 1)
	ucidef_add_switch "switch0" \
		"0:lan:2" "2:lan:3" "4:lan:4" "5:lan:1" "6t@eth0"
	;;

arcadyan,vg3503j)
	lan_mac=$(mtd_get_mac_ascii uboot-env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_add_switch "switch0" \
		"2:lan:2" "4:lan:1" "6t@eth0"
	;;

tplink,vr200|tplink,vr200v)
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary romfile 61696)" 1)
	ucidef_add_switch "switch0" \
		"0:lan" "2:lan" "4:lan" "5:lan" "6t@eth0"
	;;

arcadyan,vgv7510kw22-nor|arcadyan,vgv7510kw22-brn)
	annex="b"
	wan_mac=$(macaddr_add "$(mtd_get_mac_binary board_config 22)" 2)
	ucidef_add_switch "switch0" \
		"2:lan:2" "3:lan:1" "4:lan:4" "5:lan:3" "0:wan:5" "6t@eth0"
	;;

arcadyan,vgv7519-nor|arcadyan,vgv7519-brn)
	wan_mac=$(mtd_get_mac_binary board_config 22)
	ucidef_add_switch "switch0" \
		"0:lan:4" "1:lan:3" "2:lan:2" "4:lan:1" "5:wan:5" "6t@eth0"
	;;

buffalo,wbmr-hp-g300h)
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan" "3:lan" "4:lan" "5:lan"
	;;

buffalo,wbmr-300hpd)
	lan_mac=$(mtd_get_mac_ascii ubootconfig ethaddr)
	wan_mac="$lan_mac"
	ucidef_add_switch "switch0" \
		"5:lan:2" "2:lan:3" "3:lan:4" "4:wan:1" "6t@eth0"
	;;

*)
	ucidef_set_interface_lan 'eth0'
	;;

esac

ls /lib/modules/$(uname -r)/ltq_atm* 1> /dev/null 2>&1 && \
	ucidef_add_atm_bridge "$vpi" "$vci" "$encaps" "$payload" "dsl"

if lantiq_is_vdsl_system; then
	ucidef_add_vdsl_modem "$annex" "$tone" "$xfer_mode"
else
	ucidef_add_adsl_modem "$annex" "/lib/firmware/adsl.bin"
fi

ucidef_set_interface_wan "$interface_wan" "pppoe"

[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" "$lan_mac"
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" "$wan_mac"

board_config_flush

exit 0

