39 #define MLD_SUPPORT DISABLED
40#elif (MLD_SUPPORT != ENABLED && MLD_SUPPORT != DISABLED)
41 #error MLD_SUPPORT parameter is not valid
45#ifndef MLD_TICK_INTERVAL
46 #define MLD_TICK_INTERVAL 1000
47#elif (MLD_TICK_INTERVAL < 10)
48 #error MLD_TICK_INTERVAL parameter is not valid
52#ifndef MLD_UNSOLICITED_REPORT_INTERVAL
53 #define MLD_UNSOLICITED_REPORT_INTERVAL 10000
54#elif (MLD_UNSOLICITED_REPORT_INTERVAL < 1000)
55 #error MLD_UNSOLICITED_REPORT_INTERVAL parameter is not valid
59#define MLD_HOP_LIMIT 1
73 MLD_STATE_NON_LISTENER = 0,
74 MLD_STATE_DELAYING_LISTENER = 1,
75 MLD_STATE_IDLE_LISTENER = 2
80#if defined(__CWCC__) || defined(_WIN32)
94 uint16_t maxRespDelay;
96 Ipv6Addr multicastAddr;
101#if defined(__CWCC__) || defined(_WIN32)
109error_t mldInit(NetInterface *interface);
113void mldTick(NetInterface *interface);
114void mldLinkChangeEvent(NetInterface *interface);
116void mldProcessListenerQuery(NetInterface *interface,
117 const Ipv6PseudoHeader *pseudoHeader,
const NetBuffer *buffer,
118 size_t offset, uint8_t hopLimit);
120void mldProcessListenerReport(NetInterface *interface,
121 const Ipv6PseudoHeader *pseudoHeader,
const NetBuffer *buffer,
122 size_t offset, uint8_t hopLimit);
124error_t mldSendListenerReport(NetInterface *interface, Ipv6Addr *ipAddr);
125error_t mldSendListenerDone(NetInterface *interface, Ipv6Addr *ipAddr);
127void mldDumpMessage(
const MldMessage *message);
error_t
Error codes.
Definition error.h:43
typedef __packed_struct
MLD message.
Definition mld.h:90
MldState
MLD node states.
Definition mld.h:72
uint32_t systime_t
System time.
Definition os_port_none.h:90
IPv6 multicast filter entry.
Definition ipv6.h:444
Structure describing a buffer that spans multiple chunks.
Definition net_mem.h:89