On allowing bearer creation from PDP context ID.

Jessy Exum jessy.diamondman at gmail.com
Fri Sep 4 22:46:08 UTC 2020

Hello everyone, I hope this finds you well.

I have been working on getting a product certified with Verizon, but failed
because my first implementation did not handle their OTA-DM (Over the Air
Device Management) <http://hosteddocs.ittoolbox.com/CC012507.pdf> behavior.
This stage of certification relies heavily on creating bearers out of PDP
context IDs (Verizon handles most of the messy bits in setting those
contexts for you in the modem).

My current solution is to manually read the PDP contexts off of the device
with AT+CGDCONT=?, reading out the Verizon mandated PDP context, and then
asking ModemManager to create a bearer out of that bearer configuration
(which causes ModemManager to scan the list of contexts and find an exact
match with the one we just read). This works, but it is cumbersome, and I
hear that more networks are planning to move to a similar process in the
future (Sprint already has, though I heard that is a little half baked).

*Because of this, I feel it would be worthwhile to allow bearers to be
created by specifying only a PDP context (and perhaps even an API backed
way to inspect them).* This would make passing Verizon certification a lot
less hackey than it currently is.

I am happy to do as much of the work as necessary, but I want to know the
community's opinion of this base proposal, and make sure anything that is
built actually solves a problem and will be accepted.

*Brief overview of the OTA-DM procedure
I am not a cellular expert, so please forgive and correct any inaccuracies
I may let slip in.

For those unfamiliar (I know I was), Verizon has a procedure called OTA-DM
for automatically determining the APN to use for a SIM card.

Verizon has all compatible modems preloaded with a series of PDP contexts.
These PDP Contexts are only available when the modem is running Verizon
firmware (which is triggered when a Verizon SIM card is inserted).

Verizon expects the initial attach bearer will be created from PDP context
#1. This first bearer is only for notifying Verizon that we have attached,
and will never pass user traffic.

Once this initial bearer connects, Verizon and the modem talk for a while.
In this conversation:

   1. The modem reports details about its SIM card to Verizon,
   2. Verizon checks its database to see if this is the last SIM card it
   saw in this modem,
   3. if this is not the SIM Verizon expected, Verizon will update the
   modem's PDP contexts to the most up to date settings for this SIM.

To clarify, this process will not happen every time you connect. A modem
has to connect to Verizon with a different SIM card for Verizon to do this
process again (flipping between SIMs for each connection would cause this
process to happen for each connection).

After this process completes, Verizon expects that the modem will connect
using PDP context #3 for the first data bearer. APNs are not touched by the
user, only Verizon defined PDP contexts. I found out the hard way that you
will fail your device certification if you do not connect using the 3rd
*END OTA-DM description.*

Any input on if we should allow creation of bearers from PDP context
numbers to support new cellular network features would be appreciated.

Thanks for working on this very useful project,
Jessy Diamond Exum
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20200904/cf6c120f/attachment.htm>

More information about the ModemManager-devel mailing list