[backfire] cleanup: remove refs to unsupported "iop32x" target
[openwrt-10.03/.git] / package / switch / files / switch.sh
1 #!/bin/sh
2 # Copyright (C) 2006-2010 OpenWrt.org
3
4 setup_switch_hw() {
5         local dev="$1"
6         local enable reset evlan
7
8         config_get_bool enable "$dev" enable 1
9         config_get_bool evlan  "$dev" enable_vlan 1
10         config_get_bool reset  "$dev" reset 1
11
12         local proc="/proc/switch/$dev"
13         [ -d "$proc" ] && {
14                 echo "$reset"  > "$proc/reset"
15                 echo "$evlan"  > "$proc/enable_vlan"
16                 [ -f "$proc/enable" ] && echo "$enable" > "$proc/enable"
17         }
18
19         local vlan
20         for vlan in `seq 0 15`; do
21                 proc="/proc/switch/$dev/vlan/$vlan/ports"
22                 [ -f "$proc" ] && echo "" > "$proc"
23         done
24 }
25
26 setup_switch_vlan() {
27         local s="$1"
28         local dev vlan ports
29
30         config_get dev   "$s" device
31         config_get vlan  "$s" vlan
32         config_get ports "$s" ports
33
34         [ -n "$dev" ] && [ -n "$vlan" ] && {
35                 ports="${ports%\*}"
36
37                 [ "$_vlan_pvid_set" = 1 ] || {
38                         ports="$ports*"
39                         _vlan_pvid_set=1
40                 }
41
42                 local proc="/proc/switch/$dev/vlan/$vlan/ports"
43                 [ -f "$proc" ] && echo "$ports" > "$proc"
44         }
45 }
46
47 setup_switch() {
48         _vlan_pvid_set=0
49         config_load network
50         config_foreach setup_switch_hw switch
51         config_foreach setup_switch_vlan switch_vlan
52 }