I am having an issue where the TLSR8251 does not retransmit packets in case they are lost. I looked at the issue using Wireshark and I can see that my central is trying to read from the device, but the response gets lost even though it is logged as "[LL][TX] Packet:". I am using a MTU of 131 and I have adjusted the buffer size accordingly:
/* CAL_LL_ACL_RX_BUF_SIZE(maxRxOct): maxRxOct + 22, then 16 byte align */
#define RX_FIFO_SIZE 160
/* must be: 2^n, (power of 2);at least 4; recommended value: 4, 8, 16 */
#define RX_FIFO_NUM 8
/* CAL_LL_ACL_TX_BUF_SIZE(maxTxOct): maxTxOct + 10, then 4 byte align */
#define TX_FIFO_SIZE 144
/* must be: (2^n), (power of 2); at least 8; recommended value: 8, 16, 32, other value not allowed. */
#define TX_FIFO_NUM 16
AFAIK the link layer should detect the missing/dropped packets and issue a retransmission, and indeed in Wireshark I see the "Next expected sequence number" indicates that a retransmission is necessary, but it is never happening. Is this a bug in the link layer of the chip/SDK and how can this be resolved?
|