< Home

Changes in MLDv2

MLDv1 messages carry only group information and do not carry multicast source information. Therefore, MLDv1 hosts can only select the groups they want to join and cannot select the multicast sources from which they want to receive multicast data. MLDv2 allows hosts to select both multicast groups and multicast sources. Unlike MLDv1 Membership Report messages that carry only one group, MLDv2 Membership Report messages can carry multiple groups, greatly reducing the number of messages transmitted between receiver hosts and the querier.

MLDv2 Messages

Compared with MLDv1, MLDv2 has the following changes:

  • MLDv2 defines two message types: Query messages and Report messages. Unlike MLDv1, MLDv2 does not define a Multicast Listener Done message. Group members send Report messages of a specified type to notify multicast routers that they have left a multicast group.
  • MLDv2 defines a new Query message type: Multicast Address and Source Specific Query. A querier sends a Multicast Address and Source Specific Query message to members in a specific group on the shared network segment, to check whether the group members want data from specific sources. A Multicast Address and Source Specific Query message carries one or more multicast source addresses.
  • A Multicast Listener Report message contains the group that a host wants to join and the multicast sources from which the host wants to receive data. MLDv2 supports source filtering and defines filtering modes INCLUDE and EXCLUDE. Group-source mappings are represented by (G, INCLUDE, (S1, S2...)) or (G, EXCLUDE, (S1, S2...)). The (G, INCLUDE, (S1, S2...)) entry indicates that a host wants to receive data sent from the listed multicast sources to group G. The (G, EXCLUDE, (S1, S2...)) entry indicates that a host wants to receive data sent from all multicast sources except listed ones to group G. When group-source mappings change, hosts add these changes to the Multicast Address Record fields in MLDv2 Multicast Listener Report messages and send MLDv2 Multicast Listener Report messages to the MLD querier on the local network segment.

Figure 1 illustrates the MLDv2 Query message format, and Table 1 explains the fields in an MLDv2 message.

Figure 1 MLDv2 Query message format
Table 1 Fields in an MLDv2 Query message

Field

Description

Type

Message type. In MLDv2 Query messages, this field is set to 130. MLDv2 Query messages include:

  • General Query
  • Multicast Address Specific Query
  • Multicast Address and Source Specific Query

Code

This field is set to 0 by the sender and is ignored by the receiver.

Checksum

Standard ICMPv6 checksum. It covers the entire MLD message plus a pseudo header of IPv6 header fields. When computing the checksum, a device initially sets the checksum field to 0. The receiver verifies the checksum before processing the packet.

Maximum Response Code

Maximum response time. After receiving a General Query message, hosts must respond with a Multicast Listener Report message within the maximum response time. This field is valid only in MLD Query messages.

Reserved

Reserved field. This field is set to 0 by the sender and is ignored by the receiver.

Multicast Address

Address of a multicast group. In a General Query message, this field is set to 0. In a Multicast Address Specific Query or Multicast Address and Source Specific Query message, this field is set to the IPv6 address of the queried group.

Resv

Reserved field. This field is set to 0 by the sender and is ignored by the receiver.

S

Suppressed router-side processing. When this flag is set to 1, routers receiving the Query message suppress timer updates. Such a Query message does not suppress the querier election or normal host-side processing on the routers.

QRV

Querier's robustness variable. A non-0 value indicates the robustness variable of the querier. This field is set to 0 if the robustness variable of the querier exceeds 7. When a router receives a Query message and finds that the QRV field is not 0, the router sets its robustness variable to the value of the QRV field. If the QRV field is 0, the router ignores this field.

QQIC

Query interval code of an MLD querier, in seconds. When a non-querier router receives a Query message and finds that the QQIC field is not 0, the non-querier router sets its query interval to the value of the QQIC field. If the QQIC field is 0, the non-querier router ignores this field.

Number of Sources

Number of multicast sources in the message. In a General Query or Multicast Address Specific Query message, this field is set to 0. In a Multicast Address and Source Specific Query message, this field is not 0. This number is limited by the maximum transmission unit (MTU) of the network over which the Query message is transmitted.

Source Address

Address of a multicast source. The value is limited by the value of the Number of Sources field.

Figure 2 illustrates the MLDv2 Multicast Listener Report message format, and Table 2 explains the fields in an MLDv2 Multicast Listener Report message.

Figure 2 MLDv2 Multicast Listener Report message format
Table 2 Fields in an MLDv2 Multicast Listener Report message

Field

Description

Type

Message type. In MLDv2 Multicast Listener Report messages, this field is set to 143.

Reserved

Reserved field. This field is set to 0 by the sender and is ignored by the receiver.

Checksum

Standard ICMPv6 checksum. It covers the entire MLD message plus a pseudo header of IPv6 header fields. When computing the checksum, a device initially sets the checksum field to 0. The receiver verifies the checksum before processing the packet.

Nr of Mcast Address Records

Number of multicast group records in the message.

Multicast Address Record

Multicast address record. Figure 3 illustrates the format of a multicast address record, and Table 3 explains the fields in a multicast address record.

Figure 3 Multicast address record format
Table 3 Fields in a multicast address record

Field

Description

Record Type

Group record type:
  • Current-State Record: sent by a host in response to a Query message to report the current state. This record type is one of the following two values:

    1. MODE_IS_INCLUDE: indicates that the host wants to receive multicast data sent from the listed source addresses to the specified multicast group address. The Multicast Listener Report message is invalid if the source list is empty.

    2. MODE_IS_EXCLUDE: indicates that the host does not want to receive multicast data sent from the listed source addresses to the specified multicast group address.

  • Filter-Mode-Change Record: sent by a host when the filter mode changes. This record type is one of the following two values:

    1. CHANGE_TO_INCLUDE_MODE: indicates that the filter mode has changed from EXCLUDE to INCLUDE. The host wants to receive multicast data sent from the new sources in the Source Address fields to the specified multicast group address. If the source list is empty, the host will leave the group.

    2. CHANGE_TO_EXCLUDE_MODE: indicates that the filter mode has changed from INCLUDE to EXCLUDE. The host rejects multicast data sent from the new sources in the Source Address fields to the specified multicast group address.

  • Source-List-Change Record: sent by a host when the source list changes. This record type is one of the following two values:

    1. ALLOW_NEW_SOURCES: indicates that the Source Address fields in this group record contain additional sources from which the host wants to receive multicast data, sent to the specified multicast group address. If the filter mode is INCLUDE, the sources in the Source Address fields are added to the source list. If the filter mode is EXCLUDE, the sources in the Source Address fields are deleted from the source list.

    2. BLOCK_OLD_SOURCES: indicates that the Source Address fields in this group record contain the sources from which the host no longer wants to receive multicast data. If the filter mode is INCLUDE, the sources in the Source Address fields are deleted from the source list. If the filter mode is EXCLUDE, the sources in the Source Address fields are added to the source list.

Aux Data Len

Length of the Auxiliary Data field. MLDv2 Multicast Listener Report messages do not contain auxiliary data, so the Aux Data Len field is set to 0.

Number of Sources

Number of source addresses in this group record.

Multicast Address

Address of a multicast group.

Sources Address

Address of a multicast source.

Auxiliary Data

Additional information in this group record. MLDv2 Multicast Listener Report messages do not contain auxiliary data.

How MLDv2 Works

Compared with MLDv1, MLDv2 allows hosts to select specific multicast sources.

Joining a specific source and group

MLDv2 Multicast Listener Report messages have a destination address FF02::16, which indicates all MLD-capable multicast routers on the same network segment. A Multicast Listener Report message contains Group Record fields, allowing hosts to specify the multicast sources which they do or do not want to receive data from when joining a multicast group. As shown in Figure 4, two multicast sources S1 and S2 send data to multicast group G. The host only wants to receive data sent from S1 to G.

Figure 4 MLDv2 source-and-group-specific multicast data flow

If MLDv1 is running between the host and its upstream router, the host cannot select multicast sources when it joins group G. The host receives data from both S1 and S2, regardless of whether it requires the data. If MLDv2 is running between the host and its upstream router, the host can choose to receive only data from S1 using either of the following methods:

  • Method 1

    Send an MLDv2 Multicast Listener Report (G, INCLUDE, (S1)), requesting to receive only the data sent from S1 to G.

  • Method 2

    Send an MLDv2 Multicast Listener Report (G, EXCLUDE, (S2)), notifying the upstream router that it does not want to receive data from S2. Then only data sent from S1 is forwarded to the host.

Multicast Address and Source Specific Query

When an MLD querier receives a Multicast Listener Report message with Filter-Mode-Change Records or Source-List-Change Records (such as CHANGE_TO_INCLUDE_MODE and CHANGE_TO_EXCLUDE_MODE), it sends a Multicast Address and Source Specific Query message. If members want to receive data from any source in the source list, they send Multicast Listener Report messages. The MLD querier updates the source list of the corresponding group according to the received Multicast Listener Report messages.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic Next topic >