[PATCH_v4 0/5] Private network request to ConnMan
by Guillaume Zajac
Hi,
Changelog from v3 is:
- Add private-network source/include
- ConnMan plugin is independant from emulator
- Each application that need VPN will pass a callback as argument
when private network is requested. This callback will contain the
private network settings.
Guillaume Zajac (5):
gatppp: Add new contructor to use external fd
private-network: add callback typedef drivers and settings
private-network: add request/release functions and new feature to
Makefile.am
emulator: add request/release private network calls
connman: add plugin in oFono to request request/release private
network
Makefile.am | 10 +-
gatchat/gatppp.c | 33 +++++-
gatchat/gatppp.h | 1 +
gatchat/ppp.h | 2 +-
gatchat/ppp_net.c | 40 ++++---
include/private-network.h | 59 +++++++++
plugins/connman.c | 297 +++++++++++++++++++++++++++++++++++++++++++++
src/emulator.c | 49 ++++++--
src/ofono.h | 6 +
src/private-network.c | 89 ++++++++++++++
10 files changed, 556 insertions(+), 30 deletions(-)
create mode 100644 include/private-network.h
create mode 100644 plugins/connman.c
create mode 100644 src/private-network.c
3 weeks
Business
by Daser Jnr.
Hi all
>From a business point of view, can some one tell me what i can do with ofono
Cheers
Daser S.
2 months, 2 weeks
[PATCH 0/8] Sierra Wireless CDMA modem support
by Forest Bond
From: Forest Bond <forest.bond(a)rapidrollout.com>
This series adds support for Sierra Wireless CDMA modems. Tested with
the MC5728V on the Sprint CDMA network.
Forest Bond (8):
sierramodem: Add skeleton for Sierra Wireless modem driver
sierramodem: Add skeleton cdma netreg driver
sierramodem: Add ERI parsing functions
sierramodem: Report network registration status
sierra: Create GPRS context in post_sim function
sierra: Initialize GSM error reporting separately
sierra: Support CDMA modems
udevng: Support single-interface sierra devices
Makefile.am | 8 +
drivers/sierramodem/cdma-netreg.c | 385 +++++++++++++++++++++++++++++++++++++
drivers/sierramodem/eri.c | 282 +++++++++++++++++++++++++++
drivers/sierramodem/eri.h | 23 +++
drivers/sierramodem/sierramodem.c | 50 +++++
drivers/sierramodem/sierramodem.h | 26 +++
plugins/sierra.c | 117 +++++++++---
plugins/udevng.c | 43 ++++-
8 files changed, 900 insertions(+), 34 deletions(-)
create mode 100644 drivers/sierramodem/cdma-netreg.c
create mode 100644 drivers/sierramodem/eri.c
create mode 100644 drivers/sierramodem/eri.h
create mode 100644 drivers/sierramodem/sierramodem.c
create mode 100644 drivers/sierramodem/sierramodem.h
--
Forest Bond
http://www.alittletooquiet.net
http://www.rapidrollout.com
9 years, 2 months
fix for register of AT driver
by M. Dietrich
Hi All,
i recently noticed that the at driver did not reach the state "registered".
marcel pointer me to the message
+CMER not supported by this modem. If this is an error please submit
patches to support this hardware
and i started digging. problem was parsing of the response
+CMER: (0,3),(0,2),0,(0-1),0
that expresses the allowed options of CMER. neither (a list of) single integer
"(0,3)" (in opposite to range "(0-1)") nor missing brackets "0" were supported
by ofono so i added this (see patch).
i'm not sure if missing brackets are allowed or espress something different,
maybe a AT-guru can tell. for now "(0)" behaves like "0".
i assume that also other response-parsing flows in ofono have that problem
so either a generic aproach should be implemented or other places be reviewed.
marcel already pointer out that a generic aproach may be unnecessarily complex
where i agree if it comes to strings and nested brackets but for plain integer
cases it would be quite useful to get this done in one place for all. if
interested i could implement such stuff into gatchat/gatresult.c which then can
be used for the integer-only cases. what do you think?
regards,
michael
--
M. Dietrich
9 years, 4 months
[ANNOUNCE] oFono v1.12 and GCF USAT testing status
by Denis Kenzior
Hi Everyone,
Our long standing task is to get oFono ready to pass GCF/PTCRB
certification. One of the key areas of these certifications is USIM
Application Toolkit (USAT). In late November we took oFono to a
GCF/PTCRB certified test laboratory to perform a baseline test run to
understand how ready the oFono USAT implementation is. We are happy to
report that we have obtained an outstanding result.
The process took about a week and a half, during which time we ran a
total of 248 test cases. Not everything went smoothly, as is always the
case. We found several bugs and fixed them in real-time in the lab.
Surprisingly, most were quite minor. In the end we were able to pass
all but 2 test cases. This is a pass rate of 99.2%. If you are
interested in the detailed test report, the distilled version can be
found in the oFono git repository under
doc/usat-certification-status.txt. Here is a direct link:
http://git.kernel.org/?p=network/ofono/ofono.git;a=blob;f=doc/usat-certif...
The recently released oFono 1.12 incorporates all of the fixes from our
test lab visit as well as several other improvements. We believe that
this is a significant accomplishment, and wish to send big Kudos to
everyone involved, in particular: Andrzej Zaborowski, Yang Gu, Jeevaka
Badrappan, Marcel Holtmann, Kristen Carlson Accardi and Philippe Nunes.
To everyone involved with the project: Thank you guys and Happy New Year!!!
Regards,
-Denis
9 years, 4 months
[PATCH 1/1] telit: stay 'online' until POST_SIM state reached
by Jonas Bonn
In offline state where CFUN=4, the Telit HE910 also powers down the SIM
card so AT commands that query the SIM will fail. These failures result
in ofono not getting to POST_SIM state where it will export the GPRS
feature.
This patch changes the Telit driver so it will not go immediately
to CFUN=4 after enable, but to wait for the post_sim state to be
reached before doing so. In addition, the HE910 might send QSS: 0
unsolicited reports while in CFUN=4 state... this patch makes it so
that these are ignored until the modem is onlined and the actual
SIM state can be queried again.
---
This patch has been tested with a Telit HE910 and it works fine there. It
would be great if someone with other Telit modems could check if
this works with those models or whether we need to wrap some of this with
checks for model type, firmware version, etc...
Thanks,
Jonas
plugins/telit.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 60 insertions(+), 4 deletions(-)
diff --git a/plugins/telit.c b/plugins/telit.c
index fe2ccd6..a0f7deb 100644
--- a/plugins/telit.c
+++ b/plugins/telit.c
@@ -62,6 +62,7 @@
static const char *none_prefix[] = { NULL };
static const char *rsen_prefix[]= { "#RSEN:", NULL };
+static const char *qss_prefix[] = { "#QSS:", NULL };
struct telit_data {
GAtChat *chat; /* AT chat */
@@ -219,7 +220,7 @@ static void switch_sim_state_status(struct ofono_modem *modem, int status)
switch (status) {
case 0: /* SIM not inserted */
- if (data->have_sim == TRUE) {
+ if (data->have_sim == TRUE && ofono_modem_get_online(modem)) {
ofono_sim_inserted_notify(data->sim, FALSE);
data->have_sim = FALSE;
data->sms_phonebook_added = FALSE;
@@ -233,6 +234,14 @@ static void switch_sim_state_status(struct ofono_modem *modem, int status)
}
break;
case 3: /* SIM inserted, SMS and phonebook ready */
+ /* It's possible that we arrive at QSS=3 state without
+ * ever seeing QSS=2, so we need to make sure that we've
+ * also done the QSS=2 work, as well
+ */
+ if (data->have_sim == FALSE) {
+ ofono_sim_inserted_notify(data->sim, TRUE);
+ data->have_sim = TRUE;
+ }
if (data->sms_phonebook_added == FALSE) {
ofono_phonebook_create(modem, 0, "atmodem", data->chat);
ofono_sms_create(modem, 0, "atmodem", data->chat);
@@ -245,6 +254,28 @@ static void switch_sim_state_status(struct ofono_modem *modem, int status)
}
}
+/*
+ * telit_qss_cb gets invoked once when querying the QSS status immediately
+ * after enabling the modem.
+ */
+static void telit_qss_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+ struct ofono_modem *modem = user_data;
+ int mode;
+ int status;
+ GAtResultIter iter;
+
+ g_at_result_iter_init(&iter, result);
+
+ DBG("%p", modem);
+ if (!g_at_result_iter_next(&iter, "#QSS:"))
+ return;
+ g_at_result_iter_next_number(&iter, &mode);
+ g_at_result_iter_next_number(&iter, &status);
+
+ switch_sim_state_status(modem, status);
+}
+
static void telit_qss_notify(GAtResult *result, gpointer user_data)
{
struct ofono_modem *modem = user_data;
@@ -304,6 +335,12 @@ static void cfun_enable_cb(gboolean ok, GAtResult *result, gpointer user_data)
/* Enable sim state notification */
g_at_chat_send(data->chat, "AT#QSS=2", none_prefix, NULL, NULL, NULL);
+
+ /* Query current sim state so that we don't need to wait a long
+ * time for a notification in case SIM state is already 'ready'
+ */
+ g_at_chat_send(data->chat, "AT#QSS?", qss_prefix,
+ telit_qss_cb, modem, NULL);
}
static int telit_enable(struct ofono_modem *modem)
@@ -334,12 +371,19 @@ static int telit_enable(struct ofono_modem *modem)
/*
* Disable sim state notification so that we sure get a notification
- * when we enable it again later and don't have to query it.
+ * when we enable it again later and don't have to query it. For
+ * the HE910, this doesn't seem to work... querying appears to be
+ * necessary as there will be no notification unless there is an
+ * actual _change_ of state.
*/
g_at_chat_send(data->chat, "AT#QSS=0", none_prefix, NULL, NULL, NULL);
- /* Set phone functionality */
- g_at_chat_send(data->chat, "AT+CFUN=4", none_prefix,
+ /* Set phone functionality.
+ * When enabling the modem, we need to have the modem powered
+ * up until we've been able to get to post_sim state... for this
+ * reason, we start off with CFUN=4
+ */
+ g_at_chat_send(data->chat, "AT+CFUN=1", none_prefix,
cfun_enable_cb, modem, NULL);
return -EINPROGRESS;
@@ -565,6 +609,10 @@ static void telit_post_sim(struct ofono_modem *modem)
if (gprs && gc)
ofono_gprs_add_context(gprs, gc);
+
+ if (!ofono_modem_get_online(modem))
+ g_at_chat_send(data->chat, "AT+CFUN=4", none_prefix,
+ NULL, NULL, NULL);
}
static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
@@ -588,6 +636,14 @@ static void telit_set_online(struct ofono_modem *modem, ofono_bool_t online,
g_at_chat_send(data->chat, command, none_prefix, set_online_cb,
cbd, g_free);
+
+ if (online) {
+ /* Query current sim state in case it changed while we
+ * were offline and ignoring the QSS: 0 reports.
+ */
+ g_at_chat_send(data->chat, "AT#QSS?", qss_prefix,
+ telit_qss_cb, modem, NULL);
+ }
}
static void telit_post_online(struct ofono_modem *modem)
--
1.7.10.4
9 years, 4 months
[PATCH] Add a timer for CPIN callback
by Mingli Wu
Hi Christopher,
I tested your patch:
"telit: signal sim inserted when sim ready"
It did not work with some sim cards which do not support
SMS. After "AT+CPIN?" was sent, ofono could not get QSS 2
or QSS 3.
I made a patch for this problem, and please help me check if
this solution is reasonable.
Thanks.
Mingli Wu
Mingli Wu (1):
Add a timer for CPIN callback
plugins/telit.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 48 insertions(+), 1 deletion(-)
--
1.7.9.5
9 years, 4 months
[PATCH 0/3] Telit HE910
by Mingli Wu
Hi Christopher,
I've been working on the Telit HE910 modem too, as I see from
the mailing list that you have been.
Allow me to send a coule of patches that I have in progress and
that are needed for things to work. Could you take a look at
these and possibily incorporate them into ofono in a way that's
acceptable to upstream?
The first patch in the series is similar to what you sent to
the mailing list today but sets more options... I can't recall
if setting only baud rate was insufficient, right now, so I'll
just send the entire patch.
Thanks,
Mingli Wu
Mingli Wu (3):
Support Telit cdc acm device
Drop checking whether +CMER is supported.
Delay 10 seconds between CFUN=4 and CFUN=1
drivers/atmodem/network-registration.c | 2 -
include/modem.h | 3 +
plugins/telit.c | 101 +++++++++++++++++++++++++++++++-
plugins/udevng.c | 30 +++++++++-
src/modem.c | 11 ++++
5 files changed, 143 insertions(+), 4 deletions(-)
--
1.7.9.5
9 years, 4 months
[PATCH] sim: return from cpin when sim ready for telit
by christopher.vogl@hale.at
From: Christopher Vogl <christopher.vogl(a)hale.at>
Especially for Telit HE910 it is not enough to wait for
entering a PIN code.
If we do not wait for #QSS: 3, subsequent commands,
like +CMER will report SIM BUSY and the network registration
atom will be removed as a consequence.
---
drivers/atmodem/sim.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
index 4095337..4448e3d 100644
--- a/drivers/atmodem/sim.c
+++ b/drivers/atmodem/sim.c
@@ -1178,7 +1178,7 @@ static void at_qss_notify(GAtResult *result, gpointer user_data)
return;
switch (state) {
- case 2: /* PIN unlocked */
+ case 3: /* SIM inserted and READY. */
break;
default:
return;
--
1.7.7.6
9 years, 4 months
[PATCH] udevng: support telit modems using cdc-acm driver
by Christopher Vogl
Add support for Telit modem using the cdc-acm driver, like the Telit
HE910.
---
plugins/udevng.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/plugins/udevng.c b/plugins/udevng.c
index afb02ca..16515e3 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -619,6 +619,13 @@ static gboolean setup_telit(struct modem_info *modem)
gps = info->devnode;
else if (g_strcmp0(info->number, "03") == 0)
aux = info->devnode;
+ } else if (g_strcmp0(info->interface, "2/2/1") == 0) {
+ if (g_strcmp0(info->number, "00") == 0)
+ mdm = info->devnode;
+ else if (g_strcmp0(info->number, "02") == 0)
+ diag = info->devnode;
+ else if (g_strcmp0(info->number, "06") == 0)
+ aux = info->devnode;
}
}
@@ -630,6 +637,7 @@ static gboolean setup_telit(struct modem_info *modem)
ofono_modem_set_string(modem->modem, "Modem", mdm);
ofono_modem_set_string(modem->modem, "Aux", aux);
ofono_modem_set_string(modem->modem, "GPS", gps);
+ ofono_modem_set_string(modem->modem, "Diag", diag);
return TRUE;
}
@@ -777,7 +785,7 @@ static struct {
{ "alcatel", setup_alcatel },
{ "novatel", setup_novatel },
{ "nokia", setup_nokia },
- { "telit", setup_telit },
+ { "telit", setup_telit, "device/interface" },
{ "simcom", setup_simcom },
{ "zte", setup_zte },
{ "icera", setup_icera },
@@ -987,6 +995,7 @@ static struct {
{ "zte", "option", "19d2" },
{ "simcom", "option", "05c6", "9000" },
{ "telit", "usbserial", "1bc7" },
+ { "telit", "cdc_acm", "1bc7" },
{ "telit", "option", "1bc7" },
{ "nokia", "option", "0421", "060e" },
{ "nokia", "option", "0421", "0623" },
--
1.7.7.6
--
Scanned by MailScanner.
9 years, 4 months