Other Parts Discussed in Thread: Z-STACK, CC2530
Hi,
On our devices we are using CC2530 chips, Z-Stack core version 2.6.0.2, ZigbeePRO profile with no security enabled. Test network consists of one ZB Coordinator, three ZB Routers and one ZB End Device. ZB Router devices are mains-powered and ZB End Device is battery-powered remote controller.
Problem description:
There are more than one Zigbee network available (e.g. networks A and B) and End Device was, before joined to current network (e.g. network A), previously joined to networks B. Network A operates at Zigbee channel 13 (0x0D) and network B is on channel 21 (0x15). All devices have default channel list set as: DEFAULT_CHANLIST=0x0061A000 (using only channels 13, 15, 16, 21, 22). End Device is joined to network A. Join permitted on both networks.
When End Device performs network rejoin (either because parent is out of range or ED restarts), it first attempts NWK_RESUME (Orphan Rejoin), which is regular rejoin process (as described in ZigBee Specification,Document 053474r17, chapter 3.6.1.4.3.1) provided for fast End-Device rejoin to new parent when device's current parent is out of range.
It is important here to know that ZB Routers do not delete their child list as long as they don't leave current network. ED broadcasts "Orphan Rejoin" request to all supported channels without any PAN ID information (all devices and all network on that channel receives that message) and any old ED's parent, which don't have to belong to ED's current network, may respond to that orphan rejoin request!
Sometimes, router from network B (probably once ED's old parent) responses to Orphan Rejoin request by sending Coordinator Realignment message to ED. This response for some reason corrupts rejoin process and ED cannot rejoin its regular network - it continues to send Orphan Notifications to that "false old" parent and that parent responds with Coordinator Realignment message. It even sends Rejoin Requests (with PAN id of network A) to channel 13. On channel 21 ED sends only beacon requests - no orphan nor regular rejoin requests. After ED reboot (power off/on) it successfully rejoins network B.
Ubiqa sniffer log: http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/158/0647.OrphanRejoinProblem.7z