doc: Add experimental GATT API

This patch proposes an unified GATT API for local and remote services.
gatt: Add stub for gatt.{c, h} files

These files implement functions to handle ATT transactions, and expose
functions to allow other entities to manage GATT based services. It
is a replacement for src/attrib-server.c.
gatt: Register Manager D-Bus Interface

This patch registers GATT Service Manager D-Bus Interface. This
interface implements the methods to allow external application register
and unregister GATT Services.
gatt: Add registering external service

This patch allows external applications register a given service on
Bluez. Applications must provide an object path and a dictionary of
options. Options dictionary will be used later to provide additional
service information.
lib: Move GATT UUID to uuid.h

This patch moves GATT UUIDs definitions to a common header. uuid.h contains
helper functions to manipulate Bluetooth UUIDs and some common BR/EDR services
UUIDs.
gatt: Add helper for creating GATT services

This patch adds the btd_gatt_add_service() helper which adds a
GATT Service declaration to the local attribute database.
gatt: Add external services tracking

All primary services declarations provided by an external application
will be automatically inserted in the attribute database.
gatt: Add server unix socket

This patch adds a server unix socket to handle local ATT traffic. This
is a development purpose feature used to allow local testing without
breaking the current attribute server.
gattrib: Use default ATT LE MTU for non-standard sockets

This patch forces the MTU to 23 (default ATT MTU) if the transport
is not Bluetooth. This is a development purpose change to allow
testing GATT procedures over non-Bluetooth sockets.
gatt: Register ATT command/event handler

This patch registers the ATT channel handler to manage incoming ATT
commands and events.
gatt: Add Discover All Primary Services

This patch adds ATT Read By Group request handling to the attribute
server. It is the primitive to implement Discover All Primary Services
procedure.
test: Add external service GATT skeleton

This patch adds the initial code for an external GATT service example.
It implements the API defined at doc/gatt-api.txt
gitignore: Add test/gatt-service
test: Add signal handling for gatt-service

This patch implements signal handling to run cleanup tasks before
exiting.
test: Add registering external service

This patch extends gatt-service to call RegisterService() when org.bluez
service gets connected to the system bus.
gatttool: Add unix socket connect

This patch adds the initial support for GATT procedures over unix
socket transport on command line mode (one-shot command). Temporary
solution to allow local GATT procedures testing.
gatttool: Add unix socket support for interactive mode

This patch allows running GATT operations over unix socket on
interactive mode.
bluetooth.conf: Add ObjectManager interface
gatt: Add helper for removing GATT services

This patch adds the btd_gatt_remove_service() helper which removes a GATT
primary (or secondary) Service declaration (including its characteristics)
from the local attribute database.
gatt-dbus: Add multiple services per application

This patch allows one application to register more than one GATT
service. Only one GDBusClient object will be created for each external
application.