IGMP snooping switch. More...
#include "core/net.h"
#include "ipv4/ipv4.h"
#include "ipv4/ipv4_misc.h"
#include "igmp/igmp_snooping.h"
#include "igmp/igmp_snooping_misc.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL IGMP_TRACE_LEVEL |
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.
Description
In the case of IP multicast traffic, an IGMP snooping switch provides the benefit of conserving bandwidth on those segments of the network where no node has expressed interest in receiving packets addressed to the group address. 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
- RFC 4541: Considerations for IGMP and MLD Snooping Switches
- Version
- 2.4.4
Definition in file igmp_snooping.c.
Macro Definition Documentation
◆ TRACE_LEVEL
#define TRACE_LEVEL IGMP_TRACE_LEVEL |
Definition at line 43 of file igmp_snooping.c.
Function Documentation
◆ igmpSnoopingGetDefaultSettings()
void igmpSnoopingGetDefaultSettings | ( | IgmpSnoopingSettings * | settings | ) |
Initialize settings with default values.
- Parameters
-
[out] settings Structure 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] context Pointer to the IGMP snooping switch context [in] settings IGMP 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] context Pointer 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] context Pointer 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] context Pointer to the IGMP snooping switch context
Definition at line 255 of file igmp_snooping.c.