regarding IGMPv3 state transition
GuoFeng <guofeng <at> huawei.com>
2004-07-15 13:22:35 GMT
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