aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorTravis Kemen <thepeople@openwrt.org>2008-02-27 15:59:15 +0000
committerTravis Kemen <thepeople@openwrt.org>2008-02-27 15:59:15 +0000
commit66340c40ffd6e04363b4e5c6f71264e5af30af30 (patch)
treef2cd6496bd90ffaf09ad41225a64a930018c4c66 /package
parent3390dcc8d2912084ce667c722168bb51500c9d0f (diff)
downloadupstream-66340c40ffd6e04363b4e5c6f71264e5af30af30.tar.gz
upstream-66340c40ffd6e04363b4e5c6f71264e5af30af30.tar.bz2
upstream-66340c40ffd6e04363b4e5c6f71264e5af30af30.zip
add config file support for the adm5120 switch
SVN-Revision: 10529
Diffstat (limited to 'package')
-rw-r--r--package/admswconfig/Makefile4
-rw-r--r--package/admswconfig/files/admswconfig67
-rw-r--r--package/admswconfig/files/admswswitch.sh25
3 files changed, 96 insertions, 0 deletions
diff --git a/package/admswconfig/Makefile b/package/admswconfig/Makefile
index 52aa2a467f..96797378cc 100644
--- a/package/admswconfig/Makefile
+++ b/package/admswconfig/Makefile
@@ -43,6 +43,10 @@ endef
define Package/admswconfig/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/admswconfig $(1)/sbin/
+ $(INSTALL_DIR) $(1)/lib/network/
+ $(INSTALL_DATA) ./files/admswswitch.sh $(1)/lib/network/admswswitch.sh
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/admswconfig $(1)/etc/init.d/admswconfig
endef
$(eval $(call BuildPackage,admswconfig))
diff --git a/package/admswconfig/files/admswconfig b/package/admswconfig/files/admswconfig
new file mode 100644
index 0000000000..dd55242500
--- /dev/null
+++ b/package/admswconfig/files/admswconfig
@@ -0,0 +1,67 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
+
+START=05
+
+start() {
+ [ -e /etc/config/network ] && exit 0
+
+ mkdir -p /etc/config
+
+adm5120_detect() {
+ board_name=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /system type/ {print $2}' /proc/cpuinfo)
+
+ case "$board_name" in
+ "Compex WP54"*)
+ board="WP54";;
+ *)
+ ;;
+ esac
+}
+
+adm5120_detect
+ BEGIN {
+ FS="="
+ c["lan_ifname"]="eth0"
+ c["wan_ifname"]="eth1"
+ c["eth0ports"]="12345"
+ c["eth1ports"]="0"
+ }
+
+ END {
+ if (model == "Compex WP54") {
+ c["vlan0ports"]="0"
+ c["vlan1ports"]="1"
+ }
+
+ print "#### VLAN configuration "
+ print "config switch"
+ p("eth0", "eth0ports")
+ p("eth1", "eth1ports")
+ print ""
+ print ""
+ print "#### Loopback configuration"
+ print "config interface loopback"
+ print " option ifname \"lo\""
+ print " option proto static"
+ print " option ipaddr 127.0.0.1"
+ print " option netmask 255.0.0.0"
+ print ""
+ print ""
+ print "#### LAN configuration"
+ print "config interface lan"
+ print " option type bridge"
+ p("ifname", "lan_ifname")
+ p("macaddr", "lan_macaddr")
+ print " option proto static"
+ print " option ipaddr 192.168.1.1"
+ print " option netmask 255.255.255.0"
+ print ""
+ print ""
+ print "#### WAN configuration"
+ print "config interface wan"
+ p("ifname", "wan_ifname")
+ p("macaddr", "wan_macaddr")
+ print " option proto dhcp"
+ }' > /etc/config/network
+}
diff --git a/package/admswconfig/files/admswswitch.sh b/package/admswconfig/files/admswswitch.sh
new file mode 100644
index 0000000000..c5898d5a39
--- /dev/null
+++ b/package/admswconfig/files/admswswitch.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+
+setup_switch_vlan() {
+ config_get ports "$CONFIG_SECTION" "eth$1"
+ admswconfig eth$1 ${ports}c
+}
+
+setup_switch() {
+ config_cb() {
+ case "$1" in
+ switch)
+ option_cb() {
+ case "$1" in
+ eth*) setup_switch_vlan "${1##eth}";;
+ esac
+ }
+ ;;
+ *)
+ option_cb() { return 0; }
+ ;;
+ esac
+ }
+ config_load network
+}