[generic]: 3.0 is out
[openwrt.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 }
This page took 0.052843 seconds and 5 git commands to generate.