aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/comgt
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2015-09-11 06:46:42 +0000
committerSteven Barth <steven@midlink.org>2015-09-11 06:46:42 +0000
commitd00061bf82968a6a32ed4ea5b8e5619c1cee5f72 (patch)
tree1a143509c6895a1dc56e3a7964d22d15366efb26 /package/network/utils/comgt
parent9aa0d300668ac716ee7cd4e9bb84fd812341e029 (diff)
downloadmaster-187ad058-d00061bf82968a6a32ed4ea5b8e5619c1cee5f72.tar.gz
master-187ad058-d00061bf82968a6a32ed4ea5b8e5619c1cee5f72.tar.bz2
master-187ad058-d00061bf82968a6a32ed4ea5b8e5619c1cee5f72.zip
comgt-ncm: Add possibility to choose PDP context type
By setting the option pdptype to IP, IPV6 or IPV4V6 the user can choose the context type between IPv4, IPv6 and dual stack, respectively. The default setting is dual stack, except if option ipv6=0 is specified, in which case IPv4 context is the default. This allows for an out-of-the-box IPv6 support with modems utilizing NCM-like protocols. While we are at it, also add commands for Sierra DirectIP modems (currently untested), which will allow us to drop the separate comgt-directip package (once tested and verified working). Signed-off-by: Matti Laakso <malaakso@elisanet.fi> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46844 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/network/utils/comgt')
-rw-r--r--package/network/utils/comgt/Makefile2
-rw-r--r--package/network/utils/comgt/files/ncm.json26
-rw-r--r--package/network/utils/comgt/files/ncm.sh36
3 files changed, 50 insertions, 14 deletions
diff --git a/package/network/utils/comgt/Makefile b/package/network/utils/comgt/Makefile
index 18085a6593..716bbbf3fa 100644
--- a/package/network/utils/comgt/Makefile
+++ b/package/network/utils/comgt/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=comgt
PKG_VERSION:=0.32
-PKG_RELEASE:=25
+PKG_RELEASE:=26
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/comgt
diff --git a/package/network/utils/comgt/files/ncm.json b/package/network/utils/comgt/files/ncm.json
index ea4f98485f..d1f869974a 100644
--- a/package/network/utils/comgt/files/ncm.json
+++ b/package/network/utils/comgt/files/ncm.json
@@ -6,7 +6,8 @@
"ATQ0",
"ATV1",
"ATE1",
- "ATS0=0"
+ "ATS0=0",
+ "AT+CGDCONT=1,\\\"${pdptype}\\\",\\\"${apn}\\\""
],
"modes": {
"preferlte": "AT^SYSCFGEX=\\\"030201\\\",3fffffff,2,4,7fffffffffffffff,,",
@@ -25,7 +26,7 @@
"AT+CGREG=2",
"AT+CFUN=5",
"AT+MODESELECT=3",
- "AT+CGDCONT=1,\\\"IP\\\",\\\"${apn}\\\""
+ "AT+CGDCONT=1,\\\"${pdptype}\\\",\\\"${apn}\\\""
],
"modes": {
"umts": "AT+CHANGEALLPATH=1"
@@ -33,10 +34,27 @@
"connect": "AT+CGATT=1",
"disconnect": "AT+CGATT=0"
},
- "sony": {
+ "sierra wireless, incorporated": {
"initialize": [
"AT+CFUN=1",
- "AT+CGDCONT=1,\\\"IP\\\",\\\"${apn}\\\"",
+ "AT+CGDCONT=1,\\\"${pdptype}\\\",\\\"${apn}\\\"",
+ "AT$QCPDPP=1${auth:+,$auth}${password:+,\\\"$password\\\"}${username:+,\\\"$username\\\"}"
+ ],
+ "modes": {
+ "preferlte": "AT!SELRAT=07",
+ "preferumts": "AT!SELRAT=05",
+ "lte": "AT!SELRAT=06",
+ "umts": "AT!SELRAT=01",
+ "gsm": "AT!SELRAT=02",
+ "auto": "AT!SELRAT=00"
+ },
+ "connect": "AT!SCACT=1,1",
+ "disconnect": "AT!SCACT=0,1"
+ },
+ "sony ericsson": {
+ "initialize": [
+ "AT+CFUN=1",
+ "AT+CGDCONT=1,\\\"${pdptype}\\\",\\\"${apn}\\\"",
"AT*EIAAUW=1,1,\\\"${username}\\\",\\\"${password}\\\",${auth:-00111}"
],
"modes": {
diff --git a/package/network/utils/comgt/files/ncm.sh b/package/network/utils/comgt/files/ncm.sh
index ffe5615e07..571cfaa28b 100644
--- a/package/network/utils/comgt/files/ncm.sh
+++ b/package/network/utils/comgt/files/ncm.sh
@@ -17,6 +17,8 @@ proto_ncm_init_config() {
proto_config_add_string pincode
proto_config_add_string delay
proto_config_add_string mode
+ proto_config_add_string pdptype
+ proto_config_add_boolean ipv6
}
proto_ncm_setup() {
@@ -24,8 +26,22 @@ proto_ncm_setup() {
local manufacturer initialize setmode connect ifname devname devpath
- local device apn auth username password pincode delay mode
- json_get_vars device apn auth username password pincode delay mode
+ local device apn auth username password pincode delay mode pdptype ipv6
+ json_get_vars device apn auth username password pincode delay mode pdptype ipv6
+
+ if [ "$ipv6" = 0 ]; then
+ ipv6=""
+ else
+ ipv6=1
+ fi
+
+ [ -z "$pdptype" ] && {
+ if [ -n "$ipv6" ]; then
+ pdptype="IPV4V6"
+ else
+ pdptype="IP"
+ fi
+ }
[ -n "$ctl_device" ] && device=$ctl_device
@@ -116,7 +132,7 @@ proto_ncm_setup() {
return 1
}
- echo "Connected, starting DHCP"
+ echo "Connected, starting DHCP on $ifname"
proto_init_update "$ifname" 1
proto_send_update "$interface"
@@ -127,12 +143,14 @@ proto_ncm_setup() {
json_add_string proto "dhcp"
ubus call network add_dynamic "$(json_dump)"
- json_init
- json_add_string name "${interface}_6"
- json_add_string ifname "@$interface"
- json_add_string proto "dhcpv6"
- json_add_string extendprefix 1
- ubus call network add_dynamic "$(json_dump)"
+ [ -n "$ipv6" ] && {
+ json_init
+ json_add_string name "${interface}_6"
+ json_add_string ifname "@$interface"
+ json_add_string proto "dhcpv6"
+ json_add_string extendprefix 1
+ ubus call network add_dynamic "$(json_dump)"
+ }
}
proto_ncm_teardown() {