ot-br-posix sending multicast issue

163 views
Skip to first unread message

al1...@gmail.com

unread,
Mar 19, 2021, 4:22:01 PM3/19/21
to openthread-users

Hi All,

I have a problem sending multicast from ot-br-posix. I've checked the same scenario with two nrf52840 devices and it works as expected. The issue setup is:

node1:
ot-br-posix latest docker image with nrf52840 USB dongle flashed with RCP device
firmware. USB dongle was built from the latest OT snapshot with the following parameters:

make -f examples/Makefile-nrf52840 USB=1 BOOTLOADER=USB THREAD_VERSION=1.2

BTW: I can't run RCP USB dongle built without THREAD_VERSION=1.2 option.  ot-br-posix doesn't start due to capability error. Is it expected?

node2:
nrf52840 FTD device build from the latest OT snapshot with the following parameters:

make -f examples/Makefile-nrf52840 JOINER=1 COMMISSIONER=1 UDP=1

Network is formed, ping works in both directions.

On the device:

udp open
udp bind :: 1234

On the ot-br-posix:

udp open
udp send fd32:bfa4:e756:ab1e:0:ff:fe00:6800 1234 test -> works as expected
udp send ff03:0:0:0:0:0:0:1 1234 testmulticast -> I see nothing on the other side.

The same scenario works as expected if use two nrf52840 FTD device.

What could be the reason? Which logs/configs should I check?

Thanks,

Oleksandr Grytsov.


Jonathan Hui

unread,
Mar 19, 2021, 7:02:06 PM3/19/21
to al1...@gmail.com, openthread-users
On Fri, Mar 19, 2021 at 1:22 PM al1...@gmail.com <al1...@gmail.com> wrote:

I have a problem sending multicast from ot-br-posix. I've checked the same scenario with two nrf52840 devices and it works as expected. The issue setup is:

node1:
ot-br-posix latest docker image with nrf52840 USB dongle flashed with RCP device
firmware. USB dongle was built from the latest OT snapshot with the following parameters:

make -f examples/Makefile-nrf52840 USB=1 BOOTLOADER=USB THREAD_VERSION=1.2

BTW: I can't run RCP USB dongle built without THREAD_VERSION=1.2 option.  ot-br-posix doesn't start due to capability error. Is it expected?

Yes, Thread Version 1.2 is now required after merging openthread/ot-br-posix#712.

Note that THREAD_VERSION=1.2 should now be the default with openthread/openthread#6281
 
node2:
nrf52840 FTD device build from the latest OT snapshot with the following parameters:

make -f examples/Makefile-nrf52840 JOINER=1 COMMISSIONER=1 UDP=1

Network is formed, ping works in both directions.

On the device:

udp open
udp bind :: 1234

On the ot-br-posix:

udp open
udp send fd32:bfa4:e756:ab1e:0:ff:fe00:6800 1234 test -> works as expected
udp send ff03:0:0:0:0:0:0:1 1234 testmulticast -> I see nothing on the other side.

The same scenario works as expected if use two nrf52840 FTD device.

What could be the reason? Which logs/configs should I check?

I was able to reproduce the issue as well. We'll have to take a closer look as to why this is.

One thing I noticed is that link-local multicast (ff02::1) also does not work from OT CLI, however it does work when using the netcat linux tool. It seems netcat does not support higher-scoped IPv6 multicast, so I wasn't able to test that.

--
Jonathan Hui
 

Jonathan Hui

unread,
Mar 21, 2021, 2:58:38 PM3/21/21
to al1...@gmail.com, openthread-users
Thanks again for raising this issue.

We just merged a fix with openthread/openthread#6318 and openthread/ot-br-posix#747.

Hope that helps.

--
Jonathan Hui


--
--
Jonathan Hui

Oleksandr Grytsov

unread,
Mar 22, 2021, 4:05:55 PM3/22/21
to Jonathan Hui, openthread-users
Hi Jonathan,

Unfortunately, the fix doesn't work for me. The issue is still there: I can't send multicast a packet from OTBR side (or can't receive it on a device side). I don't see the multicast packet on the device side neither sending it from OTBR cli directly nor from the system console using the following command:

echo -n "hello123" >/dev/udp/ff03:0:0:0:0:0:0:1/1234

BTW, sending a multicast packet from a device to OTBR works as expected.
--
Best Regards,
Oleksandr Grytsov.

Yakun Xu

unread,
Mar 22, 2021, 7:24:01 PM3/22/21
to openthread-users
Hi Oleksandr,

I'm submitting another fix. I verified it locally and it works on both sides. I hope it helps.

Regards,
Yakun

Oleksandr Grytsov

unread,
Mar 23, 2021, 12:55:18 PM3/23/21
to Yakun Xu, openthread-users
Hi Yakun,

I confirm, your fix partially resolves the issue.
Now I can send multicast using ot-ctl CLI. But I still can't send multicast from the otbr host with netcat or bash command.

Thanks.

--
You received this message because you are subscribed to a topic in the Google Groups "openthread-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openthread-users/gfB6e1W-opM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openthread-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openthread-users/5506d3c6-12c5-4a5e-a9ce-c622b69c3a59n%40googlegroups.com.

Jonathan Hui

unread,
Mar 24, 2021, 1:06:29 PM3/24/21
to Oleksandr Grytsov, Yakun Xu, openthread-users
Could it be that there is no way to specify the IPv6 multicast scope ID with netcat and /dev/udp? I was able to get netcat to work with link-local scope (i.e. `ff02::1%wpan0`). However, netcat does not seem to support the %<interface> syntax with larger scoped addresses.

--
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/CACvf2oXNPyhfnEfCHohxyKbXs3MgHMatwmjk4nuWr2R4diLSOw%40mail.gmail.com.

Oleksandr Grytsov

unread,
Mar 24, 2021, 3:25:03 PM3/24/21
to Jonathan Hui, Yakun Xu, openthread-users
Hi All,

Thank you for your support.

I confirm that I can send a multicast packet from the host side as well.
Specifying the interface helped (I didn't know that specifying the interface is required to send multicast due to lack of multicast ipv6 knowledge).
I notice that netcat and /dev/udp work not for all multicast addresses.

I installed mcsender tool (multicast test tool to send multicast test packets) and it works great. I can send multicast for different addresses ff02, ff03, etc.

Thanks again,

Oleksandr.

Reply all
Reply to author
Forward
0 new messages