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.

LAUNCHXL-CC1310: CC1310: Security Problem: commStatusIndCB reason ApiMac_commStatusReason_rxSecure

Part Number: LAUNCHXL-CC1310
Other Parts Discussed in Thread: CC1310, SYSCONFIG

Tool/software:

Hello,

Importants things: We are using sdk simplelink_cc13x0_sdk_2_30_00_20, CC1310 in non-beacon mode and with FH disabled.

Using collector example can obtain in TI STACK.

/*!
 * @brief      Process the MAC Comm Status Indication Callback
 *
 * @param      pCommStatusInd - Comm Status indication
 */
static void commStatusIndCB(ApiMac_mlmeCommStatusInd_t *pCommStatusInd)
{
    if(pCommStatusInd->reason == ApiMac_commStatusReason_assocRsp)
    {
        if(pCommStatusInd->status != ApiMac_status_success)
        {
            Cllc_associated_devices_t *pDev;

            pDev = findDevice(&pCommStatusInd->dstAddr);
            if(pDev)
            {
                /* Mark as inactive and clear config and tracking states */
                pDev->status = 0;
            }
        }
    }
}


In example of collector has this pCommStatusInd if sensor is make de correct association with coordinator you had the correct ->reason and it's ok.
But if the node has the information of association and coordinador don't, the reason change to ApiMac_commStatusReason_rxSecure, then I try add device to security table, and try add device info to coordinador, but the only thing that works for me is disassociate node and asossiate again.

Why can i do to don't disassociate sensor and associate again?
You can try repeat this, stop collector process (run in linux not embbed) and delete nv-simulation.bin and start collector again, then you see the problems with securiry.C

  • Hi Matheus,

    the reason that you get this security error is that both devices need to have the association information stored to seemlessly reconnect. If only one device has the information it will lead to a security error.


    To disconnect a sensor from the stack while the network is running you can send a disassociation request from the collector to the sensor: cllc.c: Cllc_sendDisassociationRequest().

    If you want to manually disconnect two devices you need to clear the nv flash on the sensor and the collector (csf.c: Csf_clearAllNVItems();)

    Alternatively you can also only erase the nv of the sensor and remove the sensor from the collectors network table using the mechanism shown in csf.c: removeTheFirstDevice() .

    Kind regards,
    Theo

  • Hello Theo,

    Thanks for the awnser.

    Interesting, but the real question is: Isn't it possible, return this information for collector (Gateway)? Without  send Disassocation request (Cllc_sendDisassociationRequest()) or Clear Nv in the sensor device.

    I don't know if ApiMac allows it. 

     Best regards,

    Matheus, 

  • Hi Matheus,

    thank you for the clarification.

    the collector will realize in the next tracking interval that the sensor is unresponsive because it will not respond to the tracking request. This interval is configurable in SysConfig.

    You could look into collector.c: generateTrackingRequests() and modify the handling of tracking errors/timeouts to delete the device information of the unresponsive sensor. 

    Kind regards,
    Theo