Here we list mapping of the Bluetooth commands and events from L2CAP to
the physical layer. Hope it will help you to analyze the flow of Bluetooth
control and message commands from the higher layers to the lower layers.
We will also show you, through an example, what happens when a connection
request is received from the higher layers.
| L2CAP |
HCI |
LMP/BASEBAND |
| Connection and
Disconnection |
L2CAP_ConnectReq
L2CAP_ConnectRsp
L2CAP_ConnectRspPnd
L2CAP_ConnectRspNeg
LP_ConnectReq
LP_ConnectRsp
LP_ConnectRspNeg
LP_ConnectCfm
LP_ConnectCfmNeg
LP_ConnectInd
L2CA_ConnectInd
L2CA_ConnectCfm
L2CA_ConnectCfmNeg
L2CA_ConnectPnd
L2CA_ConnectReq
L2CA_ConnectRsp
L2CA_ConnectRspNeg
|
HCI_Create_Connection
HCI_Accept_Connection_Request
HCI_Reject_Connection_Request
HCI_Add_SCO_Connection
HCI_Read_Connection_Accept_Timeout
HCI_Write_Connection_Accept_Timeout
|
LMP_host_connection_req
LMP_setup_complete
LMP_SCO_link_req
|
L2CAP_DisconnectReq
L2CAP_DisconnectRsp
LP_DisconnectInd
L2CA_DisconnectReq
L2CA_DisconnectRsp
L2CA_DisconnectInd
L2CA_DisconnectCfm
|
HCI_Disconnect
|
LMP_detach
LMP_remove_SCO_link_req
|
| Security |
| No security at the L2CAP level |
HCI_Authentication_Requested
HCI_Set_Connection_Encryption
HCI_Change_Connection_Link_Key
HCI_Master_Link_Key
HCI_PIN_Code_Request_Reply
HCI_PIN_Code_Request_Negative_Reply
HCI_Link_Key_Request_Reply
HCI_Link_Key_Request_Negative_Reply
HCI_Read_Pin_Type
HCI_Write_Pin_Type
HCI_Create_New_Unit_Key
HCI_Read_Stored_Link_Key
HCI_Write_Stored_Link_Key
HCI_Delete_Stored_Link_Key
HCI_Read_Authentication_Enable
HCI_Write_Authentication_Enable
HCI_Read_Encryption_Mode
HCI_Write_Encryption_Mode
|
LMP_au_rand
LMP_in_rand
LMP_temp_rand
LMP_temp_key
LMP_comb_key
LMP_unit_key
LMP_sres
LMP_start_encryption_req
LMP_stop_encryption_req
LMP_encryption_mode_req
LMP_encryption_key_size_req
LMP_use_semi_permanent_key
|
| Mode Handling |
| No mode handling at the L2CAP level |
HCI_Hold_Mode
HCI_Sniff_Mode
HCI_Exit_Sniff_Mode
HCI_Park_Mode
HCI_Exit_Park_Mode
HCI_Read_Hold_Mode_Activity
HCI_Write_Hold_Mode_Activity
|
LMP_hold
LMP_hold_req
LMP_sniff
LMP_sniff_req
LMP_unsniff_req
LMP_park_req
LMP_park
LMP_set_broadcast_scan_window
LMP_modify_beacon
LMP_unpark_PM_ADDR_req
LMP_unpark_BD_ADDR_req
|
| Connection
Substates |
| No connection substate handling in L2CAP |
HCI_Inquiry
HCI_Inquiry_Cancel
HCI_Periodic_Inquiry_Mode
HCI_Exit_Periodic_Inquiry_Mode
HCI_Read_Page_Timeout
HCI_Write_Page_Timeout
HCI_Read_Scan_Enable
HCI_Write_Scan_Enable
HCI_Read_Page_Scan_Activity
HCI_Write_Page_Scan_Activity
HCI_Read_Inquiry_Scan_Activity
HCI_Write_Inquiry_Scan_Activity
HCI_Read_Page_Scan_Mode
HCI_Write_Page_Scan_Mode
HCI_Read_Page_Scan_Period_Mode
HCI_Write_Page_Scan_Period_Mode
HCI_Read_Num_Broadcast_Retransmissions
HCI_Write_Num_Broadcast_Retransmissions
|
LMP_page_mode_req
LMP_page_scan_mode_req
|
| QoS and Flow
Control |
LP_QoSReq
LP_QoSCfm
LP_QoSCfmNeg
LP_QoSViolationInd
L2CA_QoSViolationInd
|
HCI_QoS_Setup
HCI_Read_SCO_Flow_Control_Enable
HCI_Write_SCO_Flow_Control_Enable
HCI_Set_Host_Controller_To_Host_Flow_Control
HCI_Get_Link_Quality
|
LMP_quality_of_service
LMP_quality_of_service_req
LMP_auto_rate
LMP_preferred_rate
|
| Miscellaneous |
L2CAP_Data
L2CAP_ConfigReq
L2CAP_ConfigRsp
L2CAP_ConfigRspNeg
L2CA_ConfigReq
L2CA_ConfigRsp
L2CA_ConfigRspNeg
L2CA_ConfigInd
L2CA_ConfigCfm
L2CA_ConfigCfmNeg
L2CA_TimeOutInd
L2CA_DataRead
L2CA_DataWrite
|
HCI_Change_Connection_Packet_Type
HCI_Remote_Name_Requested
HCI_Read_Remote_Supported_Features
HCI_Read_Remote_Version_Information
HCI_Read_Local_Version_Information
HCI_Local_Supported_Features
HCI_Read_Clock_Offset
HCI_Role_Discovery
HCI_Switch_Role
HCI_Read_Link_Policy_Settings
HCI_Write_Link_Policy_Settings
HCI_Read_Buffer_Size
HCI_Host_Buffer_Size
HCI_Read_Country_Code
HCI_BD_ADDR
HCI_Read_Current_IAC_LAP
HCI_Write_Current_IAC_LAP
HCI_Read_Number_Of_Supported_IAC
HCI_Read_Class_Of_Device
HCI_Write_Class_Of_Device
HCI_Read_Voice_Setting
HCI_Write_Voice_Setting
HCI_Read_Automatic_Flush_Timeout
HCI_Write_Automatic_Flush_Timeout
HCI_Read_Supervision_Timeout
HCI_Read_Link_Supervision_Timeout
HCI_Write_Link_Supervision_Timeout
HCI_Read_Transmit_Power_Level
HCI_Change_Local_Name
HCI_Read_Local_Name
HCI_Set_Event_Mask
HCI_Set_Event_Filter
HCI_Flush
HCI_Reset
HCI_Host_Number_Of_Completed_Packets
|
LMP_name_req
LMP_name_res
LMP_accpted
LMP_not_accepted
LMP_switch_req
LMP_version_req
LMP_version_res
LMP_clkoffset_req
LMP_clkoffset_res
LMP_timing_accuracy_req
LMP_timing_accuracy_res
LMP_max_power
LMP_min_power
LMP_incr_power_req
LMP_decr_power_req
LMP_slot_offset
LMP_max_slot
LMP_max_slot_req
LMP_features_req
LMP_features_res
|
| HCI
Event |
Description |
| Inquiry Complete Event |
Indicates that inquiry is finished. |
| Inquiry Result Event |
Indicates that a Bluetooth device or
multiple Bluetooth devices have responded so far during the current
inquiry process. |
| Connection Complete Event |
Indicates that to both the hosts forming
the connection that a new connection has been established. |
| Connection Request Event |
Indicates that a new incoming connection
is trying to be established. |
| Disconnection Complete Event |
Occurs when a connection has been
terminated. |
| Authentication Complete Event |
Occurs when authentication has been
completed for the specified connection. |
| Remote Name Request Complete Event |
Used to indicate that a remote name
request has been completed. |
| Encryption Change Event |
Used to indicate that the change in
encryption has been completed for the Connection_Handle. |
| Change Connection Link Key Complete Event |
Used to indicate that the change in the
Link Key for the Connection_Handle has been completed. |
| Master Link Key Complete Event |
Used to indicate that the change in the
temporary Link Key or in the semi-permanent link keys on the
Bluetooth master side has been completed. |
| Read Remote Supported Features Complete
Event |
Used to indicate the completion of the
process of the Link Manager obtaining the supported features of the
remote Bluetooth device. |
| Read Remote Version Information Complete
Event |
Used to indicate the completion of the
process of the Link Manager obtaining the version information of the
remote Bluetooth device. |
| QoS Setup Complete Event |
Used to indicate the completion of the
process of the Link Manager setting up QoS with the remote Bluetooth
device. |
| Command Complete Event |
Used by Host Controller to pass the
return status of a command. |
| Command Status Event |
Used to indicate that command has been
received and Host Controller is currently performing the task for
this command. |
| Hardware Error Event |
Used to indicate some type of hardware
failure for the Bluetooth Device |
| Flush Occurred Event |
Used to indicate that, for the specified
Connection Handle, the current user data to be transmitted has been
removed. |
| Role Change Event |
Used to indicate that the current
Bluetooth role related to particular connection has been changed. |
| Number Of Completed Packets Event |
Used by the Host Controller to indicate
to the Host how many HCI Data Packets have been completed for each
Connection Handle since the previous Number Of Completed Packets
event. |
| Mode Change Event |
Used to indicate when device associated
with the Connection Handle changes between Active, Hold, Sniff and
Park Mode. |
| Return Link Keys Event |
Used to return stored link keys. |
| PIN Code Request Event |
Used to indicate that a PIN code is
required to create a new link key for a connection. |
| Link Key Request Event |
Used to indicate that a Link Key is
required for the connection with the device specified in BD_ADDR. |
| Link Key Notification Event |
Used to inidcate to the host that a new
Link Key has been created for the connection with the device
specified in BD_ADDR. |
| Loopback Command Event |
Used to loopback most commands that the
Host sends to the Host Controller. |
| Data Buffer Overflow Event |
Used to inidcate that the Host
Controller's data buffers have overflowed. |
| Max Slots Change Event |
Used to notify the Host about the
LMP_Max_Slots parameter when the value of this parameter changes. |
| Read Clock Offset Complete Event |
Used to indicate the completion of the
process of the LM obtaining the Clock Offset information. |
| Connection Packet Type Changed Event |
Used to indicate the completion of the
process of the LM changing the Packet Types used for the specified
Connection_Handle. |
| QoS Violation Event |
Used to indicate the LM is unable ot
provide the current QoS requirements for the Connection Handle. |
| Page Scan Mode Change Event |
Indicates that the connected remote
Bluetooth device with the specified Connection_Handle has
successfully changed the Page_Scan_Mode. |
| Page Scan Repetition Mode Change Event |
Indicates that the connected remote
Bluetooth device with the specified Connection_Handle has
successfully changed the Page_Scan_Repetition_Mode (SR). |