VIAVI TestCenter: When an MLDv2 listener has joined an IPv6 multicast group and it receives more than one General Query in a row should it respond to every one of them?
Knowledge Base - FAQ
VIAVI TestCenter: When an MLDv2 listener has joined an IPv6 multicast group and it receives more than one General Query in a row should it respond to every one of them?
Not necessarily. Assuming that the subsequent GQ(s) is/are received within the Maximum Response Delay of the first GQ, it then depends on when the report for the first GQ is scheduled relative to the time the subsequent GQ(s) is/are received.
RFC 3810, section 6.2, Action on Reception of a Query, specifies how a listener is to respond to GQs
If it does, a delay for a response is randomly selected in the range (0,
[Maximum Response Delay]), where Maximum Response Delay is derived
from the Maximum Response Code inserted in the received Query
message. The following rules are then used to determine if a Report
needs to be scheduled or not, and the type of Report to schedule.
(The rules are considered in order and only the first matching rule
is applied.)
1. If there is a pending response to a previous General Query
scheduled sooner than the selected delay, no additional response
needs to be scheduled.
2. If the received Query is a General Query, the Interface Timer is
used to schedule a response to the General Query after the
selected delay. Any previously pending response to a General
Query is canceled.
Based on this there are 2 scenarios.
• Scenario 1
• GQ_2 arrives after the report for GQ_1 is sent
• In this case 2 reports are sent
+------------ rx GQ_2
| +------- tx R_2 - rpt for GQ_2
| |
\|/ \|/
----+----+----+----+--------
^ ^
| |
| +----------------- tx R_1 - rpt for GQ_1
+---------------------- rx GQ_1
• Scenario 2
• GQ_2 arrives before the report for GQ_1 is sent
• There are two sub-scenarios, A and B, and in either case only one report is sent
+------------------------ tx R_2 - rpt for GQ_2 scenario A
| +---- tx R_2 - rpt for GQ_2 scenario B
| |
\|/ \|/
----+--------+----------+----------+--------+---+-------
^ ^ ^ ^
| | | |
| | | + max response delay of GQ_1
| | +-------------- tx R_1 - rpt for GQ_1
| +------------------------------------ rx GQ_2
+--------------------------------------------- rx GQ_1
• Scenario A - report for GQ_2 is scheduled before report for GQ_1
• R1 is not sent, R2 is sent per rule 2
• Scenario B - report for GQ_2 is scheduled after report for GQ_1
• R1 is sent, R2 is not sent per rule 1