The SIM used for data in MTK-based dual-standby modems can change after carrier re-registration or reboot
Bug #1413672 reported by
Alfonso Sanchez-Beato
This bug affects 5 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
Critical
|
Unassigned | ||
ofono (Ubuntu) |
Fix Released
|
High
|
Alfonso Sanchez-Beato | ||
ofono (Ubuntu RTM) |
Fix Released
|
High
|
Alfonso Sanchez-Beato |
Bug Description
When there are 2 SIMs inserted in a krillin running Ubuntu, it may happen that the one that gets used for mobile data changes on each reboot. ofono allows both SIMs to be activated for data. For multi-sim standby modems this implies that on each reboot, or even more, when one of the SIMs loses coverage, the SIM used for data can change as only one slot can be attached at a time.
Note, this bug applies to RTM as of version ubuntu-touch/stable #14. It also applies to vivid devel-images.
Related branches
lp://staging/~phablet-team/ofono/ww13-update
- Ricardo Salveti (community): Approve
- Alfonso Sanchez-Beato: Approve
- PS Jenkins bot: Approve (continuous-integration)
-
Diff: 1314 lines (+686/-110)16 files modifieddebian/changelog (+19/-0)
doc/connman-api.txt (+8/-0)
drivers/mtkmodem/mtkrequest.h (+2/-2)
drivers/mtkmodem/mtkunsol.c (+35/-0)
drivers/mtkmodem/mtkunsol.h (+7/-0)
drivers/rilmodem/gprs-context.c (+9/-3)
gril/grilunsol.c (+75/-17)
include/modem.h (+5/-0)
plugins/bluetooth.c (+10/-0)
plugins/mtk.c (+326/-75)
plugins/ubuntu-apndb.c (+9/-10)
src/common.c (+1/-1)
src/gprs.c (+104/-1)
src/modem.c (+8/-0)
unit/test-common.c (+1/-1)
unit/test-mtkunsol.c (+67/-0)
description: | updated |
description: | updated |
Changed in ofono (Ubuntu): | |
status: | New → Confirmed |
importance: | Undecided → High |
assignee: | nobody → Alfonso Sanchez-Beato (alfonsosanchezbeato) |
Changed in ofono (Ubuntu RTM): | |
status: | New → Confirmed |
tags: | added: connectivity |
Changed in ofono (Ubuntu RTM): | |
importance: | Undecided → High |
assignee: | nobody → Alfonso Sanchez-Beato (alfonsosanchezbeato) |
summary: |
- The SIM used for data in dual-standby modems changes across reboots + The SIM used for data in dual-standby modems can change after carrier + re-registration or reboot |
summary: |
- The SIM used for data in dual-standby modems can change after carrier - re-registration or reboot + The SIM used for data in MTK-based dual-standby modems can change after + carrier re-registration or reboot |
Changed in ofono (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in ofono (Ubuntu RTM): | |
status: | In Progress → Fix Committed |
Changed in canonical-devices-system-image: | |
status: | New → In Progress |
status: | In Progress → Fix Committed |
Changed in canonical-devices-system-image: | |
importance: | Undecided → Critical |
milestone: | none → ww13-ota |
Changed in canonical-devices-system-image: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
A brief explanation is necessary...
By default, ofono sets the 'Powered' property of a modem's ConnectionManager interface to True, this in turn causes the ofono core to trigger GPRS attachment, which if successful, sets the 'Attached' property to True.
NetworkManager will only attempt to activate a connection of both 'Attached' and 'Powered' are set to True.
The MTK plugin and modem code currently have logic which prevents both modems from becoming 'Attached', however this logic is non-deterministic as timing may effect which modem is set attached first.
If an end-user goes and explicitly changes the SIM selection for mobile data, ofono will update the gprs settings for both SIMs, such that the newly selected SIM will be powered, and the other SIM not powered. From this point on, this bug will be prevented from happening.
A fix has been proposed in the following branch:
https:/ /github. com/rilmodem/ ofono/pull/ 157
It ensures that only one Modem's ConnectionManager can be powered at any time. When it detects a change from False to True of a modem's CM 'Powered' property, either from a call to DBus, or via a loaded gprs settings file, it causes the other modem's CM 'Powered' property to be toggled to False. In essence, similar logic of Cellular Settings.