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