Skip to main content

3. Packet Formats

This section describes the details of the MLDv2 packet formats. All MLDv2 messages are sent in ICMPv6 packets [RFC2463].

3.1. Multicast Listener Query Message

Multicast Listener Query Messages are sent by multicast routers to query the multicast reception state of neighboring interfaces. They have the following format:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 130 | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum Response Code | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Multicast Address |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Resv |S| QRV | QQIC | Number of Sources (N) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Source Address [1] |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Source Address [2] |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. . .
. . .
. . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Source Address [N] |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.1.1. Type

130 (Multicast Listener Query)

3.1.2. Code

Initialized to zero by the sender; ignored by receivers.

3.1.3. Checksum

The standard ICMPv6 checksum.

3.1.4. Maximum Response Code

Specifies the maximum time allowed before sending a responding Report. The actual time allowed, called the Maximum Response Delay, is represented in units of milliseconds, and is derived from the Maximum Response Code as follows:

If Maximum Response Code < 32768, Maximum Response Delay = Maximum Response Code

If Maximum Response Code >= 32768, Maximum Response Code represents a floating-point value as follows:

 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1| exp | mant |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Maximum Response Delay = (mant | 0x1000) << (exp + 3)

3.1.5. Reserved

Initialized to zero by the sender; ignored by receivers.

3.1.6. Multicast Address

  • For a General Query, the Multicast Address field is set to zero.
  • For a Multicast-Address-Specific Query, it is set to the multicast address being queried.
  • For a Multicast-Address-and-Source-Specific Query, it is set to the multicast address being queried.

3.1.7. S Flag (Suppress Router-Side Processing)

When set to one, indicates to any receiving multicast router that they are to suppress the normal timer updates that they perform upon hearing a Query.

3.1.8. QRV (Querier's Robustness Variable)

If non-zero, contains the [Robustness Variable] value used by the sender of the Query. If the sender's [Robustness Variable] exceeds 7, the maximum value of 7 is sent.

3.1.9. QQIC (Querier's Query Interval Code)

Specifies the [Query Interval] used by the Querier. The actual interval, called the Querier's Query Interval (QQI), is represented in units of seconds, and is derived from the Querier's Query Interval Code as follows:

If QQIC < 128, QQI = QQIC

If QQIC >= 128, QQIC represents a floating-point value as follows:

 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|1| exp | mant |
+-+-+-+-+-+-+-+-+

QQI = (mant | 0x10) << (exp + 3)

3.1.10. Number of Sources (N)

Specifies how many source addresses are present in the Query. This number is zero for General Queries and Multicast-Address-Specific Queries, and non-zero for Multicast-Address-and-Source-Specific Queries.

3.1.11. Source Address [i]

The Source Address [i] fields are a vector of n IPv6 unicast addresses, where n is the value in the Number of Sources (N) field.

3.2. Multicast Listener Report Message

Multicast Listener Report Messages are sent by multicast listeners to report their current multicast reception state. They have the following format:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 143 | Reserved | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Nr of Mcast Address Records |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Multicast Address Record [1] .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Multicast Address Record [2] .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
. . .
| . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Multicast Address Record [M] .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.2.1. Type

143 (Version 2 Multicast Listener Report)

3.2.2. Reserved

Initialized to zero by the sender; ignored by receivers.

3.2.3. Checksum

The standard ICMPv6 checksum.

3.2.4. Nr of Mcast Address Records (M)

Specifies how many Multicast Address Records are present in this Report.

3.2.5. Multicast Address Record

Each Multicast Address Record has the following internal format:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Record Type | Aux Data Len | Number of Sources (N) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Multicast Address |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Source Address [1] |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. . .
. . .
. . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
* *
| Source Address [N] |
* *
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Auxiliary Data .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.2.6.1. Record Type

See Section 4.

3.2.6.2. Aux Data Len

The length of the Auxiliary Data field in this Multicast Address Record, in units of 32-bit words.

3.2.6.3. Number of Sources (N)

Specifies how many source addresses are present in this Multicast Address Record.

3.2.6.4. Multicast Address

The multicast address to which this Multicast Address Record pertains.

3.2.6.5. Source Address [i]

The Source Address [i] fields are a vector of n IPv6 unicast addresses, where n is the value in the Number of Sources (N) field.

3.2.6.6. Auxiliary Data

Additional data associated with this Multicast Address Record. Currently, no Auxiliary Data is defined, so Aux Data Len is set to 0 and the field is absent.