mikroSDK Reference Manual
igmp_snooping_misc.h
Go to the documentation of this file.
1
31#ifndef _IGMP_SNOOPING_MISC_H
32#define _IGMP_SNOOPING_MISC_H
33
34//Dependencies
35#include "core/net.h"
36#include "igmp/igmp_snooping.h"
37
38//C++ guard
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43//IGMP snooping related functions
44void igmpSnoopingProcessMessage(IgmpSnoopingContext *context,
45 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
46 size_t length, const NetRxAncillary *ancillary);
47
48void igmpSnoopingProcessMembershipQuery(IgmpSnoopingContext *context,
49 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
50 size_t length, const NetRxAncillary *ancillary);
51
52void igmpSnoopingProcessMembershipReport(IgmpSnoopingContext *context,
53 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
54 size_t length, const NetRxAncillary *ancillary);
55
56void igmpSnoopingProcessLeaveGroup(IgmpSnoopingContext *context,
57 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
58 size_t length, const NetRxAncillary *ancillary);
59
60void igmpSnoopingProcessUnknownMessage(IgmpSnoopingContext *context,
61 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
62 size_t length, const NetRxAncillary *ancillary);
63
64error_t igmpSnoopingForwardMessage(IgmpSnoopingContext *context,
65 uint32_t forwardPorts, const MacAddr *destMacAddr,
66 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
67 size_t length);
68
69IgmpSnoopingGroup *igmpSnoopingCreateGroup(IgmpSnoopingContext *context,
70 Ipv4Addr groupAddr, uint8_t port);
71
72IgmpSnoopingGroup *igmpSnoopingFindGroup(IgmpSnoopingContext *context,
73 Ipv4Addr groupAddr, uint8_t port);
74
75void igmpSnoopingDeleteGroup(IgmpSnoopingContext *context,
76 IgmpSnoopingGroup *group);
77
78void igmpSnoopingEnableMonitoring(IgmpSnoopingContext *context, bool_t enable);
79
80void igmpSnoopingUpdateStaticFdbEntry(IgmpSnoopingContext *context,
81 Ipv4Addr groupAddr);
82
83void igmpSnoopingSetUnknownMcastFwdPorts(IgmpSnoopingContext *context,
84 bool_t enable, uint32_t forwardPorts);
85
86uint32_t igmpSnoopingGetRouterPorts(IgmpSnoopingContext *context);
87
88//C++ guard
89#ifdef __cplusplus
90}
91#endif
92
93#endif
error_t
Error codes.
Definition error.h:43
IGMP snooping switch.
uint32_t Ipv4Addr
IPv4 network address.
Definition ipv4.h:267
TCP/IP stack core.
IGMP snooping switch context.
Definition igmp_snooping.h:109
Multicast group.
Definition igmp_snooping.h:79