diff options
Diffstat (limited to 'package/switch')
-rw-r--r-- | package/switch/Makefile | 4 | ||||
-rw-r--r-- | package/switch/files/switch.sh | 33 |
2 files changed, 37 insertions, 0 deletions
diff --git a/package/switch/Makefile b/package/switch/Makefile index 5513394fd..860e530c4 100644 --- a/package/switch/Makefile +++ b/package/switch/Makefile @@ -42,6 +42,10 @@ define Build/Compile endef define Package/kmod-switch/install + install -m0755 -d $(1)/lib/network/ + install -m0755 ./files/switch.sh $(1)/lib/network/ + install -m0755 -d $(1)/etc/modules.d/ + printf 'switch-core\nswitch-robo\nswitch-adm\n' > $(1)/etc/modules.d/20-switch install -m0755 -d $(1)/lib/modules/$(LINUX_VERSION) $(CP) $(PKG_BUILD_DIR)/*.$(LINUX_KMOD_SUFFIX) \ $(1)/lib/modules/$(LINUX_VERSION) diff --git a/package/switch/files/switch.sh b/package/switch/files/switch.sh new file mode 100644 index 000000000..a787a8cf3 --- /dev/null +++ b/package/switch/files/switch.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# Copyright (C) 2006 OpenWrt.org + +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" +} + +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 +} |