igmp_snooping.h File Reference

IGMP snooping switch. More...

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

Go to the source code of this file.

Data Structures

struct  IgmpSnoopingPort
 Snooping switch port. More...
 
struct  IgmpSnoopingGroup
 Multicast group. More...
 
struct  IgmpSnoopingSettings
 IGMP snooping settings. More...
 
struct  IgmpSnoopingContext
 IGMP snooping switch context. More...
 

Macros

#define IGMP_SNOOPING_SUPPORT   DISABLED
 

Enumerations

enum  IgmpSnoopingGroupState { IGMP_SNOOPING_GROUP_STATE_NO_MEMBERS_PRESENT = 0 , IGMP_SNOOPING_GROUP_STATE_MEMBERS_PRESENT = 1 , IGMP_SNOOPING_GROUP_STATE_CHECKING_MEMBERSHIP = 2 }
 Multicast group states. More...
 

Functions

void igmpSnoopingGetDefaultSettings (IgmpSnoopingSettings *settings)
 Initialize settings with default values. More...
 
error_t igmpSnoopingInit (IgmpSnoopingContext *context, const IgmpSnoopingSettings *settings)
 IGMP snooping switch initialization. More...
 
error_t igmpSnoopingStart (IgmpSnoopingContext *context)
 Start IGMP snooping switch. More...
 
error_t igmpSnoopingStop (IgmpSnoopingContext *context)
 Stop IGMP snooping switch. More...
 
void igmpSnoopingTick (IgmpSnoopingContext *context)
 IGMP snooping switch timer handler. More...
 

Detailed Description

IGMP snooping switch.

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

Definition in file igmp_snooping.h.

Macro Definition Documentation

◆ IGMP_SNOOPING_SUPPORT

#define IGMP_SNOOPING_SUPPORT   DISABLED

Definition at line 40 of file igmp_snooping.h.

Enumeration Type Documentation

◆ IgmpSnoopingGroupState

Multicast group states.

Enumerator
IGMP_SNOOPING_GROUP_STATE_NO_MEMBERS_PRESENT 
IGMP_SNOOPING_GROUP_STATE_MEMBERS_PRESENT 
IGMP_SNOOPING_GROUP_STATE_CHECKING_MEMBERSHIP 

Definition at line 55 of file igmp_snooping.h.

Function Documentation

◆ igmpSnoopingGetDefaultSettings()

void igmpSnoopingGetDefaultSettings ( IgmpSnoopingSettings settings)

Initialize settings with default values.

Parameters
[out]settingsStructure that contains IGMP snooping settings

Definition at line 62 of file igmp_snooping.c.

◆ igmpSnoopingInit()

error_t igmpSnoopingInit ( IgmpSnoopingContext context,
const IgmpSnoopingSettings settings 
)

IGMP snooping switch initialization.

Parameters
[in]contextPointer to the IGMP snooping switch context
[in]settingsIGMP snooping specific settings
Returns
Error code

Definition at line 94 of file igmp_snooping.c.

◆ igmpSnoopingStart()

error_t igmpSnoopingStart ( IgmpSnoopingContext context)

Start IGMP snooping switch.

Parameters
[in]contextPointer to the IGMP snooping switch context
Returns
Error code

Definition at line 157 of file igmp_snooping.c.

◆ igmpSnoopingStop()

error_t igmpSnoopingStop ( IgmpSnoopingContext context)

Stop IGMP snooping switch.

Parameters
[in]contextPointer to the IGMP snooping switch context
Returns
Error code

Definition at line 202 of file igmp_snooping.c.

◆ igmpSnoopingTick()

void igmpSnoopingTick ( IgmpSnoopingContext context)

IGMP snooping switch timer handler.

Parameters
[in]contextPointer to the IGMP snooping switch context

Definition at line 255 of file igmp_snooping.c.