Sierra MC7354: Drowning in "bearer verbose call end reason (6,36): [3gpp] regular-deactivation"

Einar Jón tolvupostur at gmail.com
Tue Aug 21 16:05:44 UTC 2018


Thanks for that.

Info below

On Mon, 20 Aug 2018 at 23:31, Aleksander Morgado
<aleksander at aleksander.es> wrote:
>
> Hey,
>
> >
> > I am using the Sierra MC7354 modem, and we are getting unusual
> > disconnects on AT&T in the US. Vodafone is fine on the same modems,
> > and this only seems to happen on 4G. AT&T 3G  seems to work.
> >
> > We start out connected, but  after a bit of time we hit
> > "gsm-wcdma-regular-deactivation/[3gpp] regular-deactivation", and then
> > we're spamming the log file with those messages (up to 240 lines/sec).
> > Logs below.
> > Similar to this post, but seems mostly unrelated.
> > https://lists.freedesktop.org/archives/modemmanager-devel/2017-February/003988.html
> > We opening/closing PDP connections during this period, but there is no
> > connectivity.
> >
> > Questions:
> > 1) Any ideas what is happening?
>
> Nope
>
> > 2) should I be calling ifdown when I hit 'state changed (connected ->
> > registered)' ?
> >
>
> Are you using NetworkManager as well as ModemManager? Or how do you
> setup the network interface?

I'm using a Python script that listens to ModemManager events, and
reacts to them.
As it turns out, I think I really should be calling ifdown when I hit
'state changed (connected -> registered)'

> > We have been in touch with both Sierra and AT&T, but they say that
> > libQMI is unsupported. so there is not much help there.
> >
>
> Oh well. This is, I would say, NOT related to libqmi in any way. If
> they told you this, you should be able to recreate a small test using
> Sierra's SDK and see if/how it is reproduced. This is probably your
> best shot I'd say, given the type of problem.

True. I have more logs, and it turns out that we are just losing connection:
Aug  4 21:29:12 armxl ModemManager[944]: <info>  bearer call end
reason (1): 'generic-unspecified'
Aug  4 21:29:12 armxl ModemManager[944]: <info>  bearer verbose call
end reason (3,1028): [cm] (null)
Aug  4 21:29:12 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (connected ->
registered)
Aug  4 21:29:12 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (registered ->
connecting)
Aug  4 21:29:12 armxl ModemManager[944]: <info>  error: couldn't start
network: QMI protocol error (14): 'CallFailed'
Aug  4 21:29:12 armxl ModemManager[944]: <info>  call end reason (3):
'generic-no-service'
Aug  4 21:29:12 armxl ModemManager[944]: <info>  verbose call end
reason (3,2001): [cm] no-service
Aug  4 21:29:12 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (connecting ->
registered)

If I don't call ifdown, we get into a weird state, where we get a new
IP address, but I don't bother to call ifup on that new IP address, so
the handshake isn't finalized.
So the modem requests another IP address every 40-50 seconds, while
looping through these states:

<lots of "regular-deactivation" lines deleted>
Aug  4 22:10:33 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (connected ->
registered)
Aug  4 22:10:33 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (registered ->
connecting)
Aug  4 22:10:33 armxl ModemManager[944]: <info>        Address: 10.192.XX.YY/30
Aug  4 22:10:34 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (connecting ->
connected)
Aug  4 22:10:48 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (connected ->
registered)
Aug  4 22:10:49 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (registered ->
connecting)
Aug  4 22:10:49 armxl ModemManager[944]: <info>     Address: 10.192.YY.ZZ/29
Aug  4 22:10:49 armxl ModemManager[944]: <info>  Modem
/org/freedesktop/ModemManager1/Modem/0: state changed (connecting ->
connected)

So note to self:
Always call ifdown when I hit 'state changed (connected -> "any other state")'

> > Setup
> > Sierra MC7354 modem
> > ModemManager 1.6.2
> > libQmi 1.16.0
> > Arm linux - kernel 3.14
> >
> > I'm using buildroot, so upgrading libQmi  (to 1.18.0 or 1.20.0) and
> > ModemManager (to 1.6.8 or 1.8.0) would be doable. Are there any
> > additional benefits in the newer versions regarding this issue?
>
> Well, those versions are extremely old. Please upgrade to the newest
> ones and retry, to avoid any possible issue that may already have been
> fixed. Those upgrades should be 100% compatible.

Upgrade done, but it's unrelated.
Behaves the same on the new libs, but should be fixed by calling
ifdown. In testing as we speak.

-- 
Regards
Einar Jón

> --
> Aleksander
> https://aleksander.es


More information about the ModemManager-devel mailing list