# Bluetooth software architecture The Bluetooth software architecture consists of open-source and Qualcomm proprietary software. The following figure shows how the user space and kernel space components interact through a socket interface. In the user space, the sample test applications interact with the BlueZ Bluetooth daemon to run Bluetooth functions.  **Figure : Bluetooth software architecture** The Bluetooth software architecture consists of the user space, the kernel space, and the Bluetooth controller. ## User space components The user space comprises the following Bluetooth applications, daemon, and interface layers. | Component | Description | | --- | --- | | Bluetooth daemon (bluetoothd) |
A central daemon.
Comprises data bus (DBUS) interfaces for the user interface and other subsystems.
Reduces exposure to low-level details.
Extends with plugins.
A test tool to verify Bluetooth functionality.
Provides options to verify using a command-line interface (CLI).
A proxy DBUS service for Media Player Remote Interfacing Specification (MPRIS).
A test tool to verify Object Exchange Protocol (OBEX) functionality.
A daemon for the OBEX profile.
Comprises DBUS interfaces for the user interface.
Provides a test application for HFP.
Searches for modem and then enables the HFP audio gateway role.
Dial
Answer
Create multiparty
Hold and answer
Swap
Release calls
A sound server for portable operating system interface (POSIX).
Facilitates advanced operations on sound data that passes between the applications and hardware.
Enables user space to control kernel operations.
Supports GAP functionalities such as adapter settings, device discovery, and device pairing.
Sends and receives HCI commands/events from the user space HCI component to the Qualcomm Bluetooth driver through the raw socket.
A layer in the Bluetooth protocol stack.
Defines how the host and the Bluetooth radio controller must interact.
Breaks large data packets into smaller frames for transmission. The destined component re-assembles the frames.
Handles quality-of-service (QoS) requirements.
Handles the Bluetooth general-purpose input/output (GPIO) configurations.
Enables or disables the regulators to turn the chip on or off.
Handles the download of Bluetooth patch and nonvolatile data during the Bluetooth on sequence.
Creates reliable and stream-based channels.
Has 30 ports. In contrast, the Transmission Control Protocol (TCP) has 65,535 ports.
An L2CAP connection encapsulates each RFCOMM connection.
Provides the means for client applications to discover the existing services provided by server applications.
Provides the attributes of services, which include the type or class of service offered, and the mechanism or protocol information required to use the service.
Configures, opens, and closes the SLIMbus ports for Bluetooth audio use cases.
A type of data link in Bluetooth.
Provides links that are point-to-point connections between a central device and a single peripheral device.
A teletype (TTY) serial driver facilitates communication with the Bluetooth controller.