Other Parts Discussed in Thread: Z-STACK
Hello,
We are seeing a problem in a large network with 55 routers and a coordinator, all on the same Zigbee network and in close proximity. If we power off 5 routers, and leave the other routers and a coordinator running for several minutes, when we power on the 5 routers again, the 5 routers send a route discovery message to try and discover a route to the coordinator. None of the other routers rebroadcast the route request, and the coordinator does not send a route reply.
We're on a relatively old version version of the SimpleLink CC13X2-CC26x2 SDK, version 4.20.104. We do have future plans to move to a more current version but that is not going to happen in the short term.
We have a theory why this is happening and appreciate any suggested fixes. We noticed the link status messages in the 50 routers do not have the short addresses of the 5 that were powered off. Since the 5 routers are not in any neighbor tables, maybe the 50 routers do not rebroadcast the route discovery packets because they do not see these routers as neighbors. Similarly, the coordinator may not send a route reply because it doesn’t receive a route discovery broadcast from any neighbors it knows about. When it receives a route discovery broadcast from one of the 5 that were powered off, it doesn’t have their addresses in its own neighbor table either. (The 50 routers all rebroadcast rare route discovery commands sent from one of the 50, and the coordinator sends a route reply to these.) I confirmed the routers have the same pan ID, network key, network key sequence number, etc. We let the network run for many minutes after powering on the 5. In those several minutes, the link status messages in the other 50 routers did not seem to change at all.
Is this a known bug in the TI stack? Or is there a setting we could enable that would cause the stack to add late nodes into the neighbor table? They seem to be in a state where they are excluded from the rest of the network.
We are considering adding our own code to remove 1 or 2 entries from the neighbor table occasionally to help allow devices to get into the neighbor tables of other routers. But if there are any better solutions, or stack settings we are missing, we would appreciate any other direction.
Our neighbor table size is 16 entries, and our networks can scale up to over 100 routers, so we don’t want to just make the network table large. We are also not interested in and not able to support many-to-one and source routing right now. (Long story.)
Thanks in advance,
Grant China, WattIQ Inc.