summaryrefslogtreecommitdiff
path: root/TODO
blob: 62baae4cef955fcc0a8050bacbe826e68e5b53b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
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
====

- connman_element removal

   Priority: Low
   Complexity: C8


- DHCP lib server

   Priority: High
   Complexity: C4
   Owner: Martin Xu <martin.xu@intel.com>


- On demand connection

   Priority: Medium
   Complexity: C4
   Owner: Samuel Ortiz <sameo@linux.intel.com>

   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

   Priority: Medium
   Complexity: C4

   The IPv4 Link Local part should be integrated into DHCP-lib.

- OpenVPN

   Priority: Low
   Complexity: C2


- VPNc

   Priority: Low
   Complexity: C2


- iptables wrapper

   Priority: High
   Complexity: C4
   Owner: Samuel Ortiz <sameo@linux.intel.com>

   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

   Priority: Medium
   Complexity: C8
   Owner: Marcel Holtmann <marcel@holtmann.org>
   Dependencies: Core:iptables wrapper
   Dependencies: Core:DHCP lib server

   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.


- Agent callbacks

   Priority: Medium
   Complexity: C2


- pacrunner

   Priority: High
   Complexity: C4
   Owner: Mohamed Abbas <mohamed.abbas@intel.com>

   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.


- Moving DNS proxy code to ConnMan core

   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.


WiFi
====

- WPS

   Priority: Low
   Complexity: C2
   Dependencies: Core:Agent callbacks


- Ad-Hoc support

   Priority: Medium
   Complexity: C2
   Dependencies: Core:Avahi-zeroconf


- Fast Connect

   Priority: Low
   Complexity: C4
   Dependencies: WiFi:libsupplicant
   Owner: Samuel Ortiz <sameo@linux.intel.com>


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


- EAP-Fast

   Priority: Low
   Complexity: C1
   Owner: Samuel Ortiz <sameo@linux.intel.com>


- EAP-GTC

   Priority: Low
   Complexity: C1
   Owner: Samuel Ortiz <sameo@linux.intel.com>


- WiFi p2p

   Priority: Medium
   Complexity: C2


- WiFi CRDA setting through 3G country

   Priority: Low
   Complexity: C2
   Owner: Samuel Ortiz <sameo@linux.intel.com>

   Setting the 802.11 country based on the 3G MNC/MCC.


Bluetooth
=========

- DUN client

   Priority: Low
   Complexity: C4


- DUN server

   Priority: Low
   Complexity: C4