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

  The general rule of thumb is that a complexity 1 task should take 1-2 weeks
  for a person very familiar with BlueZ codebase.  Higher complexity tasks
  require more time and have higher uncertainty.

  Higher complexity tasks should be refined into several lower complexity tasks
  once the task is better understood.

General
=======

- UUID handling: Use the new functions created for UUID handling in all parts
  of BlueZ code.  Currently, the new bt_uuid_* functions are being used by
  GATT-related code only.

  Priority: high
  Complexity: C4

- Update PBAP client/server implementation to 1.2 and create necessary APIs for
  new features it introduces.

  Priority: Medium
  Complexity: C4

- Create GOEP unit tests based on its test specification:

  https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=230559

  Priority: Medium
  Complexity: C2

- Function in src/adapter.c to convert old storage files to new ini-file format
  should be removed 6-8 months after first BlueZ 5 release.

  Priority: Low
  Complexity: C1

- Remove usage of symlinks for drivers, such as profiles/input/suspend.c and
  profiles/sap/sap.c. Instead, select drivers at runtime by using config
  options or probing for running D-Bus services (using e.g.
  g_dbus_add_service_watch()). Idea first mentioned on
  http://thread.gmane.org/gmane.linux.bluez.kernel/30175/focus=30190.

- Reuse connection handling code of src/profile.c also for built-in profiles
  so plugins would only need to register their btd_profile and the core takes
  care of the rest including listen to the right channel and manages the sdp
  record. Once btd_profile manages the connection it can also notify about
  their state, this probably remove the need of having callbacks to
  .connect/.disconnect since their state can be tracked, it also enables any
  plugin to track any profile state change which can be useful for e.g.
  a connection policy plugin in case one is needed.

  Priority: Low
  Complexity: C2

Low Energy
==========

- Advertising management. Adapter interface needs to be changed to manage
  connection modes, adapter type and advertising policy. See Volume 3,
  Part C, section 9.3. If Attribute Server is enabled the LE capable
  adapter shall to start advertising. Further investigation is necessary
  to define which connectable mode needs to be supported: Non-connectable,
  directed connectable and undirected connectable. Basically, two connectable
  scenarios shall be addressed:
  1. GATT client is disconnected, but intends to become a Peripheral to
     receive indications/notifications.
  2. GATT server intends to accept connections.

  Priority: Medium
  Complexity: C2

- Static random address setup and storage. Once this address is written
  in a given remote, the address can not be changed anymore.

  Priority: Low
  Complexity: C1

- Device Name Characteristic is a GAP characteristic for Low Energy. This
  characteristic shall be integrated/used in the discovery procedure. The
  idea is to report the value of this characteristic using DeviceFound signals.
  Discussion with the community is needed before to start this task. Other GAP
  characteristics for LE needs to follow a similar approach. It is not clear
  if all GAP characteristics can be exposed using properties instead of a primary
  service characteristics.
  See Volume 3, Part C, section 12.1 for more information.

  Priority: Low
  Complexity: C2

ATT/GATT (new shared stack)
===========================

- shared/att currently doesn't handle signed writes. It should be extended to
  support signing outgoing and verify incoming ATT PDUs.

  Priority: Medium
  Complexity: C1

- Add complete GATT test coverage in unit/test-gatt following the GATT test
  spec. This could use shared/gatt-client and shared/gatt-server at the same
  time to test both against eachother. We should definitely have tests for
  gatt-server and gatt-client simultaneously on one side of the connection.

  Priority: High
  Complexity: C4

- Define packed structs for ATT protocol PDUs in shared/att-types to improve
  readability. We should probably do this once there are extensive unit tests
  for gatt-client/gatt-server so that we don't accidentally break working code.

  Priority: Medium
  Complexity: C2

- Use struct iovec to pass around byte buffers that will be sent over the wire,
  instead of passing uint8_t and size_t parameters everywhere.

  Priority: Medium
  Complexity: C1

- Introduce a handler interface to shared/gatt-client which can be used by the
  upper layer to determine when the link has been disconnected or an ATT
  protocol request times out.

  Priority: Medium
  Complexity: C2

- Introduce long-term caching of attributes to shared/gatt-client, such that the
  services, characteristics, and descriptors obtained from a peripheral are
  remembered in the case of bonding. This may involve storing data about GATT
  services to disk.

  Priority: Low
  Complexity: C4

- Move all daemon plugins and profiles that are GATT based to use
  shared/gatt-client instead of attrib/*. This is a complicated task that
  potentially needs a new plugin/profile probing interface and a lot of
  rewriting that can cause regressions in existing functionality. The biggest
  challenge here is that an instance of bt_att (shared/att) and GAttrib
  (attrib/gattrib) cannot coexist on the same file descriptor, since they will
  cause ATT protocol violations by breaking the sequential request-response
  structure. A special shared/gatt-client-gattrib implementation may be
  necessary to move each profile/plugin to the new API before actually switching
  to the shared/att based implementation.

  Priority: Medium
  Complexity: C4

- Implement the client portion of doc/gatt-api.txt using shared/gatt-client once
  plugin/profile code uses it.

  Priority: Medium
  Complexity: C2

- Introduce a way for shared/gatt-server to check security permissions on the
  current connection through bt_att.

  Priority: Medium
  Complexity: C2

- Implement other low-priority ATT protocol operations for shared/gatt-server:

      Read Multiple Request

  Priority: Low
  Complexity: C1

- Implement the server portion of doc/gatt-api.txt using shared/gatt-server once
  it exists.

  Priority: Medium
  Complexity: C4

ATT/GATT (old/outdated)
=======================

- At the moment authentication and authorization is not supported at the
  same time, read/write requirements in the attribute server needs to
  be extended. According to Bluetooth Specification a server shall check
  authentication and authorization requirements before any other check is
  performed.

  Priority: Medium
  Complexity: C1

- Implement ATT PDU validation. Malformed PDUs can cause division by zero
  when decoding PDUs. A proper error PDU should be returned for this case.
  See decoding function in att.c file.

  Priority: Medium
  Complexity: C1

- Refactor read_by_group() and read_by_type() in src/attrib-server.c
  (they've grown simply too big). First step could be to move out the
  long for-loops to new functions called e.g. get_groups() and get_types().

  Priority: Low
  Complexity: C1

- Agent for characteristics: Agent interface should be extended to support
  authorization per characteristic if the remote is not in the trusted list.

  Priority: Low
  Complexity: C1

- gatttool should have the ability to wait for req responses before
  quitting (some servers require a small sleep even with cmd's). Maybe a
  --delay-exit or --timeout command line switch.

  Priority: Low
  Complexity: C1

- Client needs to export a property in the Device Characteristic hierarchy
  to manage characteristic value changes reports in the remote device.
  Currently, Client Characteristic Configuration attribute is not exposed
  as an object. The user needs to use gatttool to change the value of the
  this attribute to receive notification/indications. Export this attribute
  as a property is a proposal that needs further discussion.

  Priority: Low
  Complexity: C1

- Attribute server should process queued GATT/ATT commands if the
  client disconnects. The client can simply send a command and quit,
  without wait for a response(ex: Write Command). For this scenario
  that the client disconnects the link quickly the queued received
  command is ignored.

  Priority: Low
  Complecity: C1

- Implement Server characteristic Configuration support in the attribute
  server to manage characteristic value broadcasting. There is a single
  instance of the Server Characteristic Configuration for all clients.
  See Volume 3, Part G, section 3.3.3.4 for more information.

  Priority: Low
  Complexity: C1

- Long write is not implemented. Attribute server, client and command line
  tool shall be changed to support this feature.

  Priority: Low
  Complexity: C2

Management Interface
====================
