This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52840 zigbee router's neighbour table (management lqi) is not updating even if the end device is disconnected

I have created zigbee network using nordic dk board, i am trying to fetch all the active nodes in the network using zdo mgmt_lqi cli and i am getting those details but when i power off any device and then if i fetch the neighbour table i am getting that powered off device too. I have tried to fetch even after 15 minutes but still i am getting that device.

Is there any timeout is defined for this ? or how can i update this neighbour table details?

Parents Reply
  • Hi,

    I see that the last Link Status from your router is packet 45. After that it stops sending, and the only Link Status messages sent are by the coordinator (source address 0x0000 indicates that the coordinator is sending the packet). Since the router stops sending Link Status, it should be removed from the neighbor table of the coordinator. I'm not sure why that doesn't happen, but I've asked the Zigbee team internally and will come back to you when I get a response from them.

    Best regards,

    Marte

Children
  • Hi,

    I'm afraid I haven't heard back from the Zigbee team yet, as they have a lot to do right now. I'll let you know as soon as I hear from them.

    Best regards,

    Marte

  • Hi,

    I'm sorry for the late reply, I just want to inform you that we are still working on this.

    The Zigbee team confirmed that what is described in the excerpt from the Zigbee specification that I added earlier has happened. After 45 seconds (3*15 seconds) the Outgoing cost in Link Statuses, sent by the coordinator, were set to zero, indicating that this entry is "stale" and may be reused. However, distinguishing between stale and active neighbor table entries is not straightforward, as you must read the outgoing cost of zb_neighbor_tbl_ent_t, and there is no public API to get those, but they are instead a part of the stack. However, our Zigbee team will keep working on this and try to find a solution. I will keep you updated when I hear more from them.

    Best regards,

    Marte

  • Thanks for the update, I'll keep waiting for your further response.

  • Hi,

    I have a few updates from the Zigbee team, which I copied here:

    • There is no public API to get the "stale"status from the neighbor table. You can try to use the dynamic memory configuration feature, that will move the table from the stack to the application memory and include definitions from zboss_api_internal.h to iterate through it, but this is rather a hack than a solution.
    • Unfortunately we were unable to find clear statements inside the Zigbee specification, whether stale entries should or should not be included in the MGMT LQI Response. That said, it seems to be valid to include them. Unfortunately - this prevents you from using this responses as the input for applications such as Zigbee topology monitors.
    • As a potential, future solution, I have asked if it would be valid to change the LQI values to something very low, if the device is marked as stale. Again - I was not able to find something inside the specification, that will require this change inside the stack, but I do see a value in having some sort of indication for external nodes, that the entry has been marked as stale, that's why I proposed it. It has not been decided yet, if it will happen - currently it is being discussed.

    Best regards,

    Marte

Related