主题中讨论的其他器件:Z-stack、 CC2538、
TI 的源路由实现中存在故障(似乎是竞争条件/使用了未定义的存储器)。 特别是在某些情况下,发送带有源路由的数据包时使用的 MAC 层目的地不正确。 被寻址到将接收数据包的器件、而不是下一个中继。
数据包包含正确的源路由信息(因为协调员在数据库中具有源路由并且未过期)。 不过、它会被寻址到错误的器件。
我圈出了错误的 MAC 目的字段、并在正确的值(源路由继电器)旁边放了一行。 以黑色突出显示的 packlet 是 ZC 已错误地解决的那些问题。
这是我们的 ZNP (simplelink)项目中经常发生的情况、使用源路由实现99%以上的所有通信。 这样做是因为表很大,而且源路由过期时间很大。 当许多设备同时通信时、很可能会发生此问题。
我已经完成了一些调试、目前怀疑问题出在 libZstack blob 中 NLDE_DataReqSend 中的 NLDE_BuildSrcRtgFrame 调用方面或在调用中。 然而,这是很难肯定地说,因为斑点的封闭性质。