主题中讨论的其他器件:Z-STACK
您好!
我们发现由55个路由器和一个协调器组成的大型网络存在问题、所有这些路由器和协调器都在同一个 Zigbee 网络上并且距离很近。 如果我们关闭5台路由器、并让其他路由器和协调器保持运行几分钟、当我们再次启动5台路由器时、5台路由器会发送一条路由发现消息、以尝试向协调器发现路由。 没有其它路由器重新广播路由请求,协调器不发送路由应答。
我们有一个相对较旧的 SimpleLink CC13X2-CC26x2 SDK 版本、版本4.20.104。 我们确实有迁移到更 新版的计划、但短期内不会这样做。
我们有一个理论,为什么发生这种情况,并赞赏任何建议的修复。 我们注意到50台路由器中的链路状态消息没有关闭的5台路由器的短地址。 由于5台路由器不在任何邻居表中,因此可能50台路由器不会重新广播路由发现数据包,因为它们看不到这些路由器作为邻居。 同样、协调器可能不会发送路由回复、因为它不会从任何知道的邻居接收路由发现广播。 当它从关闭的5个路由中的一个接收到路由发现广播时、它也不会在自己的邻居表中显示其地址。 (50个路由器全部重新广播从50个路由器中的一个发出的罕见路由发现命令,并且协调器向这些命令发送路由应答。) 我确认路由器具有相同的 PAN ID、网络密钥、网络密钥序列号等。 在为5加电后让网络运行数分钟。 在这几分钟内,其他50台路由器中的链路状态消息似乎根本没有变化。
这是 TI 堆栈中的一个已知错误吗? 或者、我们是否可以启用某个设置来使堆栈将较晚的节点添加到邻居表中? 它们似乎处于被排除在网络其余部分之外的状态。
我们正在考虑添加自己的代码、以便偶尔从邻居表中删除1或2个条目、以帮助设备进入其他路由器的邻居表。 但是、如果有任何更好的解决方案、或者缺少堆栈设置、我们将感激您能有任何其他方向。
我们的邻居表大小为16个条目、我们的网络可扩展到100多台路由器、因此我们不希望仅仅扩大网络表。 此外、我们目前也不对多对一和源路由感兴趣、也不能提供支持。 (说来话长。)
提前感谢、
格兰特中国有限公司