summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2009-11-15 23:19:39 +0000
committerJo-Philipp Wich <jow@openwrt.org>2009-11-15 23:19:39 +0000
commita4b18483871f5bded7360cdac9b01a1301bb5bdc (patch)
treebee6483b135c4ebdb3184a78b6dcc0e38f136c2f
parentb01e1d4916c1bfe5e438f06f049e842e7d491d15 (diff)
add migration code to automatically convert old to new switch config on first boot, this will be removed at some point in the future
SVN-Revision: 18432
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/etc/init.d/netconfig36
1 files changed, 35 insertions, 1 deletions
diff --git a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig b/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
index 4d66962f98..b5d900a73b 100755
--- a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
+++ b/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
@@ -4,7 +4,41 @@
START=05
start() {
- [ -e /etc/config/network ] && exit 0
+ [ -e /etc/config/network ] && {
+ local batch
+
+ config_cb() {
+ case "$1" in
+ switch)
+ option_cb() {
+ case "$1" in
+ vlan[0-9]|vlan1[0-5])
+ local id="${1#vlan}"
+ append batch "delete network.eth0.${1}${N}"
+ append batch "set network.eth0_${n}=switch_vlan${N}"
+ append batch "set network.eth0_${n}.device=eth0${N}"
+ append batch "set network.eth0_${n}.vlan=${id}${N}"
+ append batch "set network.eth0_${n}.ports='${2}'${N}"
+ ;;
+ esac
+ }
+ ;;
+ switch_vlan)
+ option_cb() { :; }
+ batch=""
+ ;;
+ esac
+ }
+
+ config_load network
+
+ [ -n "$batch" ] && {
+ logger -t netconfig "migrating switch config to new format ..."
+ echo "$batch${N}commit network" | uci batch
+ }
+
+ exit 0
+ }
mkdir -p /etc/config