#!/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"
encaps="llc"
payload="bridged"
lan_mac=""
wan_mac=""
interface_wan=""

board=$(lantiq_board_name)

case "$board" in
ACMP252|GIGASX76X)
	ucidef_add_switch "switch0" \
		"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5t@eth0"
	;;

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"
	;;

ARV4519PW|ARV7510PW22|ARV7518PW|ARV752DPW22|ARV8539PW22)
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan" "3:lan" "4:lan" "5:lan"
	;;

ARV4520PW)
	ucidef_add_switch "switch0" \
		"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5t@eth0"
	;;

ARV7506PW11)
	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"
	;;

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"
	;;

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"
	;;

BTHOMEHUBV2B)
	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"
	;;

BTHOMEHUBV3A)
	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
	wan_mac=$(macaddr_add "$lan_mac" 1)
	ucidef_set_interface_lan 'eth0'
	;;

BTHOMEHUBV5A)
	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" "6t@eth0"
	;;

DGN3500*)
	ucidef_add_switch "switch0" \
		"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5t@eth0"
	;;

EASY80920NAND|EASY80920NOR)
	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"
	;;

FRITZ7360SL)
	ucidef_add_switch "switch0" \
		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
	;;

H201L)
	ucidef_add_switch "switch0" \
		"0:lan" "1:lan" "2:lan" "3:lan" "4t@eth0"
	;;

P2601HNFX)
	ucidef_add_switch "switch0" \
		"0:lan" "1:lan" "2:lan" "3:lan" "5t@eth0"
	;;

P2812HNUF*)
	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:lan" "6t@eth0"
	;;

TDW8970|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"
	;;

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

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"
	;;

VGV7510KW22*)
	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" "6t@eth0"
	;;

VGV7519*)
	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" "6t@eth0"
	;;

WBMR)
	ucidef_add_switch "switch0" \
		"0t@eth0" "2:lan" "3:lan" "4:lan" "5:lan"
	;;

WBMR300)
	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

if [ -n "$(ls /lib/modules/`uname -r`/ltq_atm*)" ]; then
	ucidef_add_atm_bridge "$vpi" "$vci" "$encaps" "$payload"
fi

if lantiq_is_vdsl_system; then
	interface_wan="ptm0"
	ucidef_add_vdsl_modem "$annex" "av" "ptm"
else
	interface_wan="nas0"
	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