Background
==========

- Priority scale: High, Medium and Low

- Complexity scale: C1, C2, C4 and C8.
   The complexity scale is exponential, with complexity 1 being the
   lowest complexity. Complexity is a function of both task 'complexity'
   and task 'scope'.


Core
====

- Personal firewall

   Priority: Low
   Complexity: C8

   Discuss and implement a basic and safe firewalling strategy into
   Connman. Provide a D-Bus API for personal firewalling.


- PACRunner extensions

   Priority: Low
   Complexity: C4

   Support more URI schemes, support multiple connections, tighter
   security integration.


- Check logging produced by connman_info()

   Priority: Medium
   Complexity: C1

   Check that logging produced by connman_info() contains meaningful messages
   and get rid of the unnecessary ones.


- Remove --nobacktrace option

   Priority: Medium
   Complexity: C1
   When: 2.0

   Remove the --nobacktrace option or change it to --backtrace depending on
   the level of systemd integration or other factors.


- Clean up data structure usage

   Priority: Medium
   Complexity: C4

   Use hash tables, queues and lists in the code. Check on the currently used
   data structures and see if something can be simplified.


- Unit tests for DHCP, DNS and HTTP

   Priority: Low
   Complexity: C4

   Create unit tests for these components starting with DHCP. Use gtest
   from GLib for this task similarly to what has been done for OBEX in Bluez
   and oFono in general.


- Support other time sources than NTP

   Priority: Low
   Complexity: C2

   Support other time sources like cellular, GPS in addition to NTP.


- Get interface names from src/device.c

   Priority: Low
   Complexity: C2

   Instead of using ioctls in connman_inet_ifindex and connman_inet_ifname,
   utilize the information already provided by netlink in src/device.c.


- Simplify gateway selection code

   Priority: Low
   Complexity: C4

   The service list is always sorted according to preference with the
   first service always owning the default route. See if update_order and
   find_default_gateway in src/connection.c can be modified to use the
   sorted service list instead of walking through the gateway_hash.


- Support D-Bus ObjectManager

   Priority: Medium
   Complexity: C4

   Support D-Bus ObjectManager by using functionality already present in
   ./gdbus. Method calls and signals are already registered with gdbus, but
   properties and replies especially in Agent are still handled with plain
   dbus library function calls.

   With this, Manager API is removed, and a WiFi P2P API based on
   ObjectManager common to Linux desktops can be implemented.


WiFi
====

- Clean up WiFi data structure usage

   Priority: Medium
   Complexity: C2

   Struct wifi_data is passed as a pointer in some of the wifi plugin
   callbacks. For example removing a WiFi USB stick causes RTNL and
   wpa_supplicant to call the wifi plugin at the same time causing the
   freeing of the wifi data structure. Fix up the code to have proper
   reference counting or other handling in place for the shared wifi data
   and the members in the data structure.


- EAP-AKA/SIM

   Priority: Medium
   Complexity: C2

   This EAP is needed for SIM card based network authentication.
   ConnMan here plays a minor role: Once wpa_supplicant is set up for
   starting and EAP-AKA/SIM authentication, it will talk to a SIM card
   through its pcsc-lite API.


- EAP-FAST

   Priority: Low
   Complexity: C1


- Removing wpa_supplicant 0.7.x legacy support

  Priority: Low
  Complexity: C1

  Removing global country property setter in gsupplicant, and removing
  wifi's technology set_regdom implementation. Removing autoscan fallback.
  (Note: should be done around the end 2012)

Bluetooth
=========

- Remove Bluez 4.x support

  Priority: Low
  Complexity: C1

  Remove plugins/bluetooth-legacy.c support in about 6 month (July 2013) or
  when Bluez 4.x usage becomes minimal.

Cellular
========


VPN
===

- IPsec

   Priority: Medium
   Complexity: C4


- L2TP & PPTP compatibility prefix removal

   Priority: Medium
   Complexity: C1
   When: connman 2.0

   The VPN config file provisioning patchset contains code that makes
   PPP options to be marked by "PPPD." prefix. The code supports also
   old "L2TP." and "PPTP." prefix for PPP options. Remove the compatibility
   code and only allow "PPPD." prefix for PPP options.


- Update VPNC and OpenVPN with Agent support

   Priority: Medium
   Complexity: C2

   Update VPNC and OpenVPN with VPN Agent support to request possible user
   ids and passphrases.


Tools
=====

- Add Clock API and MoveBefore/MoveAfter support to connmanctl

   Priority: Low
   Complexity: C2

   The connmanctl command line tool should support Clock API and Service API
   MoveBefore/MoveAfter.


User Interface
==============

- GNOME3 UI

   Priority: Low
   Complexity: C4

   A GNOME3 shell user interface would make it easier for mainstream distros
   users to use ConnMan. Continue/restart the work at
   https://github.com/connectivity/gnome-extension-connman
