MLD (Multicast Listener Discovery for IPv6) More...
#include "core/net.h"
#include "core/ip.h"
#include "ipv6/ipv6.h"
#include "ipv6/icmpv6.h"
#include "ipv6/mld.h"
#include "mibs/ip_mib_module.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL MLD_TRACE_LEVEL |
Functions | |
error_t | mldInit (NetInterface *interface) |
MLD initialization. More... | |
error_t | mldStartListening (NetInterface *interface, Ipv6FilterEntry *entry) |
Start listening to the address on the interface. More... | |
error_t | mldStopListening (NetInterface *interface, Ipv6FilterEntry *entry) |
Stop listening to the address on the interface. More... | |
void | mldTick (NetInterface *interface) |
MLD timer handler. More... | |
void | mldLinkChangeEvent (NetInterface *interface) |
Callback function for link change event. More... | |
void | mldProcessListenerQuery (NetInterface *interface, const Ipv6PseudoHeader *pseudoHeader, const NetBuffer *buffer, size_t offset, uint8_t hopLimit) |
Process incoming Multicast Listener Query message. More... | |
void | mldProcessListenerReport (NetInterface *interface, const Ipv6PseudoHeader *pseudoHeader, const NetBuffer *buffer, size_t offset, uint8_t hopLimit) |
Process incoming Multicast Listener Report message. More... | |
error_t | mldSendListenerReport (NetInterface *interface, Ipv6Addr *ipAddr) |
Send Multicast Listener Report message. More... | |
error_t | mldSendListenerDone (NetInterface *interface, Ipv6Addr *ipAddr) |
Send Multicast Listener Done message. More... | |
void | mldDumpMessage (const MldMessage *message) |
Dump MLD message for debugging purpose. More... | |
Variables | |
systime_t | mldTickCounter |
Detailed Description
MLD (Multicast Listener Discovery for IPv6)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneTCP Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Description
MLD is used by an IPv6 router to discover the presence of multicast listeners on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. Refer to the following RFCs for complete details:
- RFC 2710: Multicast Listener Discovery (MLD) for IPv6
- RFC 3810: Multicast Listener Discovery Version 2 (MLDv2) for IPv6
- Version
- 2.4.2
Definition in file mld.c.
Macro Definition Documentation
◆ TRACE_LEVEL
Function Documentation
◆ mldDumpMessage()
void mldDumpMessage | ( | const MldMessage * | message | ) |
◆ mldInit()
error_t mldInit | ( | NetInterface * | interface | ) |
◆ mldLinkChangeEvent()
void mldLinkChangeEvent | ( | NetInterface * | interface | ) |
◆ mldProcessListenerQuery()
void mldProcessListenerQuery | ( | NetInterface * | interface, |
const Ipv6PseudoHeader * | pseudoHeader, | ||
const NetBuffer * | buffer, | ||
size_t | offset, | ||
uint8_t | hopLimit | ||
) |
Process incoming Multicast Listener Query message.
- Parameters
-
[in] interface Underlying network interface [in] pseudoHeader IPv6 pseudo header [in] buffer Multi-part buffer containing the incoming MLD message [in] offset Offset to the first byte of the MLD message [in] hopLimit Hop Limit field from IPv6 header
◆ mldProcessListenerReport()
void mldProcessListenerReport | ( | NetInterface * | interface, |
const Ipv6PseudoHeader * | pseudoHeader, | ||
const NetBuffer * | buffer, | ||
size_t | offset, | ||
uint8_t | hopLimit | ||
) |
Process incoming Multicast Listener Report message.
- Parameters
-
[in] interface Underlying network interface [in] pseudoHeader IPv6 pseudo header [in] buffer Multi-part buffer containing the incoming MLD message [in] offset Offset to the first byte of the MLD message [in] hopLimit Hop Limit field from IPv6 header
◆ mldSendListenerDone()
error_t mldSendListenerDone | ( | NetInterface * | interface, |
Ipv6Addr * | ipAddr | ||
) |
◆ mldSendListenerReport()
error_t mldSendListenerReport | ( | NetInterface * | interface, |
Ipv6Addr * | ipAddr | ||
) |
◆ mldStartListening()
error_t mldStartListening | ( | NetInterface * | interface, |
Ipv6FilterEntry * | entry | ||
) |
◆ mldStopListening()
error_t mldStopListening | ( | NetInterface * | interface, |
Ipv6FilterEntry * | entry | ||
) |
◆ mldTick()
void mldTick | ( | NetInterface * | interface | ) |