1f3400d3b4
Add switch setup to uci network defaults. The 'lan' attribute is used to decide into which vlan to put the port. Currently 'disable' is never set, but the intention is to use this for devices like the 8devices Carambola, which only has two ports hooked up to the SoC. Signed-off-by: Tobias Diedrich <ranma+openwrt@tdiedrich.de> SVN-Revision: 33300
212 lines
4.1 KiB
Bash
Executable file
212 lines
4.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
. /etc/functions.sh
|
|
. /lib/ramips.sh
|
|
. /lib/functions/uci-defaults.sh
|
|
|
|
if [ ! -x /usr/sbin/maccalc ]; then
|
|
echo "$0: maccalc not found!"
|
|
return
|
|
fi
|
|
|
|
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 $wanports"
|
|
else
|
|
lanports="$port $lanports"
|
|
fi
|
|
done
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "rt305x" "1" "1"
|
|
ucidef_add_switch_vlan "rt305x" "1" "$lanports 6t"
|
|
ucidef_add_switch_vlan "rt305x" "2" "$wanports 6t"
|
|
}
|
|
|
|
ramips_setup_interfaces()
|
|
{
|
|
local board="$1"
|
|
|
|
ucidef_set_interface_loopback
|
|
|
|
case $board in
|
|
all0256n | \
|
|
all5002 | \
|
|
dir-615-h1 | \
|
|
wl-330n)
|
|
ucidef_set_interface_lan "eth0.1"
|
|
;;
|
|
|
|
3g-6200n | \
|
|
argus-atp52b | \
|
|
b2c | \
|
|
nw718 | \
|
|
psr-680w | \
|
|
sl-r7205 | \
|
|
w502u | \
|
|
wr6202)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
;;
|
|
|
|
f5d8235-v1 | \
|
|
f5d8235-v2 | \
|
|
ur-336un)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
;;
|
|
|
|
v11st-fe)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t"
|
|
ucidef_add_switch_vlan "switch0" "2" "0 5t"
|
|
;;
|
|
|
|
rt-n15 | \
|
|
wl-351)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t"
|
|
ucidef_add_switch_vlan "switch0" "2" "4 5t"
|
|
;;
|
|
|
|
rt-n56u)
|
|
ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
|
|
ucidef_add_switch "switch0" "1" "1"
|
|
ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 8t"
|
|
ucidef_add_switch_vlan "switch0" "2" "4 8t"
|
|
;;
|
|
|
|
freestation5 | \
|
|
wcr-150gn)
|
|
ucidef_set_interfaces_lan_wan "eth0.2" "eth0.1"
|
|
;;
|
|
|
|
wli-tx4-ag300n)
|
|
ucidef_set_interface_lan "eth0"
|
|
;;
|
|
|
|
*)
|
|
RT3X5X=`cat /proc/cpuinfo | grep RT3.5`
|
|
if [ -n "${RT3X5X}" ]; then
|
|
ramips_setup_rt3x5x_vlans
|
|
else
|
|
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
ramips_setup_macs()
|
|
{
|
|
local board="$1"
|
|
local lan_mac=""
|
|
local wan_mac=""
|
|
|
|
case $board in
|
|
all0256n | \
|
|
all5002 | \
|
|
dir-615-h1)
|
|
lan_mac=$(ramips_get_mac_binary factory 40)
|
|
;;
|
|
3g-6200n | \
|
|
argus-atp52b | \
|
|
bc2 | \
|
|
f5d8235-v1 | \
|
|
nw718 | \
|
|
psr-680w | \
|
|
rt-n15 | \
|
|
sl-r7205 | \
|
|
wl-351)
|
|
lan_mac=$(ramips_get_mac_binary factory 4)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
w306r-v20)
|
|
lan_mac=$(ramips_get_mac_binary factory 4)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 5)
|
|
;;
|
|
|
|
fonera20n)
|
|
lan_mac=$(ramips_get_mac_binary factory 40)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
dir-300-b1 |\
|
|
dir-300-b2 |\
|
|
dir-600-b1)
|
|
lan_mac=$(ramips_get_mac_binary devdata 16388)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
dir-620-a1)
|
|
lan_mac=$(ramips_get_mac_binary factory 4)
|
|
lan_mac=$(maccalc or "$lan_mac" "02:00:00:00:00:00")
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
esr-9753 | \
|
|
ur-336un)
|
|
lan_mac=$(ramips_get_mac_binary devdata 16388)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
nbg-419n | \
|
|
wcr-150gn)
|
|
lan_mac=$(ramips_get_mac_binary factory 4)
|
|
wan_mac=$(ramips_get_mac_binary factory 40)
|
|
;;
|
|
|
|
f5d8235-v2)
|
|
lan_mac=$(ramips_get_mac_binary "u-boot" 262148)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
rt-n56u)
|
|
lan_mac=$(ramips_get_mac_binary factory 4)
|
|
wan_mac=$(ramips_get_mac_binary factory 32772)
|
|
;;
|
|
|
|
all0239-3g | \
|
|
w502u)
|
|
lan_mac=$(ramips_get_mac_binary factory 40)
|
|
wan_mac=$(ramips_get_mac_binary factory 46)
|
|
;;
|
|
|
|
wl341v3)
|
|
lan_mac=$(ramips_get_mac_binary board-nvram 65440)
|
|
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
;;
|
|
|
|
wli-tx4-ag300n)
|
|
lan_mac=$(ramips_get_mac_binary factory 4)
|
|
;;
|
|
|
|
esac
|
|
|
|
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac
|
|
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac
|
|
}
|
|
|
|
[ -e /etc/config/network ] && exit 0
|
|
|
|
touch /etc/config/network
|
|
|
|
board=$(ramips_board_name)
|
|
|
|
ramips_setup_interfaces $board
|
|
ramips_setup_macs $board
|
|
|
|
uci commit network
|
|
|
|
exit 0
|