igmp_snooping_misc.h
uint32_t igmpSnoopingGetRouterPorts(IgmpSnoopingContext *context)
Definition: igmp_snooping_misc.c:697
void igmpSnoopingSetUnknownMcastFwdPorts(IgmpSnoopingContext *context, bool_t enable, uint32_t forwardPorts)
Set forward ports for unknown multicast packets.
Definition: igmp_snooping_misc.c:673
IGMP snooping switch.
void igmpSnoopingDeleteGroup(IgmpSnoopingContext *context, IgmpSnoopingGroup *group)
Delete a multicast group.
Definition: igmp_snooping_misc.c:538
void igmpSnoopingProcessLeaveGroup(IgmpSnoopingContext *context, Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message, size_t length, NetRxAncillary *ancillary)
Process incoming Leave Group message.
Definition: igmp_snooping_misc.c:302
void igmpSnoopingEnableMonitoring(IgmpSnoopingContext *context, bool_t enable)
Enable IGMP monitoring.
Definition: igmp_snooping_misc.c:555
error_t igmpSnoopingForwardMessage(IgmpSnoopingContext *context, uint32_t forwardPorts, const MacAddr *destMacAddr, Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message, size_t length)
Forward an IGMP message to the desired ports.
Definition: igmp_snooping_misc.c:386
void igmpSnoopingUpdateStaticFdbEntry(IgmpSnoopingContext *context, Ipv4Addr groupAddr)
Update a entry of the static MAC table.
Definition: igmp_snooping_misc.c:578
IgmpSnoopingGroup * igmpSnoopingFindGroup(IgmpSnoopingContext *context, Ipv4Addr groupAddr, uint8_t port)
Search the list of multicast groups for a given group address.
Definition: igmp_snooping_misc.c:503
void igmpSnoopingProcessMembershipQuery(IgmpSnoopingContext *context, Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message, size_t length, NetRxAncillary *ancillary)
Process incoming Membership Query message.
Definition: igmp_snooping_misc.c:112
void igmpSnoopingProcessMembershipReport(IgmpSnoopingContext *context, Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message, size_t length, NetRxAncillary *ancillary)
Process incoming Membership Report message.
Definition: igmp_snooping_misc.c:237
void igmpSnoopingProcessUnknownMessage(IgmpSnoopingContext *context, Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message, size_t length, NetRxAncillary *ancillary)
Process unrecognized IGMP messages.
Definition: igmp_snooping_misc.c:356
void igmpSnoopingProcessMessage(IgmpSnoopingContext *context, Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message, size_t length, NetRxAncillary *ancillary)
Process incoming IGMP message.
Definition: igmp_snooping_misc.c:56
TCP/IP stack core.
IgmpSnoopingGroup * igmpSnoopingCreateGroup(IgmpSnoopingContext *context, Ipv4Addr groupAddr, uint8_t port)
Create a new multicast group.
Definition: igmp_snooping_misc.c:457