Imported Upstream version 1.24
[platform/upstream/connman.git] / TODO
diff --git a/TODO b/TODO
index 74bbcdc..8036538 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,90 +8,89 @@ Background
    lowest complexity. Complexity is a function of both task 'complexity'
    and task 'scope'.
 
+
 Core
 ====
 
-- Session API implementation
+- Personal firewall
 
-   Priority: High
-   Complexity: C4
-   Owner: Daniel Wagner <daniel.wagner@bmw-carit.de>
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
+   Priority: Low
+   Complexity: C8
+   Owner: Tomasz Bursztyka <tomasz.bursztyka@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
+   Discuss and implement a basic and safe firewalling strategy into
+   Connman. Provide a D-Bus API for personal firewalling.
 
 
-- DNS caching
+- PACRunner extensions
 
    Priority: Low
    Complexity: C4
 
-   A simple initial implementation would see ConnMan's dnsproxy
-   caching the DNS record based on their TTL.
+   Support more URI schemes, support multiple connections, tighter
+   security integration.
 
 
-- Power management
+- Check logging produced by connman_info()
 
    Priority: Medium
-   Complexity: C4
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
+   Complexity: C1
 
-   Implement a simple device pm hook that ConnMan's core code would
-   use whenever it decides to put devices in power save mode. Although
-   the kernel runtime power management code should take care of that,
-   not all driver (especially WiFi ones) implement runtime PM hooks.
+   Check that logging produced by connman_info() contains meaningful messages
+   and get rid of the unnecessary ones.
 
 
-- IP ranges allocation and check
+- Remove --nobacktrace option
 
-   Priority: High
-   Complexity: C2
+   Priority: Medium
+   Complexity: C1
+   When: 2.0
 
-   For both tethering and private networks, but also to detect invalid
-   static IP configurations, we need to have a core IP range layer
-   that manages all currently used IP blocks.
+   Remove the --nobacktrace option or change it to --backtrace depending on
+   the level of systemd integration or other factors.
 
 
-- Personal firewall
+- Clean up data structure usage
 
-   Priority: Low
-   Complexity: C8
-   Owner: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
+   Priority: Medium
+   Complexity: C4
 
-   Discuss and implement a basic and safe firewalling strategy into
-   Connman. Provide a D-Bus API for personal firewalling.
+   Use hash tables, queues and lists in the code. Check on the currently used
+   data structures and see if something can be simplified.
 
 
-- PACRunner extensions
+- Unit tests for DHCP, DNS and HTTP
 
-   Priority: Low
+   Priority: Medium
    Complexity: C4
 
-   Support more URI schemes, support multiple connections, tighter
-   security integration.
+   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: Medium
+   Complexity: C2
 
+   Support other time sources like cellular, GPS in addition to NTP.
 
 
 WiFi
 ====
 
-- Ad-Hoc support
+- Clean up WiFi data structure usage
 
    Priority: Medium
    Complexity: C2
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
 
-
-- Fast Connect
-
-   Priority: Low
-   Complexity: C4
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
+   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
@@ -118,17 +117,26 @@ WiFi
    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
 =========
 
-- DUN client
-
-   Priority: Low
-   Complexity: C4
-   Owner: Mario Tokarz <mario.tokarz@bmw-carit.de>
+- 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
 ========
@@ -139,18 +147,51 @@ VPN
 
 - IPsec
 
-   Priority: Low
+   Priority: Medium
    Complexity: C4
+   Owner: Jukka Rissanen <jukka.rissanen@linux.intel.com>
+
+- 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.
 
-- Split tunnelling
+
+- 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: C8
-   Dependencies: Core:Private networks
+   Complexity: C2
+
+   The connmanctl command line tool should support Clock API and Service API
+   MoveBefore/MoveAfter.
+
+
+User Interface
+==============
+
+- GNOME3 UI
+
+   Priority: Low
+   Complexity: C4
+   Owner: Alok Barsode <alok.barsode@linux.intel.com>
 
-   The current VPN support puts the VPN interface at the top of the
-   service list, giving VPNs the default route. When doing split
-   tunneling, the system routes packet to the VPN interface for
-   private IPs, while going through the default interface for the rest
-   of the traffic.
+   A GNOME3 shell user interface would make it easier for mainstream distros
+   users to use ConnMan.