Connectivity (not networking)

Registered by Mathieu Trudel-Lapierre on 2013-05-03

Carried over from client-1303-converged-network-stack:

Requirements of converged network stack for Ubuntu Touch and Desktop; mobile data support etc.

Blueprint information

Status:
Not started
Approver:
Jason Warner
Priority:
Undefined
Drafter:
Mathieu Trudel-Lapierre
Direction:
Needs approval
Assignee:
Mathieu Trudel-Lapierre
Definition:
New
Series goal:
Accepted for saucy
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

2013-05-29, seb128: targetting for series saucy (so it shows on status.ubuntu.com) and moving to 13.06 since all the items are still TODO and not likely to be finished this week

= Carried from client-1303-converged-network-stack =

Main missing piece is data support (over 3G/4G) for Ubuntu Touch
Certification will be required for the whole phone stack
Leveraging RILd and binary libraries for it
Memory consumption is really high with NM + nm-applet + dhclient

== Estimate amount of work required ==
 * (Stephane) Looked at how much effort it would be to add oFono support to Network Manager
   * Not a huge effort, and could support both MM and oFono at the same time; probably a month worth of work
   * Upstream NM ready to take oFono support
   * Could whitelist modems for oFono vs. MM
 * Possibility of using MM
  * ChromeBooks happily using MM, but lacks voice support
  * MM could get voice support, but was never certified on a phone
  * Voice has lots of ancillary features that may need to be developed as well (call forwarding, blocking, etc.)
  * Current MM iface (in git) supports more capability detection than pervious versions (example: SIM support lacking on CDMA modems)
 * (Stephane) Looked at how much effort it would be to add fast DHCP support to dhclient
  * dhclient needed for advanced support of features (example: infiniband)
  * Conmann DHCP support is much faster
  * Would require pulling the changes into dhclient (might be a large patch)
  * Security concerns should probably not block DHCP client choice (we can mitigate with apparmor)
  * NM does caching on a per-network basis to try and help the situation
   * concerned about creating DCHP network storms on large networks
 * (Alberto) Looked at how much work it would be to port Chewie to ConnMan
 * Security review
  * No issues with code quality (on either)
  * Connman is more engineered as a single user solution rather than multi-user
   * Might cause issues with settings being shared
   * Perhaps would need to be added after further review
   * Might be more of an issue for enterprise issue with network logins that might be based on domain login
  * NM has a fine grained PK access control
   * Used in guest session and on login screen
   * Removes some features for security reasons
 * (Tony) Looked at how much work it would be to add dhclient support to ConnMan
 * (Tony) Looked at how much work it would be to implement a RILd backend for oFono
  * Built initial framework for CES/MWC demo
   * Pulled pieces out of RILd for various features
  * Doesn't preclue usage of oFono directly for modems that have full support
  * Missing most advanced features like PINs on SIMs -- needs more work (not impossible)
 * (Mathieu) To check whether we can improve memory consumption
  * Dropping nm-applet (which seems to be the worst)
  * There hasn't been much profiling done currently, could be improved.
  * Is there a target? No specific target, just a observation more than a specific problem.
  * NM is looking for, in the future, to have the features being dynamically loadable to reduce memory consumption
 * (Mathieu) To look for ConnMan UIs to allow testing (just for evaluation)
  * https://launchpad.net/indicator-network [mpt] (doesn't support modern connman)
 * oFono supports SIM Toolkit already (took 6 people 12 months), so not easy to replicate; that's high-level and hw independent, modem plugin just needs a transport plugin

== Security model ==
Security review of ConnMan
https://docs.google.com/a/canonical.com/document/d/1Y44aVorNAsCI0FF9hfiYTn1pLWlpqoTz-zIOWiNwKZI/edit
AppArmor profiles
Secure storage of WiFi passwords

Saucy network test development is covered by https://blueprints.launchpad.net/ubuntu/+spec/qa-s-upstream-test-development

== Indicators ==
Want to drop nm-applet anyway, even if we keep Network Manager.
Chewie implementation started against Network Manager, but only covering WiFi at this point; misses e.g. wired ethernet and VPN connections.
Need to sync with design on complete design that suits the implementation requirements.

== wpasupplicant ==
Which version to use? Issues with iw, there’s an Android version

WiFi direct support is in Android, not clear how important it is for touch tough

= Discussion for client-1305-connectivity-not-networking / decisions from previous sessions =

Chosen in discussion in previous UDS:

Network (Wifi, etc.) Stack:
NetworkManager
Telephony/Modem Stack:
oFono

(?)

Work Items

Work items:
faster dhclient research: TODO
[cyphermox] Investigate android NFC framework: TODO
[cyphermox] Investigate FOSS NFC frameworks: TODO

Work items for ubuntu-13.06:
[cyphermox] Flip 3G/WiFi preference priority in NetworkManager: DONE
[cyphermox] Apply NetworkManager patches from extras into distro: DONE
[cyphermox] Apply oFono patches from extras into distro: TODO
[cyphermox] debug and complete oFono support for NM: DONE
[cyphermox] implement blacklist/whitelist in oFono: TODO
[cyphermox] implement blacklist/whitelist in ModemManager: TODO
[cyphermox] test oFono with his set of modems: DONE
[stgraber] test oFono with his other set of modems: DONE
[cyphermox] Investigate driver-specific wpa_supplicant libraries on android: INPROGRESS
[cyphermox] Implement driver-specific wpa_supplicant library scheme: TODO
[cyphermox] Investigate Wi-Fi driver-specific firmware loading: INPROGRESS
[cyphermox] Implement Wi-Fi driver firmware loading scheme: TODO
[cyphermox] Implement phone-specific connection prioritization: DONE
[cyphermox] Re-based NM changes to Raring: DONE
[tedg] Indicator implementation: TODO
Investigate oFono's Bluez 5 requirement: DONE
Investigate oFono's BT Audio integration hybris vs. Native PulseAudio: INPROGRESS
Investigate oFono/BT HFP/Headset indicator/settings requirements: TODO
[cyphermox] Test bluetooth discovery / HSP and HFP on mako: DONE
[cyphermox] Implement bluetooth bringup on mako with qcomm_init: DONE
[cyphermox] Test bluetooth discovery / HSP and HFP on grouper: DONE
[cyphermox] Test bluetooth discovery / HSP and HFP on maguro: DONE
[cyphermox] Investigate MTP server with lool: INPROGRESS

Dependency tree

* Blueprints in grey have been implemented.