Could you explain what does it mean and how it helps for IoT?
Below some information that may be useful.
Role of L2CAP in the Bluetooth stack is to provide logical channels for multiplexing various protocols and services over the same physical link.
The allocation of these channels could be fixed in the specification or dynamic on the need basis.
In Bluetooth Low Energy, ATT, SMP and Control Channel for L2CAP all use fixed channels, these are 0x0004, 0x0006 and 0x0005 respectively.
Fixed channel are simple for following reasons:
a. Channel number identifies the protocol or service that uses the channel for communication.
b. These channels can be assumed to be open and ready for communication as soon as the physical link (connection) is established.
This simplicity also comes with limited functionality:
a. Flow control is not provided by the L2CAP local and remote endpoint.
b. The default protocol payload for the channel is limited to the default MTU of L2CAP for BLE, 23 bytes.
Both of the above limitations can be overcome in the higher layers. For example, ATT does have support for larger MTU.
This negotiation of MTU happens at the protocol level using default MTU as the starting point for communication.
But, we must remember that the higher layers are aware of only their own needs and do not worry about multiplexing other protocols - this functionality is assumed in the L2CAP.
What this implies is that ATT using a very large MTU, say 65535 sized, will reserve next 2850 packets on radio to be ATT for a fill sized packet. During this transfer, no other interactions (example SMP) can occur.
And this is the true drawback of fixed channels.
L2CAP Connection Oriented Channels in addition to MTU provide the concept of MPS. The MPS (max payload size) determines the size of segments that should be used to send a large chunk of data.
Simple and exxagerated example to visualize MTU and MPS can be splitting 2 tons of grains into smaller, managable bags of 25 kgs.
L2CAP Connection Oriented Channels have an explicit connection procedure and connection to the Protocol Service Multiplexer (PSM) identifying the protocol or service that you need to connect to.
The dynamic channels were kept out in the first version of Bluetooth Low Energy as most services were envisioned to be small sensor that needed to send small amount of data and were all envisioned to run over ATT.
However, application needs are changing and requirements for transferring large amounts of data have arisen.
Therefore Connection Oriented Channels which have always existed in Bluetooth EDR have been introduced in Bluetooth Low Energy as well.
The mode used in Bluetooth Low Energy is the LE CREDIT BASED FLOW CONTROL MODE. As the name suggests this mode uses concept of credits to manage flow on the channel.
Currently, IPSP and Object transfer are the two users of Connection Oriented Channels in L2CAP.
Hope this helps!