Initial EPS bearer on u-blox TOBY-L210
Aleksander Morgado
aleksander at aleksander.es
Thu Aug 30 13:42:56 UTC 2018
Hey,
>
> When using ModemManager with a u-blox TOBY-L210 module (router mode) to
> connect to a LTE network, I face some problems.
>
>
> What I see:
> When the modem attaches to the network, it creates and activates a default
> EPS bearer (with CID=4). The APN resulting for this PDP Context depends on
> the SIM card and operator.
> This default EPS bearer may be sufficient to get IP connectivity (seen on
> SIM Card from eseye.com, operator Vodefone.de, AT+CGDCONT? shows
> "eseye1.mnc058.mcc234.gprs") or can be a APN that does not route data (seen
> on SIM Card from Telekom, operator Telekom.de, AT+CGDCONT? shows
> "NODATA.MNC001.MCC262.GPRS").
> When ModemManager tries to connect, it creates a new PDP context (since the
> existing one does not match) and activates it. This succeeds, but has no
> effect, since the modem internally does only route data from the PDP context
> activated first (see u-blox AT command manual, section "Networking"). This
> can be examined using the AT+UIPROUTE command.
> In case of the Telekom SIM card, this leads to the ModemManager showing
> "connected", but no data can be transferred.
>
What MM version are you using? If the configured APN matches the
default one from the operator, e.g. "eseye1" removing the mnc/mnc
part, then the connection setup won't create a new PDP context and
will use the default one.
>
> The solution requested by the u-blox manual is to use the AT+UCGDFLT command
> to configure the default eps bearer for LTE. I implemented this as first
> step in the 3gpp activation, but it has a major drawback: The the modem has
> to be switched to airplane mode (AT+CFUN=4) before issuing the command and
> back afterwards (AT+CFUN=1). This is detected by the ModemManager an leads
> to a cancellation of the 3gpp activation ( a second 3gpp activation later on
> will succeed if the AT+UCGDFLT is not issued a second time when the default
> EPS bearer already set).
>
>
> In addition, this leads to other problems: ModemManager does not match the
> default PDP context, so it will create a new one (which has no effect as
> explained above). I altered the match (according to this thread:
> https://lists.freedesktop.org/archives/modemmanager-devel/2016-August/003362.html)
> which worked, but leads to a new problem: The default EPS context can not be
> disabled (this is documented), so disconnecting will no longer work.
>
Yes, that is true. When the default EPS bearer is requested to be
disconnected, externally in MM we will show it's disconnected but the
actual context may be internally connected in the TOBY because the
default EPS bearer cannot be disconnected.
>
> Now the question is: How can I properly implement using the default bearer
> in ModemManager? Do you have any ideas? Or is this problem already beeing
> addressed and I do something wrong?
>
So, most modems hide the fact that there is a bearer connected when
you're registered in LTE, but if I'm not mistaken, the actual LTE
registration sets that bearer up. This is particularly common in
Qualcomm based devices, you get registered to LTE and you just see the
modem as disconnected but registered to LTE. Intel-based devices, like
the TOBY, show instead the default LTE attach bearer as connected in
CGDCONT as soon as it's registered in the LTE network, so we end up
with the logic in MM trying to handle that by matching the APN with
the MNCxxx.MCCxxx.GPRS suffix as if that suffix didn't exist. Not
ideal, but works.
Ideally, and I'm going to work on that in the following weeks, we
should have an API to allow configuring that default LTE attach APN,
and of course that requires the device to be fully unregistered from
the network (so the CFUN=4 comment above makes sense). This should be
some API that is totally independent from the connection process I
think. See e.g. what Microsoft defines in this regard for MBIM
devices: https://docs.microsoft.com/en-us/windows-hardware/drivers/network/mb-lte-attach-operations.
If the device allows managing the default bearer settings, we should
expose the ability to manage them in DBus. For the case of the
TOBY-L2, this would be done with UCGDFLT as you showed.
--
Aleksander
https://aleksander.es
More information about the ModemManager-devel
mailing list