TODO update
[platform/upstream/connman.git] / TODO
1 Background
2 ==========
3
4 - Priority scale: High, Medium and Low
5
6 - Complexity scale: C1, C2, C4 and C8.
7    The complexity scale is exponential, with complexity 1 being the
8    lowest complexity. Complexity is a function of both task 'complexity'
9    and task 'scope'.
10
11 Core
12 ====
13
14 - connman_element removal
15
16    Priority: Low
17    Complexity: C8
18
19
20 - DHCP lib server
21
22    Priority: High
23    Complexity: C4
24    Owner: Martin Xu <martin.xu@intel.com>
25
26
27 - On demand connection
28
29    Priority: Medium
30    Complexity: C4
31    Owner: Samuel Ortiz <sameo@linux.intel.com>
32
33    With on demand connection applications get connectivity access
34    simply by trying to reach the network. They don't need to
35    specifically request for a service connection, but ConnMan
36    establishes it on their behalf.
37    This feature counter part is idle disconnect. ConnMan needs to be
38    able to close the on demand established connections by monitoring
39    the link activity. This requires kernel support with e.g. the
40    netfilter IDLETIMER target.
41
42 - Avahi-zeroconf
43
44    Priority: Medium
45    Complexity: C4
46
47    The IPv4 Link Local part should be integrated into DHCP-lib.
48
49 - OpenVPN
50
51    Priority: Low
52    Complexity: C2
53
54
55 - VPNc
56
57    Priority: Low
58    Complexity: C2
59
60
61 - iptables wrapper
62
63    Priority: High
64    Complexity: C4
65    Owner: Samuel Ortiz <sameo@linux.intel.com>
66
67    ConnMan needs to be able to set iptables rules and tables for both
68    tethering and on demand connection.
69    The main idea is to define an internal API for talking to the
70    netfilter socket in order to set our tables and rules. Being in
71    sync with the actual iptables library might be problematic.
72    A less elegant solution would be a process based one, that would
73    simply call the iptables executable.
74
75 - Tethering
76
77    Priority: Medium
78    Complexity: C8
79    Owner: Marcel Holtmann <marcel@holtmann.org>
80    Dependencies: Core:iptables wrapper
81    Dependencies: Core:DHCP lib server
82
83    Bluetooth, USB and WiFi tethering.
84    The tethering framework would typically allow sharing the 3G data
85    link between WiFi, Bluetooth or USB clients.
86    A bridge needs to be setup and all tethering connections are added
87    to it. A DHCP server and a DNS proxy will be running on the bridge.
88    Then IP forwarding and masquerading will be set between the default
89    service and the bridge interface.
90
91
92 - Agent callbacks
93
94    Priority: Medium
95    Complexity: C2
96
97
98 - pacrunner
99
100    Priority: High
101    Complexity: C4
102    Owner: Mohamed Abbas <mohamed.abbas@intel.com>
103
104    pacrunner is a standalone daemon that downloads and interpret PAC
105    files through a JavaScript interpreter. Once the interpretation is
106    done, pacrunner is able to associate a proxy with an URL.
107    pacrunner D-Bus interface exports a configuration API for passing
108    it the PAC URLs. It also provide a FindProxyForURL() API for
109    application to know which proxies to use.
110    ConnMan will use pacrunner for both auto and manual proxy
111    configurations. Then applications should talk to pacrunner (through
112    libproxy for example) to find the right proxies.
113    ConnMan will also use the FindProxyForURL() pacruner API for a more
114    stable and accurate online detection code.
115
116
117 - Moving DNS proxy code to ConnMan core
118
119    Priority: Medium
120    Complexity: C2
121
122    Supporting DNS proxy or resolv.conf direct editing seems more than
123    plenty as far as resolving is concerned. So the idea is to move the
124    dnsproxy plugin code to ConnMan core and have an additional command
125    line option in case one would like to stick with the current
126    resolver.c code for editing resolv.conf.
127
128
129 WiFi
130 ====
131
132 - WPS
133
134    Priority: Low
135    Complexity: C2
136    Dependencies: Core:Agent callbacks
137
138
139 - Ad-Hoc support
140
141    Priority: Medium
142    Complexity: C2
143    Dependencies: Core:Avahi-zeroconf
144
145
146 - Fast Connect
147
148    Priority: Low
149    Complexity: C4
150    Dependencies: WiFi:libsupplicant
151    Owner: Samuel Ortiz <sameo@linux.intel.com>
152
153
154 - EAP-AKA/SIM
155
156    Priority: Medium
157    Complexity: C2
158    Owner: Samuel Ortiz <sameo@linux.intel.com>
159
160    This EAP is needed for SIM card based network authentication.
161    ConnMan here plays a minor role: Once wpa_supplicant is set up for
162    starting and EAP-AKA/SIM authentication, it will talk to a SIM card
163    through its pcsc-lite API.
164
165
166 - WiFi p2p
167
168    Priority: Medium
169    Complexity: C2
170
171
172 Bluetooth
173 =========
174
175 - DUN client
176
177    Priority: Low
178    Complexity: C4