NAME

  rQuerier2.seq - "Multicast Listener Discovery for IPv6" Test
                  Querier : state transition diagram 2


TARGET

  Router


INITIALIZATION

  None


TEST PROCEDURE

  This test check following.
  
  *1: Check a part of The state transition diagram for a router in Querier state
                             ________________
                            |                |
                            |                |timer expired
                            |                |(notify routing -,
                            |  No Listeners  |clear rxmt tmr)
                            |    Present     |<---------
                            |                |          |
                            |                |          |
                            |________________|          |  ---------------
                                        |               | | rexmt timer   |
                         report received|               | |  expired      |
                      (notify routing +,|               | | (send m-a-s   |
                            start timer)|               | |  query,       |
         _________________              |       ________|_|______ st rxmt |
        |                 |<------------       |                 | tmr)   |
        |                 |                    |                 |<-------
        |                 | report received    |                 |
        |                 | (start timer,      |                 |
        |                 |  clear rxmt tmr)   |                 |
        |    Listeners    |<-------------------|    Checking     |
        |     Present     | done received      |    Listeners    |
        |                 | (start timer*,     |                 |
        |                 |  start rxmt timer, |                 |
        |                 |  send m-a-s query) |                 |
        |                 |------------------->|                 |
        |_________________|                    |_________________|

   -- in RFC2710 page 15 --
                             ________________
                            |                |
                            |                |timer expired
               timer expired|                |(notify routing -,
          (notify routing -)|  No Listeners  |clear rxmt tmr)
                    ------->|    Present     |<---------
                   |        |                |          |
                   |        |                |          |
                   |        |________________|          |  ---------------
                   |                    |               | | rexmt timer   |
                   |     report received|               | |  expired      |
                   |  (notify routing +,|               | | (send m-a-s   |
                   |        start timer)|               | |  query,       |
         __________|______              |       ________|_|______ st rxmt |
        |                 |<------------       |                 | tmr)   |
        |                 |                    |                 |<-------
        |                 | report received    |                 |
        |                 | (start timer,      |                 |
        |                 |  clear rxmt tmr)   |                 |
        |    Listeners    |<-------------------|    Checking     |
        |     Present     | done received      |    Listeners    |
        |                 | (start timer*,     |                 |
        |                 |  start rxmt timer, |                 |
        |                 |  send m-a-s query) |                 |
    --->|                 |------------------->|                 |
   |    |_________________|                    |_________________|
   | report received |
   | (start timer)   |
    -----------------
   -- in RFC2710 page 15 --

  -Test flow 
  
  1. [No Listeners Present] > [Listeners Present]
     1.1. receive General Query message
     1.2. send Report message
          Now NUT is [Listeners Present] state
  2. [Listeners Present] > [Checking Listeners]
     2.1. send Done maessage
     2.2. receive Multicast-Address-Specific Query message
          Now NUT is [Checking Listeners] state
  3. [Checking Listeners] > [Listeners Present]
     3.1. send Report maessage
          Now NUT return [Listeners Present] state
     3.2. Wait 5s
  4. [Listeners Present] > [Checking Listeners]
     4.1. send Done maessage
     4.2. receive Multicast-Address-Specific Query message
          Now NUT is [Checking Listeners] state again
  5. [Checking Listeners] > [Checking Listeners]
     5.1. receive Multicast-Address-Specific Query message
          Now NUT is still [Checking Listeners] state
     5.2. NUT don't send an Multicast-Address-Specific Query message any more
  6. [Checking Listeners] > [No Listeners Present]
     6.1. wait timer
          ([Last Listener Query Interval] * [Last Listener Query Count] = (1 x 2) = 2s) expired
          (but at this moment, already timer expired)
          Now NUT is [No Listeners Present] state
  7. Check : Now NUT is [No Listeners Present] state
     7.1. send Done message
     7.2. NUT don't send an Multicast-Address-Specific Query message

        NUT       TN 
         |        |
         +------->| Generl Query
         <--------+ Report
         |        |
         <--------+ Done
         +------->| Multicast-Address-Specific Query
         |        |
         <--------+ Report
         |        |
         <--------+ Done
         +------->| Multicast-Address-Specific Query
         |        |
         +------->| Multicast-Address-Specific Query
         |        |
         |        | Don't receive Multicast-Address-Specific Query any more
         |        |
         <--------+ Done
         |        |
         |        | No Multicast-Address-Specific Query message.
         |        |


JUDGEMENT

  PASS: NUT don't send an Multicast-Address-Specific Query message.


SEE ALSO

  perldoc V6evalTool
  MLD.pm "Multicast Listener Discovery for IPv6" Test Common Utility