pub struct MulticastManager { /* private fields */ }Expand description
Manages multicast group memberships for IPv4 and IPv6.
Implementations§
Source§impl MulticastManager
impl MulticastManager
Sourcepub fn join_group(
&mut self,
group: MulticastGroup,
) -> Result<(), MulticastError>
pub fn join_group( &mut self, group: MulticastGroup, ) -> Result<(), MulticastError>
Join an IPv4 multicast group. Sends an immediate IGMP report.
Sourcepub fn leave_group(
&mut self,
group: MulticastGroup,
) -> Result<(), MulticastError>
pub fn leave_group( &mut self, group: MulticastGroup, ) -> Result<(), MulticastError>
Leave an IPv4 multicast group. Sends a leave message when last member leaves.
Sourcepub fn is_member(&self, address: &[u8; 4]) -> bool
pub fn is_member(&self, address: &[u8; 4]) -> bool
Check whether the given IPv4 address is a currently-joined group.
Sourcepub fn list_groups(&self) -> Vec<MulticastGroup>
pub fn list_groups(&self) -> Vec<MulticastGroup>
List all currently-joined IPv4 multicast groups.
Sourcepub fn join_group_v6(
&mut self,
group: MulticastGroupV6,
) -> Result<(), MulticastError>
pub fn join_group_v6( &mut self, group: MulticastGroupV6, ) -> Result<(), MulticastError>
Join an IPv6 multicast group. Sends an immediate MLDv2 report.
Sourcepub fn leave_group_v6(
&mut self,
group: MulticastGroupV6,
) -> Result<(), MulticastError>
pub fn leave_group_v6( &mut self, group: MulticastGroupV6, ) -> Result<(), MulticastError>
Leave an IPv6 multicast group. Sends a TO_IN record when last member leaves.
Sourcepub fn is_member_v6(&self, address: &[u8; 16]) -> bool
pub fn is_member_v6(&self, address: &[u8; 16]) -> bool
Check whether the given IPv6 address is a currently-joined group.
Sourcepub fn handle_query(&mut self, query: &IgmpMessage)
pub fn handle_query(&mut self, query: &IgmpMessage)
Handle an incoming IGMP query by resetting report timers.
Sourcepub fn tick(&mut self)
pub fn tick(&mut self)
Advance the tick counter and generate unsolicited reports for groups whose timers have expired.
Sourcepub fn drain_outbox(&mut self) -> Vec<OutgoingMessage>
pub fn drain_outbox(&mut self) -> Vec<OutgoingMessage>
Drain all pending outgoing messages.
Sourcepub fn group_count_v4(&self) -> usize
pub fn group_count_v4(&self) -> usize
Return count of joined IPv4 groups.
Sourcepub fn group_count_v6(&self) -> usize
pub fn group_count_v6(&self) -> usize
Return count of joined IPv6 groups.