igmp_host.c File Reference

IGMP host. More...

#include "core/net.h"
#include "ipv4/ipv4.h"
#include "ipv4/ipv4_multicast.h"
#include "ipv4/ipv4_misc.h"
#include "igmp/igmp_host.h"
#include "igmp/igmp_host_misc.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   IGMP_TRACE_LEVEL
 

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.

Description

IGMP is used by IP hosts to report their multicast group memberships to routers. Refer to the following RFCs for complete details:

  • RFC 1112: Host Extensions for IP Multicasting
  • RFC 2236: Internet Group Management Protocol, Version 2
  • RFC 3376: Internet Group Management Protocol, Version 3
Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.4

Definition in file igmp_host.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   IGMP_TRACE_LEVEL

Definition at line 40 of file igmp_host.c.

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.