mikroSDK Reference Manual
igmp_router_misc.h
Go to the documentation of this file.
1
31#ifndef _IGMP_ROUTER_MISC_H
32#define _IGMP_ROUTER_MISC_H
33
34//Dependencies
35#include "core/net.h"
36#include "igmp/igmp_router.h"
37
38//C++ guard
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43//IGMP router related functions
44error_t igmpRouterSendGeneralQuery(IgmpRouterContext *context);
45
46error_t igmpRouterSendGroupSpecificQuery(IgmpRouterContext *context,
47 Ipv4Addr groupAddr);
48
49error_t igmpRouterSendMembershipQuery(IgmpRouterContext *context,
50 Ipv4Addr destAddr, Ipv4Addr groupAddr, systime_t maxRespTime);
51
52void igmpRouterProcessMessage(IgmpRouterContext *context,
53 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
54 size_t length);
55
56void igmpRouterProcessMembershipQuery(IgmpRouterContext *context,
57 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
58 size_t length);
59
60void igmpRouterProcessMembershipReport(IgmpRouterContext *context,
61 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
62 size_t length);
63
64void igmpRouterProcessLeaveGroup(IgmpRouterContext *context,
65 const Ipv4PseudoHeader *pseudoHeader, const IgmpMessage *message,
66 size_t length);
67
68IgmpRouterGroup *igmpRouterCreateGroup(IgmpRouterContext *context,
69 Ipv4Addr groupAddr);
70
71IgmpRouterGroup *igmpRouterFindGroup(IgmpRouterContext *context,
72 Ipv4Addr groupAddr);
73
74void igmpRouterDeleteGroup(IgmpRouterContext *context, IgmpRouterGroup *group);
75
76//C++ guard
77#ifdef __cplusplus
78}
79#endif
80
81#endif
error_t
Error codes.
Definition error.h:43
IGMP router.
uint32_t Ipv4Addr
IPv4 network address.
Definition ipv4.h:267
TCP/IP stack core.
uint32_t systime_t
System time.
Definition os_port_none.h:90
Multicast group.
Definition igmp_router.h:113