Attached is a log portraying this issue (ubiqua format and wireshark format).
The setup is as follows:
- ZC - is a cc2530 ZNP cc2530, running modified z-stack 1.2.2a, and connected to a Linux machine
- 4 ZRs - based on a third party HW, running ZigBee HA compliant stack (configured to accept up to 6 routers and 14 ZEDs)
- 1 ZED - based on a custom PCB with cc2530 SoC, running z-stack 1.2.2a.44539 (modified sampleLight project),
NV_RESTORE is disabled.
Test case and my observations are as follows:
- ZC and 4 ZRs have formed a network (PAN 0xE04C). It was established a few days ago.
- There are no other EDs that are powered, or in joining the network, but a single ED under test,
with MAC_ADDR == 00124B0004E0062E and NWK_ADDR == 0x9DBD.
Also, please note that the same ED was once part of the network (before it was reprogrammed). - Pressing on ZED's push button calls ZDOInitDevice(0), which initiates "beacon request" (packet #8).
- In response to this "beacon request" all the ZRs, including ZC, replied with beacons (p#9 to 10). By inspecting
packets #9 to 13, it can be seen that both Router Capacity and end Device Capacity fields are set to 0. - No matter how much times we restarted the ED, the result was the same (for the obvious reason)
- At some point later, we have decided to power cycle one of the routers, MAC ADDR == 000B520000005AB8,
NWK ADDR == 0x62D3. The power cycle took place slightly before the timestamp of p#3198,
where p#3198 is a "link status" message issued by the power cycled router. - Right away, p#3199, ED sends another beacon, however at this time, the same ZR sends a beacon with
Router Capacity and end Device Capacity fields set to 1 (p#3201), while all the other Rs are still at 0 capacity. - From this point on ED issuing "association requests" (such as in p#3203), however, it seems like it
joins the network only 13 seconds after the first "association request" (p#3267 - at this point the code execution
hit a breakpoint in IAR, under case ZDO_STATE_CHANGE: if (zclSampleLight_NwkState == DEV_END_DEVICE),
which means device has joined to network).
My questions are as follows:
- How come ZC and ZRs are in full capacity, even if there are no active and devices, nor additional routers? Are we
missing something obvious here? - What is the procedure (a ZNP command if you like) to delete entries from children table?
Shouldn't it be managed automatically by the Stack? - Why it took almost 13 seconds to ED to finally join the network?
Any pointer will be highly appreciated.