igmp_host.h File Reference

IGMP host. More...

#include "core/net.h"
#include "igmp/igmp_common.h"

Go to the source code of this file.

Data Structures

struct  IgmpHostSrcAddr
 Source address. More...
 
struct  IgmpHostSrcAddrList
 Source address list. More...
 
struct  IgmpHostGroup
 Multicast group. More...
 
struct  IgmpHostContext
 IGMP host context. More...
 

Macros

#define IGMP_HOST_SUPPORT   ENABLED
 

Enumerations

enum  IgmpHostGroupState { IGMP_HOST_GROUP_STATE_NON_MEMBER = 0, IGMP_HOST_GROUP_STATE_INIT_MEMBER = 1, IGMP_HOST_GROUP_STATE_DELAYING_MEMBER = 2, IGMP_HOST_GROUP_STATE_IDLE_MEMBER = 3 }
 Multicast group states. More...
 

Functions

error_t igmpHostInit (NetInterface *interface)
 IGMP host initialization. More...
 
void igmpHostTick (IgmpHostContext *context)
 IGMP host timer handler. More...
 
void igmpHostStateChangeEvent (IgmpHostContext *context, Ipv4Addr groupAddr, IpFilterMode newFilterMode, const Ipv4SrcAddrList *newFilter)
 Process multicast reception state change. More...
 
void igmpHostLinkChangeEvent (IgmpHostContext *context)
 Process link state change. More...
 

Detailed Description

IGMP host.

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

Macro Definition Documentation

◆ IGMP_HOST_SUPPORT

#define IGMP_HOST_SUPPORT   ENABLED

Definition at line 40 of file igmp_host.h.

Enumeration Type Documentation

◆ IgmpHostGroupState

Multicast group states.

Enumerator
IGMP_HOST_GROUP_STATE_NON_MEMBER 
IGMP_HOST_GROUP_STATE_INIT_MEMBER 
IGMP_HOST_GROUP_STATE_DELAYING_MEMBER 
IGMP_HOST_GROUP_STATE_IDLE_MEMBER 

Definition at line 55 of file igmp_host.h.

Function Documentation

◆ igmpHostInit()

error_t igmpHostInit ( NetInterface interface)

IGMP host initialization.

Parameters
[in]interfaceUnderlying network interface
Returns
Error code

Definition at line 61 of file igmp_host.c.

◆ igmpHostLinkChangeEvent()

void igmpHostLinkChangeEvent ( IgmpHostContext context)

Process link state change.

Parameters
[in]contextPointer to the IGMP host context

Definition at line 489 of file igmp_host.c.

◆ igmpHostStateChangeEvent()

void igmpHostStateChangeEvent ( IgmpHostContext context,
Ipv4Addr  groupAddr,
IpFilterMode  newFilterMode,
const Ipv4SrcAddrList newFilter 
)

Process multicast reception state change.

Parameters
[in]contextPointer to the IGMP host context
[in]groupAddrMulticast group address
[in]newFilterModeNew filter mode for the affected group
[in]newFilterNew interface state for the affected group

Definition at line 346 of file igmp_host.c.

◆ igmpHostTick()

void igmpHostTick ( IgmpHostContext context)

IGMP host timer handler.

This routine must be periodically called by the TCP/IP stack to handle IGMP related timers

Parameters
[in]contextPointer to the IGMP host context

Definition at line 102 of file igmp_host.c.