This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2541: Error code if there is no Confirmation for Indication

Part Number: CC2541

Hello,

I have basic query on BLE Indication and Confirmation.

Assume sensor sends data over "ATT Handle Value Indication" packet. Due to interference there can few different scenarios as

1) Indication packet itself is not transmitted

2) ATT Handle Value Confirmation is not received by Slave.

My queries are

1) In all above cases, whether stack will re-try. If yes, how many times Stack will re-try the same packet.

2) Even after re-try if Indication packet is not transmitted will there be any Error sent to Application.

Thanks & Regards

Vishnu Beema

  • Hello Vishnu,
    Retransmissions due to RF issues are handled by the Link Layer (LL) regardless of the higher layer protocol (e.g., ATT, L2CAP, etc.). Any packet transmitted must be acknowledged before the next packet is transmitted. This means the link layer will re-transmit until supervision timeout where the connection will be dropped.

    An indication will be sent with GATT_Indication and according to the BLE API Guide (C:\Texas Instruments\BLE-CC254x-1.4.2.2\Documents)
    if the return status from this function is SUCCESS, the calling application task will receive an OSAL GATT_MSG_EVENT message. The type of the message will be ATT_HANDLE_VALUE_CFM. To determine whether it received confirmation or timed out, check the hdr field of the message. It should contain a status field and will be either SUCCESS or bleTimeout.
  • Hello Eirik,

    Thank you for inputs. Last query is

    Need more clarity on your statement "Any packet transmitted must be acknowledged before the next packet is transmitted". Is this statement even valid for "Notify" packets.

    I was going through BLE Core4.2 Vol3 Part F (ATT) Section 3.3.2 (Page 2171) and co-relating with IEEE 802.15.4 Retry, Error indication to application etc.

    Since Notification packets are to a specific Client, whether there will be any Physical level ACK from client ?. Whereas for Broadcast packets from Server or Client, there wont be Physical layer Ack. If this is true (Physical Ack from Client), then what layer of Client will be sending "Confirmation" packet for "Indication" packet from Server. Is this from "ATT" layer of stack ?

    Even in TI SmartRF BLE sniffer I am seeing "ACK Status" as "OK" for Notification packets. What does it mean. To my understanding, in Connection interval, at Anchor point Master will send a packet and slave will send a empty PDU packet in response, these are for Synchronization. For both M->S and S->M there wont be any separate "Ack" packets. But for "Notify" will there be any separate Physical layer Ack packets.

    Thanks & Regards

    Vishnu Beema

  • Hello Vishnu,
    This is explained in BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 6, Part B:
    4.5.9 Acknowledgment and flow control