mld_node.h File Reference

MLD node (Multicast Listener Discovery for IPv6) More...

#include "core/net.h"
#include "mld/mld_common.h"

Go to the source code of this file.

Data Structures

struct  MldNodeSrcAddr
 Source address. More...
 
struct  MldNodeSrcAddrList
 Source address list. More...
 
struct  MldNodeGroup
 Multicast group. More...
 
struct  MldNodeContext
 MLD node context. More...
 

Macros

#define MLD_NODE_SUPPORT   DISABLED
 

Enumerations

enum  MldNodeGroupState { MLD_NODE_GROUP_STATE_NON_LISTENER = 0, MLD_NODE_GROUP_STATE_INIT_LISTENER = 1, MLD_NODE_GROUP_STATE_DELAYING_LISTENER = 2, MLD_NODE_GROUP_STATE_IDLE_LISTENER = 3 }
 MLD node group states. More...
 

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-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.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.4

Definition in file mld_node.h.

Macro Definition Documentation

◆ MLD_NODE_SUPPORT

#define MLD_NODE_SUPPORT   DISABLED

Definition at line 40 of file mld_node.h.

Enumeration Type Documentation

◆ MldNodeGroupState

MLD node group states.

Enumerator
MLD_NODE_GROUP_STATE_NON_LISTENER 
MLD_NODE_GROUP_STATE_INIT_LISTENER 
MLD_NODE_GROUP_STATE_DELAYING_LISTENER 
MLD_NODE_GROUP_STATE_IDLE_LISTENER 

Definition at line 55 of file mld_node.h.

Function Documentation

◆ mldNodeInit()

error_t mldNodeInit ( NetInterface interface)

MLD node initialization.

Parameters
[in]interfaceUnderlying network interface
Returns
Error code

Definition at line 53 of file mld_node.c.

◆ mldNodeLinkChangeEvent()

void mldNodeLinkChangeEvent ( MldNodeContext context)

Callback function for link change event.

Parameters
[in]contextPointer to the MLD node context

Definition at line 451 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]contextPointer to the MLD node context
[in]groupAddrMulticast group address
[in]newFilterModeNew filter mode for the affected group
[in]newFilterNew interface state for the affected group

Definition at line 306 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]contextPointer to the MLD node context

Definition at line 92 of file mld_node.c.