[ip6] bypass filtering for multicast addresses larger than RealmLocal (#12074)

Multicast addresses with scope larger than `RealmLocal` are no longer
subject to the standard receive filter. They are passed directly to
the host callback, allowing delivery and forwarding by the host.

This fixes a scenario where a `Thread Border Router` receives a
larger-scope multicast from a `Thread Device`. Previously, if the
Border Router was listening on the same multicast address and port,
the receive filter could drop the packet, preventing it from being
forwarded to other interfaces.
This commit is contained in:
xusiyu
2025-10-30 13:34:43 -07:00
committed by GitHub
parent e4479fb6b1
commit 9190f961f6
+1 -1
View File
@@ -963,7 +963,7 @@ Error Ip6::PassToHost(OwnedPtr<Message> &aMessagePtr,
VerifyOrExit(aReceive, error = kErrorDrop);
}
if (mReceiveFilterEnabled && aReceive)
if (mReceiveFilterEnabled && aReceive && !aHeader.GetDestination().IsMulticastLargerThanRealmLocal())
{
switch (aIpProto)
{