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.