Printer FriendlyEmail Article Link

Spirent 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?

Environment/Versions
  • Spirent TestCenter
    • MLD
    • All version
Answer

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

   <snips>

   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.

     <snips>
 

 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

 


Product : Access,Spirent TestCenter,IGMP/MLD,Multicast