IMld¶
Package: inet.networklayer.icmpv6
module interface IMld
Module interface for MLD modules.
An MLD module sends notifications about IPv6 multicast group memberships in hosts, and processes these in multicast routers. MLD is the IPv6 equivalent of IGMP; MLDv1 (RFC 2710) parallels IGMPv2 (RFC 2236).
MLD packets are transported as ICMPv6 messages by the IPv6 layer
connected to the ipIn/ipOut gates (which attach to the lp
MessageDispatcher in Ipv6NetworkLayer).
See also: Mldv1
Inheritance diagram¶
Implemented by¶
Name |
Type |
Description |
|---|---|---|
simple module |
Implements MLDv1 (RFC 2710): Multicast Listener Discovery for IPv6 – the IPv6 equivalent of Igmpv2. A single module performs both the host listener role and the router querier role; the router role is active only on multicast routers (i.e. when IPv6 multicast forwarding is enabled on the node). |
|
simple module |
Implements MLDv2 (RFC 3810): Multicast Listener Discovery version 2 for IPv6 – the IPv6 equivalent of Igmpv3, and the source-filtering successor to Mldv1. Beyond plain group membership, MLDv2 lets a host request a group’s traffic while INCLUDING or EXCLUDING a specific set of sources – the basis for Source-Specific Multicast (SSM). A single module performs both the host listener role and the multicast-router (querier) role; the router role is active only on multicast routers (i.e. when IPv6 multicast forwarding is enabled on the node). |
Properties¶
Name |
Value |
Description |
|---|---|---|
display |
i=block/cogwheel |
Source code¶
//
// Module interface for MLD modules.
//
// An MLD module sends notifications about IPv6 multicast group memberships
// in hosts, and processes these in multicast routers. MLD is the IPv6
// equivalent of IGMP; MLDv1 (RFC 2710) parallels IGMPv2 (RFC 2236).
//
// MLD packets are transported as ICMPv6 messages by the IPv6 layer
// connected to the `ipIn`/`ipOut` gates (which attach to the `lp`
// MessageDispatcher in ~Ipv6NetworkLayer).
//
// @see ~Mldv1
//
moduleinterface IMld
{
@display("i=block/cogwheel");
gates:
input ipIn @labels(Ipv6ControlInfo/up);
output ipOut @labels(Ipv6ControlInfo/down);
}