- labels: --> btnut
Problem:
We have limited buffers for ACL data packets. On the
Zeevo chip, HCI Flowcontrol is not working. So if the
BTnode is too slow in processing the packets it can not
prevent the BTmodule to continue on delivering new
packets -> overrun
This problem occured e.g. when we gathered information
from many nodes in a scatternet by means of a broadcast.
This can not easily be solved with UART Flow control,
since stoping the whole UART reception will also blok
the HCI events. Now if the thread that processes the
packets wants to send a HCI command ... -> deadlock
A first approach is to increase the number of ACL
buffers, which does only delay and not solve the
problem. What should we do if overrun occurs? Ignore
new packet? Override oldest entry in buffer? Free whole
buffer?
We could also set all the links of the BTmodule to hold
mode such that no more (or only very little) data is
received when the buffers get full.