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

[Zigbee] Network routing issues

Hello.

I'm still using Zigbee SDK 4.1.p0 and custom pca10059-compatible debug board with nrf52840.

In a nutshell, the problem is that despite the very large distance and the inability to contact the coordinator directly, the end device still sends reply packets directly to the coordinator bypassing the routers. Of course, the coordinator does not "hear" anything and the end device continues to send packets directly, instead of sending them through a router.

I will try to describe the problem in more detail.

Address list:

0x0000 0x00124b001cc0f29d - ti cc1352p-based coordinator
0x99f4 0x000d6ffffe9ab86b - ikea power outlet (as router)
0x3dcb 0xf4ce369e140cf8df - nrf52840-based mains-powered end device

The spatial arrangement of things is like this:

0x3dcb <=== 3 meters ===> 0x99f4 <=== 5 meters ===> 0x0000

0x3dcb <===         8 meters, two walls        ===> 0x0000

Before sending data, the coordinator reports in link status packet that it only sees only one router - 0x99f4 and the end device 0x3dcb is not visible:

The end device is also does not see the coordinator directly according to link status:

The only possible path is the power outlet, which knows both the coordinator and the end device:

The coordinator requests a network path to the desired end device and receives a route reply response from the power outlet:

The coordinator sends a data packet (ZCL OnOff cluster command) to the end device, which is then successfully forwarded by the power outlet to the end device:

The end device sends back a confirmation of the receipt of data (default response), but sends it directly to the coordinator bypassing the routers despite the fact that it does not have a coordinator in the list of neighbors.
The coordinator is very far away and does not receive this data, but the end device does not attempt to send data through nearby routers. The end device simply repeats unsuccessful attempts to send data directly to the coordinator.
This situation is repeated constantly, it seems that the end device does not want to send data through routers at all.
I have attached raw Wireshark traffic dumps and decoded packets.
Parents
  • One thing to keep in mind is that End devices will use their parents to forward packets (by default), while routers sends packets anywhere it can hear. If the parent node of the end device is the coordinator then all packets will be forwarded to it. But the end device will (eventually) catch the fact that the current parent is unreachable and perform a secure rejoin afterwards (Based on Beacon frames it will select the next best parent node).

    Best regards,

    Marjeris

  • The problem is that the device does not see/hear the coordinator (judging by the list of links), but it tries to send data directly to it. This is repeated every day and it does not try to change the situation and pair with the router.

    I have no proof that's exactly what I'm saying. But I think the problem is somewhere in the stack. Unfortunately, I don't see how I can confirm or disprove what I'm saying.

    I will try also previous versions of SDK with default examples to understand if the same problem exists there

Reply
  • The problem is that the device does not see/hear the coordinator (judging by the list of links), but it tries to send data directly to it. This is repeated every day and it does not try to change the situation and pair with the router.

    I have no proof that's exactly what I'm saying. But I think the problem is somewhere in the stack. Unfortunately, I don't see how I can confirm or disprove what I'm saying.

    I will try also previous versions of SDK with default examples to understand if the same problem exists there

Children
No Data
Related