Root/package/switch/files/switch.sh

1#!/bin/sh
2# Copyright (C) 2006-2010 OpenWrt.org
3
4setup_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
26setup_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
47setup_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}
53

Archive Download this file



interactive