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
====

- Session API implementation

   Priority: High
   Complexity: C4
   Owner: Daniel Wagner <daniel.wagner@bmw-carit.de>
   Owner: Patrik Flykt <patrik.flykt@linux.intel.com>

   The session API should provide a connection abstraction in order to
   prioritize applications network accesses, prevent or allow network
   and bearer roaming, or provide applications with a way to request
   for periodic network connections. On-demand connections will be
   implemented through this API as well.
   See http://www.mail-archive.com/connman@connman.net/msg01653.html


- Personal firewall

   Priority: Low
   Complexity: C8
   Owner: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>

   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.


- Support for multiple agents

  Priority: Medium
  Complexity: C2

  Allow to register multiple agents. Each unique system bus name owner
  however is only allowed to register one agent.

  The selection of which agents is used  should be matched by bus name
  owner if possible or first come first serve. A graceful fallback to
  the next agent should be also used in case of malfunctional agents.

- 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 type definitions

   Priority: Medium
   Complexity: C1

   Go through variable types and use the following:
   * uint8_t instead of connman_uint8_t, unsigned char
   * uint16_t instead of connman_uint16_t, unsigned short
   * bool from <stdbool.h> instead of connman_bool_t and gboolean, in the
     latter case in those places it makes sense


- Clean up data structure usage

   Priority: Medium
   Complexity: C4

   Use hash tables, queues and lists in the code. Replace GSequences with
   simpler structures. At the same time do a check on the currently used
   data structures and see if something can be simplified.


- Unit tests for DHCP, DNS and HTTP

   Priority: Medium
   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.


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
   Owner: Samuel Ortiz <sameo@linux.intel.com>

   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


- WiFi p2p

   Priority: Medium
   Complexity: C2


- Removing wpa_supplicant 0.7.x legacy support

  Priority: Low
  Complexity: C1
  Owner: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>

  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
   Owner: Jukka Rissanen <jukka.rissanen@linux.intel.com>


Tools
=====

- Add Agent mode to connmanctl command line tool

   Priority: Medium
   Complexity: C2

   connmanctl should implement agent prompting when started with a suitable
   command line option. Agent mode should also be enabled when in interactive
   mode.


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

- GNOME3 UI

   Priority: Low
   Complexity: C4
   Owner: Alok Barsode <alok.barsode@linux.intel.com>

   A GNOME3 shell user interface would make it easier for mainstream distros
   users to use ConnMan.
