IIgmp

Package: inet.networklayer.ipv4

IIgmp

module interface

Module interface for IGMP modules.

An IGMP module sends notifications about multicast group memberships in hosts, and processes these notifications in multicast routers.

Currently there are 3 versions specified in RFC 1112 (IGMPv1), RFC 2236 (IGMPv2), and RFC 3376 (IGMPv3).

IGMP packets are transported by the IP layer connected to the ipIn/ipOut gates. Some multicast routing protocols (e.g. DVMRP) also communitacate with IGMP messages. They must be connected to the routerIn/routerOut gates, the IGMP module will pass up the unrecognized IGMP packets.

See also: Igmpv2

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Implemented by

Name Type Description
Igmpv2 simple module

Imlementation of IGMPv2 protocol. Multicast routers use IGMP to learn which groups have members on each of their attached physical networks.

Igmpv3 simple module (no description)

Used in compound modules

Name Type Description
Ipv4NetworkLayer compound module

Network layer of an IPv4 node.

Properties

Name Value Description
display i=block/cogwheel

Source code

//
// Module interface for IGMP modules.
//
// An IGMP module sends notifications about multicast group memberships in hosts,
// and processes these notifications in multicast routers.
//
// Currently there are 3 versions specified in RFC 1112 (IGMPv1), RFC 2236 (IGMPv2),
// and RFC 3376 (IGMPv3).
//
// IGMP packets are transported by the IP layer connected to the ipIn/ipOut
// gates. Some multicast routing protocols (e.g. DVMRP) also communitacate with
// IGMP messages. They must be connected to the routerIn/routerOut gates,
// the IGMP module will pass up the unrecognized IGMP packets.
//
// @see ~Igmpv2
//
moduleinterface IIgmp
{
    @display("i=block/cogwheel");

    gates:
        input ipIn @labels(Ipv4ControlInfo/up);
        output ipOut @labels(Ipv4ControlInfo/down);

        input routerIn @labels(Ipv4ControlInfo/up);
        output routerOut @labels(Ipv4ControlInfo/down);
}

File: src/inet/networklayer/ipv4/IIgmp.ned