I try to understand the BLE pairing procedure via checking the HCI log and reading the Core profile . now I know something as blow :
1.SMP use the channel 0x0006 in L2CAP.
2.L2CAP has the connectionless\Connection-oriented channel , 0x0006 belongs to the Connection-oriented channel.
3.L2CAP create connection should have the "L2CAP Connection Request/respon".
what I confused is there is no "L2CAP Connection Request/respon" in my HCI logs(more than 10 files).
Is this channel create via the BLE STACK in Bluetooth init step ? so When the SMP wanna use this 0x0006 Channel ,it is already exist ,no need to create .Am i rigtht?
I try to reboot the smart phone \the SDK board ,try to get the HCI log about init step ,but nothing more .
The SMP channel 0x0006 is a "fixed channel".
Per Bluetooth Core specification v5.3, Vol 3 (Host), Part A (L2CAP):
Fixed channels are available as soon as the ACL-U or LE-U logical link is set up. All initialization that is normally performed when a channel is created shall be performed for each of the supported fixed channels when the ACL-U or LE-U logical link is set up. Fixed channels shall only run over ACL-U, APB-U, or LE-U logical links.
So, there is no need to (and not allowed to) send request/response packets that create the channel, since it's already established when the BLE connection is created. The SMP channel 0x0006 uses the "basic mode", so you are therefore not even allowed to use L2CAP_LE_CREDIT_BASED_CONNECTION_REQ for that channel, since that request can only be used for channels in LE Credit Based Flow Control mode. And L2CAP_CONNECTION_REQ can only be used for Bluetooth Classic.