Hi TI Partners,
Our Customer encountered issue of L2CAP Packet size.
Since something application it needs received over than 23 bytes of L2CAP Packet but CC254x couldn't catch from BLE Stack Lower Layer.
The attached is screenshot of the packets sniffer, the client sent a Read Response with a payload of 50 bytes.
- The first channel data packet is a start packet (LLID = 2, MD (More Data) = 1), the L2CAP header contains CID 0x0004 (ATT) and a length of 51 bytes (0x0033).
The L2CAP payload of 23 bytes contains the WriteResponse byte (0x0B) and the beginning of the data on 22 bytes (0x0 -> 0x15).
The L2CAP length is 0x33 but the channel PDU length is 27 (4 bytes header + 23 L2CAP payload).
- The second channel data packet is a continuation packet (LLID = 0b01, MD = 1), it only contains the rest of the payload without L2CAP header, so 27 bytes of data (0x16 -> 0x30).
- The last packet is also a continuation packet of 1 bytes but the More Data flag is set to 0, this is the last packet.
This is supported on the Link Layer part and documented in the Bluetooth specification. Unfortunately we don't receive anything in the TI firmware so we can't
receive such L2CAP packets, as if the firmware didn't forward big data packets.
On the other hand, if the client sends a single L2CAP packet with a payload length of 23, we receive it.
And if we (the server) send a packet from the TI chip to another Bluetooth device, the device receives it because doing it like that is correct.
Please kindly check these and give a big hand!
Many Thanks.