This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Data request in child aged ZED

Other Parts Discussed in Thread: CC2530, Z-STACK

Hello Forum,

I use cc2530 with ZStack HA 1.2.2a. I have a ZC and a 3rd party ZC (ZigBee HA certified).

I noted that after some time, I cannot not send a msg from ZC to ZED although the ZED is sending "Data request" periodically (7s) and the ZC is answering back with the corresponding "Ackowledgment". The msg simply doesn't appear on the air!

In what condition may this happen? Is it possible that the ZED was aged out from the parent table? In that situation should it make the Acknowledgement (how can the ZED discover that the parent is missing)?

Thanks in advance!

Jose

  • I don't think ZED is aged out by ZC. If so, you would see ZED sends beacon requests not data requests. What do you want to send from ZC and not deliver to ZED? Can you attach sniffer log?
  • Hello YiKai,

    I want ZC to read some attributes from ZED. ZC succeed on reading the attributes in the first minutes but then, instead of sending the reading msg, it just broadcasts a "route request" (line 701), but because there are no routers (just ZC and ZED) no one answers it back.

    The sniffing is in attachment (please ignore the Beacon Request all over the sniffing because belong to an extra unknown device and I think doesn't have nothing to do with this issue).

    Thanks in advance,

    Jose

    ZC fails on sending msg to ZED.zip

  • What Z-Stack examples do you use as ZC and ZED? Do you use original examples or you modify something when you test this?
  • I'm using my own hardware on ZC, based on Thermostate example but with all the necessary modifications. The ZED is a 3rd party ZHA certified product.
    I use Child Aging with zgNwkParentInformation = NWK_PARENT_INFO_MAC_DATA_POLL (since I think the ZED doesn't implement periodic orphan notification).
    I use NWK_END_DEV_TIMEOUT_DEFAULT =3 (8mins) which is around the same time the system takes to start failing.
    I also noticed that before failing, the ZC returns the correct IEEE address (using APSME_LookupExtAddr()) but after failing it doesn't return a valid IEEE address for the ZED short address.

    How is it possible the ZC not communicating with a ZED that is doing Data Request each 7s (and reporting correctly some attributes to the ZC)?

  • When I test original Z-Stack example, I don't see similar issue. I would suggest you to disable child aging and test again.
  • Disabling Child Aging it works ok. But I do need Child Aging in my application (I cannot imagine an application where Child Aging is not needed).

    I see ZC acknowledging the Data Requests from the aged out child (if using child aging). Is this the normal behavior of a Zigbee ZC? I expected a aged out child not to be acknowleded by it's parent (if not, how can a ZED find out that is orphan?).

     

    I also noted in ZC that after the ZED is aged out, APSME_LookupNwkAddr() returns the correct short address of the child but APSME_LookupExtAddr() doesn't return the IEEE Address... this seems an incoherence...

     

    P.S. I found that maybe I really didn't change zgNwkParentInformation for NWK_PARENT_INFO_MAC_DATA_POLL (I only use "make" and not "Rebuild All" when compiling). So, now I got my ZC communicating with ZED using the Child aging.

  • No, it's abnormal to see ZC acknowledging the Data Requests from the aged out child (if using child aging). How do you enable child aging?

  • To enable the Child Aging I add "-DZIGBEE_CHILD_AGING" to f8wConfig.cfg file and change the flag in the ZGlobals.c to "uint8 zgChildAgingEnable = TRUE;".

    Jose

  • As I know, you don't have to add "-DZIGBEE_CHILD_AGING" to f8wConfig.cfg in Z-Stack Home 1.2.2a. So, please remove it and set "uint8 zgChildAgingEnable = TRUE;" in ZGlobals.c to test again.
  • Ok.
    Now I tried removing the " "-DZIGBEE_CHILD_AGING" to f8wConfig.cfg" as you said, but it makes no difference.

    Just to make it clear, I have a 3rd party Zigbee certified ZED that does not implement OrphanNotification as keepalive, and I have a ZC with Zstack with Child Aging and "zgNwkParentInformation = NWK_PARENT_INFO_ORPHAN_NOTIFICATION" --> in this situation, when ZC ages out the Child it keeps acknowledging the child's DataRequests.

    Can this situation (acknowledging DataRequests to a aged out child) be a problem in Zstack?

    Best regards,

    Jose
  • If you still see this issue, I would say this might be a bug in Z-Stack.
  • Ok YiKai.

    Thanks a lot!

    Jose
  • You are welcome.