4
- Priority scale: High, Medium and Low
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'.
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.
14
Higher complexity tasks should be refined into several lower complexity tasks
15
once the task is better understood.
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.
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.
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.
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.
72
- Add ATT/GATT parsing to hcidump
77
- GATT server: fix MTU exchange
82
- GATT server: fix read by UUID (read by handle works)
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.
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.
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.
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
121
- Add sdp discovery support to gattool with BR (--sdp, default is 0x1f)
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.
134
- Long reads/writes don't work (consisting of multiple request packets)
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.
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
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.
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.