diff options
author | John Crispin <john@openwrt.org> | 2013-06-21 16:54:37 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2013-06-21 16:54:37 +0000 |
commit | 4ebf19b48fafc8d94e14e4ba779969613b241a6a (patch) | |
tree | 9918f890a8915023b49ea30948beb5d048c333fa /package/kernel/switch/files/switch.sh | |
parent | 44b1688e6c7b4f16f7165fbd560e1183aef69090 (diff) | |
download | upstream-4ebf19b48fafc8d94e14e4ba779969613b241a6a.tar.gz upstream-4ebf19b48fafc8d94e14e4ba779969613b241a6a.tar.bz2 upstream-4ebf19b48fafc8d94e14e4ba779969613b241a6a.zip |
packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 37007
Diffstat (limited to 'package/kernel/switch/files/switch.sh')
-rw-r--r-- | package/kernel/switch/files/switch.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/package/kernel/switch/files/switch.sh b/package/kernel/switch/files/switch.sh new file mode 100644 index 0000000000..2563d410e5 --- /dev/null +++ b/package/kernel/switch/files/switch.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# Copyright (C) 2006-2010 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" ] && { + ifconfig "$dev" up + echo "$reset" > "$proc/reset" + echo "$evlan" > "$proc/enable_vlan" + [ -f "$proc/enable" ] && echo "$enable" > "$proc/enable" + } + + local vlan + for vlan in `seq 0 15`; do + proc="/proc/switch/$dev/vlan/$vlan/ports" + [ -f "$proc" ] && echo "" > "$proc" + done +} + +setup_switch_vlan() { + 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" ] && { + ports="${ports%\*}" + + [ "$_vlan_pvid_set" = 1 ] || { + ports="$ports*" + _vlan_pvid_set=1 + } + + local proc="/proc/switch/$dev/vlan/$vlan/ports" + [ -f "$proc" ] && echo "$ports" > "$proc" + } +} + +setup_switch() { + _vlan_pvid_set=0 + config_load network + config_foreach setup_switch_hw switch + config_foreach setup_switch_vlan switch_vlan +} |