summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-02-13 02:52:49 +0000
committerFelix Fietkau <nbd@openwrt.org>2011-02-13 02:52:49 +0000
commitabfe2f1bc2b0b34eee71764111b5e88ad6a7409e (patch)
tree567c284a9fafab396c07edaa4b207155af11be20 /package
parent404fbd8c66826b4b15de36c88b331fd2350dc132 (diff)
downloadmaster-31e0f0ae-abfe2f1bc2b0b34eee71764111b5e88ad6a7409e.tar.gz
master-31e0f0ae-abfe2f1bc2b0b34eee71764111b5e88ad6a7409e.tar.bz2
master-31e0f0ae-abfe2f1bc2b0b34eee71764111b5e88ad6a7409e.zip
soloscli: allow user to apply settings to solos h/w before bringing up network (patch by Philip Prindeville)
If the network/wan configuration contains "solos0" ... "solos3" then this list of strings will be applied to the FPGA when the hardware is hotplug added. The syntax should be "tag=value", as per the values enumerated in the solos-attr.c list. In the canned example, the modem is temporarily turned off, told to detect noise, told to disable annexes M and A (effectively putting it into pure ADSL mode), and re-activated. There's probably a more appropriate function name than "dialog" but that's what I came up with. Handle other ATM hardware (Eagle, etc) besides solos-pci. SVN-Revision: 25510
Diffstat (limited to 'package')
-rw-r--r--package/soloscli/Makefile2
-rw-r--r--package/soloscli/files/etc/hotplug.d/atm/15-solos-init26
-rw-r--r--package/soloscli/files/etc/uci-default/solos15
3 files changed, 43 insertions, 0 deletions
diff --git a/package/soloscli/Makefile b/package/soloscli/Makefile
index 611dbcc08f..1c2d998090 100644
--- a/package/soloscli/Makefile
+++ b/package/soloscli/Makefile
@@ -37,6 +37,8 @@ endef
define Package/soloscli/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/soloscli/soloscli $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/etc/hotplug.d/atm
+ $(INSTALL_DATA) ./files/etc/hotplug.d/atm/15-solos-init $(1)/etc/hotplug.d/atm/
endef
$(eval $(call BuildPackage,soloscli))
diff --git a/package/soloscli/files/etc/hotplug.d/atm/15-solos-init b/package/soloscli/files/etc/hotplug.d/atm/15-solos-init
new file mode 100644
index 0000000000..36d13ea5a0
--- /dev/null
+++ b/package/soloscli/files/etc/hotplug.d/atm/15-solos-init
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+dialog() {
+ local tag="$(echo "$1" | cut -d= -f1)"
+ local value="$(echo "$1" | cut -d= -f2-)"
+ local response
+
+ response="$(soloscli -s "$port" "$tag" "$value")"
+ [ $? -ne 0 ] && {
+ logger "soloscli($port): $tag '$value' returns $response"
+ }
+}
+
+if [ "$ACTION" = "add" ]; then
+ include /lib/network
+ scan_interfaces
+
+ case $DEVICENAME in
+ solos-pci[0-3])
+ port="${DEVICENAME#solos-pci}"
+ device="solos${port}"
+
+ config_list_foreach wan "$device" dialog
+ ;;
+ esac
+fi
diff --git a/package/soloscli/files/etc/uci-default/solos b/package/soloscli/files/etc/uci-default/solos
new file mode 100644
index 0000000000..7f69da62c6
--- /dev/null
+++ b/package/soloscli/files/etc/uci-default/solos
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+uci batch <<__EOF__
+
+delete network.wan.solos0
+
+add_list network.wan.solos0="ActivateLine=Abort"
+add_list network.wan.solos0="Retrain=EnableAll"
+add_list network.wan.solos0="DetectNoise=Enable"
+add_list network.wan.solos0="BisMCapability=Disable"
+add_list network.wan.solos0="BisACapability=Disable"
+add_list network.wan.solos0="ActivateLine=Start"
+
+commit network
+__EOF__