|
|
|
|
@ -349,11 +349,6 @@ void Switch::onLocalEthernet(const SharedPtr<Network> &network,const MAC &from,c
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (to.isMulticast()) { |
|
|
|
|
if (network->config().multicastLimit == 0) { |
|
|
|
|
TRACE("%.16llx: dropped multicast: not allowed on network",network->id()); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MulticastGroup multicastGroup(to,0); |
|
|
|
|
|
|
|
|
|
if (to.isBroadcast()) { |
|
|
|
|
@ -457,6 +452,12 @@ void Switch::onLocalEthernet(const SharedPtr<Network> &network,const MAC &from,c
|
|
|
|
|
} // else no NDP emulation
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check this after NDP emulation, since that has to be allowed in exactly this case
|
|
|
|
|
if (network->config().multicastLimit == 0) { |
|
|
|
|
TRACE("%.16llx: dropped multicast: not allowed on network",network->id()); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Learn multicast groups for bridged-in hosts.
|
|
|
|
|
* Note that some OSes, most notably Linux, do this for you by learning |
|
|
|
|
* multicast addresses on bridge interfaces and subscribing each slave. |
|
|
|
|
|