MLD node (Multicast Listener Discovery for IPv6) More...
#include "core/net.h"
#include "ipv6/ipv6.h"
#include "ipv6/ipv6_multicast.h"
#include "ipv6/ipv6_misc.h"
#include "mld/mld_node.h"
#include "mld/mld_node_misc.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL MLD_TRACE_LEVEL |
Functions | |
error_t | mldNodeInit (NetInterface *interface) |
MLD node initialization. More... | |
void | mldNodeTick (MldNodeContext *context) |
MLD node timer handler. More... | |
void | mldNodeStateChangeEvent (MldNodeContext *context, const Ipv6Addr *groupAddr, IpFilterMode newFilterMode, const Ipv6SrcAddrList *newFilter) |
Process multicast reception state change. More... | |
void | mldNodeLinkChangeEvent (MldNodeContext *context) |
Callback function for link change event. More... | |
Detailed Description
MLD node (Multicast Listener Discovery for IPv6)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2025 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 3590: Source Address Selection for MLD Protocol
- RFC 3810: Multicast Listener Discovery Version 2 (MLDv2) for IPv6
- RFC 9777: Multicast Listener Discovery Version 2 (MLDv2) for IPv6
- Version
- 2.5.2
Definition in file mld_node.c.
Macro Definition Documentation
◆ TRACE_LEVEL
#define TRACE_LEVEL MLD_TRACE_LEVEL |
Definition at line 43 of file mld_node.c.
Function Documentation
◆ mldNodeInit()
error_t mldNodeInit | ( | NetInterface * | interface | ) |
MLD node initialization.
- Parameters
-
[in] interface Underlying network interface
- Returns
- Error code
Definition at line 64 of file mld_node.c.
◆ mldNodeLinkChangeEvent()
void mldNodeLinkChangeEvent | ( | MldNodeContext * | context | ) |
Callback function for link change event.
- Parameters
-
[in] context Pointer to the MLD node context
Definition at line 462 of file mld_node.c.
◆ mldNodeStateChangeEvent()
void mldNodeStateChangeEvent | ( | MldNodeContext * | context, |
const Ipv6Addr * | groupAddr, | ||
IpFilterMode | newFilterMode, | ||
const Ipv6SrcAddrList * | newFilter | ||
) |
Process multicast reception state change.
- Parameters
-
[in] context Pointer to the MLD node context [in] groupAddr Multicast group address [in] newFilterMode New filter mode for the affected group [in] newFilter New interface state for the affected group
Definition at line 317 of file mld_node.c.
◆ mldNodeTick()
void mldNodeTick | ( | MldNodeContext * | context | ) |
MLD node timer handler.
This routine must be periodically called by the TCP/IP stack to handle MLD related timers
- Parameters
-
[in] context Pointer to the MLD node context
Definition at line 103 of file mld_node.c.