igmp.h File Reference
`#include "lwip/opt.h"`
`#include "lwip/ip_addr.h"`
`#include "lwip/netif.h"`
`#include "lwip/pbuf.h"`

## Data Structures

struct | igmp_group

## Macros

#define | netif_igmp_data(netif) ((struct igmp_group *)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_IGMP))

## Functions

void | igmp_init (void)
err_t | igmp_start (struct netif *netif)
err_t | igmp_stop (struct netif *netif)
void | igmp_report_groups (struct netif *netif)
struct igmp_group * | igmp_lookfor_group (struct netif *ifp, const ip4_addr_t *addr)
void | igmp_input (struct pbuf *p, struct netif *inp, const ip4_addr_t *dest)
err_t | igmp_joingroup (const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr)
err_t | igmp_joingroup_netif (struct netif *netif, const ip4_addr_t *groupaddr)
err_t | igmp_leavegroup (const ip4_addr_t *ifaddr, const ip4_addr_t *groupaddr)
err_t | igmp_leavegroup_netif (struct netif *netif, const ip4_addr_t *groupaddr)
void | igmp_tmr (void)

## Detailed Description

IGMP API

## Function Documentation

## igmp_init()

void igmp_init | ( | void |  | ) |

Initialize the IGMP module

## igmp_input()

void igmp_input | ( | struct pbuf * | p,
|  | struct netif * | inp,
|  | const ip4_addr_t * | dest
| ) |  |

Called from ip_input() if a new IGMP packet is received.

Parameters

  p | received igmp packet, p->payload pointing to the igmp header
  inp | network interface on which the packet was received
  dest | destination ip address of the igmp packet

## igmp_lookfor_group()

struct igmp_group* igmp_lookfor_group | ( | struct netif * | ifp,
|  | const ip4_addr_t * | addr
| ) |  |

Search for a group in the netif's igmp group list

Parameters

  ifp | the network interface for which to look
  addr | the group ip address to search for

Returns
  a struct igmp_group* if the group has been found, NULL if the group wasn't found.

## igmp_report_groups()

void igmp_report_groups | ( | struct netif * | netif | ) |

Report IGMP memberships for this interface

Parameters

  netif | network interface on which report IGMP memberships

## igmp_start()

err_t igmp_start | ( | struct netif * | netif | ) |

Start IGMP processing on interface

Parameters

  netif | network interface on which start IGMP processing

## igmp_stop()

err_t igmp_stop | ( | struct netif * | netif | ) |

Stop IGMP processing on interface

Parameters

  netif | network interface on which stop IGMP processing

## igmp_tmr()

void igmp_tmr | ( | void |  | ) |

The igmp timer function (both for NO_SYS=1 and =0) Should be called every IGMP_TMR_INTERVAL milliseconds (100 ms is default).