~ubuntu-branches/ubuntu/wily/bluez/wily

« back to all changes in this revision

Viewing changes to TODO

ImportĀ upstreamĀ versionĀ 4.81

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Background
 
2
==========
 
3
 
 
4
- Priority scale: High, Medium and Low
 
5
 
 
6
- Complexity scale: C1, C2, C4 and C8.  The complexity scale is exponential,
 
7
  with complexity 1 being the lowest complexity.  Complexity is a function
 
8
  of both task 'complexity' and task 'scope'.
 
9
 
 
10
  The general rule of thumb is that a complexity 1 task should take 1-2 weeks
 
11
  for a person very familiar with BlueZ codebase.  Higher complexity tasks
 
12
  require more time and have higher uncertainty.
 
13
 
 
14
  Higher complexity tasks should be refined into several lower complexity tasks
 
15
  once the task is better understood.
 
16
 
 
17
Low Energy
 
18
==========
 
19
 
 
20
- Avoid Characteristic discovery for non connectable devices. Proper parsing
 
21
  of LE Advertising Report Event is missing. Event_Type field needs to be
 
22
  extracted and its value shall be considered before to start the LE
 
23
  connection on the channel 4. Characteristic discovery should not be
 
24
  started for non connectable devices.
 
25
 
 
26
  Priority: Medium
 
27
  Complexity: C2
 
28
 
 
29
- Advertising management. Adapter interface needs to be changed to manage
 
30
  connection modes, adapter type and advertising policy. See Volume 3,
 
31
  Part C, section 9.3. If Attribute Server is enabled the LE capable
 
32
  adapter shall to start advertising. Further investigation is necessary
 
33
  to define which connectable mode needs to be supported: Non-connectable,
 
34
  directed connectable and undirected connectable. Basically, two connectable
 
35
  scenarios shall be addressed:
 
36
  1. GATT client is disconnected, but intends to become a Peripheral to
 
37
     receive indications/notifications.
 
38
  2. GATT server intends to accept connections.
 
39
 
 
40
  Priority: Medium
 
41
  Complexity: C2
 
42
 
 
43
- Define Auto Connection Establishment Procedure. Some profiles such as
 
44
  Proximity requires an active link to identify path lost situation. It is
 
45
  necessary to define how to manage connections, it seems that White List
 
46
  is appropriated to address auto connections, however is not clear if the
 
47
  this procedure shall be a profile specific detail or if the remote device
 
48
  object can expose a property "WhiteList", maybe "Trusted" property can be
 
49
  also used for this purpose. Another alternative is to define a method to
 
50
  allow application to request/register the wanted scanning/connection
 
51
  parameters. Before start this task, a RFC/PATCH shall be sent to the ML.
 
52
  See Volume 3, Part C, section 9.3.5 for more information.
 
53
 
 
54
  Priority: Medium
 
55
  Complexity: C2
 
56
 
 
57
- Device Name Characteristic is a GAP characteristic for Low Energy. This
 
58
  characteristic shall be integrated/used in the discovery procedure. The
 
59
  ideia is to report the value of this characteristic using DeviceFound signals.
 
60
  Discussion with the community is needed before to start this task. Other GAP
 
61
  characteristics for LE needs to follow a similar approach. It is not clear
 
62
  if all GAP characteristics can be exposed using properties instead of a primary
 
63
  service characteristics.
 
64
  See Volume 3, Part C, section 12.1 for more information.
 
65
 
 
66
  Priority: Low
 
67
  Complexity: C2
 
68
 
 
69
ATT/GATT
 
70
========
 
71
 
 
72
- Add ATT/GATT parsing to hcidump
 
73
 
 
74
  Priority: Medium
 
75
  Complexity: C2
 
76
 
 
77
- GATT server: fix MTU exchange
 
78
 
 
79
  Priority: Medium
 
80
  Complexity: C2
 
81
 
 
82
- GATT server: fix read by UUID (read by handle works)
 
83
 
 
84
  Priority: Medium
 
85
  Complexity: C2
 
86
 
 
87
- gatttool: add an interactive command prompt mode. Many LE devices
 
88
  expect the connection to stay up a long time and disable advertising
 
89
  after a disconnection so it's inconvenient to use gatttool in the
 
90
  current "single operation at a time" mode.
 
91
 
 
92
  Priority: Medium
 
93
  Complexity: C2
 
94
 
 
95
- gatttool should have the ability to wait for req responses before
 
96
  quitting (some servers require a small sleep even with cmd's). Maybe a
 
97
  --delay-exit or --timeout command line switch.
 
98
 
 
99
  Priority: Low
 
100
  Complexity: C1
 
101
 
 
102
- Client needs to export a property in the Device Characteristic hierarchy
 
103
  to manage characteristic value changes reports in the remote device.
 
104
  Currently, Client Characteristic Configuration attribute is not exposed
 
105
  as an object. The user needs to use gatttool to change the value of the
 
106
  this attribute to receive notification/indications. Export this attribute
 
107
  as a property is a proposal that needs further discussion.
 
108
 
 
109
  Priority: Low
 
110
  Complexity: C1
 
111
 
 
112
- Attribute server should process queued GATT/ATT commands if the
 
113
  client disconnects. The client can simply send a command and quit,
 
114
  without wait for a response(ex: Write Command). For this scenario
 
115
  that the client disconnects the link quickly the queued received
 
116
  command is ignored.
 
117
 
 
118
  Priority: Low
 
119
  Complecity: C1
 
120
 
 
121
- Add sdp discovery support to gattool with BR (--sdp, default is 0x1f)
 
122
 
 
123
  Priority: Low
 
124
  Complexity: C1
 
125
 
 
126
- Implement Server characteristic Configuration support in the attribute
 
127
  server to manage characteristic value broadcasting. There is a single
 
128
  instance of the Server Characteristic Configuration for all clients.
 
129
  See Volume 3, Part G, section 3.3.3.4 for more information.
 
130
 
 
131
  Priority: Low
 
132
  Complexity: C1
 
133
 
 
134
- Long reads/writes don't work (consisting of multiple request packets)
 
135
 
 
136
  Priority: Low
 
137
  Complexity: C2
 
138
 
 
139
- Attribute server shall implement attribute permission verification,
 
140
  returning an error code if necessary. See Volume 3, Part F, 3.2.5
 
141
  for more information.
 
142
 
 
143
  Priority: Low
 
144
  Complexity: C2
 
145
 
 
146
- Implement Client Characteristic Configuration support in the attribute
 
147
  server to manage indications and notications. This is a per client attribute
 
148
  to control how the client wants to receive reports of changes in a given
 
149
  characteristic value.
 
150
  See Volume 3, Part G, section 3.3.3.3 for more information
 
151
 
 
152
  Priority: Low
 
153
  Complexity: C2
 
154
 
 
155
- Define attribute server API. External applications needs to register,
 
156
  change attributes and to be notified about changes. Example: Proximity,
 
157
  Time and Alert Profiles. "Local Service hierarchy" in the attribute-api
 
158
  needs to be proposed and a RFC shall be sent to the ML.
 
159
 
 
160
  Priority: Low
 
161
  Complexity: C2
 
162
 
 
163
- gattrib needs to be extended to handle Attribute Protocol Transactions
 
164
  timeout. See Volume 3, Part F, section 3.3.3 and Part G, section 4.14
 
165
  for more information.
 
166
 
 
167
  Priority: Low
 
168
  Complexity: C2