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.

[参考译文] CC2538-CC2592EMK:如何将终端设备重新加入默认值更改为不安全重新加入?

Guru**** 2513185 points
Other Parts Discussed in Thread: CC2538, Z-STACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1071483/cc2538-cc2592emk-how-to-change-the-end-device-rejoin-default-as-insecure-rejoin

部件号:CC2538-CC2592EMK
“线程”中讨论的其它部件:CC2538测试Z 堆栈

亲爱的各位,

  我在链接(https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/701530/cc2538-rejoin-policy-in-zigbee-3-0-1 )中了解到安全的重新加入和不安全的重新加入。

   如果我想在两个 CC2538主板中测试不安全的重新加入,我需要更改

   (1)控制器设置(从 ZDSecMgrDeviceJoin 中删除设备验证)

   (2)终端设备设置(Z-Stack 当前正在处理重新联接:1. 安全1通道2.安全所有通道3. 取消1通道4的安全保护。 连续取消所有信道的安全保护。)

   对吗?

   现在的问题是我找不到终端设备的设置,我可以手动修改此部件吗? 如果是,设置在哪里? 在 bdb.c 或其他文件中的某个位置?

  此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,西安

    是否已尝试在预定义的设置中设置 secure=0?  我想您正在寻找一个 TC 重新加入,这将由 NBID_REJOINRequestUnsecure 在 bdb_rejoinNWk 中处理。

    此致,
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的瑞安:

       谢谢你瑞安,我明白了。

       在预定义设置中,secure=0是未加密的通信。

       NLME_ReJoinRequestUnsecure 正是我想要的。

       此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的瑞安:

       我在此次不安全重新加入测试中遇到了一个新问题。

       当我让终端设备完成不安全的重新加入时,控制器会让终端设备离开网络。 每次结束时都会有数据包离开。

       有没有解决方案? 这个问题有什么问题?

       此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否在 ZC 上启用了许可加入?  您是否已在 IAR 内部进一步调试以确定休假申请的原因,或按照  先前 E2E 问题中的建议修改了 ZDSecMgrDeviceJoin?

    此致,
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我修改 了 ZDSecMgrDeviceJoin,对以下几行进行了评论:

    ZStatus_t ZDSecMgrDeviceJoin( ZDSecMgrDevice_t*设备)

    ZStatus_t status = ZSuccessess;
    UINT16 AMI;

    //尝试验证在没有安全保护的情况下加入/重新加入的设备
    // IF (device->secure == false)
    //{.}
    // status = ZDSecMgrDeviceValidate(设备);
    //}

    这是什么意思?

    此外,您的意思是(1) 在 ZC 上启用了许可加入,或者 (2)在 IAR 内部进一步调试 以确定休假申请的原因?

    我所做的是测试以下行(在 bdb.c 的 ZStatus_t bdb_rejoinNwk (void)中),

    //根据可用配置执行安全或不安全重新加入
    如果(ZG_SECURE 已启用&&(ZDApp_RestoreNwkKey( true )== true))

    //重新加入状态= NLME_JoReinRequest (ZDO_UseExtendedPANID,_NIB.nwkLogicalChannel);
    加入状态= NLME_ReJoinRequestUnsecure (ZDO_UseExtendedPANID,_NIB.nwkLogicalChannel);
    }
    否则

    加入状态= NLME_ReJoinRequestUnsecure (ZDO_UseExtendedPANID,_NIB.nwkLogicalChannel);
    }

    当我做 了 NLME_ReJoinRequest 时,感觉还不错。

    当我执行 NLME_ReJoinRequestUnsecure 时,它显示休假如下

    如何检查允许加入?

    如何在 IAR 内部进一步调试? 我尝试读取 NLME_ReJoinRequestUnsecure,但无法读取。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    允许加入是指在调试过程中打开网络以进行连接的时间,由 BDBC_MIN_TUNITY_TIME 设置,在 BDB 中设置 BDB_TUNITY_Nwk_Steering 或调用 ZDSecMgrPermitJoining 函数时。  在设备尝试不安全的重新加入时,必须启用该功能。

    IAR 中的调试意味   着在 ZC 的 ZDSecMgrDeviceJoin 函数中设置断点,并逐步了解其如何处理 ZDSecMgrDeviceValidate -> ZDSecMgrDeviceValidate,并监视 ZFailure 是否返回而不是 ZSuccessess。  这些函数进一步证明 启用 ZDSecMgrPermitJoiningEnabled 等于 true 的重要性。

    此致,
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我只是设置断点并逐步检查 Ubiqua 中的数据包。 我发现在重新加入时,离开数据包会在之后发送
    如果(zdoCBFund[ZDO_TC_DEVICE_CBID]!=空)  
    此问题仅在不安全的重新加入流程中发生,问题是什么? 有什么解决方案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ZDSecMgrDeviceJoin 似乎 成功完成了,因为 zdoCBFund[ZDO_TC_DEVICE_CBID]通常仅在传递较高的图层函数时才需要,就像与 ZNP 一起使用的 MT 一样。  如果 ZSuccessess 被传递回 ZDSecMgrDeviceJoinDirect ,则您应该进一步调试以了解其他功能有哪些失败。  目标是确定 NLME_LeaveReq 的引用位置, 如果不是 ZDSecMgrDeviceRemove,则它驻留在原始问题 E2E 线程中提到的预构建的 Z-Stack 库中。

    此致,
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我重复该步进,发现 ZDSecMgrDeviceJoinDirect 可以完成,然后通过 ZDSecMgrDeviceNew,ZDSecMgrNewDeviceEvent (activeTaskID = task_no_task;) osal_run_system,直到此时才有数据包。
    这是否意味着新加入活动结束? 如果是,则休假数据包不是来自新设备加入事件,对吗?

    我再次在乌比亚重新检查不安全的重新加入和安全重新加入流程,发现不同之处是,当终端设备发送终端设备超时请求,安全重新加入发送终端设备超时响应,不安全的重新加入发送假。
    协调员在哪里处理此终端设备超时请求? 是否有任何特定功能指向终端设备超时请求处理?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    NLME_LeaveReq 可以通过网络层内的设备关联处理来调用,请为 ZC 将 zgAllowRejoins 设置为 true,并告诉我这是否会影响行为。

    此致,
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    最后仍有数据包,但有终端设备超时响应数据包,某些功能数据包可以在控制器和终端设备之间发送和接收。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果关联后五秒钟左右出现休假请求,且没有 TCLK 更新请求,则需要确保 ZC 上的 BDB_DEFAULT_TC_REQUIAL_KEY _CHANGED 为 FALSE。

    此致,
    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    现在没问题,非常感谢。