Function netstack3_device::ethernet::leave_link_multicast
source · pub fn leave_link_multicast<BC: EthernetIpLinkDeviceBindingsContext, CC: EthernetIpLinkDeviceDynamicStateContext<BC>>(
core_ctx: &mut CC,
_bindings_ctx: &mut BC,
device_id: &CC::DeviceId,
multicast_addr: MulticastAddr<Mac>,
)
Expand description
Remove device_id
from a link multicast group multicast_addr
.
leave_link_multicast
will attempt to remove device_id
from the multicast
group multicast_addr
. device_id
may have “joined” the same multicast
address multiple times, so device_id
will only leave the multicast group
once leave_ip_multicast
has been called for each corresponding
join_link_multicast
. That is, if join_link_multicast
gets called 3
times and leave_link_multicast
gets called two times (after all 3
join_link_multicast
calls), device_id
will still be in the multicast
group until the next (final) call to leave_link_multicast
.
leave_link_multicast
is different from [leave_ip_multicast
] as
leave_link_multicast
leaves an L2 multicast group, whereas
leave_ip_multicast
leaves an L3 multicast group.
§Panics
If device_id
is not in the multicast group multicast_addr
.