Re: [RFC] Deprecate SubscriptionState?

2018-08-08 Thread Aleksander Morgado
Hey,

>> > Why raw PCO data in hex string? Why not directly the binary data?
>> > e.g.
>> > "ay" instead of "s". The signature could be then "a(iay)"
>>
>> Yeah I'd vote for byte array eg "a(iay)" (eg array of struct of integer
>> + byte array).
>>
>
> Sounds good. We will need to indicate whether the received PCO is
> partial or complete, so I'll go with something like an array of struct
> of (uint32 + boolean + byte array),  i.e. a(ubay).
>
> I'm planning to do the following:
> 1. introduce the new Pco property under Modem3gpp interface
> 2. set it up for modems supporting MBIM_CID_PCO
> 3. migrate the altair-lte plugin to use the Pco property
> 4. migrate Chromium OS to use the Pco property instead of the
> SubscriptionState property
> 5. remove the SubscriptionState property from Modem3gpp -- this is an
> MM API break, so a version bump will be needed
>
> Does that sound like a plan?
>

LGTM.

For the last step, you could cherry pick this commit, where I don't
totally remove the property, but flag it as deprecated.
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/commit/b382302ef64281329127066253eeeb4aa5736544


-- 
Aleksander
https://aleksander.es
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [RFC] Deprecate SubscriptionState?

2018-08-07 Thread Ben Chan
On Tue, Aug 7, 2018 at 7:22 AM Dan Williams  wrote:
>
> On Tue, 2018-08-07 at 01:07 +0200, Aleksander Morgado wrote:
> > Hey,
> >
> > Why raw PCO data in hex string? Why not directly the binary data?
> > e.g.
> > "ay" instead of "s". The signature could be then "a(iay)"
>
> Yeah I'd vote for byte array eg "a(iay)" (eg array of struct of integer
> + byte array).
>

Sounds good. We will need to indicate whether the received PCO is
partial or complete, so I'll go with something like an array of struct
of (uint32 + boolean + byte array),  i.e. a(ubay).

I'm planning to do the following:
1. introduce the new Pco property under Modem3gpp interface
2. set it up for modems supporting MBIM_CID_PCO
3. migrate the altair-lte plugin to use the Pco property
4. migrate Chromium OS to use the Pco property instead of the
SubscriptionState property
5. remove the SubscriptionState property from Modem3gpp -- this is an
MM API break, so a version bump will be needed

Does that sound like a plan?

> Dan
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [RFC] Deprecate SubscriptionState?

2018-08-07 Thread Dan Williams
On Tue, 2018-08-07 at 01:07 +0200, Aleksander Morgado wrote:
> Hey,
> 
> > > 
> > > At some point we need to handle network-initiated bearers in MM
> > > though.
> > > 
> > 
> > Given that the SessionId reported in a MBIM_CID_PCO notification
> > may
> > not be associated with any CID managed/known to ModemManager, we
> > may
> > simply expose a PCO property under the Modem3gpp interface. The PCO
> > property can be a list of (session_id, raw_pco_data_in_hex_str)
> > pair
> > (i.e.  a(is) or a{is} as the D-Bus type).  Does that make sense?
> 
> Why raw PCO data in hex string? Why not directly the binary data?
> e.g.
> "ay" instead of "s". The signature could be then "a(iay)"

Yeah I'd vote for byte array eg "a(iay)" (eg array of struct of integer
+ byte array).

Dan
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [RFC] Deprecate SubscriptionState?

2018-08-06 Thread Aleksander Morgado
Hey,

>>
>> At some point we need to handle network-initiated bearers in MM though.
>>
>
> Given that the SessionId reported in a MBIM_CID_PCO notification may
> not be associated with any CID managed/known to ModemManager, we may
> simply expose a PCO property under the Modem3gpp interface. The PCO
> property can be a list of (session_id, raw_pco_data_in_hex_str) pair
> (i.e.  a(is) or a{is} as the D-Bus type).  Does that make sense?

Why raw PCO data in hex string? Why not directly the binary data? e.g.
"ay" instead of "s". The signature could be then "a(iay)"

-- 
Aleksander
https://aleksander.es
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [RFC] Deprecate SubscriptionState?

2018-07-30 Thread Aleksander Morgado
Hey,

> I guess we could depreciate the SubscriptionState property and let
> ModemManger simply forward PCO notifications to other clients. What
> D-Bus interface are you considering?  For the Altair modem, we may
> need to cheat a little bit by repackaging the partial PCO info into a
> valid PCO structure.
>

I was just thinking in a property providing a raw bytearray to contain
the PCO info. Would that be enough?

-- 
Aleksander
https://aleksander.es
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [RFC] Deprecate SubscriptionState?

2018-07-30 Thread Ben Chan
Hi Aleksander,

I'm actually wiring up SubscriptionState for some MBIM modems that
support MBIM_CID_PCO (which just landed in libmbim), and about to send
over some patches. It's true that the PCO of interest is the
Verizon-specific PCO, which is used for several use cases (e.g. the
SIM is unprovisioned / no active subscription, the account runs out of
data allowance, etc). It's also true that some modems only
support/expose Verizon-specific PCO, which is likely due to
certification requirements from Verizon. The MBIM_CID_PCO document
from Microsoft also uses Verizon PCO as an example :-|

We went with the SubscriptionState property mostly because the Altair
modem only reports a portion of the PCO (e.g. FF00 130184xx). I'm
testing another MBIM modem which exposes raw PCO info, which is tied
to an active connection (i.e. MBIM_CID_PCO SessionId is tied to
MBIM_CID_CONNECT SessionId) and are updated over time via MBIM_CID_PCO
notifications.

I guess we could depreciate the SubscriptionState property and let
ModemManger simply forward PCO notifications to other clients. What
D-Bus interface are you considering?  For the Altair modem, we may
need to cheat a little bit by repackaging the partial PCO info into a
valid PCO structure.

Thanks,
Ben

On Sat, Jul 28, 2018 at 1:43 PM Aleksander Morgado
 wrote:
>
> Hey Dan, Ben & all,
>
> The SubscriptionState property was originally thought to expose the
> state of the subscription with the operator. It has been implemented
> only in the Altair LTE plugin, and the current implementation is based
> on two main things:
>  * Verizon-specific logic that allows knowing the subscription state
> based on the PCO info.
>  * Registration check errors, e.g. to say that the SIM is
> unprovisioned when the registration fails.
>
> I'm not sure any of the previous two things are very robust. The
> Verizon-specific parsing will only work for Verizon, and the
> registration check errors may be caused by multiple different root
> causes. To me it looks like the Altair LTE plugin is trying to do more
> than it's supposed to do. It would be much better if we exposed the
> raw PCO info received, and let upper layers process that if needed
> with operator-specific logic.
>
> What do you all think?
> Should we deprecate the SubscriptionState property?
> Should we expose the raw PCO info?



>
> --
> Aleksander
> https://aleksander.es
> ___
> ModemManager-devel mailing list
> ModemManager-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [RFC] Deprecate SubscriptionState?

2018-07-28 Thread matthew stanger
We've really been wanting to get it working better for our customers, but
honestly your summary is true. Carriers aren't supporting hooks to reliably
to get the information. I personally haven't seen a 3GPP command in the
data sheets I have to get the info either. If that changes I'd be the first
to bring it back but until then it's kind of a dead field. IMHO

On Sat, Jul 28, 2018 at 2:42 PM, Aleksander Morgado <
aleksan...@aleksander.es> wrote:

> Hey Dan, Ben & all,
>
> The SubscriptionState property was originally thought to expose the
> state of the subscription with the operator. It has been implemented
> only in the Altair LTE plugin, and the current implementation is based
> on two main things:
>  * Verizon-specific logic that allows knowing the subscription state
> based on the PCO info.
>  * Registration check errors, e.g. to say that the SIM is
> unprovisioned when the registration fails.
>
> I'm not sure any of the previous two things are very robust. The
> Verizon-specific parsing will only work for Verizon, and the
> registration check errors may be caused by multiple different root
> causes. To me it looks like the Altair LTE plugin is trying to do more
> than it's supposed to do. It would be much better if we exposed the
> raw PCO info received, and let upper layers process that if needed
> with operator-specific logic.
>
> What do you all think?
> Should we deprecate the SubscriptionState property?
> Should we expose the raw PCO info?
>
> --
> Aleksander
> https://aleksander.es
> ___
> ModemManager-devel mailing list
> ModemManager-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
>
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


[RFC] Deprecate SubscriptionState?

2018-07-28 Thread Aleksander Morgado
Hey Dan, Ben & all,

The SubscriptionState property was originally thought to expose the
state of the subscription with the operator. It has been implemented
only in the Altair LTE plugin, and the current implementation is based
on two main things:
 * Verizon-specific logic that allows knowing the subscription state
based on the PCO info.
 * Registration check errors, e.g. to say that the SIM is
unprovisioned when the registration fails.

I'm not sure any of the previous two things are very robust. The
Verizon-specific parsing will only work for Verizon, and the
registration check errors may be caused by multiple different root
causes. To me it looks like the Altair LTE plugin is trying to do more
than it's supposed to do. It would be much better if we exposed the
raw PCO info received, and let upper layers process that if needed
with operator-specific logic.

What do you all think?
Should we deprecate the SubscriptionState property?
Should we expose the raw PCO info?

-- 
Aleksander
https://aleksander.es
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel