BOZHENG001 commented on issue #1788: URL: https://github.com/apache/mynewt-nimble/issues/1788#issuecomment-2232677845
Update: When 3 devices are connected to one another, it seems that the memory blocks are used out due to infeasible arrangement and shifting of anchor points. The devices are connected to one another at random time points. Hence, the anchor points of the connections on a device are also random. Imagine two connections on a device, as a result, 2 anchor points. Due to the randomness of connection establishment, these 2 anchor points might be quite close to each other, such as 5 ms or 15 ms away from each other. Such a small time difference between the 2 anchor points does not allow multiple big packets to be exchanged, such as 4 or 8 packets of 200 bytes or 250 bytes. Hence, the memory blocks are quickly used up. Then continuous retransmissions occur. Also due to the randomness of connection establishment, these 2 anchor points might be located quite decently away from each other, such as 50 ms when both connection intervals are set to 100 ms. However, anchor point shifting is observed. Such shifting is observed by monitoring the difference between the 2 anchor points. The shifting seems random since sometimes the difference between the 2 anchor points increases, and sometimes decreases. The changing speed of the difference between the 2 anchor points can be really fast. For instance, within 1 hour, the difference between the 2 anchor points changed from around 950 to 1500, and finally to 0, and of course used-up memory blocks, continuous retransmissions, and connection loss after that. I guess the shifting is impacted by the crystal oscillator accuracy difference, connection role difference, etc. I do not think it is a problem of NimBLE, but more like BLE protocol itself, but maybe NimBLE has some suggestions how I can avoid such cases? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
