Part E. Host Controller Interface Functional Specification
vAtlanta r00
This Part describes the functional specification for the Host Controller interface (HCI). The HCI provides a uniform command interface to a Controller.
1. Introduction
This Part of the specification describes the functional specifications for the Host Controller interface (HCI). The HCI provides a uniform command method for the Host to access Controller capabilities and to control connections to other Controllers. For the BR/EDR or LE Controller, these commands typically involve the Link Manager (LM) to exchange LMP commands or the Link Layer (LL) to exchange LL Control packets with remote Bluetooth devices. For details, see [Vol 2] Part C, Link Manager Protocol Specification and [Vol 6] Part B, Link Layer Specification.
The HCI layer spans the boundary between the Host and Controller. As a result, HCI has two roles: the Upper HCI, used by and residing within the Host, and the Lower HCI, used by and residing within the Controller.
The rest of this section provides a brief overview of the lower layers of the Bluetooth software stack and of the Bluetooth hardware. Section 2 provides an overview of the Host Controller Transport Layer. Section 3 lists the HCI commands and events and specifies the support requirements on different types of implementation. Section 4 describes the flow control used between the Host and the Controller. Section 5 describes the various data formats used by HCI. Section 6 further describes certain parameters that are common to several commands. Section 7 describes each of the HCI commands in detail, identifies parameters for each of the commands, and lists events associated with each command.
The specification is applicable to the following types of Controllers:
BR/EDR Controller
BR/EDR/LE Controller
LE Controller
In the following sections, the term “BR/EDR Controller” is used to describe the BR/EDR functionality of a Controller which may be either a BR/EDR only Controller or a BR/EDR/LE Controller. Similarly, the term “LE Controller” is used to describe the LE functionality of a Controller which may be either an LE only Controller or a BR/EDR/LE Controller.
1.1. Lower Layers of the Bluetooth software stack
Figure 1.1 provides an overview of the lower software layers.
Several layers may exist between the Upper HCI and the Lower HCI. These intermediate layers, collectively the "Host Controller Transport Layer", provide the ability to transfer data without intimate knowledge of the data.
Figure 1.2 illustrates the path of a data transfer from one device to another. The Upper HCI on the Host exchanges data and commands with the Lower HCI on the Bluetooth hardware. The Host Controller Transport Layer provides both HCI roles with the ability to exchange information with each other.
The Host will receive asynchronous notifications of HCI events independent of which Host Controller Transport Layer is used. HCI events are used for notifying the Host when something occurs. When the Host discovers that an event has occurred it will then parse the received event packet to determine which event occurred.
A BR/EDR/LE Controller uses one shared command buffer and flow control for BR/EDR and LE. Data buffers can be either shared between BR/EDR and LE or there may be separate data buffers for BR/EDR and LE. The configuration of a Controller is determined through HCI.
1.2. Cross-version issues
The Host and Controller communicating through HCI are not required to support the same version of this specification (see [Vol 0] Part D, Section 4).
If the Controller conforms to a newer version of the specification than the Host, events (including HCI_Command_Status and HCI_Command_Complete) may include values that are reserved for future use in the version supported by the Host. In the case of the Status parameter of the HCI_Command_Status and HCI_Command_Complete events, a value that is reserved for future use must be treated as if it were the error code Unspecified Error (0x1F) (see [Vol 1] Part F, Section 1.3). In all other circumstances the Host must obey the requirements for devices receiving reserved values (see [Vol 1] Part E, Section 2.4).
Note
Note: If the Host conforms to a newer version of the specification than the Controller and uses a command feature that is not part of the older specification version, then the Controller will report an error. Failure to handle such errors could result in unexpected behavior.
2. Overview of Host Controller transport layer
The Host driver stack has a transport layer between the Host Controller Interface driver and the Host.
The main goal of this transport layer is transparency. The Host Controller Interface driver (which interfaces to the Controller) should be independent of the underlying transport technology. In addition, the transport should not require any understanding of the data that the Host Controller Interface driver passes to the Controller. This allows the logical interface (HCI) or the Controller to be upgraded without affecting the transport layer.
The specified Host Controller Transport Layers are described in the other parts of Volume 4.
2.1. [This section is no longer used]
3. Overview of commands and events
The commands and events are sent between the Host and the Controller.
Table 3.1 lists each HCI command and event together with specification version information, a summary description, and the support requirements.
A command or event may have more than one version. All versions of a command or event implement the same basic functionality but with detail differences, such as additional parameters relating to newer features. The different versions are indicated by "[v1]", etc. where necessary; if no version number is given, a reference to the command or event applies to all versions.
The specification version information gives the version number of the specification which first specified this command or event or, where more than one specification version number is shown, each version of this command or event.
Table 3.1 lists the requirements for a Controller to support each command or event or version thereof. Subject to Section 3.2, a Controller shall support the command or event if it is shown as mandatory for at least one of the transports (i.e., BR/EDR or LE) that the Controller supports, otherwise the Controller may support the command or event if it is shown as optional for at least one of the transports that the Controller supports, otherwise it shall not support the command or event. If the command or event has more than one version, then this determination is made for each version separately using the requirements listed in the table for that version. The LMP features mentioned in the conditions are defined in [Vol 2] Part C, Section 3.2 and the Link Layer features in [Vol 6] Part B, Section 4.6.
Name | Vers. | Summary Description | BR/EDR | LE |
---|---|---|---|---|
1.1 | The HCI_Accept_Connection_Request command is used to accept a new incoming BR/EDR connection request. | M | E | |
1.2 | The HCI_Accept_Synchronous_Connection_Request command is used to accept an incoming request for a synchronous connection and to inform the local Link Manager about the acceptable parameter values for the synchronous connection. | C.134 | E | |
4.1 | The HCI_Authenticated_Payload_Timeout_Expired event is used to indicate that a packet containing a valid MIC on the Handle was not received within the authenticatedPayloadTO. | C.155 | C.155 | |
1.1 | The HCI_Authentication_Complete event occurs when authentication has been completed for the specified connection. | C.101 | E | |
1.1 | The HCI_Authentication_Requested command is used to establish authentication between the two devices associated with the specified Connection_Handle. | O | E | |
1.1 | The HCI_Change_Connection_Link_Key command is used to force both devices of a connection associated to the Connection_Handle, to generate a new link key. | O | E | |
1.1 | The HCI_Change_Connection_Link_Key_Complete event is used to indicate that the change in the Link Key for the Connection_Handle specified by the Connection_Handle parameter had been completed. | C.102 | E | |
1.1 | The HCI_Change_Connection_Packet_Type command is used to change which packet types can be used for a connection that is currently established. | C.133 | E | |
1.1 | The HCI_Command_Complete event is used by the Controller to pass the return status of a command and the other parameters for each HCI command. | M | M | |
1.1 | The HCI_Command_Status event is used to indicate that the command described by the Command_Opcode parameter has been received and the Controller is currently performing the task for this command. | M | M | |
5.2 | The HCI_Configure_Data_Path command is used by a Host to configure a data path to enable codec operation in the Controller. | C.156 | C.156 | |
1.1 | The HCI_Connection_Complete event indicates to both of the Hosts forming the connection that a new BR/EDR connection has been established. | M | E | |
1.1 | The HCI_Connection_Packet_Type_Changed event is used to indicate the completion of the process of the Link Manager changing the packet type mask used for the specified Connection_Handle. | C.133 | E | |
1.1 | The HCI_Connection_Request event is used to indicate that a new incoming BR/EDR connection is trying to be established. | M | E | |
Connectionless Peripheral Broadcast Channel Map Change event | CSA4 | The HCI_Connectionless_Peripheral_Broadcast_Channel_Map_Change event indicates to the Host that the BR/EDR Controller has moved to a new AFH channel map for the PBD logical link. | C.201 | E |
CSA4 | The HCI_Connectionless_Peripheral_Broadcast_Receive event provides the Host with the data received from a Connectionless Peripheral Broadcast packet. | C.202 | E | |
CSA4 | On the Connectionless Peripheral Broadcast Receiver, the HCI_Connectionless_Peripheral_Broadcast_Timeout event indicates to the Host that the BR/EDR Controller has lost synchronization with the Connectionless Peripheral Broadcast Transmitter. On the Connectionless Peripheral Broadcast Transmitter, the HCI_Connectionless_Peripheral_Broadcast_Timeout event indicates to the Host that the BR/EDR Controller has been unable to transmit a Connectionless Peripheral Broadcast packet for the timeout interval specified in the HCI_Set_Connectionless_Peripheral_Broadcast command. | C.202 | E | |
1.2 | The HCI_Create_Connection_Cancel command is used to cancel an ongoing Create Connection. | M | E | |
1.1 | The HCI_Create_Connection command will cause the BR/EDR Link Manager to create an ACL connection to the BR/EDR Controller with the BD_ADDR specified by the parameters. | M | E | |
1.1 | The HCI_Data_Buffer_Overflow event is used to indicate that the Controller's data buffers have overflowed, because the Host has sent more packets than allowed. | O | O | |
CSA4 | The HCI_Delete_Reserved_LT_ADDR command requests that the BR/EDR Controller cancel the reservation of a specific LT_ADDR reserved for the purposes of Connectionless Peripheral Broadcast. | C.201 | E | |
1.1 | The HCI_Delete_Stored_Link_Key command provides the ability to remove one or more of the link keys stored in the Controller. | C.121 | E | |
1.1 | The HCI_Disconnect command is used to terminate an existing BR/EDR or LE connection. | M | C.3 | |
1.1 | The HCI_Disconnection_Complete event occurs when a connection has been terminated. | M | C.3 | |
1.1 | The HCI_Enable_Implementation_Under_Test_Mode command will allow the local Controller to enter test mode via LMP test commands. The Host issues this command when it wants the local device to be the IUT for the Testing scenarios as described in the Bluetooth Test Mode document. | C.123 | E | |
1.1 5.3 | The HCI_Encryption_Change event is used to indicate that the change in encryption has been completed for the specified Connection_Handle. | [v1] M [v2] C.158 | [v1] C.4 [v2] C.56 | |
2.1 + EDR | The HCI_Encryption_Key_Refresh_Complete event is used to indicate to the Host that the encryption key was refreshed on the given Connection_Handle any time encryption is paused and then resumed. | M | C.4 | |
CSA2 | The HCI_Enhanced_Accept_Synchronous_Connection_Request command is used to accept an incoming request for a synchronous connection and to inform the local Link Manager about the acceptable parameter values for the synchronous connection. | C.135 | E | |
2.1 + EDR | The HCI_Enhanced_Flush command is used to discard specific packets currently pending for transmission in the Controller for the specified Handle. This command takes a parameter specifying the type of packets to be flushed. | M | E | |
2.1 + EDR | The HCI_Enhanced_Flush_Complete event is used to indicate that an Enhanced Flush is complete. | M | E | |
CSA2 | The HCI_Enhanced_Setup_Synchronous_Connection command adds a new or modifies an existing synchronous logical transport (SCO or eSCO) on a physical link depending on the Connection_Handle parameter specified. | C.135 | E | |
1.1 | The HCI_Exit_Periodic_Inquiry_Mode command is used to end the Periodic Inquiry mode when the local device is in Periodic Inquiry Mode. | C.103 | E | |
1.1 | The HCI_Exit_Sniff_Mode command is used to end Sniff mode for a Connection_Handle which is currently in Sniff mode. | C.214 | E | |
2.1 + EDR | The HCI_Extended_Inquiry_Result event indicates that a BR/EDR Controller has responded with an extended inquiry response during the current Inquiry process. | C.147 | E | |
1.2 | The HCI_Flow_Specification command is used to specify the flow parameters for the traffic carried over the ACL connection identified by the Connection_Handle. | M | E | |
1.2 | The HCI_Flow_Specification_Complete event is used to inform the Host about the Quality of Service for the ACL connection the Controller is able to support. | M | E | |
1.1 | The HCI_Flush command is used to discard all data that is currently pending for transmission in the Controller for the specified Connection_Handle. | M | E | |
1.1 | The HCI_Flush_Occurred event is used to indicate that, for the specified Handle, the data to be transmitted has been discarded. | M | E | |
CSA3 | The HCI_Get_MWS_Transport_Layer_Configuration command reads the supported baud rates from the Controller. | C.109 | C.109 | |
1.1 | The HCI_Hardware_Error event is used to indicate some type of hardware failure for the Controller. | O | O | |
1.1 | The HCI_Hold_Mode command is used to initiate Hold mode. | C.213 | E | |
1.1 | The HCI_Host_Buffer_Size command is used by the Host to notify the Controller about its buffer sizes for ACL and synchronous data. The Controller will fragment the data to be transmitted from the Controller to the Host, so that data contained in HCI Data packets will not exceed these sizes. | C.107 | C.107 | |
1.1 | The HCI_Host_Number_Of_Completed_Packets command is used by the Host to indicate to the Controller when the Host is ready to receive more HCI packets for any Connection_Handle. | C.107 | C.107 | |
1.1 | The HCI_Inquiry_Cancel command will cause the BR/EDR Controller to stop the current Inquiry if the BR/EDR Controller is in Inquiry Mode. | C.127 | E | |
1.1 | The HCI_Inquiry command will cause the BR/EDR Controller to enter Inquiry Mode. Inquiry Mode is used to discovery other nearby BR/EDR Controllers. | C.127 | E | |
1.1 | The HCI_Inquiry_Complete event indicates that the Inquiry is finished. | C.127 | E | |
CSA4 | The HCI_Inquiry_Response_Notification event indicates to the Host that the BR/EDR Controller responded to an inquiry message. | C.126 | E | |
1.1 | The HCI_Inquiry_Result event indicates that a BR/EDR Controller or multiple BR/EDR Controllers have responded so far during the current Inquiry process. | C.127 | E | |
1.2 | The HCI_Inquiry_Result_with_RSSI event indicates that a BR/EDR Controller or multiple BR/EDR Controllers have responded so far during the current Inquiry process. | C.128 | E | |
2.1 + EDR | The HCI_IO_Capability_Request event is used to indicate that the IO capabilities of the Host are required for a Secure Simple Pairing process. | M | E | |
2.1 + EDR | The HCI_IO_Capability_Request_Negative_Reply command is used to reject a pairing attempt after an HCI_IO_Capability_Request event has been received by the Host. | M | E | |
2.1 + EDR | The HCI_IO_Capability_Request_Reply command is used to reply to an HCI_IO_Capability_Request event from the Controller, and specifies the current IO capabilities of the Host. | M | E | |
2.1 + EDR | The HCI_IO_Capability_Response event is used to indicate to the Host that IO capabilities from a remote device specified by BD_ADDR have been received during a Secure Simple Pairing process. | M | E | |
2.1 + EDR | The HCI_Keypress_Notification event is sent to the Host after a passkey notification has been received by the Link Manager on the given BD_ADDR. | M | E | |
5.2 | The HCI_LE_Accept_CIS_Request command is used by the Peripheral’s Host to inform the Controller to accept the request for creating the CIS. | E | C.40 | |
4.0 | The HCI_LE_Add_Device_To_Filter_Accept_List command will add a device to the Filter Accept List. | E | M | |
6.0 | The HCI_LE_Add_Device_To_Monitored_Advertisers_List command will add a device to the Monitored Advertisers List. | E | C.78 | |
5.0 | The HCI_LE_Add_Device_To_Periodic_Advertiser_List command will add a device to the Periodic Advertiser List. | E | C.21 | |
4.2 | The HCI_LE_Add_Device_To_Resolving_List command is used to add one device to the resolving list used to resolve Resolvable Private Addresses in the Controller. | E | C.9 | |
4.0 | The HCI_LE_Advertising_Report event indicates that an advertising or scan response packet has been received. | E | C.98 | |
5.0 | The HCI_LE_Advertising_Set_Terminated event indicates that advertising in a given advertising set has stopped. | E | C.17 | |
5.2 | The HCI_LE_BIG_Create_Sync synchronizes and receives PDUs from one or more BISes. | E | C.42 | |
5.2 | The HCI_LE_BIG_Sync_Established event indicates that the Controller has completed an attempt to synchronize with the requested BISes. | E | C.42 | |
5.2 | The HCI_LE_BIG_Sync_Lost event indicates that the Controller stopped synchronizing with a BIG. | E | C.42 | |
5.2 | The HCI_LE_BIG_Terminate_Sync command stops or cancels synchronizing with a BIG. | E | C.42 | |
5.2 | The HCI_LE_BIGInfo_Advertising_Report event indicates that the Controller has received an Advertising PDU that contained a BIGInfo field. | E | C.54 | |
5.0 | The HCI_LE_Channel_Selection_Algorithm event indicates the channel selection algorithm used on a connection. | E | C.23 | |
5.2 Erratum 18552 | The HCI_LE_CIS_Established event indicates that the Controller established a CIS. | E | [v1] C.38 [v2] C.159 | |
5.2 | The HCI_LE_CIS_Request event indicates that the Peripheral’s Controller received a request from the Central to create a CIS. | E | C.40 | |
5.0 | The HCI_LE_Clear_Advertising_Sets command will remove all existing advertising sets from the Controller. | E | C.17 | |
4.0 | The HCI_LE_Clear_Filter_Accept_List command will clear the Filter Accept List. | E | M | |
6.0 | The HCI_LE_Clear_Monitored_Advertisers_List command will clear the Monitored Advertisers List. | E | C.78 | |
5.0 | The HCI_LE_Clear_Periodic_Advertiser_List command will clear the Periodic Advertiser List. | E | C.21 | |
4.2 | The HCI_LE_Clear_Resolving_List command is used to remove all devices from the resolving list used to resolve Resolvable Private Addresses in the Controller. | E | C.9 | |
4.0 | The HCI_LE_Connection_Complete event indicates to the Host that a new connection has been created. | E | C.3 | |
5.1 | The HCI_LE_Connection_CTE_Request_Enable command will request the Controller to start or stop sending of LL_CTE_REQ PDUs on a connection. | E | C.25 | |
5.1 | The HCI_LE_Connection_CTE_Response_Enable command will command the Controller to respond to LL_CTE_REQ PDUs with LL_CTE_RSP PDUs. | E | C.26 | |
5.1 | The HCI_LE_Connection_IQ_Report event is used to report IQ samples from the Constant Tone Extension field of a received packet containing an LL_CTE_RSP PDU. | E | C.25 | |
4.0 | The HCI_LE_Connection_Update command will be used to change the connection parameters of an existing connection. | E | C.62 | |
4.0 | The HCI_LE_Connection_Update_Complete event indicates the completion of the process to change the connection parameters. | E | C.3 | |
5.1 | The HCI_LE_Connectionless_IQ_Report event reports IQ information from the Constant Tone Extension of a received advertising packet. | E | C.28 | |
5.2 | The HCI_LE_Create_BIG command creates one or more BISes of a BIG. | E | C.41 | |
5.2 | The HCI_LE_Create_BIG_Complete event indicates that the Controller completed an attempt to create the BISes that were requested by the Host. | E | C.41 | |
5.2 | The HCI_LE_Create_BIG_Test command is used to create one or more BISes of a BIG for testing purposes. | E | C.41 | |
5.2 | The HCI_LE_Create_CIS command is used by the Central’s Host to create one or more CISes. | E | C.39 | |
4.0 | The HCI_LE_Create_Connection_Cancel command is used to cancel an ongoing HCI_LE_Create_Connection command. | E | C.94 | |
4.0 | The HCI_LE_Create_Connection command is used to create a new connection. | E | C.59 | |
6.0 | The HCI_LE_CS_Config_Complete event is used to report the status of a CS configuration initiated by either a local or remote Controller. | E | C.75 | |
6.0 | The HCI_LE_CS_Create_Config command is used by a Host to create a CS configuration. | E | C.75 | |
6.0 | The HCI_LE_CS_Procedure_Enable command is used by a Host to enable the Controller to initiate the CS start procedure. | E | C.75 | |
6.0 | The HCI_LE_CS_Procedure_Enable_Complete event is used to report the status after enabling a new CS procedure or disabling an ongoing CS procedure. | E | C.75 | |
6.0 | The HCI_LE_CS_Read_Local_Supported_Capabilities command is used by a Host to query CS capabilities. | E | C.75 | |
6.0 | The HCI_LE_CS_Read_Remote_FAE_Table command is used by a Host to read the per-channel mode-0 Frequency Actuation Error table of the remote Controller. | E | C.75 | |
6.0 | The HCI_LE_CS_Read_Remote_FAE_Table_Complete event is used to report the completion of a locally initiated Channel Sounding mode-0 FAE Table Request procedure. | E | C.75 | |
6.0 | The HCI_LE_CS_Read_Remote_Supported_Capabilities command is used by a Host to query the CS capabilities of a remote device. | E | C.75 | |
6.0 | The HCI_LE_CS_Read_Remote_Supported_Capabilities_Complete event is used to report the CS capabilities of a remote device. | E | C.75 | |
6.0 | The HCI_LE_CS_Remove_Config command is used by a Host to remove an active CS configuration. | E | C.75 | |
6.0 | The HCI_LE_CS_Security_Enable command is used by a Host to start the CS Security procedure on the specified connection. | E | C.75 | |
6.0 | The HCI_LE_CS_Security_Enable_Complete event is used to report the completion of a CS Security Start procedure initiated by either a local or remote Controller. | E | C.75 | |
6.0 | The HCI_LE_CS_Set_Channel_Classification command is used by the Host to specify the channel classification to be used for CS procedures. | E | C.75 | |
6.0 | The HCI_LE_CS_Set_Default_Settings command is used by a Host to set default CS settings in the local Controller. | E | C.75 | |
6.0 | The HCI_LE_CS_Set_Procedure_Parameters command is used by the Host to specify the parameters to be used for scheduling CS procedures. | E | C.75 | |
6.0 | The HCI_LE_CS_Subevent_Result_Continue event is used to report any remaining results of a CS subevent in the initiator or reflector. | E | C.75 | |
6.0 | The HCI_LE_CS_Subevent_Result event is used to report the results of a CS subevent in the initiator or reflector. | E | C.75 | |
6.0 | The HCI_LE_CS_Test command runs the CS test. | E | C.75 | |
6.0 | The HCI_LE_CS_Test_End command stops the CS test. | E | C.75 | |
6.0 | The HCI_LE_CS_Test_End_Complete event is used to report the termination of a CS test. | E | C.75 | |
6.0 | The HCI_LE_CS_Write_Cached_Remote_FAE_Table command is used by a Host to write the per-channel mode-0 Frequency Actuation Error table of the remote device in the local Controller. | E | C.76 | |
6.0 | The HCI_LE_CS_Write_Cached_Remote_Supported_Capabilities command is used by a Host to write a cached copy of the remote CS capabilities in a local Controller. | E | C.75 | |
5.1 | The HCI_LE_CTE_Request_Failed event indicates a problem with a request generated by an HCI_LE_Connection_CTE_Request_Enable command for a peer device to send Constant Tone Extensions. | E | C.25 | |
4.2 | The HCI_LE_Data_Length_Change event is used to indicate a change in the maximum packet sizes by the Link Layer. | E | C.8 | |
4.2 | The HCI_LE_Directed_Advertising_Report event indicates that directed advertisements have been received where the advertiser is using a resolvable private address for the TargetA field in the ADV_DIRECT_IND PDU and the scanning filter policy is set to send this event to the Host. | E | C.63 | |
4.0 | The HCI_LE_Enable_Encryption command is used to enable link level encryption. | E | C.60 | |
6.0 | The HCI_LE_Enable_Monitoring_Advertisers command will enable monitoring advertisers that are in the Monitored Advertisers List. | E | C.78 | |
4.0 | The HCI_LE_Encrypt command will encrypt a block of unencrypted data against a key and generate a block of encrypted data. | E | C.4 | |
4.2 5.4 | The HCI_LE_Enhanced_Connection_Complete event indicates to the Host that a new connection has been created. This event contains the additional parameters of the local and peer resolvable private addresses. | E | [v1] C.24 [v2] C.69 | |
5.2 | The HCI_LE_Enhanced_Read_Transmit_Power_Level command is used to read the current and maximum transmit power levels used by the local Controller on a specified PHY on an ACL connection. | E | C.51 | |
5.0 | The HCI_LE_Extended_Advertising_Report event indicates that an advertising packet has been received. | E | C.19 | |
5.0 5.4 | The HCI_LE_Extended_Create_Connection command is used to create a new connection supporting different initiating PHYs and to initiate a connection with a synchronized device. | E | [v1] C.20 [v2] C.67 | |
6.0 | The HCI_LE_Frame_Space_Update command is used to initiate the Frame Space Update procedure. | E | C.79 | |
6.0 | The HCI_LE_Frame_Space_Update_Complete event is used to inform the Host of changes to the frame space values | E | C.79 | |
4.2 5.1 | The HCI_LE_Generate_DHKey command is used to initiate generation of a Diffie-Hellman key in the Controller for use over the LE transport. | E | [v1] C.99 [v2] O | |
4.2 | The HCI_LE_Generate_DHKey_Complete event indicates that LE Diffie-Hellman key generation has been completed by the Controller. | E | O | |
5.2 | The HCI_LE_ISO_Read_Test_Counters command reads the test counters in the Controller which is configured in ISO Receive Test mode. | E | C.46 | |
5.2 | The HCI_LE_ISO_Receive_Test command configures a Link Layer to receive test payloads from an established CIS or a synchronized BIS. | E | C.46 | |
5.2 | The HCI_LE_ISO_Test_End command terminates the ISO Transmit and/or Receive Test mode. | E | C.47 | |
5.2 | The HCI_LE_ISO_Transmit_Test command configures an established CIS or BIS to transmit test payloads that are generated by the Controller. | E | C.45 | |
4.0 | The HCI_LE_Long_Term_Key_Request event indicates that a Long Term Key is required for a connection. | E | C.61 | |
4.0 | The HCI_LE_Long_Term_Key_Request_Negative_Reply command is used to reply to an HCI_LE_Long_Term_Key_Request event and indicates that the Host does not have a Long Term Key for that connection. | E | C.61 | |
4.0 | The HCI_LE_Long_Term_Key_Request_Reply command is used to reply to an HCI_LE_Long_Term_Key_Request event and includes the Long Term Key stored in the Host for that connection. | E | C.61 | |
5.1 | The HCI_LE_Modify_Sleep_Clock_Accuracy command requests the Controller changes its sleep clock accuracy for testing purposes. | E | C.37 | |
6.0 | The HCI_LE_Monitored_Advertisers_Report event is used by a Controller to send reports on advertising devices being monitored. | E | C.78 | |
5.2 | The HCI_LE_Path_Loss_Threshold event is used to report a path loss threshold crossing on an ACL connection. | E | C.52 | |
5.0 | The HCI_LE_Periodic_Advertising_Create_Sync_Cancel command is used to cancel a pending HCI_LE_Periodic_Advertising_Create_Sync command. | E | C.16 | |
5.0 | The HCI_LE_Periodic_Advertising_Create_Sync command is used to start receiving periodic advertising packets from an advertiser. | E | C.16 | |
5.0 5.4 | The HCI_LE_Periodic_Advertising_Report event indicates that a periodic advertising packet has been received. | E | [v1] C.21 [v2] C.68 | |
5.1 | The HCI_LE_Periodic_Advertising_Set_Info_Transfer command is used to send periodic advertising synchronization information, describing periodic advertising events that the Controller is transmitting, to a connected Controller. | E | C.34 | |
5.4 | The HCI_LE_Periodic_Advertising_Response_Report event is used to report response data to a Host. | E | C.67 | |
5.4 | The HCI_LE_Periodic_Advertising_Subevent_Data_Request event is used to request subevent data from a Host. | E | C.67 | |
5.0 5.4 | The HCI_LE_Periodic_Advertising_Sync_Established event indicates that the Controller has started receiving periodic advertising packets from an advertiser. | E | [v1] C.16 [v2] C.68 | |
5.0 | The HCI_LE_Periodic_Advertising_Sync_Lost event indicates the Controller has ended receiving a periodic advertising train. | E | C.21 | |
5.1 | The HCI_LE_Periodic_Advertising_Sync_Transfer command is used to send periodic advertising synchronization information to a connected Controller. | E | C.33 | |
5.1 5.4 | The HCI_LE_Periodic_Advertising_Sync_Transfer_Received event reports reception of periodic advertising synchronization information from a connected Controller. | E | [v1] C.35 [v2] C.68 | |
5.0 | The HCI_LE_Periodic_Advertising_Terminate_Sync command is used to end receiving of a periodic advertising train. | E | C.21 | |
5.0 | The HCI_LE_PHY_Update_Complete event is used to inform the Host of the current PHY. | E | C.11 | |
4.0 | The HCI_LE_Rand command will generate a random number. | E | C.4 | |
4.0 | The HCI_LE_Read_Advertising_Physical_Channel_Tx_Power command will read the transmit power level that will be used for advertising. | E | C.97 | |
6.0 | The HCI_LE_Read_All_Local_Supported_Features command will read all the features supported by the local LE Controller. | E | C.70 | |
6.0 | The HCI_LE_Read_All_Remote_Features command is used to read all the features used on a connection and the features supported by a remote LE device. | E | C.71 | |
6.0 | The HCI_LE_Read_All_Remote_Features_Complete event indicates the completion of the process to read all the features used on a connection and the features supported by a remote LE device. | E | C.72 | |
5.1 | The HCI_LE_Read_Antenna_Information command allows the Host to read the switching rates, the sampling rates, the number of antennae, and the maximum length of the Constant Tone Extension supported by the Controller. | E | C.31 | |
4.0 5.2 | The HCI_LE_Read_Buffer_Size command returns the size of the HCI buffers. These buffers are used by the LE Controller to buffer data that is to be transmitted. | E | [v1] C.3 [v2] C.55 | |
4.0 | The HCI_LE_Read_Channel_Map command will read the current state of the channel map for a connection. | E | C.3 | |
4.0 | The HCI_LE_Read_Filter_Accept_List_Size command will read the maximum number of Filter Accept List entries that this Controller supports. | E | M | |
5.2 | The HCI_LE_Read_ISO_Link_Quality command returns the value of various counters related to link quality on an isochronous stream. | E | C.50 | |
5.2 | The HCI_LE_Read_ISO_TX_Sync command is used to read the Time_Stamp and Time_Offset of a transmitted SDU. | E | C.45 | |
4.2 | The HCI_LE_Read_Local_P-256_Public_Key command is used to return the local P-256 public key from the Controller. | E | O | |
4.2 | The HCI_LE_Read_Local_P-256_Public_Key_Complete event is generated when local P-256 key generation is complete. | E | O | |
4.2 | The HCI_LE_Read_Local_Resolvable_Address command is used to get the current local Resolvable Private Address being used for the corresponding peer Identity Address. | E | C.10 | |
4.0 | The HCI_LE_Read_Local_Supported_Features_Page_0 command will read page 0 of the features supported by the local LE Controller. | E | M | |
5.0 | The HCI_LE_Read_Maximum_Advertising_Data_Length command will read the maximum length of advertising data that the advertising Controller supports in a given advertising set. | E | C.17 | |
4.2 | The HCI_LE_Read_Maximum_Data_Length command allows the Host to read the Controller’s supportedMaxTxOctets, supportedMaxTxTime, supportedMaxRxOctets, and supportedMaxRxTime parameters. | E | C.8 | |
6.0 | The HCI_LE_Read_Monitored_Advertisers_List_Size command will read the number of Monitored Advertisers List entries that the Controller supports. | E | C.78 | |
5.0 | The HCI_LE_Read_Number_of_Supported_Advertising_Sets command will read the maximum number of advertising sets supported by the advertising Controller at the same time. | E | C.17 | |
4.2 | The HCI_LE_Read_Peer_Resolvable_Address command is used to get the current peer Resolvable Private Address being used for the corresponding peer Public and Random (static) Identity Address. | E | C.10 | |
5.0 | The HCI_LE_Read_Periodic_Advertiser_List_Size command will read the maximum number of Periodic Advertiser List entries that the Controller supports. | E | C.21 | |
5.0 | The HCI_LE_Read_PHY command will read the current PHY. | E | C.11 | |
4.0 | The HCI_LE_Read_Remote_Features_Page_0 command is used to read page 0 of the features used on a connection and the features supported by a remote LE device. | E | C.3 | |
4.0 | The HCI_LE_Read_Remote_Features_Page_0_Complete event indicates the completion of the process to read page 0 of the features used on a connection and the features supported by a remote LE device. | E | C.3 | |
5.2 | The HCI_LE_Read_Remote_Transmit_Power_Level command is used to read the transmit power level used by the remote Controller on a specified PHY on an ACL connection. | E | C.51 | |
4.2 | The HCI_LE_Read_Resolving_List_Size command is used to read the total number of entries in the resolving list that can be stored in the Controller. | E | C.9 | |
5.0 | The HCI_LE_Read_RF_Path_Compensation command is used to read the RF Path Compensation Value. | E | C.22 | |
4.2 | The HCI_LE_Read_Suggested_Default_Data_Length command allows the Host to read the initial MaxTxOctets and MaxTxTime values for new connections it suggested to the Controller. | E | C.8 | |
4.0 | The HCI_LE_Read_Supported_States command will read the current supported state and role combinations for the local LE Controllers. | E | M | |
5.0 | The HCI_LE_Read_Transmit_Power command will read the minimum and maximum transmit powers supported by the Controller. | E | C.64 | |
4.0 5.0 5.1 | The HCI_LE_Receiver_Test command will run the LE receiver test. | E | [v1] C.2 [v2] C.13 [v3] C.30 | |
5.2 | The HCI_LE_Reject_CIS_Request command is used by the Peripheral’s Host to inform the Controller to reject the request for creating the CIS. | E | C.40 | |
4.1 | The HCI_LE_Remote_Connection_Parameter_Request event is used to indicate to the Host that the remote device is requesting a change in the connection parameters. | E | C.6 | |
LE Remote Connection Parameter Request Negative Reply command | 4.1 | The HCI_LE_Remote_Connection_Parameter_Request_Negative_Reply command is used to reject the remote device’s request to change the connection parameters of the LE connection. | E | C.6 |
4.1 | The HCI_LE_Remote_Connection_Parameter_Request_Reply command is used to accept the remote device’s request to change the connection parameters of the LE connection. | E | C.6 | |
5.0 | The HCI_LE_Remove_Advertising_Set command will remove an advertising set from the Controller. | E | C.17 | |
5.2 | The HCI_LE_Remove_CIG command is used by the Central’s Host to remove a CIG from the Controller. | E | C.39 | |
4.0 | The HCI_LE_Remove_Device_From_Filter_Accept_List command will remove a single device from the Filter Accept List. | E | M | |
6.0 | The HCI_LE_Remove_Device_From_Monitored_Advertisers_List command will remove a device from the Monitored Advertisers list. | E | C.78 | |
5.0 | The HCI_LE_Remove_Device_From_Periodic_Advertiser_List command will remove a single device from the Periodic Advertiser List. | E | C.21 | |
4.2 | The HCI_LE_Remove_Device_From_Resolving_List command is used to remove one device from the resolving list used to resolve Resolvable Private Addresses in the Controller. | E | C.9 | |
5.2 | The HCI_LE_Remove_ISO_Data_Path command removes an isochronous data path between the Host and the Controller. | E | C.47 | |
5.2 | The HCI_LE_Request_Peer_SCA command requests the Sleep Clock Accuracy of the peer device. | E | C.44 | |
5.2 | The HCI_LE_Request_Peer_SCA_Complete event indicates that the Controller completed the attempt to read the Sleep Clock Accuracy (SCA) of the peer device. | E | C.95 | |
5.0 | The HCI_LE_Scan_Request_Received event indicates that a scan request has been received. | E | C.17 | |
5.0 | The HCI_LE_Scan_Timeout event indicates that scanning has finished. | E | C.19 | |
4.2 | The HCI_LE_Set_Address_Resolution_Enable command is used to enable resolution of Resolvable Private Addresses in the Controller. | E | C.9 | |
4.0 | The HCI_LE_Set_Advertising_Data command will set the data transmitted when advertising. | E | C.97 | |
4.0 | The HCI_LE_Set_Advertising_Enable command will enable or disable advertising. | E | C.97 | |
4.0 | The HCI_LE_Set_Advertising_Parameters command will set the parameters used for advertising. | E | C.97 | |
5.0 | The HCI_LE_Set_Advertising_Set_Random_Address command will set the random address used in advertising. | E | C.17 | |
5.2 | The HCI_LE_Set_CIG_Parameters command is used by a Central’s Host to set the parameters of one or more Connected Isochronous Streams (CISes) that are associated with a CIG in the Controller. | E | C.39 | |
5.2 | The HCI_LE_Set_CIG_Parameters_Test command is used by a Central’s Host to set the parameters of one or more CISes that are associated with a CIG in the Controller for testing purposes. | E | C.39 | |
5.1 | The HCI_LE_Set_Connection_CTE_Receive_Parameters command will set the antenna-switching pattern, switching and sampling slot durations for receiving the Constant Tone Extension on a connection. | E | C.25 | |
5.1 | The HCI_LE_Set_Connection_CTE_Transmit_Parameters command will set the antenna-switching pattern, switching and sampling slot durations for transmitting the Constant Tone Extension on a connection. | E | C.26 | |
5.1 | The HCI_LE_Set_Connectionless_CTE_Transmit_Enable command will request the Controller to enable or disable sending packets containing a Constant Tone Extension. | E | C.27 | |
5.1 | The HCI_LE_Set_Connectionless_CTE_Transmit_Parameters command will set the antenna-switching pattern and switching and sampling slot durations for the transmission of Constant Tone Extensions. | E | C.27 | |
5.1 | The HCI_LE_Set_Connectionless_IQ_Sampling_Enable command will request the Controller to enable or disable taking IQ samples from the Constant Tone Extension of advertising packets. | E | C.28 | |
4.2 | The HCI_LE_Set_Data_Length command is used to suggest maximum packet sizes to the Controller. | E | C.8 | |
5.3 | The HCI_LE_Set_Data_Related_Address_Changes command specifies circumstances when the Controller shall refresh any Resolvable Private Address used by an advertising set, whether or not the address timeout period has been reached. | E | C.10 | |
6.0 | The HCI_LE_Set_Decision_Data command will set the decision data transmitted when advertising. | E | C.73 | |
6.0 | The HCI_LE_Set_Decision_Instructions command will set the decision instructions used when scanning for advertisements that include decision data. | E | C.74 | |
LE Set Default Periodic Advertising Sync Transfer Parameters command | 5.1 | The HCI_LE_Set_Default_Periodic_Advertising_Sync_Transfer_Parameters command is used to specify the default behavior of the Controller when periodic advertising synchronization information is received from a connected Controller. | E | C.35 |
5.0 | The HCI_LE_Set_Default_PHY command is used to configure preferred PHYs for new connections for the local device. | E | C.11 | |
5.3 | The HCI_LE_Set_Default_Subrate command sets the range of the min and max subrates and other subrate parameters on a Central that may be requested by a Peripheral. | E | C.57 | |
4.0 | The HCI_LE_Set_Event_Mask command is used to control which events are generated by the HCI for the Host. | E | M | |
5.0 | The HCI_LE_Set_Extended_Advertising_Data command will set the advertising data transmitted when advertising. | E | C.17 | |
5.0 | The HCI_LE_Set_Extended_Advertising_Enable command will enable or disable advertising. | E | C.17 | |
5.0 5.4 | The HCI_LE_Set_Extended_Advertising_Parameters command will set the parameters used for advertising. | E | [v1] C.65 [v2] C.66 | |
5.0 | The HCI_LE_Set_Extended_Scan_Enable command will enable or disable scanning on the primary advertising physical channels. | E | C.19 | |
5.0 | The HCI_LE_Set_Extended_Scan_Parameters command will set the parameters used for scanning on the primary advertising physical channel. | E | C.19 | |
5.0 | The HCI_LE_Set_Extended_Scan_Response_Data command will set the data transmitted in a scan response. | E | C.17 | |
4.0 | The HCI_LE_Set_Host_Channel_Classification command allows the Host to specify a channel classification based on its “local information”. | E | C.36 | |
5.2 6.0 | The HCI_LE_Set_Host_Feature command is used to set or clear a bit controlled by the Host in the Link Layer FeatureSet stored in the Controller. | E | [v1] C.49 [v2] C.77 | |
5.2 | The HCI_LE_Set_Path_Loss_Reporting_Enable command is used to enable or disable path loss reporting events for an ACL connection. | E | C.52 | |
5.2 | The HCI_LE_Set_Path_Loss_Reporting_Parameters command is used to set the path loss threshold and related parameters used to trigger reports for an ACL connection. | E | C.52 | |
5.0 | The HCI_LE_Set_Periodic_Advertising_Data command will set the periodic advertising data transmitted when advertising. | E | C.18 | |
5.0 | The HCI_LE_Set_Periodic_Advertising_Enable command will enable or disable periodic advertising. | E | C.18 | |
5.0 5.4 | The HCI_LE_Set_Periodic_Advertising_Parameters command will set the parameters used for periodic advertising. | E | [v1] C.18 [v2] C.67 | |
5.1 | The HCI_LE_Set_Periodic_Advertising_Receive_Enable command will enable or disable periodic advertising reports once synchronized. | E | C.32 | |
5.4 | The HCI_LE_Set_Periodic_Advertising_Response_Data command is used to set the data for a response slot. | E | C.68 | |
5.4 | The HCI_LE_Set_Periodic_Advertising_Subevent_Data command is used to send subevent data for one or more subevents. | E | C.67 | |
5.4 | The HCI_LE_Set_Periodic_Sync_Subevent command is used to configure the subset of subevents a device will synchronize with. | E | C.68 | |
LE Set Periodic Advertising Sync Transfer Parameters command | 5.1 | The HCI_LE_Set_Periodic_Advertising_Sync_Transfer_Parameters command is used to allow the Host to specify the behavior of the Controller when periodic advertising synchronization information is received from a connected Controller. | E | C.35 |
5.0 | The HCI_LE_Set_PHY command is used to request a change of the PHY for a Connection_Handle. | E | C.11 | |
5.0 | The HCI_LE_Set_Privacy_Mode command is used to allow the Host to specify the privacy mode for an entry on the resolving list. | E | C.9 | |
4.0 | The HCI_LE_Set_Random_Address command will set the Random Device Address that may be used in a packet sent on the advertising physical channel. | E | C.1 | |
4.2 | The HCI_LE_Set_Resolvable_Private_Address_Timeout sets the length of time the Controller uses a random private address before a new random private address is generated and starts being used. | E | C.9 | |
4.0 | The HCI_LE_Set_Scan_Enable command will enable or disable scanning. | E | C.98 | |
4.0 | The HCI_LE_Set_Scan_Parameters command will set the parameters used for scanning. | E | C.98 | |
4.0 | The HCI_LE_Set_Scan_Response_Data command will set the data transmitted in a scan response. | E | C.15 | |
5.2 | The HCI_LE_Set_Transmit_Power_Reporting_Enable command is used to enable or disable reporting to the local Host of transmit power level changes on an ACL connection. | E | C.51 | |
5.2 | The HCI_LE_Setup_ISO_Data_Path command identifies and creates the isochronous data path between the Host and the Controller and optionally configures the codec in the Controller. | E | C.47 | |
5.3 | The HCI_LE_Subrate_Change event indicates that a new subrate factor has been applied to an existing ACL connection. | E | C.57 | |
5.3 | The HCI_LE_Subrate_Request command modifies an existing ACL connection by applying a subrate factor. | E | C.57 | |
5.2 | The HCI_LE_Terminate_BIG command terminates the transmission of all BISes of a BIG or cancels the process of creating a BIG. | E | C.41 | |
5.2 | The HCI_LE_Terminate_BIG_Complete event indicates that the transmission of all the BISes in the BIG have been terminated. | E | C.41 | |
4.0 | The HCI_LE_Test_End command will end the current the receiver or transmitter test. | E | M | |
5.2 | The HCI_LE_Transmit_Power_Reporting event is used to report the transmit power level on the ACL connection. | E | C.51 | |
4.0 5.0 5.1 5.2 | The HCI_LE_Transmitter_Test command will run the LE transmitter test. | E | [v1] C.1 [v2] C.12 [v3] C.29 [v4] C.53 | |
5.0 | The HCI_LE_Write_RF_Path_Compensation command is used to indicate the RF path gain or loss from the RF transceiver output to the antenna output contributed by intermediate components. | E | C.22 | |
4.2 | The HCI_LE_Write_Suggested_Default_Data_Length command allows the Host to suggest initial MaxTxOctets and MaxTxTime values for new connections. | E | C.8 | |
1.1 | The HCI_Link_Key_Notification event is used to indicate to the Host that a new Link Key has been created for the connection with the BR/EDR Controller specified in BD_ADDR. | M | E | |
1.1 | The HCI_Link_Key_Request event is used to indicate that a Link Key is required for the connection with the device specified in BD_ADDR. | M | E | |
1.1 | The HCI_Link_Key_Request_Negative_Reply command is used to reply to an HCI_Link_Key_Request event from the BR/EDR Controller if the Host does not have a stored Link Key for the connection with the other BR/EDR Controller specified by BD_ADDR. | M | E | |
1.1 | The HCI_Link_Key_Request_Reply command is used to reply to an HCI_Link_Key_Request event from the BR/EDR Controller, and specifies the Link Key stored on the Host to be used as the link key for the connection with the other BR/EDR Controller specified by BD_ADDR. | M | E | |
1.1 | The HCI_Link_Key_Selection command is used to force both BR/EDR Controllers of a connection associated to the Connection_Handle to use the temporary link key of the Central or the regular link keys. | C.215 | E | |
1.1 | The HCI_Link_Key_Type_Changed event is used to indicate that the change in the temporary Link Key or in the semi-permanent link keys on the Bluetooth Central side has been completed. | C.215 | E | |
2.1 + EDR | The HCI_Link_Supervision_Timeout_Changed event indicates that the remote device changed the Link Supervision Timeout. | M | E | |
1.1 | The HCI_Loopback_Command event is used to loop back all commands that the Host sends to the BR/EDR Controller with some exceptions. | C.123 | E | |
1.1 | The HCI_Max_Slots_Change event is used to indicate a change in the max slots by the LM. | C.132 | E | |
1.1 | The HCI_Mode_Change event is used to indicate that the current mode has changed. | C.144 | E | |
3.0 + HS | The HCI_Number_Of_Completed_Data_Blocks event is used by the Controller to indicate to the Host how many HCI ACL Data packets have been completed and how many data block buffers have been freed for each Handle since the previous HCI_Number_Of_Completed_Data_Blocks event was sent. | C.124 | E | |
1.1 | The HCI_Number_Of_Completed_Packets event is used by the Controller to indicate to the Host how many HCI Data packets have been completed for each Connection_Handle since the previous HCI_Number_Of_Completed_Packets event was sent. | M | C.3 | |
1.1 | The HCI_Page_Scan_Repetition_Mode_Change event indicates that the connected remote BR/EDR Controller with the specified Connection_Handle has successfully changed the Page Scan Repetition Mode (SR). | O | E | |
1.1 | The HCI_Periodic_Inquiry_Mode command is used to configure the BR/EDR Controller to perform an automatic Inquiry based on a specified period range. | C.128 | E | |
CSA4 | The HCI_Peripheral_Page_Response_Timeout event indicates to the Host that the pagerespTO has been exceeded on the BR/EDR Controller after the Controller responded to an ID packet. | O | E | |
1.1 | The HCI_PIN_Code_Request event is used to indicate that a PIN code is required to create a new link key for a connection. | M | E | |
1.1 | The HCI_PIN_Code_Request_Negative_Reply command is used to reply to an HCI_PIN_Code_Request event from the Controller when the Host cannot specify a PIN code to use for a connection. | M | E | |
1.1 | The HCI_PIN_Code_Request_Reply command is used to reply to an HCI_PIN_Code_Request event from the Controller and specifies the PIN code to use for a connection. | M | E | |
1.1 | The HCI_QoS_Setup command is used to specify Quality of Service parameters for a Connection_Handle. | M | E | |
1.1 | The HCI_QoS_Setup_Complete event is used to indicate that QoS is set up. | M | E | |
1.1 | The HCI_QoS_Violation event is used to indicate the Controller’s Link Manager is unable to provide the current QoS requirement for the Handle. | M | E | |
1.2 | The HCI_Read_AFH_Channel_Assessment_Mode command will read the value for the AFH Channel Classification Mode parameter. This value is used to enable or disable the Controller’s channel assessment scheme. | C.140 | C.58 | |
1.2 | The HCI_Read_AFH_Channel_Map command will read the current state of the channel map for a connection. | C.139 | E | |
4.1 | The HCI_Read_Authenticated_Payload_Timeout command is used to read the Authenticated Payload Timeout parameter, which is used to set the maximum time between packets being received from the remote device without a valid MIC. | C.155 | C.155 | |
1.1 | The HCI_Read_Authentication_Enable command will read the value for the Authentication Enable parameter, which controls whether the Bluetooth device will require authentication for each connection with other Bluetooth devices. | C.111 | E | |
1.1 | The HCI_Read_Automatic_Flush_Timeout command will read the value for the Flush Timeout configuration parameter for the specified Connection_Handle. The Flush Timeout parameter is only used for ACL connections. | M | E | |
1.1 | The HCI_Read_BD_ADDR command will read the value for the BD_ADDR parameter. | M | M | |
1.1 | The HCI_Read_Buffer_Size command returns the size of the HCI buffers. These buffers are used by the Controller to buffer data that is to be transmitted. | M | E | |
1.1 | The HCI_Read_Class_of_Device command will read the value for the Class of Device configuration parameter, which is used to indicate its capabilities to other devices. | M | E | |
1.2 | The HCI_Read_Clock command will read an estimate of a piconet or the local Bluetooth Clock. | O | E | |
1.1 | The HCI_Read_Clock_Offset command allows the Host to read the clock offset of remote BR/EDR Controllers. | O | E | |
1.1 | The HCI_Read_Clock_Offset_Complete event is used to indicate the completion of the process of the LM obtaining the Clock offset information. | C.104 | E | |
1.1 | The HCI_Read_Connection_Accept_Timeout command will read the value for the Connection Accept Timeout configuration parameter, which allows the Controller to automatically deny a connection request after a specified period has occurred, and to refuse a new connection. | M | C.40 | |
1.1 | The HCI_Read_Current_IAC_LAP command will read the LAP(s) used to create the Inquiry Access Codes (IAC) that the local BR/EDR Controller is simultaneously scanning for during Inquiry Scans. | C.125 | E | |
3.0 + HS | The HCI_Read_Data_Block_Size command returns the maximum size of the HCI buffers. These buffers are used by the Controller to buffer data that is to be transmitted. | C.124 | E | |
2.1 + EDR | The HCI_Read_Default_Erroneous_Data_Reporting command will read the value for the Erroneous Data Reporting configuration parameter, which controls whether the BR/EDR Controller will provide data for every (e)SCO interval, with the Packet_Status_Flag in HCI Synchronous Data packets set according to HCI Synchronous Data packets. | C.112 | E | |
1.2 | The HCI_Read_Default_Link_Policy_Settings command will read the Default Link Policy configuration parameter for all new connections. | C.141 | E | |
3.0 + HS | The HCI_Read_Encryption_Key_Size command is used to read the encryption key size on a given Connection_Handle. | M | E | |
3.0 + HS | The HCI_Read_Enhanced_Transmit_Power_Level command will read the values for the GFSK, π/4-DQPSK and 8DPSK Transmit Power Level parameters for the specified Connection_Handle. | C.217 | E | |
4.1 | The HCI_Read_Extended_Inquiry_Length command is used to read the Extended Inquiry Length parameter from the Controller. | C.113 | E | |
2.1 + EDR | The HCI_Read_Extended_Inquiry_Response command will read the data that the BR/EDR Controller sends in the extended inquiry response packet during inquiry response. | C.205 | E | |
4.1 | The HCI_Read_Extended_Page_Timeout command is used to read the Extended Page Timeout parameter from the Controller. | C.114 | E | |
1.1 | The HCI_Read_Failed_Contact_Counter command will read the value for the Failed Contact Counter configuration parameter for a particular connection to another device. | M | E | |
3.0 + HS | The HCI_Read_Flow_Control_Mode command returns the value of the Flow_Control_Mode configuration parameter supported by this Controller. | C.124 | E | |
1.1 | The HCI_Read_Hold_Mode_ Activity command is used to read which activities should be suspended when the BR/EDR Controller is in Hold mode. | C.213 | E | |
1.2 | The HCI_Read_Inquiry_Mode command is used to read the Inquiry Mode configuration parameter of the local BR/EDR Controller. | C.115 | E | |
2.1 + EDR | The HCI_Read_Inquiry_Response_Transmit_Power_Level command will read the inquiry response Transmit Power level used to transmit the FHS and EIR data packets. This can be used directly in the Tx Power Level EIR data type. | C.125 | E | |
1.1 | The HCI_Read_Inquiry_Scan_Activity command will read the value for Inquiry Scan Interval and Inquiry Scan Window configuration parameters. Inquiry Scan Interval defines the amount of time between consecutive inquiry scans. Inquiry Scan Window defines the amount of time for the duration of the inquiry scan. | C.125 | E | |
1.2 | The HCI_Read_Inquiry_Scan_Type command is used to read the Inquiry Scan Type configuration parameter of the local BR/EDR Controller. The Inquiry Scan Type configuration parameter can set the inquiry scan to either normal or interlaced scan. | C.125 | E | |
4.0 | The HCI_Read_LE_Host_Support command reads the LE Supported Host setting from the BR/EDR Controller. | C.116 | E | |
1.1 | The HCI_Read_Link_Policy_Settings command will read the Link Policy configuration parameter for the specified Connection_Handle. The Link Policy settings allow the Host to specify which Link Modes the Link Manager can use for the specified Connection_Handle. | C.141 | E | |
1.1 | The HCI_Read_Link_Quality command will read the value for the Link Quality for the specified Connection_Handle. | O | E | |
1.1 | The HCI_Read_Link_Supervision_Timeout command will read the value for the Link Supervision Timeout configuration parameter for the device. This parameter is used by the Controller to determine link loss. | C.117 | E | |
1.2 | The HCI_Read_LMP_Handle command will read the current LMP Handle associated with the Connection_Handle. | C.134 | E | |
1.2 | The HCI_Read_Local_Extended_Features command requests a list of the supported extended features for the local device. | C.220 | E | |
1.1 | The HCI_Read_Local_Name command provides the ability to read the stored user-friendly name for the BR/EDR Controller. | M | E | |
2.1 + EDR | The HCI_Read_Local_OOB_Data command is used to obtain a Secure Simple Pairing Hash C and Randomizer R which are intended to be transferred to a remote device using an OOB mechanism. | M | E | |
4.1 | The HCI_Read_Local_OOB_Extended_Data command is used to obtain a Secure Simple Pairing Hash C and Randomizer R associated with both P-192 and P-256 public keys, which are intended to be transferred to a remote device using an OOB mechanism. | C.142 | E | |
Erratum 10734 | The HCI_Read_Local_Simple_Pairing_Options command is used to read the Secure Simple Pairing options and the maximum encryption key size supported. | O | E | |
5.2 | The HCI_Read_Local_Supported_Codec_Capabilities command is used by a Host to query codec capabilities. | C.156 | C.156 | |
CSA2 5.2 | The HCI_Read_Local_Supported_Codecs command is used by a Host to query a Controller’s supported codecs. | [v1] C.157 [v2] O | [v1] E [v2] O | |
1.2 | The HCI_Read_Local_Supported_Commands command requests a list of the supported HCI commands for the local device. | M | M | |
5.2 | The HCI_Read_Local_Supported_Controller_Delay command is used by a Host to query a range of supported Controller delays for a given codec configuration. | C.156 | C.156 | |
1.1 | The HCI_Read_Local_Supported_Features command requests a list of the supported features for the local device. | M | M | |
1.1 | The HCI_Read_Local_Version_Information command will read the version information for the local Controller. | M | M | |
1.1 | The HCI_Read_Loopback_Mode command will read the value for the setting of the BR/EDR Controller’s Loopback Mode. The setting of the Loopback Mode will determine the path of information. | C.123 | E | |
1.1 | The HCI_Read_Num_Broadcast_Retransmissions command will read the parameter value for the Number of Broadcast Retransmissions for the BR/EDR Controller. | C.118 | E | |
1.1 | The HCI_Read_Number_Of_Supported_IAC command will read the value for the number of Inquiry Access Codes (IAC) that the local BR/EDR Controller can simultaneously listen for during an Inquiry Scan. | C.125 | E | |
1.1 | The HCI_Read_Page_Scan_Activity command will read the values for the Page Scan Interval and Page Scan Window configuration parameters. Page Scan Interval defines the amount of time between consecutive page scans. Page Scan Window defines the duration of the page scan. | M | E | |
1.2 | The HCI_Read_Page_Scan_Type command is used to read the page scan type of the local BR/EDR Controller. The Page Scan Type configuration parameter can set the page scan to either normal or interlaced scan. | C.119 | E | |
1.1 | The HCI_Read_Page_Timeout command will read the value for the Page Reply Timeout configuration parameter, which determines the time the BR/EDR Controller will wait for the remote device to respond to a connection request before the local device returns a connection failure. | M | E | |
1.1 | The HCI_Read_PIN_Type command is used for the Host to read the value that is specified to indicate whether the Host supports variable PINs or only fixed PINs. | C.120 | E | |
1.2 | The HCI_Read_Remote_Extended_Features command requests a list of the supported extended features of a remote device. | C.220 | E | |
1.2 | The HCI_Read_Remote_Extended_Features_Complete event is used to indicate the completion of the process of the Link Manager obtaining the supported Extended features of the remote BR/EDR Controller specified by the Connection_Handle parameter. | C.220 | E | |
1.1 | The HCI_Read_Remote_Supported_Features command requests a list of the supported features of a remote device. | M | E | |
1.1 | The HCI_Read_Remote_Supported_Features_Complete event is used to indicate the completion of the process of the Link Manager obtaining the supported features of the remote BR/EDR Controller specified by the Connection_Handle parameter. | M | E | |
1.1 | The HCI_Read_Remote_Version_Information command will read the values for the version information for the remote device associated with the Connection_Handle. | O | C.3 | |
1.1 | The HCI_Read_Remote_Version_Information_Complete event is used to indicate the completion of the process of the Link Manager obtaining the version information of the remote device associated with the Connection_Handle parameter. | C.105 | C.3 | |
1.1 | The HCI_Read_RSSI command will read the value for the Received Signal Strength Indication (RSSI) for a Connection_Handle to another Controller. | O | C.3 | |
1.1 | The HCI_Read_Scan_Enable command will read the value for the Scan Enable configuration parameter, which controls whether or not the BR/EDR Controller will periodically scan for page attempts and/or inquiry requests from other BR/EDR Controllers. | M | E | |
4.1 | The HCI_Read_Secure_Connections_Host_Support command is used to read the Secure Connections Host Supports parameter from the Controller. | C.218 | E | |
2.1 + EDR | The HCI_Read_Simple_Pairing_Mode command reads the Secure Simple Pairing mode setting in the BR/EDR Controller. | M | E | |
1.1 | The HCI_Read_Stored_Link_Key command provides the ability to read whether one or more link keys are stored in the Controller. | C.121 | E | |
CSA4 | The HCI_Read_Synchronization_Train_Parameters command returns the currently configured values for the Synchronization Train functionality in the BR/EDR Controller. | C.201 | E | |
1.1 | The HCI_Read_Synchronous_Flow_Control_Enable command provides the ability to read the Synchronous Flow Control Enable setting. By using this setting, the Host can decide if the Controller will send HCI_Number_Of_Completed_Packets events for synchronous Connection_Handles. | C.122 | E | |
1.1 | The HCI_Read_Transmit_Power_Level command will read the values for the Transmit Power Level parameter for the specified Connection_Handle. | C.152 | C.3 | |
1.1 | The HCI_Read_Voice_Setting command will read the values for the Voice Setting configuration parameter, which controls all the various settings for the voice connections. | C.134 | E | |
CSA4 | The HCI_Receive_Synchronization_Train command requests synchronization with the specified Connectionless Peripheral Broadcast transmitter. | C.202 | E | |
2.1 + EDR | The HCI_Refresh_Encryption_Key command is used by the Host to cause the Controller to refresh the encryption key by pausing and resuming encryption | M | E | |
1.1 | The HCI_Reject_Connection_Request command is used to decline a new incoming BR/EDR connection request. | M | E | |
1.2 | The HCI_Reject_Synchronous_Connection_Request command is used to decline an incoming request for a synchronous link. | C.134 | E | |
2.1 + EDR | The HCI_Remote_Host_Supported_Features_Notification event is used to return the LMP extended features page containing the Host features. | C.106 | E | |
1.2 | The HCI_Remote_Name_Request_Cancel command is used to cancel an ongoing Remote Name Request. | C.106 | E | |
1.1 | The HCI_Remote_Name_Request command is used to obtain the user-friendly name of another BR/EDR Controller. | O | E | |
1.1 | The HCI_Remote_Name_Request_Complete event is used to indicate a remote name request has been completed. | C.106 | E | |
2.1 + EDR | The HCI_Remote_OOB_Data_Request event is used to indicate that the Secure Simple Pairing Hash C and Randomizer R is required for the Secure Simple Pairing process involving the device identified by BD_ADDR. | M | E | |
2.1 + EDR | The HCI_Remote_OOB_Data_Request_Negative_Reply command is used to reply to an HCI_Remote_OOB_Data_Request event that the Host does not have the C and R | M | E | |
2.1 + EDR | The HCI_Remote_OOB_Data_Request_Reply command is used to reply to an HCI_Remote_OOB_Data_Request event with the C and R values received via an OOB transfer from a remote BR/EDR Controller identified by BD_ADDR. | M | E | |
4.1 | The HCI_Remote_OOB_Extended_Data_Request_Reply command is used to reply to an HCI_Remote_OOB_Data_Request event with the C and R values received via an OOB transfer from a remote BR/EDR Controller identified by the BD_ADDR. | C.142 | E | |
1.1 | For a BR/EDR Controller, the HCI_Reset command resets HCI, the Link Manager, and the Bluetooth radio. For an LE Controller, the HCI_Reset command resets HCI, the Link Layer, and LE PHY. | M | M | |
1.1 | The HCI_Reset_Failed_Contact_Counter command will reset the value for the Failed Contact Counter configuration parameter for a particular connection to another device. | M | E | |
1.1 | The HCI_Return_Link_Keys event is used to return stored link keys after an HCI_Read_Stored_Link_Key command is used. | C.121 | E | |
1.1 | The HCI_Role_Change event is used to indicate that the current BR/EDR Controller role related to the particular connection has been changed. | C.212 | E | |
1.1 | The HCI_Role_Discovery command is used for a BR/EDR Controller to determine which role the device is performing for a particular Connection_Handle. | O | E | |
5.0 | The HCI_SAM_Status_Change event is used to indicate that either the local or remote SAM slot map on a particular connection has been changed. | C.219 | E | |
2.1 + EDR | The HCI_Send_Keypress_Notification command is used during the Passkey Entry protocol by a device with KeyboardOnly IO capabilities. It is used by a Host to inform the remote device when keys have been entered or erased. | M | E | |
1.2 | The HCI_Set_AFH_Host_Channel_Classification command allows the Host to specify a channel classification based on its “local information”. | C.140 | E | |
1.1 | The HCI_Set_Connection_Encryption command is used to enable and disable the link level encryption. | M | E | |
CSA4 | The HCI_Set_Connectionless_Peripheral_Broadcast command controls Connectionless Peripheral Broadcast functionality (for transmission) in the BR/EDR Controller including enabling and disabling the broadcast. | C.201 | E | |
CSA4 | The HCI_Set_Connectionless_Peripheral_Broadcast_Data command is used by the Host to set Connectionless Peripheral Broadcast data in the BR/EDR Controller. | C.201 | E | |
CSA4 | The HCI_Set_Connectionless_Peripheral_Broadcast_Receive command enables and disables Connectionless Peripheral Broadcast reception in the BR/EDR Controller. | C.202 | E | |
1.1 | The HCI_Set_Controller_To_Host_Flow_Control command is used by the Host to turn flow control on or off in the direction from the Controller to the Host. | O | C.96 | |
5.2 | The HCI_Set_Ecosystem_Base_Interval command indicates to the Controller the base interval of the ecosystem. | O | O | |
1.1 | The HCI_Set_Event_Filter command is used by the Host to specify different event filters. The Host may issue this command multiple times to request various conditions for the same type of event filter and for different types of event filters. | C.148 | E | |
1.1 | The HCI_Set_Event_Mask command is used to control which events are generated by the HCI for the Host. | M | M | |
3.0 + HS | The HCI_Set_Event_Mask_Page 2 command is used to control which events are generated by the HCI for the Host. | C.145 | C.145 | |
CSA3 | The HCI_Set_External_Frame_Configuration command enables an external device to describe a frame structure to the Controller. | C.108 | O | |
5.3 | The HCI_Set_Min_Encryption_Key_Size command is used to modify the minimum encryption key size that may be negotiated by the Controller. | O | E | |
CSA3 | The HCI_Set_MWS_Channel_Parameters command enables an MWS device to inform the Controller about the MWS channel configuration. | O | O | |
CSA3 | The HCI_Set_MWS_Scan_Frequency_Table command specifies the frequencies represented by the frequency index supplied by the MWS_SCAN_FREQUENCY signal. | O | O | |
CSA3 | The HCI_Set_MWS_Signaling command enables an MWS device to inform the Controller about the timing parameters for the MWS coexistence interface. | O | O | |
CSA3 | The HCI_Set_MWS_Transport_Layer command selects the MWS coexistence signaling transport layer in the Controller. | C.109 | C.109 | |
CSA3 | The HCI_Set_MWS_PATTERN_Configuration command specifies the configuration of the pattern indicated over the MWS Coexistence Transport Layer. | C.136 | E | |
CSA4 | The HCI_Set_Reserved_LT_ADDR command requests that the BR/EDR Controller reserve a specific LT_ADDR for the purposes of Connectionless Peripheral Broadcast. | C.201 | E | |
CSA4 | The HCI_Set_Triggered_Clock_Capture command is used to configure the Controller to return events containing an estimate of a piconet or the local Bluetooth clock. | O | E | |
1.2 | The HCI_Setup_Synchronous_Connection command adds a new or modifies an existing synchronous logical transport (SCO or eSCO) on a physical link depending on the Connection_Handle parameter specified. | C.134 | E | |
2.1 + EDR | The HCI_Simple_Pairing_Complete event is used to indicate that the Secure Simple Pairing process has completed. | M | E | |
1.1 | The HCI_Sniff_Mode command is used to alter the behavior of the LM and have the LM place the local or remote device into Sniff mode. | C.214 | E | |
2.1 + EDR | The HCI_Sniff_Subrating command is used to configure the sniff subrating parameters in the local device. | C.221 | E | |
2.1 + EDR | The HCI_Sniff_Subrating event is used to inform the Host of the local and remote transmit and receive latencies. | C.221 | E | |
CSA4 | The HCI_Start_Synchronization_Train command enables the Synchronization Train on the BR/EDR Controller using the currently configured Synchronization Train parameters. | C.201 | E | |
1.1 | The HCI_Switch_Role command is used to switch Central and Peripheral roles of the devices on either side of a connection. | C.212 | E | |
CSA4 | The HCI_Synchronization_Train_Complete event indicates that the Synchronization Train has completed. | C.201 | E | |
CSA4 | The HCI_Synchronization_Train_Received event provides the status of Synchronization Train packets received from the device with the given BD_ADDR. | C.202 | E | |
1.2 | The HCI_Synchronous_Connection_Changed event indicates to the Host that an existing synchronous connection has been reconfigured. | C.134 | E | |
1.2 | The HCI_Synchronous_Connection_Complete event indicates to both the Hosts that a new synchronous connection has been established. | C.134 | E | |
CSA4 | The HCI_Triggered_Clock_Capture event reports the Bluetooth clock when an external trigger occurred. | C.110 | E | |
CSA4 | The HCI_Truncated_Page_Cancel command is used to cancel an ongoing Truncated Page. | C.129 | E | |
CSA4 | The HCI_Truncated_Page command will cause the BR/EDR Controller to page the BR/EDR Controller with the BD_ADDR specified by the parameters and abort the page sequence after receiving the ID response packet. | C.129 | E | |
CSA4 | The HCI_Truncated_Page_Complete event indicates to the Host that a Truncated Page has completed. | C.129 | E | |
2.1 + EDR | The HCI_User_Confirmation_Request event is used to indicate that user confirmation of a numeric value is required. | M | E | |
2.1 + EDR | The HCI_User_Confirmation_Request_Negative_Reply command is used to reply to an HCI_User_Confirmation_Request event and indicates that the user selected “no”. This command will terminate Secure Simple Pairing. | M | E | |
2.1 + EDR | The HCI_User_Confirmation_Request_Reply command is used to reply to an HCI_User_Confirmation_Request event and indicates that the user selected “yes”. It is also used when the Host has no input and no output capabilities. | M | E | |
2.1 + EDR | The HCI_User_Passkey_Notification event is used to provide a passkey for the Host to display to the user as required as part of a Secure Simple Pairing process. | M | E | |
2.1 + EDR | The HCI_User_Passkey_Request event is used to indicate that a passkey is required as part of a Secure Simple Pairing process. | M | E | |
2.1 + EDR | The HCI_User_Passkey_Request_Negative_Reply command is used to reply to an HCI_User_Passkey_Request event and indicates the Host could not provide a passkey. This command will terminate Secure Simple Pairing. | M | E | |
2.1 + EDR | The HCI_User_Passkey_Request_Reply command is used to reply to an HCI_User_Passkey_Request event and specifies the Numeric_Value (passkey) entered by the user to be used in the Secure Simple Pairing process. | M | E | |
1.2 | The HCI_Write_AFH_Channel_Assessment_Mode command will write the value for the Channel Classification Mode configuration parameter. This value is used to enable or disable the Controller’s channel assessment scheme. | C.140 | C.58 | |
4.1 | The HCI_Write_Authenticated_Payload_Timeout command is used to write the Authenticated Payload Timeout parameter, which is used to set the maximum time between packets being received from the remote device without a valid MIC. | C.151 | C.7 | |
1.1 | The HCI_Write_Authentication_Enable command will write the value for the Authentication Enable parameter, which controls whether the Bluetooth device will require authentication for each connection with other Bluetooth devices. | O | E | |
1.1 | The HCI_Write_Automatic_Flush_Timeout command will write the value for the Flush Timeout configuration parameter for the specified Connection_Handle. The Flush Timeout parameter is only used for ACL connections. | M | E | |
1.1 | The HCI_Write_Class_of_Device command will write the value for the Class_of_Device configuration parameter, which is used to indicate its capabilities to other devices. | M | E | |
1.1 | The HCI_Write_Connection_Accept_Timeout command will write the value for the Connection Accept Timeout configuration parameter, which allows the Controller to automatically deny a connection request after a specified period has occurred, and to refuse a new connection. | M | C.40 | |
1.1 | The HCI_Write_Current_IAC_LAP command will write the LAP(s) used to create the Inquiry Access Codes (IAC) that the local BR/EDR Controller is simultaneously scanning for during Inquiry Scans. | C.125 | E | |
2.1 + EDR | The HCI_Write_Default_Erroneous_D |