OTBR hop limit problem

24 views
Skip to first unread message

Pablo Aguirre

unread,
Sep 28, 2020, 5:21:38 PM9/28/20
to openthread-users
Hi,

We are trying to implement an application using OpenThread with MQTT-SN. We have a Raspberry Pi 3B with an ncp running an OTBR container (wpantund) as specified in the OpenThread guides, together with an MQTT-SN Gateway container. We are using an nRF52840 for both ncp and the nodes.

We are having problems when trying to connect a node that's not connected directly with the OTBR. When trying to connect, a node sends a packet searching for the gateway to the multicast address ff03::1, and the gateway responds using the same address. Using a sniffer we found out that all packets sent from the otbr to the multicast address ff03::1 are sent with a hop limit of 1.

When trying to ping the node from the otbr using "ping6 -I wpan0 [Mesh-Local address]" or any address different from ff03::1 and ff03::2 the packets are sent with hop limit of 64, the value specified in the raspberry configuration (/proc/sys/net/ipv6/conf/wpan0/hop_limit). So it looks like there's something forcing the hop limit for the multicast address and I don't know if there is any other configuration I'm missing.

Thank you for reading me!

Jonathan Hui

unread,
Sep 28, 2020, 5:31:28 PM9/28/20
to Pablo Aguirre, openthread-users
IPv6 Hop Limit value defaults to 1 for multicast messages.

The ping6 command should provide a command-line argument for specifying the IPv6 Hop Limit (e.g. -t ttl argument).

When using sockets, refer to the `IPV6_MULTICAST_HOPS` socket option. See the IPv6 man page for more details.

Hope that helps.

--
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 view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/3db725b8-a55f-4b55-9a42-a69f5b601707n%40googlegroups.com.

Pablo Aguirre

unread,
Sep 29, 2020, 1:41:20 PM9/29/20
to openthread-users
Thanks for your response!

Yes, I was aware of the ttl argument when using ping6, but the main problem is that we need the gateway to send a response to a multicast address using multiple hops. Is there any way to change the default value on the Pi of IPv6 Hop Limit?
For now we found a workaround subscribing the nodes to a new address (ff04::1) and using that one on the application. When sniffing we see IPv6 packets going out from the OTBR with two addresses, ff04::1 and ff03::fc (MPL). The ff04::1 part has a hop limit of 1, but with the ff03::fc part (hop limit 64) it seems to be able to reach the node.

Now this is a different behaviour than when using the Mesh-Local address of the node. How does the OTBR recognize ff03::1 as a multicast address, and what exactly is happening when we use this new address (ff04::1)? Because when using a Mesh-Local address, the packets are not sent with this addition of the ff03::fc address.

Again, thanks for the help

Jonathan Hui

unread,
Sep 29, 2020, 5:40:16 PM9/29/20
to Pablo Aguirre, openthread-users
As mentioned in my previous post - when using sockets, refer to the `IPV6_MULTICAST_HOPS` socket option. See the IPv6 man page for more details.

--
Jonathan Hui


Reply all
Reply to author
Forward
0 new messages