IIgmp¶
Package: inet.networklayer.ipv4
module interface IIgmp
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 communicate 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¶
Implemented by¶
Name |
Type |
Description |
|---|---|---|
simple module |
Implementation of IGMPv2 protocol. Multicast routers use IGMP to learn which groups have members on each of their attached physical networks. |
|
simple module |
Implements IGMPv3 (RFC 3376), the source-filtering version of the Internet Group Management Protocol for IPv4. Beyond plain group membership (see Igmpv2), IGMPv3 lets a host request a group’s traffic while INCLUDING or EXCLUDING a specific set of sources – the basis for Source-Specific Multicast. A single module performs both the host and the multicast-router (querier) role. |
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 communicate 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);
}