Go to the documentation of this file.
38 #ifndef MLD_TICK_INTERVAL
39 #define MLD_TICK_INTERVAL 200
40 #elif (MLD_TICK_INTERVAL < 10)
41 #error MLD_TICK_INTERVAL parameter is not valid
45 #ifndef MLD_ROBUSTNESS_VARIABLE
46 #define MLD_ROBUSTNESS_VARIABLE 2
47 #elif (MLD_ROBUSTNESS_VARIABLE < 1)
48 #error MLD_ROBUSTNESS_VARIABLE 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 #ifndef MLD_OLDER_VERSION_QUERIER_PRESENT_TIMEOUT
60 #define MLD_OLDER_VERSION_QUERIER_PRESENT_TIMEOUT 400000
61 #elif (MLD_OLDER_VERSION_QUERIER_PRESENT_TIMEOUT < 1000)
62 #error MLD_OLDER_VERSION_QUERIER_PRESENT_TIMEOUT parameter is not valid
66 #ifndef MLD_V2_UNSOLICITED_REPORT_INTERVAL
67 #define MLD_V2_UNSOLICITED_REPORT_INTERVAL 1000
68 #elif (MLD_V2_UNSOLICITED_REPORT_INTERVAL < 1000)
69 #error MLD_V2_UNSOLICITED_REPORT_INTERVAL parameter is not valid
73 #ifndef MLD_MAX_MSG_SIZE
74 #define MLD_MAX_MSG_SIZE 1024
75 #elif (MLD_MAX_MSG_SIZE < 1)
76 #error MLD_MAX_MSG_SIZE parameter is not valid
80 #define MLD_HOP_LIMIT 1
115 #if defined(__CCRX__)
117 #elif defined(__CWCC__) || defined(_WIN32)
118 #pragma pack(push, 1)
149 #if defined(_CPU_BIG_ENDIAN) && !defined(__ICCRX__)
194 #if defined(__CCRX__)
196 #elif defined(__CWCC__) || defined(_WIN32)
MldMcastAddrRecordType
MLDv2 multicast address record types.
void mldProcessMessage(NetInterface *interface, const Ipv6PseudoHeader *pseudoHeader, const NetBuffer *buffer, size_t offset, const NetRxAncillary *ancillary)
Process incoming MLD message.
Structure describing a buffer that spans multiple chunks.
uint32_t mldDecodeFloatingPointValue8(uint8_t code)
Decode a floating-point value (8-bit code)
@ MLD_MCAST_ADDR_RECORD_TYPE_IS_EX
systime_t mldGetRandomDelay(systime_t maxDelay)
Generate a random delay.
@ MLD_MCAST_ADDR_RECORD_TYPE_IS_IN
@ MLD_MCAST_ADDR_RECORD_TYPE_TO_IN
error_t mldInit(NetInterface *interface)
MLD initialization.
error_t mldSendMessage(NetInterface *interface, const Ipv6Addr *destAddr, NetBuffer *buffer, size_t offset)
Send MLD message.
typedef __packed_struct
MLD message.
uint16_t numOfMcastAddrRecords
uint8_t mcastAddrRecords[]
uint32_t systime_t
System time.
uint32_t mldDecodeFloatingPointValue16(uint16_t code)
Decode a floating-point value (16-bit code)
@ MLD_MCAST_ADDR_RECORD_TYPE_TO_EX
void mldLinkChangeEvent(NetInterface *interface)
Callback function for link change event.
@ MLD_MCAST_ADDR_RECORD_TYPE_BLOCK
void mldTick(NetInterface *interface)
MLD node timer handler.
@ MLD_MCAST_ADDR_RECORD_TYPE_ALLOW
const Ipv6Addr MLD_V2_ALL_ROUTERS_ADDR