regarding IGMPv3 state transition

GuoFeng <[email protected]> Thu, 15 Jul 2004 21:22:35 +0800
Newsgroups gmane.ietf.magma,gmane.ietf.idmr
Message-ID <000a01c46a6e$cb7c6310$6d336e0a@g24332a>
Hi all,
    I have two questions regarding IGMPv3 below. Please help me to find
the answers, TIA. The detailed RFC info is listed in the end of this
email.
>6.4.2. Reception of Filter-Mode-Change and Source-List-Change Records
>EXCLUDE (X,Y)  TO_EX (A)    EXCLUDE (A-Y,Y*A)       (A-X-Y)=Group Timer
>                                                    Delete (X-A)
>                                                    Delete (Y-A)
>                                                    Send Q(G,A-Y)
>                                                    Group Timer=GMI	
Question 1. Why the result is EXCLUDE (A-Y,Y*A), not EXCLUDE
(X+A-Y,Y*A). Since there might be hosts are interested in X-(A-Y).

Question 2. Why "(A-X-Y)=Group Timer"? Since A-X-Y is a subset of A-Y,
later it will be lowered to LMQT when "Send Q(G,A-Y)". 

Thanks again,
Guo Feng

-----excerpted from RFC 3376 IGMPv3---------
6.4.2. Reception of Filter-Mode-Change and Source-List-Change Records

   When a change in the global state of a group occurs in a system, the
   system sends either a Source-List-Change Record or a Filter-Mode-
   Change Record for that group.  As with Current-State Records, routers
   must act upon these records and possibly change their own state to
   reflect the new desired membership state of the network.

   Routers must query sources that are requested to be no longer
   forwarded to a group.  When a router queries or receives a query for
   a specific set of sources, it lowers its source timers for those
   sources to a small interval of Last Member Query Time seconds.  If
   group records are received in response to the queries which express
   interest in receiving traffic from the queried sources, the
   corresponding timers are updated.

   Similarly, when a router queries a specific group, it lowers its
   group timer for that group to a small interval of Last Member Query
   Time seconds.  If any group records expressing EXCLUDE mode interest
   in the group are received within the interval, the group timer for
   the group is updated and the suggestion to the routing protocol to
   forward the group stands without any interruption.

   During a query period (i.e., Last Member Query Time seconds), the
   IGMP component in the router continues to suggest to the routing
   protocol that it forwards traffic from the groups or sources that it
   is querying.  It is not until after Last Member Query Time seconds
   without receiving a record expressing interest in the queried group
   or sources that the router may prune the group or sources from the
   network.





Cain, et. al.               Standards Track                    [Page 31]


RFC 3376                         IGMPv3                     October 2002


   The following table describes the changes in group state and the
   action(s) taken when receiving either Filter-Mode-Change or Source-
   List-Change Records.  This table also describes the queries which are
   sent by the querier when a particular report is received.

   We use the following notation for describing the queries which are
   sent.  We use the notation 'Q(G)' to describe a Group-Specific Query
   to G.  We use the notation 'Q(G,A)' to describe a Group-and-Source
   Specific Query to G with source-list A.  If source-list A is null as
   a result of the action (e.g., A*B) then no query is sent as a result
   of the operation.

   In order to maintain protocol robustness, queries sent by actions in
   the table below need to be transmitted [Last Member Query Count]
   times, once every [Last Member Query Interval].

   If while scheduling new queries, there are already pending queries to
   be retransmitted for the same group, the new and pending queries have
   to be merged.  In addition, received host reports for a group with
   pending queries may affect the contents of those queries.  Section
   6.6.3 describes the process of building and maintaining the state of
   pending queries.

Router State   Report Rec'd New Router State        Actions
------------   ------------ ----------------        -------

INCLUDE (A)    ALLOW (B)    INCLUDE (A+B)           (B)=GMI

INCLUDE (A)    BLOCK (B)    INCLUDE (A)             Send Q(G,A*B)

INCLUDE (A)    TO_EX (B)    EXCLUDE (A*B,B-A)       (B-A)=0
                                                    Delete (A-B)
                                                    Send Q(G,A*B)
                                                    Group Timer=GMI

INCLUDE (A)    TO_IN (B)    INCLUDE (A+B)           (B)=GMI
                                                    Send Q(G,A-B)

EXCLUDE (X,Y)  ALLOW (A)    EXCLUDE (X+A,Y-A)       (A)=GMI

EXCLUDE (X,Y)  BLOCK (A)    EXCLUDE (X+(A-Y),Y)     (A-X-Y)=Group Timer
                                                    Send Q(G,A-Y)

EXCLUDE (X,Y)  TO_EX (A)    EXCLUDE (A-Y,Y*A)       (A-X-Y)=Group Timer
                                                    Delete (X-A)
                                                    Delete (Y-A)
                                                    Send Q(G,A-Y)
                                                    Group Timer=GMI