# Internet Group Management Protocol (IGMP)

IGMP was primarily designed for hosts on multi-access networks to inform locally attached routers of their group membership information. This is performed by hosts multicasting IGMP Host Membership Reports. Multicast routers listen for these messages and then can exchange group membership information with other multicast routers. This allows distribution trees to be formed to deliver multicast datagrams. The original version of IGMP was defined in Host Extensions for IP Multicasting.

Extensions to IGMP have been developed and released in later releases of the IP Multicast distribution from Xerox PARC. These extensions, known as IGMP version 2, include explicit leave messages for faster pruning and multicast traceroute messages. GATED is aware of both IGMP Version 1 and Version 2 messages. However, the multicast traceroute features have not yet been implemented. Of course, this will be done "real soon now".

## The IGMP Statement

    igmp yes | no | on | off [ {
        queryinterval sec ;
        timeoutinterval sec ;
        interface interface_list enable | disable;
        traceoptions trace_options ;
    } ] ;

The `igmp` statement enables or disables the IGMP protocol. If the `igmp` statement is not specified the default is `igmp off;` If enabled, IGMP will default to enabling all interfaces that are both broadcast and multicast capable. These interfaces are indentified by the IFF_BROADCAST and IFF_MULTICAST interface flags. IGMP must be enabled before one of the IP Multicast routing protocols are enabled.

The options are as follows:

queryinterval sec
  This is the interval at which IGMP Host Membership Queries are sent if this router is elected the designated querier for the LAN. If not specified, the default value is 125 seconds.
timeoutinterval sec
  This is the longest interval that a group will remain in the local group database without receiving a Host Membership Report. If not specified, the default value is 270 seconds. It is calculated as 2*(queryinterval + 10). The 10 seconds is the variation that hosts use when sending Host Membership Reports. If the value of queryinterval is specified and the timeout interval is not specified, gated will use this formula to calculate an appropriate timeout interval. However, if a timeout interval is specified, it will override any calculated value.
interface interface_list
  Enables or disables IGMP on this interface or list of interfaces.

  Currently, the gated implementation of IGMP cannot detect when there are multiple addresses configured on the same physical interface. It will send IGMP messages to each logical network. This should be fixed in a future release.

  The possible parameters are:

  disable
    Specifies that IGMP packets received via the specified interface will be ignored. The default is to listen to IGMP on all interfaces.
  enable
    This is the default. This argument may be necessary when `disable` is used on a wildcard interface descriptor.
traceoptions trace_options
  Specifies the tracing options for IGMP. (See Trace Statements and the IGMP specific tracing options below.)

## Tracing options

Packet tracing options (which may be modified with `detail`, `send` or `recv`):

packets
  All IGMP packets.
query
  IGMP Host Membership Query packets
report
  IGMP Host Membership Reports and New Host Membership Reports
leave
  IGMP Host Leave messages
mtrace
  IGMP Multicast trace route `request` and `response` packets plus Cisco multicast trace messages.

## Sample IGMP configurations

See the sample multicast router configurations.

Last updated $Date: 1997/07/17 22:39:57 $.