Subject: IGMP v3 source-list change records

From: Tom Pusateri <[email-masked]>
Date: Tue, 25 Jul 2000 15:11:41 -0700

The current spec allows source-list change records to be either
ALLOW_NEW_SOURCES or BLOCK_OLD_SOURCES. The meaning of these
record types vary depending on what was sent previously.

This makes it alot more difficult for the router to figure out what
to do than it needs to be. In fact, I'm not sure the router can
figure it out at all. If host h1 sends MODE_IS_INCLUDE sources a
and b for group g and host h2 says MODE_IS_EXCLUDE sources a, then
when ALLOW_NEW_SOURCES with include source a is received from h2,
how does the router know if it should apply this to the include
list or the exclude list?

If the router tracks all membership from each host then it can
figure it out but even then its not convenient because the router
has to figure out what that host did for other sources in the group.

Maybe I'm missing something but wouldn't it be much easier if there
were two more variants giving us:

ALLOW_NEW_INCLUDE_SOURCES
ALLOW_NEW_EXCLUDE_SOURCES
BLOCK_OLD_INCLUDE_SOURCES
BLOCK_OLD_EXCLUDE_SOURCES

The host sending this knows what mode it is in so it is quite easy
for it to generate the appropriate variant.

Thanks,
Tom

---

From: Steve Deering <[email-masked]>
Date: Tue, 25 Jul 2000 21:56:20 -0700

At 8:21 PM -0700 7/25/00, Tom Pusateri wrote:
>The problem I have is with the wording in 4.2.12 under ALLOW_NEW_SOURCES
>and BLOCK_NEW_SOURCES. It says "if the change was to an INCLUDE source
>list ..." How does the router know if the change was to an INCLUDE
>source list or an EXCLUDE source list?

Tom,

The quoted text tells a host what to put in the packet, based on the
host's own mode (which that host, of course, knows).  The routers'
mode may be different than the host's (e.g., the routers may be
in EXCLUDE mode while the host is in INCLUDE mode, because of the
desires of other hosts on the same link), and the hosts cannot know
what the routers' mode is.  Therefore, the hosts send message that just
say "turn off these sources" or "turn on these sources", without having
to know the state of the routers (and without the routers having to
know the state of the individual hosts).

Steve

---

From: Tom Pusateri <[email-masked]>
Date: Tue, 25 Jul 2000 20:21:59 -0700

In message <[email-masked]> you write:
>Tom Pusateri writes:
>The router keeps a single list of sources while in EXCLUDE mode. The
>distinction is that some of the sources have timers running and are
>forwarded while others have stopped timers and are blocked. Sources
>not included at all in the list are forwarded.
>When the ALLOW record is received, the timer for the reported source
>will be updated and it will be forwarded. The router does not need to
>know the state the host is in.

The problem I have is with the wording in 4.2.12 under ALLOW_NEW_SOURCES
and BLOCK_NEW_SOURCES. It says "if the change was to an INCLUDE source
list ..." How does the router know if the change was to an INCLUDE
source list or an EXCLUDE source list? The host that is sending this
may have previously sent a MODE_IS_INCLUDE or it may have previously
sent a MODE_IS_EXCLUDE and there is no way to tell at this point
unless you track each host.

Thanks,
Tom

---

From: Tom Pusateri <[email-masked]>
Date: Tue, 25 Jul 2000 20:52:30 -0700

In message <[email-masked]> you write:
>In message <[email-masked]>,
>Tom Pusateri writes:
>The paragraph is refering to the source list in the host. The router
>does not need to know what state the host is in when it processes
>the report.
>
>thanks
>Isidor

We're still not seeing eye to eye.
Maybe we can talk about it in Pittsburgh.

Tom

---

From: Isidor Kouvelas <[email-masked]>
Date: Tue, 25 Jul 2000 20:44:49 -0700

thanks
Isidor

---

From: Isidor Kouvelas <[email-masked]>
Date: Tue, 25 Jul 2000 20:07:36 -0700

In your example above, the source "a" reported in the ALLOW record
from h2 would either already exist in the list with a running timer or
would not be in the list. This is because host h1 is reporting it in
MODE_IS_INCLUDE reports. When the ALLOW record is received by the
router, the timer will be updated for source "a" and it will continue
to be forwarded.

>has to figure out what that host did for other sources in the group.

The ALLOW and BLOCK records are diff records and should have no effect
on any other sources a host has reported in a previous full state
record.

>for it to generate the appropriate variant.

I am not sure I understand the problem but don't think there is any
obvious advantage in doing this.

thanks
Isidor

---

From: Tom Pusateri <[email-masked]>
Date: Wed, 26 Jul 2000 17:46:07 -0700

>know the state of the individual hosts).

Ok, after re-reading it a bunch, I get it now. I'm trying to loosely
follow the spec while doing an implementation of keeping explicit
state per host on the router and got confused by the wording
here.

Thanks Isidor & Steve,
Tom