You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run the "client" on the R7800 using:
client 232.0.1.1 4545 100
Run the "server" on another system using:
server 232.0.1.1 4545 100 1000
If the server is connected to the client using a WiFi interface, the messages are received. If it using a LAN, they are not.
The messages are received if the LAN interface is set in promiscuous mode (//ifconfig ... promisc//) or all multicast mode (//ifconfig ... allmulti//). They stop again immediately if the mode is turned off.
As the problem goes away in promiscuous or all multicast modes, I am guessing that the device is just not sending the multicast packets to the driver. This could be a hardware bug, a bug in the multicast filter setup code in dwmac1000_core.c or the devicetree incorrectly reporting device characteristics such as the number of multicast filter bins.
The text was updated successfully, but these errors were encountered:
Oops, I had an error the first time I submitted this and had to re-type it. I forgot to set the severity the second time -- it should have been set to "High"!
I have tried a few hacks to dwmac1000_set_filter to try to track down the problem.
I tried ignoring the value of dwmac1000_set_filter (6) and tried 7 and 8 instead. Neither fixed the problem so I assume that 6 is the correct value.
I tried setting all 64-bits in the multicast filter hash. This should match all multicast addresses but it also didn't fix the problem so I presume it is actually a bug in the multicast jash filter (hardware or firmware).
It looks like the only fix for the apparently broken multicast filter hardware is to treat the device as though it didn't have a filter and just set GMAC_FRAME_FILTER_PM (pass all multi) whenever any multicast address is set.
gcobb:
Netgear R7800 running lede-17.01.
Multicast packets are not received on LAN (wired) interfaces but work fine on WiFi interfaces. I think the problem is at device/driver level.
The problem was first noticed using Avahi, which did not see announcements on LAN interfaces. However it can be easily reproduced with a simple IP Multicast sender/receiver like https://github.com/GrahamCobb/Multicast-Client-Server-Example
To reproduce:
Run the "client" on the R7800 using:
client 232.0.1.1 4545 100
Run the "server" on another system using:
server 232.0.1.1 4545 100 1000
If the server is connected to the client using a WiFi interface, the messages are received. If it using a LAN, they are not.
The messages are received if the LAN interface is set in promiscuous mode (//ifconfig ... promisc//) or all multicast mode (//ifconfig ... allmulti//). They stop again immediately if the mode is turned off.
I believe this is the same problem as reported in https://forum.lede-project.org/t/ipv6-works-only-with-wan-in-promiscuous-mode/490/9 -- in that thread it is mentioned that the AC2600 (which uses the same driver) has the same problem.
As the problem goes away in promiscuous or all multicast modes, I am guessing that the device is just not sending the multicast packets to the driver. This could be a hardware bug, a bug in the multicast filter setup code in dwmac1000_core.c or the devicetree incorrectly reporting device characteristics such as the number of multicast filter bins.
The text was updated successfully, but these errors were encountered: