Discover connected nodes via OTBR

184 views
Skip to first unread message

Jonathan Vervaeke

unread,
Oct 24, 2018, 4:06:08 AM10/24/18
to openthre...@googlegroups.com
My setup is the RPi OTBR and 2 thread nodes.

How can I discover the thread nodes from the borderrouter?

Currently I'm using 

ping6 -c2 ff02::1%wpan0

Which gives me all Thread nodes that can be reached by a single transmission (hence it returns fe80:: addresses), but what if a node is not reachable via a single transmission and needs another node inbetween?
Then I would need 'Mesh local address' discovery.

Is there another way to discover the devices?

Since I've used the OTBR to provide unique local addresses with

sudo wpanctl add-prefix --stable --on-mesh --default-route --slaac --preferred --priority 0 fd11:22:db8:2::

Is it possible to see what adresses are in use? (maybe in a log?) 

Thanks!

Yakun Xu

unread,
Oct 24, 2018, 5:32:03 AM10/24/18
to openthread-users
To discovery all devices, you may try using the Realm-Local All Thread Nodes multicast address.

Here's an example to get  Realm-Local All Thread Nodes multicast address.
Mesh Local Address: fdde:ad00:beef:0:0:ff:fe00:bc00
->
Realm-Local All Thread Nodes multicast address: ff33:40:fdde:ad00:beef:0:0:1

To get what addresses are in use, you may use the network diagnostic commands. However, it's not easy for now, we are enhancing this in our border router

Jonathan Vervaeke

unread,
Oct 24, 2018, 9:32:28 AM10/24/18
to openthread-users
Thanks for pointing that out.

Pinging the Realm local all Thread Nodes (ff33)  on a OT node works, but does not on the OTBR.
Pinging to the Link local all Thread Nodes (ff32) works fine on both.


Ping result from OT node (KW41Z):
  
> ping ff32:40:fdde:ad11:11de::1
> 16 bytes from fe80:0:0:0:f812:e0f5:debb:c583: icmp_seq=2 hlim=64 time=13ms
16 bytes from fe80:0:0:0:7871:37b3:26e5:9674: icmp_seq=2 hlim=64 time=16ms
16 bytes from fe80:0:0:0:344a:548f:f779:1042: icmp_seq=2 hlim=64 time=32ms

> ping ff33:40:fdde:ad11:11de::1
> 16 bytes from fdde:ad11:11de:0:0:ff:fe00:9c00: icmp_seq=1 hlim=63 time=24ms
16 bytes from fdde:ad11:11de:0:54a2:27d7:912d:fa3f: icmp_seq=1 hlim=64 time=37ms
16 bytes from fdde:ad11:11de:0:0:ff:fe00:0: icmp_seq=1 hlim=63 time=56ms 

Ping result from OTBR:

pi@raspberrypi:~ $ ping6 ff32:40:fdde:ad11:11de::1%wpan0
PING ff32:40:fdde:ad11:11de::1%wpan0 (ff32:40:fdde:ad11:11de::1%wpan0): 56 data bytes
64 bytes from fe80::344a:548f:f779:1042%wpan0: icmp_seq=0 ttl=64 time=0.681 ms
64 bytes from fe80::b1ff:39d6:2fbd:b67%wpan0: icmp_seq=0 ttl=64 time=46.889 ms (DUP!)
64 bytes from fe80::7871:37b3:26e5:9674%wpan0: icmp_seq=0 ttl=1 time=61.115 ms (DUP!)
64 bytes from fe80::f812:e0f5:debb:c583%wpan0: icmp_seq=0 ttl=1 time=71.377 ms (DUP!)
 
pi@raspberrypi:~/coap $ ping6 ff33:40:fdde:ad11:11de::1%wpan0
ping6: unknown host ff33:40:fdde:ad11:11de::1%wpan0


This confuses me! Do you have some insight into this?

Yakun Xu

unread,
Oct 25, 2018, 12:07:13 AM10/25/18
to openthread-users
Could you try?

ping6 -I wpan0 ff33:40:fdde:ad11:11de::1

Jonathan Hui

unread,
Oct 25, 2018, 12:20:40 AM10/25/18
to Yakun Xu, openthre...@googlegroups.com
I believe Raspbian has a minimal implementation of ping6 that does not include the `-I <interface>` command-line argument.

I can confirm that any non-link-local scope IPv6 multicast (e.g. ff03::1 and ff05::1) results in an "unknown host" error, even specifying the interface using the `%<interface>` notation.

I'm not yet sure if Raspbian's ping6 implementation supports non-link-local scope IPv6 multicast destinations.

--
Jonathan Hui

--
You received this message because you are subscribed to the Google Groups "openthread-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openthread-use...@googlegroups.com.
To post to this group, send email to openthre...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/0cc0d618-8d0c-44f6-bce9-e045c23ad872%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Yakun Xu

unread,
Oct 25, 2018, 5:37:04 AM10/25/18
to openthread-users
Yes, there are two packages provides command ping6. If `-I` is not supported, try installing

sudo apt-get install -y iputils-ping

Jonathan Vervaeke

unread,
Oct 25, 2018, 10:06:31 AM10/25/18
to openthread-users
That actually works!
Thanks!
Reply all
Reply to author
Forward
0 new messages