ITADN

Implement Ethernet multicast filtering in Nanostack

#505Openmultiplemonomials 创建于 2025-10-17
Task
Currently, while Nanostack does support multicast filtering at the software layer, it does not tell the Ethernet MAC layer what multicast groups it is subscribed to. Instead, it just enables passing all multicast traffic. This causes some issues: - On networks that have a lot of multicast traffic and do not have IGMP snooping enabled, the MAC will receive a ton of packets that we aren't interested in, causing high CPU load and potential dropped packets - The Cypress WHD wi-fi modules do not have the ability to pass all wi-fi traffic, so they basically can't be used with nanostack (given that nanostack only supports ipv6 and connecting to an ipv6 network requires the use of multicast) I think that we could do this by adding some hook functions to `struct protocol_interface_info_entry` for when we should subscribe and unsubscribe from a multicast group in hardware, and then patch `addr_add_group()` and `addr_remove_group()` in `ns_address_internal()` to call these functions.
0 条评论