Subject: RE: WG Last Call: IGMP Version 3 to Proposed Standard

From: Rolland Vida <[email-masked]>
Date: Wed, 13 Dec 2000 18:14:02 +0100

Following are our main comments on the IGMPv3 (draft-05) document:

In section 6.2.1 of the draft it is written: "Conceptually, when a group
record is received, the router filter-mode for that group is updated to
represent the most number of sources desired with the least amount of
state."

This sentence is not very clear, as the filter mode should be updated to
permit the reception of ALL the requested sources, and not "the most
number of sources". The present phrasing could be (wrongly) taken in a
sense that we might ignore sources in order not to increase state.

What do you think instead about the following text: "the router
filter-mode for that group is updated to cover all the requested sources
using the least amount of state. "?

-------------------------------------------------------------------------------

In section 6.2.3 it is written: " If a source record has a running timer
with a router filter-mode for the group of EXCLUDE, it means that a
"conflict" has occurred with respect to desired reception state of that
source (i.e. at least one system desires the source and another one
doesn't)."

This is not always true, as sources could be desired by all the hosts
and still be in the source list of a router in Exclude mode, with a
running timer. Let's take an example. Suppose that Host1 sends a report
IS_EX(S1) for a group G. It means that it asks for reception of all
sources for G, but source S1. The router state after reception will be
Exclude((), (S1)). If Host2 sends now a report IS_IN(S2) for the same
group G, the router state will be modified, according to the draft, to
Exclude ((S2),(S1)). Source S2 will be included in the source list of
the router, and its timer will be initialised to GMI. However, source S2
is not a "conflicting" source, as both hosts desire it.

We propose thus the following text: "If a source record has a running
timer with a router filter-mode for the group of EXCLUDE, it means that
at least one system desires the source, it should thus be forwarded by a
router on the network. . However, if that system, or any other system,
does not confirm its desire in receiving that source before its timer
expires, it's forwarding will be stopped".

----------------------------------------------------------------------------

In section 6.3, in the table that describes the forwarding suggestions
made by IGMP, it is written:

  INCLUDE    TIMER == 0       Suggest to stop forwarding
                                         traffic from source and remove
                                         source record

Shouldn't we eliminate the whole group record, once all the source
records are deleted? In section 6.2.2, it is explicitely specified in
the table that we should delete the group record if the filter is
Exclude, and the group timer and all the source timers have expired.
Shouldn't we do the same explicit deletion when the filter is in
Include? We could for example rephrase the line as follows:

INCLUDE   TIMER ==0   Suggest to stop forwarding
                                   traffic from source and remove
                                   source record. If there are no more
                                   source records for the group,
                                   delete group record.

-----------------------------------------------------------------------------------

Starting with section 6.4, the draft uses the expression "Exclude (X,Y)"
to say that sources in the first set, X, have timers greater than zero
and will be forwarded, while sources in the second set, Y, have timers
equal to zero and all hosts agree on not to forward them. This may
create a bit of confusion, as previously, in section 6.2.1, you stated:
"When a router filter-mode for a group is EXCLUDE, the source record
list contains two types of sources.  The first type is the set of
sources which hosts have requested to not be forwarded.  The second set
is the set which represents conflicts in the desired reception state;
this set must be forwarded by some router on the network.".

So the first set from section 6.2.1 is actually the second set in 6.4,
and the second set in 6.2.1 is the first one in 6.4. To avoid confusion,
maybe it would be good to swap the order of the sets in the phrase in
section 6.2.1

-----------------------------------------------------------------------------------

In section 6.4.1, in the last line of the table, we have the following:

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

  EXCLUDE (X,Y)  IS_EX (A)     EXCLUDE (X*A+(A-Y),Y*A)

However, X*Y=() (obvious, because of the way we construct them)
Therefore, if S in X*A then S in X, so S is not in Y
But in the meantime, if S in X*A then S in A
Conclusion: if S in X*A then S is in A-Y. So X*A is included in A-Y.
We could thus simplify the new router state to Exclude (A-Y, Y*A)
The same reasoning holds for the penultimate line of the table from
section 6.4.2.

-----------------------------------------------------------------------------------

In table in section 6.4.2, we have the following:

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

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

However, if a host sends a BLOCK(A) report, it means that sources from A
were forwarded until then, so they are not in Y. We could thus simplify
the new router state to Exclude (X+A, Y). We need also a conforming
action for the sending of the query. The same reasoning holds for the
next line of the table.

--------------------------------------------------------------------------

.
In section 6.6.1., it is treated only the case of a query with the
Suppress Router-Side Processing flag not set. Maybe you could add the
following phrase at the end of the section, in order to make the text
clearer:

"When a router sends or receives a query with the Suppress Router-Side
Processing flag set, it will not update its timers".

---

From: Isidor Kouvelas <[email-masked]>
Date: Thu, 14 Dec 2000 09:33:37 -0800

Thanks we have used all your comments except one. See below.

>were forwarded until then,

This is not necessarily true as there might have been an inconsistency
between the host and the router (caused by more than robustness
missed messages).

thanks
Bill & Isidor

>so they are not in Y. We could thus simplify

---

From: Rolland Vida <[email-masked]>
Date: Thu, 14 Dec 2000 19:01:15 +0100

> between the host and the router (caused by more than robustness

You're right, I did not consider this scenario.
I'm glad that the other comments were useful.

Regards,

Rolland Vida, LIP6