Closed Bug 826977 Opened 12 years ago Closed 12 years ago

B2G RIL: SystemWorkerManager should not responsible for RIL instantiation

Categories

(Core :: DOM: Device Interfaces, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla21

People

(Reporter: vicamo, Assigned: vicamo)

References

Details

Attachments

(4 files, 4 obsolete files)

As described in RadioInterfaceLayer.manifest, SystemWorkerManager creates RIL, get its worker and setup two-way communication to rilproxy. However, it follows we may not retain the flexibility to RIL/worker configuration. For example, MSIM (multiple sim) is a feature mandatory for some markets. MSIM is not officially supported in Android RIL and each RIL solution provider has his own work-around. Some providers integrate two modem device into one and some do not. This results in two different MSIM configurations: single or multiple ril daemons for multiple SIM cards. We have two possible answers to the single rild configuration. One, mux/demux all the incoming/outgoing parcels sent from that rild and pretend there are multiple of it. This method requires knowledge to every parcel of a specific solution, and as mentioned before, each provider may have his own solution. This method also suffers from the uncertainty that whether or not every parcel belongs to one distinct modem device. If there exists one that is meant for all modem device, say some kind of shared, common functions, then we can't simply dispatch it to one worker instance. There can be a lot of similar problems because of the lack of flexibility in current SystemWorkerManager design. The second answer to the single rild configuration is to allow sharing one ril_worker between RIL instances. In this way, one is free to create yet another ril worker implementation in Gecko and have full control of the parcels sent from and to the only ril daemon because these parcels arrive ril worker without additional interpretations. This way requires giving back the control from SystemWorkerManager to RIL itself. Let RIL decide how many worker instances should be connected and when to connect.
Attached patch Part 1: new interface (obsolete) — Splinter Review
Attachment #698232 - Flags: review?(kyle)
Attachment #698233 - Flags: review?(philipp)
Attachment #698233 - Flags: review?(kyle)
Attachment #698234 - Flags: review?(htsai)
Attachment #698232 - Flags: review?(kyle) → review+
Attachment #698233 - Flags: review?(kyle) → review+
Assignee: nobody → vyang
Blocks: 826931
Comment on attachment 698233 [details] [diff] [review] Part 2: SystemWorkerManager & RadionInterfaceLayer changes Review of attachment 698233 [details] [diff] [review]: ----------------------------------------------------------------- Have been 2 weeks.
Attachment #698233 - Flags: review?(philipp)
Add r=qDot only.
Attachment #698232 - Attachment is obsolete: true
Attachment #705283 - Flags: review+
Rebase & add r=qDot
Attachment #698233 - Attachment is obsolete: true
Attachment #705284 - Flags: review+
Revisions for Part 3 & 4 are waiting bug 817985 to be landed in m-c.
Depends on: 817985
Attachment #698234 - Attachment is obsolete: true
Attachment #698234 - Flags: review?(htsai)
Attachment #705401 - Flags: review?(htsai)
Attachment #698235 - Attachment is obsolete: true
Attachment #698235 - Flags: review?(htsai)
Attachment #705402 - Flags: review?(htsai)
Attachment #705401 - Flags: review?(htsai) → review+
Attachment #705402 - Flags: review?(htsai) → review+
I would suggest uplifting this into b2g18 because it's changing the fundamental way how we register RIL instances. It would be less painful when we'll be wanting to sync codes about MSIM between m-c and b2g18.
(In reply to Gene Lian [:gene] from comment #14) > I would suggest uplifting this into b2g18. No, this will break interfaces of shipping RIL.
Blocks: 846643
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: