All of lore.kernel.org
 help / color / mirror / Atom feed
* HE910 + ofono: "Activating context failed with error: Unknown error type"
@ 2015-06-25  9:15 Marko Sulejic
  2015-06-25 13:05 ` Marko Sulejic
  0 siblings, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-06-25  9:15 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1400 bytes --]

Hi,

I need your help in using a Telit HE910 with ofono (and eventually connman).
(I am using ofono 1.16 with HE910 firmware version 12.00.006; connman 
version is 1.29).

My problem is the following ...
on startup everything works fine and the ppp0 connection is established,
but problems occur in the following case:

connmanctl> disconnect cellular_*_context15
Disconnected cellular_*_context15

connmanctl> connect cellular_*_context15
Error /net/connman/service/cellular_*_context15: Input/output error


ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1
ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50
ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context 
failed with error: Unknown error type
connmand[3815]: Failed to change property: /he910_0/context15 
org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation failed


The same error happens if I am manually sending connect/disconnect via 
dbus-send.

Only a hard ofono restart can establish the connection again.
This behavior happens all the time once a ppp0 disconnect happened
(e.g. by removing the SIM; manual disconnect via dbus or connmanctl).

A subquestion regarding connman:
Can connmand be configured in such a way that on every connection
loss, ofono is triggered to reconnect to the Internet?

Thank you very muchin advance,
Marko

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-25  9:15 HE910 + ofono: "Activating context failed with error: Unknown error type" Marko Sulejic
@ 2015-06-25 13:05 ` Marko Sulejic
  2015-06-29 11:16   ` Marko Sulejic
  0 siblings, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-06-25 13:05 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2549 bytes --]

Hi again,

the problem seems to be in the
atmodem/gprs-context.c : gprs_activate_primary
function, where

     if (g_at_chat_send(gcd->chat, buf, none_prefix,
                 at_cgdcont_cb, gc, NULL) > 0)

is called after a reconnect, and then it fails.


It seems to work if I call

     g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
                 NULL, NULL, NULL)

prior.

So this would mean that a disconnect or similar action sets DCD to low,
and the chats are closed.

Does oFono anywhere in the code sets DCD explicitely to low or is it 
maybe a bug?

My patch would look something like this (if it is an HE910 issue only):

     if (gcd->vendor == OFONO_VENDOR_TELIT)
     {
         if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
                     NULL, NULL, NULL) <= 0)
             goto error;
     }


Thanks,
Marko


Am 2015-06-25 um 11:15 schrieb Marko Sulejic:
> Hi,
>
> I need your help in using a Telit HE910 with ofono (and eventually 
> connman).
> (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman 
> version is 1.29).
>
> My problem is the following ...
> on startup everything works fine and the ppp0 connection is established,
> but problems occur in the following case:
>
> connmanctl> disconnect cellular_*_context15
> Disconnected cellular_*_context15
>
> connmanctl> connect cellular_*_context15
> Error /net/connman/service/cellular_*_context15: Input/output error
>
>
> ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1
> ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50
> ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context 
> failed with error: Unknown error type
> connmand[3815]: Failed to change property: /he910_0/context15 
> org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation 
> failed
>
>
> The same error happens if I am manually sending connect/disconnect via 
> dbus-send.
>
> Only a hard ofono restart can establish the connection again.
> This behavior happens all the time once a ppp0 disconnect happened
> (e.g. by removing the SIM; manual disconnect via dbus or connmanctl).
>
> A subquestion regarding connman:
> Can connmand be configured in such a way that on every connection
> loss, ofono is triggered to reconnect to the Internet?
>
> Thank you very muchin advance,
> Marko
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/mailman/listinfo/ofono


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-29 13:33       ` Marko Sulejic
@ 2015-06-26  2:20         ` Denis Kenzior
  2015-06-30  5:54           ` Marko Sulejic
  0 siblings, 1 reply; 13+ messages in thread
From: Denis Kenzior @ 2015-06-26  2:20 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 677 bytes --]

Hi Marko,

 >
> _And the fail log _(on reconnect):
>
> Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]:
> gprs-context.c(240):at_gprs_activate_primary() cid 1
> Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: >
> AT+CGDCONT=1,"IP","web.one.at"\r

Your modem is not responding to this AT command.  There's not much that 
can be done on the oFono side.  You need to figure out why the modem is 
acting this way.

> ...
>
> Jun 29 15:20:14 mx31tt01 daemon.err connmand[561]: Failed to change
> property: /he910_0/context15 org.ofono.ConnectionContext.Active:
> org.freedesktop.DBus.Error.NoReply Did not receive a reply. Possible

Regards,
-Denis

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-30 11:31             ` Marko Sulejic
@ 2015-06-26 23:01               ` Denis Kenzior
  2015-06-30 15:16                 ` Enrico Sau
  2015-07-01  7:11                 ` Marko Sulejic
  0 siblings, 2 replies; 13+ messages in thread
From: Denis Kenzior @ 2015-06-26 23:01 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 699 bytes --]

Hi Marko,

 >
> At the end of a PPP connection, garbage was passed in to the AT command
> parser on the modem chat.

Well, the modem should not be passing in garbage in the first place :)

> This garbage contained a doublequote, which switched the AT syntax
> parser into string mode.
> However, because no second doublequote arrived, it stayed in this mode,
> and kept returning UNSURE result.
>

Do you have a trace/hexdump of what is passed on to the GAtChat object?

> I think this is an major issue that should be fixed in oFono.
> The syntax parser has to be extended to handle such cases.
>

Any suggestions on how oFono should detect this condition?

Regards,
-Denis

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-25 13:05 ` Marko Sulejic
@ 2015-06-29 11:16   ` Marko Sulejic
  2015-06-29 12:59     ` Enrico Sau
  0 siblings, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-06-29 11:16 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2937 bytes --]


Am 2015-06-25 um 15:05 schrieb Marko Sulejic:
> Hi again,
>
> the problem seems to be in the
> atmodem/gprs-context.c : gprs_activate_primary
> function, where
>
>     if (g_at_chat_send(gcd->chat, buf, none_prefix,
>                 at_cgdcont_cb, gc, NULL) > 0)
>
> is called after a reconnect, and then it fails.
>
>
> It seems to work if I call
>
>     g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
>                 NULL, NULL, NULL)
>
> prior.
>
> So this would mean that a disconnect or similar action sets DCD to low,
> and the chats are closed.
>
> Does oFono anywhere in the code sets DCD explicitely to low or is it 
> maybe a bug?
>
> My patch would look something like this (if it is an HE910 issue only):
>
>     if (gcd->vendor == OFONO_VENDOR_TELIT)
>     {
>         if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
>                     NULL, NULL, NULL) <= 0)
>             goto error;
>     }
>
>
> Thanks,
> Marko
>
>
> Am 2015-06-25 um 11:15 schrieb Marko Sulejic:
>> Hi,
>>
>> I need your help in using a Telit HE910 with ofono (and eventually 
>> connman).
>> (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman 
>> version is 1.29).
>>
>> My problem is the following ...
>> on startup everything works fine and the ppp0 connection is established,
>> but problems occur in the following case:
>>
>> connmanctl> disconnect cellular_*_context15
>> Disconnected cellular_*_context15
>>
>> connmanctl> connect cellular_*_context15
>> Error /net/connman/service/cellular_*_context15: Input/output error
>>
>>
>> ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1
>> ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50
>> ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context 
>> failed with error: Unknown error type
>> connmand[3815]: Failed to change property: /he910_0/context15 
>> org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation 
>> failed
>>
>>
>> The same error happens if I am manually sending connect/disconnect 
>> via dbus-send.
>>
>> Only a hard ofono restart can establish the connection again.
>> This behavior happens all the time once a ppp0 disconnect happened
>> (e.g. by removing the SIM; manual disconnect via dbus or connmanctl).
>>
>> A subquestion regarding connman:
>> Can connmand be configured in such a way that on every connection
>> loss, ofono is triggered to reconnect to the Internet?
>>
>> Thank you very muchin advance,
>> Marko
>> _______________________________________________
>> ofono mailing list
>> ofono(a)ofono.org
>> https://lists.ofono.org/mailman/listinfo/ofono
>
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/mailman/listinfo/ofono


Hi,

ok, the above code doesn't seem to solve the problem.

Regards,
Marko






^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-29 11:16   ` Marko Sulejic
@ 2015-06-29 12:59     ` Enrico Sau
  2015-06-29 13:33       ` Marko Sulejic
  0 siblings, 1 reply; 13+ messages in thread
From: Enrico Sau @ 2015-06-29 12:59 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 3555 bytes --]

Hi Marko,
I had a similar problem with HE910 and I solved with the following code
line immediatly after line 99 in he910.c plugin:

99| g_hash_table_insert(options, "Baud", "115200");
100| *g_hash_table_insert(options, "Local", "on");*

Let me know if it helps.


Enrico


2015-06-29 13:16 GMT+02:00 Marko Sulejic <marko.sulejic@hale.at>:

>
> Am 2015-06-25 um 15:05 schrieb Marko Sulejic:
>
>> Hi again,
>>
>> the problem seems to be in the
>> atmodem/gprs-context.c : gprs_activate_primary
>> function, where
>>
>>     if (g_at_chat_send(gcd->chat, buf, none_prefix,
>>                 at_cgdcont_cb, gc, NULL) > 0)
>>
>> is called after a reconnect, and then it fails.
>>
>>
>> It seems to work if I call
>>
>>     g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
>>                 NULL, NULL, NULL)
>>
>> prior.
>>
>> So this would mean that a disconnect or similar action sets DCD to low,
>> and the chats are closed.
>>
>> Does oFono anywhere in the code sets DCD explicitely to low or is it
>> maybe a bug?
>>
>> My patch would look something like this (if it is an HE910 issue only):
>>
>>     if (gcd->vendor == OFONO_VENDOR_TELIT)
>>     {
>>         if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
>>                     NULL, NULL, NULL) <= 0)
>>             goto error;
>>     }
>>
>>
>> Thanks,
>> Marko
>>
>>
>> Am 2015-06-25 um 11:15 schrieb Marko Sulejic:
>>
>>> Hi,
>>>
>>> I need your help in using a Telit HE910 with ofono (and eventually
>>> connman).
>>> (I am using ofono 1.16 with HE910 firmware version 12.00.006; connman
>>> version is 1.29).
>>>
>>> My problem is the following ...
>>> on startup everything works fine and the ppp0 connection is established,
>>> but problems occur in the following case:
>>>
>>> connmanctl> disconnect cellular_*_context15
>>> Disconnected cellular_*_context15
>>>
>>> connmanctl> connect cellular_*_context15
>>> Error /net/connman/service/cellular_*_context15: Input/output error
>>>
>>>
>>> ofonod[5355]: gprs-context.c(244):at_gprs_activate_primary() cid 1
>>> ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50
>>> ofonod[5355]: gprs.c(893):pri_activate_callback() Activating context
>>> failed with error: Unknown error type
>>> connmand[3815]: Failed to change property: /he910_0/context15
>>> org.ofono.ConnectionContext.Active: org.ofono.Error.Failed Operation failed
>>>
>>>
>>> The same error happens if I am manually sending connect/disconnect via
>>> dbus-send.
>>>
>>> Only a hard ofono restart can establish the connection again.
>>> This behavior happens all the time once a ppp0 disconnect happened
>>> (e.g. by removing the SIM; manual disconnect via dbus or connmanctl).
>>>
>>> A subquestion regarding connman:
>>> Can connmand be configured in such a way that on every connection
>>> loss, ofono is triggered to reconnect to the Internet?
>>>
>>> Thank you very muchin advance,
>>> Marko
>>> _______________________________________________
>>> ofono mailing list
>>> ofono(a)ofono.org
>>> https://lists.ofono.org/mailman/listinfo/ofono
>>>
>>
>> _______________________________________________
>> ofono mailing list
>> ofono(a)ofono.org
>> https://lists.ofono.org/mailman/listinfo/ofono
>>
>
>
> Hi,
>
> ok, the above code doesn't seem to solve the problem.
>
> Regards,
>
> Marko
>
>
>
>
>
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/mailman/listinfo/ofono
>

[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 5323 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-29 12:59     ` Enrico Sau
@ 2015-06-29 13:33       ` Marko Sulejic
  2015-06-26  2:20         ` Denis Kenzior
  0 siblings, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-06-29 13:33 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 6641 bytes --]

Hi Enrico!

Am 2015-06-29 um 14:59 schrieb Enrico Sau:
> Hi Marko,
> I had a similar problem with HE910 and I solved with the following 
> code line immediatly after line 99 in he910.c plugin:
>
> 99| g_hash_table_insert(options, "Baud", "115200");
> 100| *g_hash_table_insert(options, "Local", "on");*
>
> Let me know if it helps.
>
>
> Enrico
>

Thanks for the answer, but unfortunately it didn't help me.

I figured out that the *at_cgdcont_cb() *callback is not called on 
reconnect:

_The correct log_ (on startup):

Jun 29 15:16:38 mx31tt01 daemon.warn connmand[561]: Skipping disconnect 
of /he910_0/context15, network is connecting.
Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: 
gprs-context.c(240):at_gprs_activate_primary() cid 1
Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: > 
AT+CGDCONT=1,"IP","web.one.at"\r
Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < 
AT+CGDCONT=1,"IP","web.one.at"\r
Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < \r\nOK\r\n
Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: 
gprs-context.c(200):*at_cgdcont_cb()* ok 1
Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: > 
AT+CGDATA="PPP",1\r
Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < 
AT+CGDATA="PPP",1\r
Jun 29 15:16:38 mx31tt01 daemon.info ofonod[657]: Modem: < \r\nCONNECT\r\n
Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: 
gprs-context.c(176):*at_cgdata_cb()* ok 1
Jun 29 15:16:38 mx31tt01 daemon.debug ofonod[657]: 
gprs-context.c(141):setup_ppp()


_And the fail log _(on reconnect):

Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]: 
gprs-context.c(240):at_gprs_activate_primary() cid 1
Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: > 
AT+CGDCONT=1,"IP","web.one.at"\r
...

Jun 29 15:20:14 mx31tt01 daemon.err connmand[561]: Failed to change 
property: /he910_0/context15 org.ofono.ConnectionContext.Active: 
org.freedesktop.DBus.Error.NoReply Did not receive a reply. Possible 
causes include: the remote application did not send a reply, the mess
Jun 29 15:21:25 mx31tt01 daemon.warn connmand[561]: Skipping disconnect 
of /he910_0/context15, network is connecting.
Jun 29 15:21:25 mx31tt01 daemon.err connmand[561]: Failed to change 
property: /he910_0/context15 org.ofono.ConnectionContext.Active: 
org.ofono.Error.InProgress Operation already in progress


Any idea what could cause this?

Regards,
Marko

>
> 2015-06-29 13:16 GMT+02:00 Marko Sulejic <marko.sulejic@hale.at 
> <mailto:marko.sulejic@hale.at>>:
>
>
>     Am 2015-06-25 um 15:05 schrieb Marko Sulejic:
>
>         Hi again,
>
>         the problem seems to be in the
>         atmodem/gprs-context.c : gprs_activate_primary
>         function, where
>
>             if (g_at_chat_send(gcd->chat, buf, none_prefix,
>                         at_cgdcont_cb, gc, NULL) > 0)
>
>         is called after a reconnect, and then it fails.
>
>
>         It seems to work if I call
>
>             g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
>                         NULL, NULL, NULL)
>
>         prior.
>
>         So this would mean that a disconnect or similar action sets
>         DCD to low,
>         and the chats are closed.
>
>         Does oFono anywhere in the code sets DCD explicitely to low or
>         is it maybe a bug?
>
>         My patch would look something like this (if it is an HE910
>         issue only):
>
>             if (gcd->vendor == OFONO_VENDOR_TELIT)
>             {
>                 if(g_at_chat_send(gcd->chat, "AT&C0", none_prefix,
>                             NULL, NULL, NULL) <= 0)
>                     goto error;
>             }
>
>
>         Thanks,
>         Marko
>
>
>         Am 2015-06-25 um 11:15 schrieb Marko Sulejic:
>
>             Hi,
>
>             I need your help in using a Telit HE910 with ofono (and
>             eventually connman).
>             (I am using ofono 1.16 with HE910 firmware version
>             12.00.006; connman version is 1.29).
>
>             My problem is the following ...
>             on startup everything works fine and the ppp0 connection
>             is established,
>             but problems occur in the following case:
>
>             connmanctl> disconnect cellular_*_context15
>             Disconnected cellular_*_context15
>
>             connmanctl> connect cellular_*_context15
>             Error /net/connman/service/cellular_*_context15:
>             Input/output error
>
>
>             ofonod[5355]:
>             gprs-context.c(244):at_gprs_activate_primary() cid 1
>             ofonod[5355]: gprs.c(889):pri_activate_callback() 0x1a18c50
>             ofonod[5355]: gprs.c(893):pri_activate_callback()
>             Activating context failed with error: Unknown error type
>             connmand[3815]: Failed to change property:
>             /he910_0/context15 org.ofono.ConnectionContext.Active:
>             org.ofono.Error.Failed Operation failed
>
>
>             The same error happens if I am manually sending
>             connect/disconnect via dbus-send.
>
>             Only a hard ofono restart can establish the connection again.
>             This behavior happens all the time once a ppp0 disconnect
>             happened
>             (e.g. by removing the SIM; manual disconnect via dbus or
>             connmanctl).
>
>             A subquestion regarding connman:
>             Can connmand be configured in such a way that on every
>             connection
>             loss, ofono is triggered to reconnect to the Internet?
>
>             Thank you very muchin advance,
>             Marko
>             _______________________________________________
>             ofono mailing list
>             ofono(a)ofono.org <mailto:ofono@ofono.org>
>             https://lists.ofono.org/mailman/listinfo/ofono
>
>
>         _______________________________________________
>         ofono mailing list
>         ofono(a)ofono.org <mailto:ofono@ofono.org>
>         https://lists.ofono.org/mailman/listinfo/ofono
>
>
>
>     Hi,
>
>     ok, the above code doesn't seem to solve the problem.
>
>     Regards,
>
>     Marko
>
>
>
>
>
>     _______________________________________________
>     ofono mailing list
>     ofono(a)ofono.org <mailto:ofono@ofono.org>
>     https://lists.ofono.org/mailman/listinfo/ofono
>
>
>
>
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/mailman/listinfo/ofono


[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 11850 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-26  2:20         ` Denis Kenzior
@ 2015-06-30  5:54           ` Marko Sulejic
  2015-06-30 11:31             ` Marko Sulejic
  0 siblings, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-06-30  5:54 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 893 bytes --]

Am 2015-06-26 um 04:20 schrieb Denis Kenzior:
> Hi Marko,
>
> >
>> _And the fail log _(on reconnect):
>>
>> Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]:
>> gprs-context.c(240):at_gprs_activate_primary() cid 1
>> Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: >
>> AT+CGDCONT=1,"IP","web.one.at"\r
>
> Your modem is not responding to this AT command.  There's not much 
> that can be done on the oFono side.  You need to figure out why the 
> modem is acting this way.
>

Hi Denis,

thank you for the answer. If I can figure out the error,
and can solve the problem, I will let you know.

>>
>>
>> Jun 29 15:20:14 mx31tt01 daemon.err connmand[561]: Failed to change
>> property: /he910_0/context15 org.ofono.ConnectionContext.Active:
>> org.freedesktop.DBus.Error.NoReply Did not receive a reply. Possible
>
> Regards,
> -Denis

Regards,
Marko


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-30  5:54           ` Marko Sulejic
@ 2015-06-30 11:31             ` Marko Sulejic
  2015-06-26 23:01               ` Denis Kenzior
  0 siblings, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-06-30 11:31 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1194 bytes --]

Am 2015-06-30 um 07:54 schrieb Marko Sulejic:
> Am 2015-06-26 um 04:20 schrieb Denis Kenzior:
>> Hi Marko,
>>
>> >
>>> _And the fail log _(on reconnect):
>>>
>>> Jun 29 15:19:34 mx31tt01 daemon.debug ofonod[657]:
>>> gprs-context.c(240):at_gprs_activate_primary() cid 1
>>> Jun 29 15:19:34 mx31tt01 daemon.info ofonod[657]: Modem: >
>>> AT+CGDCONT=1,"IP","web.one.at"\r
>>
>> Your modem is not responding to this AT command.  There's not much 
>> that can be done on the oFono side.  You need to figure out why the 
>> modem is acting this way.
>>
>
> Hi Denis,
>
> thank you for the answer. If I can figure out the error,
> and can solve the problem, I will let you know.
>

Hi Denis,

we figured out the problem:

At the end of a PPP connection, garbage was passed in to the AT command 
parser on the modem chat.
This garbage contained a doublequote, which switched the AT syntax 
parser into string mode.
However, because no second doublequote arrived, it stayed in this mode, 
and kept returning UNSURE result.

I think this is an major issue that should be fixed in oFono.
The syntax parser has to be extended to handle such cases.

Regards,
Marko


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-26 23:01               ` Denis Kenzior
@ 2015-06-30 15:16                 ` Enrico Sau
  2015-07-01  7:14                   ` Marko Sulejic
  2015-07-01  7:11                 ` Marko Sulejic
  1 sibling, 1 reply; 13+ messages in thread
From: Enrico Sau @ 2015-06-30 15:16 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 99 bytes --]

Marko, let me ask a maybe stupid question: do you have modemmanager package
installed?

Enrico

[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 334 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-07-01  7:11                 ` Marko Sulejic
@ 2015-07-01  0:44                   ` Denis Kenzior
  0 siblings, 0 replies; 13+ messages in thread
From: Denis Kenzior @ 2015-07-01  0:44 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 4269 bytes --]

Hi Marko,

 >
> Before receiving  the "NO CARRIER" signal,
> the modem leaves the data mode
> and enters the chat mode (apparently too early).
>
> In my log you can see that it gets some leftovers
> of a PPP package,including an opening double quote
>   ... but it never gets the closing one, and therefore
> oFono is not responding any more.
>
> Here is the log:
> (the modem has already established a data connection,
> and I pull out the SIM card of its slot)

Aha.  Now I understand.  You're removing the SIM card, which triggers 
at_gprs_context_remove.  And the modem firmware is not smart enough to 
send the final HDLC frame prior to sending us the SIM removed event.

> ofonod[2816]: Modem: < ~\377}#\300!}%}"} }$Y(~
> ofonod[2816]: Modem: < \r\nNO CARRIER\r\n

And indeed, we switch out of HDLC mode too early in this case.

>
>
>>
>>> I think this is an major issue that should be fixed in oFono.
>>> The syntax parser has to be extended to handle such cases.
>>>
>>
>> Any suggestions on how oFono should detect this condition?
>
> Here is our "quick" solution to this problem.
>
> --- gatchat.c (f83233d)
> +++ gatchat.c (a3cb2b2)
> @@ -957,6 +957,11 @@
>       g_at_io_set_debug(chat->io, chat->debugf, chat->debug_data);
>       g_at_io_set_read_handler(chat->io, new_bytes, chat);
>
> +    /* Prevent garbage that arrives from the late data connection to
> +     * switch the AT syntax parser to string mode (when it contains a
> doublequote) */
> +    if (chat->syntax->set_hint)
> +        chat->syntax->set_hint(chat->syntax, G_AT_SYNTAX_EXPECT_GARBAGE);
> +
>       if (g_queue_get_length(chat->command_queue) > 0)
>           chat_wakeup_writer(chat);
>   }
>
>
> --- gatsyntax.c (359f790)
> +++ gatsyntax.c (a3cb2b2)
> @@ -57,6 +57,8 @@
>       GSM_PERMISSIVE_STATE_PROMPT,
>       GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT,
>       GSM_PERMISSIVE_STATE_SHORT_PROMPT,
> +    GSM_PERMISSIVE_STATE_GUESS_GARBAGE,
> +    GSM_PERMISSIVE_STATE_GARBAGE,
>   };
>
>   static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint)
> @@ -270,6 +272,8 @@
>           syntax->state = GSM_PERMISSIVE_STATE_GUESS_PDU;
>       else if (hint == G_AT_SYNTAX_EXPECT_SHORT_PROMPT)
>           syntax->state = GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT;
> +    else if (hint == G_AT_SYNTAX_EXPECT_GARBAGE)
> +        syntax->state = GSM_PERMISSIVE_STATE_GUESS_GARBAGE;
>   }
>
>   static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax,
> @@ -358,6 +362,21 @@
>               syntax->state = GSM_PERMISSIVE_STATE_RESPONSE;
>               return G_AT_SYNTAX_RESULT_UNSURE;
>
> +        case GSM_PERMISSIVE_STATE_GUESS_GARBAGE:
> +            if (byte != '\r' && byte != '\n')
> +                syntax->state = GSM_PERMISSIVE_STATE_GARBAGE;
> +            break;
> +
> +        case GSM_PERMISSIVE_STATE_GARBAGE:
> +            if (byte == '\r') {
> +                syntax->state = GSM_PERMISSIVE_STATE_IDLE;
> +
> +                i += 1;
> +                res = G_AT_SYNTAX_RESULT_GARBAGE;
> +                goto out;
> +            }
> +            break;
> +
>           default:
>               break;
>           };
>
>
> --- gatsyntax.h (21f9da9)
> +++ gatsyntax.h (a3cb2b2)
> @@ -30,7 +30,8 @@
>       G_AT_SYNTAX_EXPECT_PDU,
>       G_AT_SYNTAX_EXPECT_MULTILINE,
>       G_AT_SYNTAX_EXPECT_PROMPT,
> -    G_AT_SYNTAX_EXPECT_SHORT_PROMPT
> +    G_AT_SYNTAX_EXPECT_SHORT_PROMPT,
> +    G_AT_SYNTAX_EXPECT_GARBAGE,
>   };
>
>   typedef enum _GAtSyntaxExpectHint GAtSyntaxExpectHint;
> @@ -42,6 +43,7 @@
>       G_AT_SYNTAX_RESULT_MULTILINE,
>       G_AT_SYNTAX_RESULT_PDU,
>       G_AT_SYNTAX_RESULT_PROMPT,
> +    G_AT_SYNTAX_RESULT_GARBAGE,
>   };
>
>   typedef enum _GAtSyntaxResult GAtSyntaxResult;
>
>
> Our opinion is that the modem should only switch its
> mode once it really received the NO CARRIER
> signal (or something in this manner).
>

Correct.  However, we currently expect all atom drivers to cleanup 
immediately (e.g. at_gprs_context_remove), so doing this cleanly is tricky.

> P.S. We would also like to post a patch regarding oFono.
> How can we do this?
>

git send-email.

Regards,
-Denis


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-26 23:01               ` Denis Kenzior
  2015-06-30 15:16                 ` Enrico Sau
@ 2015-07-01  7:11                 ` Marko Sulejic
  2015-07-01  0:44                   ` Denis Kenzior
  1 sibling, 1 reply; 13+ messages in thread
From: Marko Sulejic @ 2015-07-01  7:11 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 6310 bytes --]

Am 2015-06-27 um 01:01 schrieb Denis Kenzior:
> Hi Marko,

Hi Denis,

>
> >
>> At the end of a PPP connection, garbage was passed in to the AT command
>> parser on the modem chat.
>
> Well, the modem should not be passing in garbage in the first place :)

Yeah, but it unfortunately does so :)

>
>> This garbage contained a doublequote, which switched the AT syntax
>> parser into string mode.
>> However, because no second doublequote arrived, it stayed in this mode,
>> and kept returning UNSURE result.
>>
>
> Do you have a trace/hexdump of what is passed on to the GAtChat object?

Before receiving  the "NO CARRIER" signal,
the modem leaves the data mode
and enters the chat mode (apparently too early).

In my log you can see that it gets some leftovers
of a PPP package,including an opening double quote
  ... but it never gets the closing one, and therefore
oFono is not responding any more.

Here is the log:
(the modem has already established a data connection,
and I pull out the SIM card of its slot)

ofonod[2816]: modem.c(501):modem_change_state() old state: 3, new state: 1
ofonod[2816]: modem.c(414):flush_atoms()
ofonod[2816]: push-notification.c(166):push_notification_cleanup() 0x5519f8
ofonod[2816]: smart-messaging.c(291):smart_messaging_cleanup() 0x551e78
ofonod[2816]: network.c(1173):__ofono_netreg_remove_status_watch() 0x551178
ofonod[2816]: sms.c(1719):sms_remove() atom: 0x55a278
ofonod[2816]: phonebook.c(527):phonebook_remove() atom: 0x557000
ofonod[2816]: gprs.c(2279):gprs_context_unregister() 0x54f3c0, 0x54f290
ofonod[2816]: gprs.c(2413):gprs_context_remove() atom: 0x54f3e0
ofonod[2816]: gprs-context.c(422):at_gprs_context_remove()
kernel: [ 1711.579055] PM: Removing info for No Bus:ppp0
ofonod[2816]: gprs.c(2644):gprs_unregister() 0x54f290
ofonod[2816]: network.c(1173):__ofono_netreg_remove_status_watch() 0x551178
ofonod[2816]: gprs.c(2683):gprs_remove() atom: 0x54f2f8
ofonod[2816]: message-waiting.c(1088):mw_remove() atom: 0x54edf8
ofonod[2816]: call-barring.c(1039):call_barring_remove() atom: 0x54eb60
ofonod[2816]: call-meter.c(718):call_meter_remove() atom: 0x54d398
ofonod[2816]: call-settings.c(1393):call_settings_remove() atom: 0x54d2d8
ofonod[2816]: call-forwarding.c(1465):call_forwarding_remove() atom: 
0x54d200
ofonod[2816]: ussd.c(811):ussd_remove() atom: 0x5511e0
ofonod[2816]: sim.c(2720):ofono_sim_remove_spn_watch() 0x52dd10
ofonod[2816]: network.c(1836):netreg_remove() atom: 0x550f70
ofonod[2816]: voicecall.c(2787):voicecall_remove() atom: 0x52bf80
ofonod[2816]: udevng.c(979):remove_device() /sys/devices/virtual/net/ppp0
ofonod[2816]: udev.c(428):udev_event() subsystem net remove
ofonod[2816]: udev.c(337):remove_modem() /devices/virtual/net/ppp0
ofonod[2816]: udev.c(442):udev_event() subsystem net finished
ofonod[2816]: Aux: < \r\n
ofonod[2816]: Aux: < +CGEV: NW DEACT IP, "10.183.107.173", 1\r\n
ofonod[2816]: Modem: < ~\377}#\300!}%}"} }$Y(~
ofonod[2816]: Modem: < \r\nNO CARRIER\r\n


>
>> I think this is an major issue that should be fixed in oFono.
>> The syntax parser has to be extended to handle such cases.
>>
>
> Any suggestions on how oFono should detect this condition?

Here is our "quick" solution to this problem.

--- gatchat.c (f83233d)
+++ gatchat.c (a3cb2b2)
@@ -957,6 +957,11 @@
      g_at_io_set_debug(chat->io, chat->debugf, chat->debug_data);
      g_at_io_set_read_handler(chat->io, new_bytes, chat);

+    /* Prevent garbage that arrives from the late data connection to
+     * switch the AT syntax parser to string mode (when it contains a 
doublequote) */
+    if (chat->syntax->set_hint)
+        chat->syntax->set_hint(chat->syntax, G_AT_SYNTAX_EXPECT_GARBAGE);
+
      if (g_queue_get_length(chat->command_queue) > 0)
          chat_wakeup_writer(chat);
  }


--- gatsyntax.c (359f790)
+++ gatsyntax.c (a3cb2b2)
@@ -57,6 +57,8 @@
      GSM_PERMISSIVE_STATE_PROMPT,
      GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT,
      GSM_PERMISSIVE_STATE_SHORT_PROMPT,
+    GSM_PERMISSIVE_STATE_GUESS_GARBAGE,
+    GSM_PERMISSIVE_STATE_GARBAGE,
  };

  static void gsmv1_hint(GAtSyntax *syntax, GAtSyntaxExpectHint hint)
@@ -270,6 +272,8 @@
          syntax->state = GSM_PERMISSIVE_STATE_GUESS_PDU;
      else if (hint == G_AT_SYNTAX_EXPECT_SHORT_PROMPT)
          syntax->state = GSM_PERMISSIVE_STATE_GUESS_SHORT_PROMPT;
+    else if (hint == G_AT_SYNTAX_EXPECT_GARBAGE)
+        syntax->state = GSM_PERMISSIVE_STATE_GUESS_GARBAGE;
  }

  static GAtSyntaxResult gsm_permissive_feed(GAtSyntax *syntax,
@@ -358,6 +362,21 @@
              syntax->state = GSM_PERMISSIVE_STATE_RESPONSE;
              return G_AT_SYNTAX_RESULT_UNSURE;

+        case GSM_PERMISSIVE_STATE_GUESS_GARBAGE:
+            if (byte != '\r' && byte != '\n')
+                syntax->state = GSM_PERMISSIVE_STATE_GARBAGE;
+            break;
+
+        case GSM_PERMISSIVE_STATE_GARBAGE:
+            if (byte == '\r') {
+                syntax->state = GSM_PERMISSIVE_STATE_IDLE;
+
+                i += 1;
+                res = G_AT_SYNTAX_RESULT_GARBAGE;
+                goto out;
+            }
+            break;
+
          default:
              break;
          };


--- gatsyntax.h (21f9da9)
+++ gatsyntax.h (a3cb2b2)
@@ -30,7 +30,8 @@
      G_AT_SYNTAX_EXPECT_PDU,
      G_AT_SYNTAX_EXPECT_MULTILINE,
      G_AT_SYNTAX_EXPECT_PROMPT,
-    G_AT_SYNTAX_EXPECT_SHORT_PROMPT
+    G_AT_SYNTAX_EXPECT_SHORT_PROMPT,
+    G_AT_SYNTAX_EXPECT_GARBAGE,
  };

  typedef enum _GAtSyntaxExpectHint GAtSyntaxExpectHint;
@@ -42,6 +43,7 @@
      G_AT_SYNTAX_RESULT_MULTILINE,
      G_AT_SYNTAX_RESULT_PDU,
      G_AT_SYNTAX_RESULT_PROMPT,
+    G_AT_SYNTAX_RESULT_GARBAGE,
  };

  typedef enum _GAtSyntaxResult GAtSyntaxResult;


Our opinion is that the modem should only switch its
mode once it really received the NO CARRIER
signal (or something in this manner).

But it's up to you to find the best solution :)

>
> Regards,
> -Denis

Regards,
Marko

P.S. We would also like to post a patch regarding oFono.
How can we do this?

> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/mailman/listinfo/ofono


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: HE910 + ofono: "Activating context failed with error: Unknown error type"
  2015-06-30 15:16                 ` Enrico Sau
@ 2015-07-01  7:14                   ` Marko Sulejic
  0 siblings, 0 replies; 13+ messages in thread
From: Marko Sulejic @ 2015-07-01  7:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 456 bytes --]

Hi Enrico,

we don't have such a package installed.

We have found the problem ...
have a look at my response on Denis' mail.

Regards,
Marko

Am 2015-06-30 um 17:16 schrieb Enrico Sau:
> Marko, let me ask a maybe stupid question: do you have modemmanager 
> package installed?
>
> Enrico
>
>
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> https://lists.ofono.org/mailman/listinfo/ofono


[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 1460 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-07-01  7:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-25  9:15 HE910 + ofono: "Activating context failed with error: Unknown error type" Marko Sulejic
2015-06-25 13:05 ` Marko Sulejic
2015-06-29 11:16   ` Marko Sulejic
2015-06-29 12:59     ` Enrico Sau
2015-06-29 13:33       ` Marko Sulejic
2015-06-26  2:20         ` Denis Kenzior
2015-06-30  5:54           ` Marko Sulejic
2015-06-30 11:31             ` Marko Sulejic
2015-06-26 23:01               ` Denis Kenzior
2015-06-30 15:16                 ` Enrico Sau
2015-07-01  7:14                   ` Marko Sulejic
2015-07-01  7:11                 ` Marko Sulejic
2015-07-01  0:44                   ` Denis Kenzior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.