From 66340c40ffd6e04363b4e5c6f71264e5af30af30 Mon Sep 17 00:00:00 2001 From: Travis Kemen Date: Wed, 27 Feb 2008 15:59:15 +0000 Subject: [PATCH] add config file support for the adm5120 switch SVN-Revision: 10529 --- package/admswconfig/Makefile | 4 ++ package/admswconfig/files/admswconfig | 67 ++++++++++++++++++++++++ package/admswconfig/files/admswswitch.sh | 25 +++++++++ 3 files changed, 96 insertions(+) create mode 100644 package/admswconfig/files/admswconfig create mode 100644 package/admswconfig/files/admswswitch.sh 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 +}