Tethering: Add tethering interfaces description to technology-api.txt
[platform/upstream/connman.git] / TODO
diff --git a/TODO b/TODO
index 52b9773..8036538 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,171 +8,190 @@ Background
    lowest complexity. Complexity is a function of both task 'complexity'
    and task 'scope'.
 
+
 Core
 ====
 
-- connman_element removal
+- 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.
 
 
-- DHCP lib server
+- PACRunner extensions
 
-   Priority: High
+   Priority: Low
    Complexity: C4
-   Owner: Martin Xu <martin.xu@intel.com>
 
+   Support more URI schemes, support multiple connections, tighter
+   security integration.
 
-- On demand connection
+
+- Check logging produced by connman_info()
 
    Priority: Medium
-   Complexity: C4
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
+   Complexity: C1
+
+   Check that logging produced by connman_info() contains meaningful messages
+   and get rid of the unnecessary ones.
 
-   With on demand connection applications get connectivity access
-   simply by trying to reach the network. They don't need to
-   specifically request for a service connection, but ConnMan
-   establishes it on their behalf.
-   This feature counter part is idle disconnect. ConnMan needs to be
-   able to close the on demand established connections by monitoring
-   the link activity. This requires kernel support with e.g. the
-   netfilter IDLETIMER target.
 
-- Avahi-zeroconf
+- 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
 
-   The IPv4 Link Local part should be integrated into DHCP-lib.
+   Use hash tables, queues and lists in the code. Check on the currently used
+   data structures and see if something can be simplified.
 
-- OpenVPN
 
-   Priority: Low
-   Complexity: C2
+- Unit tests for DHCP, DNS and HTTP
 
+   Priority: Medium
+   Complexity: C4
 
-- VPNc
+   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.
 
-   Priority: Low
-   Complexity: C2
 
+- Support other time sources than NTP
 
-- iptables wrapper
+   Priority: Medium
+   Complexity: C2
 
-   Priority: High
-   Complexity: C4
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
+   Support other time sources like cellular, GPS in addition to NTP.
 
-   ConnMan needs to be able to set iptables rules and tables for both
-   tethering and on demand connection.
-   The main idea is to define an internal API for talking to the
-   netfilter socket in order to set our tables and rules. Being in
-   sync with the actual iptables library might be problematic.
-   A less elegant solution would be a process based one, that would
-   simply call the iptables executable.
 
-- Tethering
+WiFi
+====
+
+- Clean up WiFi data structure usage
 
    Priority: Medium
-   Complexity: C8
-   Owner: Marcel Holtmann <marcel@holtmann.org>
-   Dependencies: Core:iptables wrapper
-   Dependencies: Core:DHCP lib server
+   Complexity: C2
 
-   Bluetooth, USB and WiFi tethering.
-   The tethering framework would typically allow sharing the 3G data
-   link between WiFi, Bluetooth or USB clients.
-   A bridge needs to be setup and all tethering connections are added
-   to it. A DHCP server and a DNS proxy will be running on the bridge.
-   Then IP forwarding and masquerading will be set between the default
-   service and the bridge interface.
+   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.
 
 
-- Agent callbacks
+- 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.
 
-- pacrunner
 
-   Priority: High
-   Complexity: C4
-   Owner: Mohamed Abbas <mohamed.abbas@intel.com>
+- EAP-FAST
 
-   pacrunner is a standalone daemon that downloads and interpret PAC
-   files through a JavaScript interpreter. Once the interpretation is
-   done, pacrunner is able to associate a proxy with an URL.
-   pacrunner D-Bus interface exports a configuration API for passing
-   it the PAC URLs. It also provide a FindProxyForURL() API for
-   application to know which proxies to use.
-   ConnMan will use pacrunner for both auto and manual proxy
-   configurations. Then applications should talk to pacrunner (through
-   libproxy for example) to find the right proxies.
-   ConnMan will also use the FindProxyForURL() pacruner API for a more
-   stable and accurate online detection code.
+   Priority: Low
+   Complexity: C1
 
 
-- Moving DNS proxy code to ConnMan core
+- WiFi p2p
 
    Priority: Medium
    Complexity: C2
 
-   Supporting DNS proxy or resolv.conf direct editing seems more than
-   plenty as far as resolving is concerned. So the idea is to move the
-   dnsproxy plugin code to ConnMan core and have an additional command
-   line option in case one would like to stick with the current
-   resolver.c code for editing resolv.conf.
 
+- Removing wpa_supplicant 0.7.x legacy support
 
-WiFi
-====
+  Priority: Low
+  Complexity: C1
+  Owner: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
 
-- WPS
+  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)
 
-   Priority: Low
-   Complexity: C2
-   Dependencies: Core:Agent callbacks
+Bluetooth
+=========
 
+- Remove Bluez 4.x support
 
-- Ad-Hoc support
+  Priority: Low
+  Complexity: C1
 
-   Priority: Medium
-   Complexity: C2
-   Dependencies: Core:Avahi-zeroconf
+  Remove plugins/bluetooth-legacy.c support in about 6 month (July 2013) or
+  when Bluez 4.x usage becomes minimal.
 
+Cellular
+========
 
-- Fast Connect
 
-   Priority: Low
+VPN
+===
+
+- IPsec
+
+   Priority: Medium
    Complexity: C4
-   Dependencies: WiFi:libsupplicant
-   Owner: Samuel Ortiz <sameo@linux.intel.com>
+   Owner: Jukka Rissanen <jukka.rissanen@linux.intel.com>
 
+- L2TP & PPTP compatibility prefix removal
 
-- EAP-AKA/SIM
+   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
-   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.
+   Update VPNC and OpenVPN with VPN Agent support to request possible user
+   ids and passphrases.
 
 
-- WiFi p2p
+Tools
+=====
 
-   Priority: Medium
+- 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.
 
-Bluetooth
-=========
 
-- DUN client
+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.