Hi. I'm using a CC1352 with SDK version 3.10.01.11 and running a modified version of the sensor example project with a coprocessor. My setup uses a non beacon mode network and I'm using only the extended address (0xFFFE assigned as short address after association) to send messages to the sensor. I have been using the following workflow to perform some experiments:
- Sensor is scanning networks;
- A coprocessor starts a network;
- Sensor receives a beacon indication;
- Sensor tries to associate;
- Coprocessor accepts the association request;
- They exchange data for some time;
- The coprocessor sends a disassociate request to the sensor;
- The sensor disassociate itself and the process starts again.
Sometimes the coprocessor sends the disassociate request, the sensor receives it, but the coprocessor sends it again because an acknowledgement wasn't received. The second `disassociate request` the `coprocessor` sends might arrive while the `sensor` is busy performing some other operation (like waiting a associate indication callback to be called) and when it happens, the MAC layer just stops working: the association indication callback is never called. Every following call to `ApiMac_mlmeScanReq` returns `ApiMac_status_badState`. This situation only happens when the coprocessor uses the extended address to send data to the sensor. If the short address is used, the problem never happens because the MAC Layer clears the sensor short address when the first disassociate indication is received, so the sensor never receives the second one. We've already tried to call `ApiMac_mlmeResetReq(false)` when an `disassociation indication` is received, but it didn't solve the problem. Summarizing: if the MAC layer is busy performing some operation and the sensor receives a packet destined to its extended address, the callback for the operation being performed is not called and the MAC layer starts returning `ApiMac_status_badState` for the next function calls. Is it a known bug? How can we solve that?
To reproduce the problem, it is enough to send multiples disassociation requests to the extended address of the target sensor. As soon as one of them is received when the MAC Layer is busy, the MAC layer stops working.