Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenThread devices disappearing from analytics #2558

Open
dakhnod opened this issue Oct 23, 2024 · 14 comments
Open

OpenThread devices disappearing from analytics #2558

dakhnod opened this issue Oct 23, 2024 · 14 comments

Comments

@dakhnod
Copy link

dakhnod commented Oct 23, 2024

Using the openthread posix border router, I have 6 devices connected to one network.
Polling http://localhost:8081/diagnostics every few seconds, I am noticing that some of my devices are not present in the list quite often.

The graph presented by otbr-web also looks different every few seconds, which seems to use the same data source.

My questions are:

  1. How does my otbr instance know of all devices in its network?
  2. Can I somehow sniff disconnection/reconnections events myself?
  3. What could be the reason for my devices constantly reconnecting?

Thanks for your time!

@wgtdkp
Copy link
Member

wgtdkp commented Oct 24, 2024

OTBR sends multicast queries to collect information from all devices and wait for a few seconds before returning and rendering the UI. So it can happen that your device doesn't receive the query or the response is dropped after timeout.

The OpenThread network diagnostics API is used to implement this functionality, you can use the CLI to see what is happening in the backend: https://github.com/openthread/openthread/blob/main/src/cli/README.md#networkdiagnostic-get-addr-type-

@dakhnod
Copy link
Author

dakhnod commented Oct 29, 2024

Thanks! When I run

ot-ctl networkdiagnostic get ff02::1 0 23

Some devices report both TLVs, some only report the ExtAddr, not the EUI64.

A assume that this is what causes some devices to disappear in the graphical topology overview.

What could be the reason for the devices to not report their EUI64?

@jwhui
Copy link
Member

jwhui commented Oct 29, 2024

EUI-64 TLV was implemented about 10 months ago (see openthread/openthread#9795). Do yo have some devices running an older version of OpenThread?

@dakhnod
Copy link
Author

dakhnod commented Oct 29, 2024

My otbr-agent reports version 0.3.0.

In any case, running ot-ctl networkdiagnostic get ff02::1 0 pings all devices far more reliably than reloading the tpopology graph.
What could be the reason for this?

@jwhui
Copy link
Member

jwhui commented Oct 29, 2024

I was specifically referring to your comment:

Some devices report both TLVs, some only report the ExtAddr, not the EUI64.

Whether a device responds to EUI-64 TLV or not is dependent on the functionality of that device. Do you have a mix of devices running different versions of OpenThread?

@dakhnod
Copy link
Author

dakhnod commented Oct 29, 2024

@jwhui sorry for the miscommunication.

The one device I checked runs otbr version 0.3.0, and doesn't report the EUI64

@jwhui
Copy link
Member

jwhui commented Oct 29, 2024

The one device I checked runs otbr version 0.3.0, and doesn't report the EUI64

Are you able to indicate which git commit?

@dakhnod
Copy link
Author

dakhnod commented Oct 30, 2024

We are using thread-reference-20230710. Probably the TLV is not present yet, there...

@dakhnod
Copy link
Author

dakhnod commented Oct 30, 2024

Another question: my query response looks like this: DIAG_GET.rsp/ans from fe80:0:0:0:d856:ecd5:376f:19aa:.
To me, this looks like a LL-address. But, if I recall correctly, LL-addresses only reach for a single hop.
Does that mean I cannot get diagnostic data from nodes that are more than one hop away?
Even if the query reaches all devices via ff02::1, is their answer able to reach me more than one hop away?

@jwhui
Copy link
Member

jwhui commented Nov 1, 2024

In Thread, link-local scope is limited to those neighbors that are within direct radio range.

@dakhnod
Copy link
Author

dakhnod commented Nov 1, 2024

Right, so I can only get diagnostics data from those devices?

@jwhui
Copy link
Member

jwhui commented Nov 1, 2024

Right, so I can only get diagnostics data from those devices?

When using link-local addresses, you are limited to direct radio range. If you want to communicate with devices that may be multiple hops away, then use non-link-local addresses.

@dakhnod
Copy link
Author

dakhnod commented Nov 1, 2024

Yes, but the CLI does only use LL addresses, right?

@jwhui
Copy link
Member

jwhui commented Nov 1, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants