1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-04-21 12:27:27 +03:00

[brcm-2.4] change switch config to swconfig style format to remain consistent accross platforms

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18425 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow
2009-11-15 18:43:46 +00:00
parent 71a22dbb1b
commit b74589690e
2 changed files with 44 additions and 29 deletions

View File

@@ -1,33 +1,38 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2006-2009 OpenWrt.org
setup_switch_hw() {
local dev="$1"
local enable reset evlan
config_get_bool enable "$dev" enable 1
config_get_bool evlan "$dev" enable_vlan 1
config_get_bool reset "$dev" reset 1
local proc="/proc/switch/$dev"
[ -d "$proc" ] && {
echo "$reset" > "$proc/reset"
echo "$evlan" > "$proc/enable_vlan"
echo "$enable" > "$proc/enable"
}
}
setup_switch_vlan() {
DIR="/proc/switch/$CONFIG_SECTION/vlan/$1"
[ -d "$DIR" ] || return 0
config_get ports "$CONFIG_SECTION" "vlan$1"
echo "$ports" > "$DIR/ports"
local s="$1"
local dev vlan ports
config_get dev "$s" device
config_get vlan "$s" vlan
config_get ports "$s" ports
[ -n "$dev" ] && [ -n "$vlan" ] && {
local proc="/proc/switch/$dev/vlan/$vlan/ports"
[ -f "$proc" ] && echo "$ports" > "$proc"
}
}
setup_switch() {
config_cb() {
case "$1" in
switch)
[ -n "$2" -a -d "/proc/switch/$2" ] && {
echo 1 > "/proc/switch/$2/reset"
echo 1 > "/proc/switch/$2/enable"
echo 1 > "/proc/switch/$2/enable_vlan"
option_cb() {
case "$1" in
vlan*) setup_switch_vlan "${1##vlan}";;
esac
}
}
;;
*)
option_cb() { return 0; }
;;
esac
}
config_load network
config_foreach setup_switch_hw switch
config_foreach setup_switch_vlan switch_vlan
}