fibocom: Minimum PDP context ID

Aleksander Morgado aleksander at aleksander.es
Tue Mar 29 08:59:45 UTC 2022


Hey

> >> Speaking of the default EPS bearer, should ModemManager be aware of that
> >> bearer somehow, i.e. list it as an active bearer object etc?
> >>
> >
> > Yes, we could do that, definitely. There is no chance of getting the
> > profile id wrong in Intel-based modems I think, if they support CID 0,
> > that should be the one used for the initial EPS bearer.
> >
>
> I have a follow-up question about the initial EPS bearer for the Fibocom
> MA510 modem. That modem appears to use CID=1, i.e. a regular PDP context
> for the initial EPS bearer. When configuring an incorrect APN for CID=1,
> the modem will not register successfully. Clearing the settings for
> CID=1 (`+CGDCONT=1`) or configuring the correct settings fixes this.
>

Yes, that is very likely because it's probably a Qualcomm based
device, where CID=1 is usually used as initial EPS bearer settings
(although that's really configurable via the QMI protocol).

> I guess the cleanest way to make ModemManager handle this correctly,
> would be to implement `create_initial_eps_bearer`. However, is the
> default profile manager aware of the initial EPS bearer and will not try
> to re-use its CID (in this case CID=1)?
>

If you used QMI, then the Modem3gpp.SetInitialEpsBearerSettings()
method would end up modifying that CID=1.
But that doesn't mean you cannot change them using the profile manager
APIs also. When using QMI, you can do both things, although if your
plan is to change the initial EPS bearer settings, you should better
use the specific method for that. The fact that you can use the
profile manager APIs is just a side effect of having one profile
associated to the initial EPS bearer settings, and ModemManager will
not attempt to hide that from the user. We could improve all this and
allow the profile management APIs flag specifically which profile is
used as initial EPS bearer settings, e.g. by flagging it with
MM_BEARER_APN_TYPE_INITIAL (if we're not doing it already! I recall
thinking about adding that but not sure if I did).

When using AT commands, there is no generic
Modem3gpp.SetInitialEpsBearerSettings() method. Some plugins have
their own implementation because they keep a relationship of which CID
is used as initial EPS bearer setting (see e.g. the
MMBroadbandModemCinterion). For the generic AT modems, or for plugins
not implementing their custom way of doing it, the only way to play
with those settings would be via the profile manager APIs. We could
improve all this and provide a generic implementation as well,
assuming CID=0 for Intel-based and CID=1 for Qualcomm-based modems,
but it would be a "best guess" at most.

For a connection attempt, ModemManager does not currently forbid to
use the initial EPS bearer settings profile (except for the CID=0 case
that we already talked about should probably be handled). For Qualcomm
modems there should be no reason why not to use CID=1 for both initial
EPS bearer settings and for connection attempt settings.

> Somewhat related: What are the differences between
> `load_initial_eps_bearer` and `load_initial_eps_bearer_settings`?
>

The naming is not clear at all, but they represent two different things.

load_initial_eps_bearer_settings() refers to loading the initial EPS
bearer settings as configured and stored in the modem; i.e. the
contents of the profile associated to the initial EPS bearer settings.
The user could specify not to use a explicit APN for initial EPS
bearer, and put a blank APN (e.g. clearing the context as you said
earlier with `+CGDCONT=1`).

load_initial_eps_bearer() refers to loading the initial EPS bearer
settings currently agreed with the network. This could be equal to the
ones stored in the modem if the network accepted all the settings we
requested, or they could be different.

So we could have requested the blank APN and IPv4v6 (what we see in
load_initial_eps_bearer_settings()), but the network may have agreed
to IPv4 only and it would have reported us that the APN used is named
"ac.vodafone.es" (what we see in load_initial_eps_bearer()).

> Is there a standard AT command to read out the SIM's default APN?
>

I'm not sure if there is such thing truth be told.

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list