blob: dac2ea27666eb248273bcd5b095614ef588baa59 [file] [log] [blame]
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