The Querier Election and the adoption of QRV and QQIC

"K.Kawaguchi" <[email protected]> Fri, 26 Dec 2008 14:16:03 +0900
Newsgroups gmane.ietf.magma
Message-ID <[email protected]>
Hi all,

How should description of RFC3810 be implemented about the Querier 
Election and the adoption of QRV and QQIC?

Some examples are shown. Which is the right implementation of MLDv2?
When a router receives a query, only processing which suited conditions 
in order is performed.
------------------------------------------------------------------------
Router-A:
   1) When a router is a querier and has an address lower than the 
      source address of the query, the query is effective although the 
      query's sender is not regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Since Router-A is a querier, don't adopt QQIC. (same as Section 
        5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)

   2) When a router (is not a querier and) has an address lower than the 
      source address of the query, the query is effective although the 
      query's sender is not regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Since Router-A is not a querier, adopt QQIC. (same as Section 
        5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)

   3) (When a router has an address higher than the source address of 
       the query,)
      The query's sender is regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Adopt QQIC. (same as Section 5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)
      - Other Querier Present timer is updated. (same as Section 7.6.2)

   The difference with RFC
   * Nothing

   The problem of behavior
   * 1),2),3): The value of QQIC is not in agreement with a router.
               - A querier is own QQIC.
               - A non-querier is most recentry received QQIC.
   * 3): The query's sender may not be a true (it has the lowest 
         address) querier. A Other Querier Present timer may not be 
         right. When the timer is small, unnecessary Q (G) is sent.
   * 3): When Other Querier Present timer is updated by Q(MA) and 
         Q(MA,A) and other querier stops, some source timers and filter 
         timers may expire earlyer than Q(G) is sent.


------------------------------------------------------------------------
Router-B:
  1) When a router does not have Other Querier Presant timer and has an 
     address lower than the source address of the query, the query is 
     effective although the query's sender is not regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Since Router-A is a querier, don't adopt QQIC. (same as Section 
        5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)

  2) When a router has Other Querier Presant timer and Other Querier has 
     an address lower than the source address of the query, the query is 
     effective although the query's sender is not regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Since Router-A is not a querier, adopt QQIC. (same as Section 
        5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)
      - Other Querier Present timer is not updated. 
        (* differs from Section 7.6.2)

  3) (The source address of query is lower than a router's address, and 
      is equal and lower than Other Querier's address,)
     The query's sender is regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Adopt QQIC. (same as Section 5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)
      - Other Querier Present timer is updated. (same as Section 7.6.2)

   The difference with RFC
   * 2): It is not in agreement with Section 7.6.2.
         Section 7.6.2 updates other querier present timers, when 
         smaller than a router address.

   The problem of behavior
   * 1),2),3): The value of QQIC is not in agreement with a router.
               - A querier is own QQIC.
               - A non-querier is most recentry received QQIC.
   * 3): When Other Querier Present timer is updated by Q(MA) and 
         Q(MA,A) and other querier stops, some source timers and filter 
         timers may expire earlyer than Q(G) is sent.


------------------------------------------------------------------------
Router-C:
  1) When a router does not have Other Querier Presant timer and has an 
     address lower than the source address of the query, the query is 
     effective although the query's sender is not regarded as a querier.

      - Adopt QRV. (same as Section 5.1.8)
      - Adopt QQIC. (* differs from Section 5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)

  2) When a router has Other Querier Presant timer and Other Querier has 
     an address lower than the source address of the query, the query is 
     effective although the query's sender is not regarded as a querier.

      - Adopt QRV. (Same as Section 5.1.8)
      - Adopt QQIC. (Same as Section 5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)
      - Other Querier Present timer is not updated. 
        (* differs from Section 7.6.2)

  3) (The source address of query is lower than a router's address, and 
      is equal and lower than Other Querier's address,)
     The query's sender is regarded as a querier.

      - Adopt QRV. (Same as Section 5.1.8)
      - Adopt QQIC. (Same as Section 5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)
      - If the Query is Q(G), Other Querier Present timer are updated.
        (* differs from Section 7.6.2).

   The difference with RFC
   * 1): It is not in agreement with Section 5.1.9.
         Section 5.1.9 updates QQIC, when a router is not querier.
   * 2): It is not in agreement with Section 7.6.2.
         Section 7.6.2 updates other querier present timers, when 
         smaller than a router address.
   * 3): It is not in agreement with Section 7.6.2.
         Section 7.6.2 updates other querier present timers, when a 
         router receives any kind of query (not only Q(G)).

   The problem of behavior
   * Maybe nothing. 
     QRV and QQIC are in agreement immediately. On the other hand, time 
     to behavior as a querier is extended until it sets up Other Querier 
     Presant timer. However, since QRV and QQIC are in agreement, they 
     are satisfactory. Moreover, Q(G) is sent before each source and 
     filter timers expire.


------------------------------------------------------------------------
Router-D:
  1) When a router does not have Other Querier Presant timer and has an 
     address lower than the source address of the query, a router drops 
     the query.

      - Don't adopt QRV. (* differs from Section 5.1.8)
      - Don't adopt QQIC. (same as Section 5.1.9).
      - Don't update timer. (* differs from Section 7.6.1)

  2) When a router has Other Querier Presant timer and Other Querier has 
     an address lower than the source address of the query, a router 
     drops the query.

      - Don't adopt QRV. (* differs from Section 5.1.8)
      - Don't adopt QQIC. (same as Section 5.1.9)
      - Don't update timer. (* differs from Section 7.6.1)
      - Other Querier Present timer is not updated.
        (* differs from Section 7.6.2)

  3) (The source address of query is lower than a router's address, and 
      is equal and lower than Other Querier's address,)
     The query's sender is regarded as a querier.

      - Adopt QRV. (Same as Section 5.1.8)
      - Adopt QQIC. (Same as Section 5.1.9)
      - If the Query is Q(MA) or Q(MA,A), a router updates timer. (same 
        as Section 7.6.1)
      - If the Query is Q(G), Other Querier Present timer is updated.
        (* differs from Section 7.6.2)

   The difference with RFC
   * 1),2): It is not in agreement with Section 5.1.8 and Section 7.6.1.
            Section 5.1.8 always updates QQIC.
            Section 7.6.1 always processes Q(MA) and Q(MA,A).
   * 2): It is not in agreement with Section 5.1.9 and Section 7.6.2.
         Section 5.1.9 updates QQIC, when a router is not querier.
         Section 7.6.2 updates other querier present timers, when 
         smaller than a router address.
   * 3): It is not in agreement with Section 7.6.2.
         Section 7.6.2 updates other querier present timers, when a 
         router receives any kind of query (not only Q(G)).

   The problem of behavior
   * A router cannot have the same state as other routers until it 
     receives Query from a true querier.


Best Regards
--
Kiyoaki Kawaguchi