Supported features in BlueZ
===========================

Note that some profiles/roles will depend on external components such as
oFono or ConnMan.

Profile/protocol	Version		Role(s)
---------------------------------------------------------------------------

GAP			4.2		(LE) Central, Peripheral,
						Observer, Broadcaster
L2CAP			4.2		Server, Client
SDP			4.2		Server, Client
GATT			4.2		Server, Client
SDAP			1.1		Server, Client
RFCOMM			1.1		Server, Client
SPP			1.2		Server, Client

PXP			1.0		Reporter, Monitor
HOGP			1.0		Host
HTP			1.0
TIP			1.0
CSCP			1.0		Collector

SAP			1.1		Server
DUN			1.1		Server, Client

DID			1.3		Server, Client

HFP			1.6		AG, HF
HSP			1.2		AG, HS
GAVDTP			1.2		Source, Sink
AVDTP			1.3		Source, Sink
A2DP			1.3		Source, Sink
AVCTP			1.3		CT, TG
AVRCP			1.5		CT, TG

GOEP			2.0		Client, Server
FTP			1.2		Client, Server
OPP			1.2		Client, Server
SYNCH			1.1		Client
PBAP			1.1		Client, Server
MAP			1.0		Client, Server

HID			1.1		Host

BNEP			1.0
PAN			1.0		PANU, NAP, GN

HCRP			1.2

MCAP			1.0
HDP			1.0
