Files
ModemManager/plugins
Alexander Yashin 2de0e89589 plugins: ublox: bearer: SIM absence should not break disconnect
If we have a modem with an established connection, and then the
SIM is getting removed from that modem, this forces modem reprobing
sequence.

It looks like that:
```
 mm-base-modem:mm_base_modem_process_sim_event
 -> mm-base-modem:mm_base_modem_disable
 -> mm-base-modem:disable
 -> mm-broadband-modem:common_disable
 -> mm-broadband-modem:disabling_step,
 -> ctx->step=DISABLING_STEP_FIRST
 -> ctx->step=DISABLING_STEP_WAIT_FOR_FINAL_STATE
 -> ctx->step=DISABLING_STEP_DISCONNECT_BEARERS
```

At this stage, there is no actual connection existing already, but
bearer objects still exist and are still marked as connected.
So, if there were any active bearers - they will be disconnected.

In order to disconnect, ublox bearer sends +CGACT=0,%u, modem then
will return CME ERROR: 10(SIM not inserted):
```
[modem0/ttyACM0/at] --> 'AT+CGACT=0,1<CR>'
[modem0/ttyACM0/at] <-- '<CR><LF>+CME ERROR: 10<CR><LF>'
[modem0/ttyACM0/at] operation failure: 10 (SIM not inserted)
[modem0/bearer0] couldn't disconnect: SIM not inserted
```
this error will break disabling and reprobing. To fix that, it's
require to add 'SIM not inserted' state as a valid condition to
continue bearer disconnection.
2021-12-13 13:20:39 +03:00
..
2020-09-28 08:22:35 +00:00
2021-09-07 10:55:43 +00:00

The following list shows the relationship among the different plugins provided
by default by ModemManager. For each of the plugin types, the list of modem
objects created by the plugin is given.

 * Altair:
   ** MMBroadbandModemAltairLte

 * Anydata:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemAnydata

 * Cinterion:
   ** MMBroadbandModemQmiCinterion
   ** MMBroadbandModemCinterion

 * Dell:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemFoxconnT77w968    (from the Foxconn utils)
   ** MMBroadbandModemMbimXmm           (from the XMM utils)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModemNovatel           (from the Novatel utils)
   ** MMBroadbandModemSierra            (from the Sierra Legacy utils)
   ** MMBroadbandModemTelit             (from the Telit utils)
   ** MMBroadbandModemXmm               (from the XMM utils)
   ** MMBroadbandModem                  (generic)

 * D-Link:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModem                  (generic)

 * Fibocom:
   ** MMBroadbandModemMbimXmm           (from the XMM utils)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModemXmm               (from the XMM utils)
   ** MMBroadbandModem                  (generic)

 * Foxconn:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemFoxconnT77w968
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModem                  (generic)

 * Generic:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModem                  (generic)

 * Gosuncn:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModem                  (generic)

 * Haier:
   ** MMBroadbandModem                  (generic)

 * Huawei:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModemHuawei

 * Icera (no explicit plugin):
   ** MMBroadbandModemIcera

 * Iridium:
   ** MMBroadbandModemIridium

 * Linktop:
   ** MMBroadbandModemLinktop

 * Longcheer:
   ** MMBroadbandModemLongcheer

 * MBM:
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModemMbm

 * Motorola:
   ** MMBroadbandModemMotorola

 * Mtk:
   ** MMBroadbandModemMtk

 * Nokia:
   ** MMBroadbandModemNokia

 * Nokia Icera:
   ** MMBroadbandModemIcera             (from the Icera utils)

 * Novatel:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemNovatel

 * Novatel LTE:
   ** MMBroadbandModemNovatelLte

 * Option:
   ** MMBroadbandModemOption

 * Option HSO:
   ** MMBroadbandModemHso

 * Pantech:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemPantech

 * Quectel:
   ** MMBroadbandModemQmiQuectel
   ** MMBroadbandModemQuectel

 * Samsung:
   ** MMBroadbandModemSamsung           (subclassed from the Icera utils)

 * Sierra Legacy:
   ** MMBroadbandModemSierraIcera       (subclassed from the Icera utils)
   ** MMBroadbandModemSierra

 * Sierra:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModem                  (generic)

 * Simtech:
   ** MMBroadbandModemQmiSimtech
   ** MMBroadbandModemSimtech

 * Telit:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemMbimTelit
   ** MMBroadbandModemTelit

 * Thuraya
   ** MMBroadbandModemThuraya

 * TP-Link:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModem                  (generic)

 * u-blox:
   ** MMBroadbandModemUblox

 * via:
   ** MMBroadbandModemVia

 * wavecom:
   ** MMBroadbandModemWavecom

 * x22x:
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemX22x

 * XMM (no explicit plugin):
   ** MMBroadbandModemMbimXmm
   ** MMBroadbandModemXmm

 * ZTE
   ** MMBroadbandModemQmi               (generic)
   ** MMBroadbandModemMbim              (generic)
   ** MMBroadbandModemZteIcera          (subclassed from the Icera utils)
   ** MMBroadbandModemZte