-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Group messaging on EFR32 #19624
Comments
This is the OTBR configuration we are currently using:
We can also see these OTBR logs:
|
@dtodor Did you send the same commands mentionned in the referenced ticket? |
We are using EFR32 MG12. Yes, we are sending the same commands. The OTBR sees the multicasts, but no packets are received by the device. |
I was able to validate the issue is not with the device but with the commands used to configure the groups. |
Closing since working on our side. Verified by @mkardous-silabs . Walk-trough can be seen here : #19608 (comment) |
I would assume that when the device joins the multicast group, I would be at least able to see the |
Here is some more information regarding our setup: OTBR:
EFR32 Device:
We are able to send PINGs to the device using the multicast address, e.g. PING on OTBR:
Corresponding OTBR Logs:
Further, it is possible to send PINGs from a macOS computer, .e.g. PING on macOS:
Corresponding OTBR Logs:
So multicast forwarding seems to be working fine. Unfortunately we are still unable to send group messages to the device, i.e. no packets are received as far as we can tell. @jepenven-silabs Do you have any ideas what might be going wrong? We've also tried the commands from the other ticket using the |
We are testing using the
We've also added the following OpenThread configs to
|
@dtodor So the way the OTBR works with an end device for multicast is subscription based. The device needs to be part of the thread network and then you need to add a group to it. Make sure both the chip-tool and the end-device are on the same commit as the building of the Multicast address changed recently and mismatch between chip-tool and the end-device in commit hash might result in the issue you've just described. The OTBR won't forward any multicast address to any devices unless at least one device is subscribed to it. Now For debugging all of this, you'll need Wireshark or some way to actually sniff IPV6 packets. Easiest setup would be to run these two commands with wireshark running These commands will fails for multiples reasons on the device side. Among them are :
What you should see however is the UDP log on the EFR32 device, on top of seeing the IPV6 packet in Wireshark.
That's is a networking issue with your network. You'll need to investigate why the IPV6 routing isn't working on it . |
But I would assume that pinging the device through the multicast address is a good indicator that the group subscription (MLR, etc.) has taken place and that the OTBR, especially the BBR part of it, are properly working. Right? |
So after some more debugging, the UDP packets do get actually delivered to the EFR32 board, but the checksum verification fails, i.e.:
I've tried to read and compare the contents of the message with the message as captured by the sniffer:
Received message:
Captured message using sniffer:
@jepenven-silabs Any ideas what might cause the checksum verification to fail? |
After disabling the checksum verification and some fixes in our code, group messaging works!!! Could it be that everyone is building with |
Group messages are not delivered to EFR32 devices. According to the logs, the EFR32 device joins the group but does not receive any messages. The problem might be related to the configuration of the OpenThread Border Router.
The initial discussion was started in this thread: #19608.
The text was updated successfully, but these errors were encountered: