From owner-idmr@cs.ucl.ac.uk  Tue Jan  8 17:41:15 2002
Received: from pan2.cs.ucl.ac.uk (pan2.cs.ucl.ac.uk [128.16.8.208])
	by ietf.org (8.9.1a/8.9.1a) with SMTP id RAA12678
	for <idmr-archive@lists.ietf.org>; Tue, 8 Jan 2002 17:41:15 -0500 (EST)
Received: from pan2.cs.ucl.ac.uk by pan2.cs.ucl.ac.uk 
          via Local Delivery channel id <g.10686-0@pan2.cs.ucl.ac.uk>;
          Tue, 8 Jan 2002 21:54:13 +0000
Received: from bells.cs.ucl.ac.uk by pan2.cs.ucl.ac.uk with local SMTP 
          id <g.10680-0@pan2.cs.ucl.ac.uk>; Tue, 8 Jan 2002 21:54:07 +0000
Received: from emerson.torrentnet.com by bells.cs.ucl.ac.uk with Internet SMTP 
          id <g.06439-0@bells.cs.ucl.ac.uk>; Tue, 8 Jan 2002 21:51:54 +0000
Received: from imperial.torrentnet.com (imperial.torrentnet.com [198.78.51.109]) 
          by emerson.torrentnet.com (8.11.2/8.11.2) with ESMTP id g08LokL28630;
          Tue, 8 Jan 2002 16:50:46 -0500 (EST)
Received: from malibu.torrentnet.com (malibu.torrentnet.com [198.78.51.100]) 
          by imperial.torrentnet.com (8.11.2/8.11.2) with ESMTP 
          id g08LokD72896; Tue, 8 Jan 2002 16:50:46 -0500 (EST)
Received: from malibu.torrentnet.com (malibu.torrentnet.com [198.78.51.100]) 
          by malibu.torrentnet.com (8.11.2/8.11.2) with ESMTP id g08LoiY13740;
          Tue, 8 Jan 2002 16:50:45 -0500 (EST)
Date: Tue, 8 Jan 2002 16:50:44 -0500 (EST)
From: Todd Hayton <thayton@torrentnet.com>
To: magma <magma@innovationslab.net>, idmr <idmr@cs.ucl.ac.uk>
Subject: Purpose of Suppress Router-Side Processing Flag
Message-ID: <Pine.GSO.4.33.0201081626300.12415-100000@malibu.torrentnet.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-idmr@cs.ucl.ac.uk
Precedence: bulk

Hey there,

I was exmining Cisco's implementation of IGMPv3 and had a question
regarding what benefit the S Flag provides. According to the draft,
the s flag is set in a query if a source's timer is greater than LMQT and
cleared otherwise.

So, my understanding of this is that if a router has a pending guery for a
source and then it receives a report indicating desired reception for that
source, then that source's timer gets raised to GMI, but the pending
query does NOT get cancelled. And so when the pending query gets sent out
it has the s flag set.

My question is why not just cancel the query if a report has been
received? If the S Flag is set and no other routers are going to
update their timers because of this, then what benefit is being provided
by sending out this query?

Here are the traces I've been observing of how Cisco implemented this:

1) Note: OK, we first send an ALLOW

Receiver > 224.0.0.22: igmp v3 report, 1 group record(s)
                            [gaddr 232.1.1.2
                             allow { 10.0.0.1
                                     10.0.0.2
                                     10.0.0.3
                                     10.0.0.4 }]
                         4500 0034 b591 0000 2002 41c4 c0a8 02b4
                         e000 0016 2200 c7ec 0000 0001 0500 0004
                         e801 0102 0a00 0001 0a00 0002 0a00 0003
                         0a00 0004

2) Note: A BLOCK is now sent for source 10.0.0.3 immediately followed by
         an ALLOW for source 10.0.0.3.

Receiver > 224.0.0.22: igmp v3 report, 1 group record(s)
                            [gaddr 232.1.1.2
                             block { 10.0.0.3 }]
                         4500 0028 b594 0000 2002 41cd c0a8 02b4
                         e000 0016 2200 e4f6 0000 0001 0600 0001
                         e801 0102 0a00 0003

Receiver > 224.0.0.22: igmp v3 report, 1 group record(s)
                            [gaddr 232.1.1.2
                             allow { 10.0.0.3 }]
                         4500 0028 b595 0000 2002 41cc c0a8 02b4
                         e000 0016 2200 e5f6 0000 0001 0500 0001
                         e801 0102 0a00 0003

3) Note: Query sent in response to block with S Flag cleared.

Querier > 232.1.1.2: igmp query v3 [gaddr 232.1.1.2 { 10.0.0.3 }]
                         46c0 0028 9c5e 0000 0102 db49 c0a8 02bc
                         e801 0102 9404 0000 110a f9b1 e801 0102
                         023c 0001 0a00 0003 0000 0000 0000
                          ^
                          |
                          S Flag = 0

3) Note: Query sent again, but this time the source timer must be bigger
         than LMQT because the S flag is now SET. In fact, according to
         the debug output the source timer gets raised to GMI before the
         query gets sent out:

  IGMP: Updating expiration time on (10.0.0.3,232.1.1.2) to 180 secs
  IGMP: Building v3 Query source list for 232.1.1.2 on Ethernet0 (0 / 1 srsp)
  IGMP: Send v3 Source Query on Ethernet0 for group 232.1.1.2

Querier > 232.1.1.2: igmp query v3 [gaddr 232.1.1.2 { 10.0.0.3 }]
                         46c0 0028 9c5f 0000 0102 db48 c0a8 02bc
                         e801 0102 9404 0000 110a f1b1 e801 0102
                         0a3c 0001 0a00 0003 0000 0000 0000
                          ^
                          |
                          S Flag = 1

regards,
Todd H




From owner-idmr@cs.ucl.ac.uk  Tue Jan  8 21:46:20 2002
Received: from pan2.cs.ucl.ac.uk (pan2.cs.ucl.ac.uk [128.16.8.208])
	by ietf.org (8.9.1a/8.9.1a) with SMTP id VAA17451
	for <idmr-archive@lists.ietf.org>; Tue, 8 Jan 2002 21:46:19 -0500 (EST)
Received: from pan2.cs.ucl.ac.uk by pan2.cs.ucl.ac.uk 
          via Local Delivery channel id <g.10795-0@pan2.cs.ucl.ac.uk>;
          Wed, 9 Jan 2002 01:46:07 +0000
Received: from bells.cs.ucl.ac.uk by pan2.cs.ucl.ac.uk with local SMTP 
          id <g.10789-0@pan2.cs.ucl.ac.uk>; Wed, 9 Jan 2002 01:46:01 +0000
Received: from sj-msg-core-2.cisco.com by bells.cs.ucl.ac.uk with Internet SMTP 
          id <g.24098-0@bells.cs.ucl.ac.uk>; Wed, 9 Jan 2002 01:43:49 +0000
Received: from kouvelas-u10.cisco.com (kouvelas-u10.cisco.com [128.107.162.231]) 
          by sj-msg-core-2.cisco.com (8.11.3/8.9.1) with ESMTP id g091hl414232;
          Tue, 8 Jan 2002 17:43:47 -0800 (PST)
Received: from localhost (kouvelas@localhost) 
          by kouvelas-u10.cisco.com (8.8.8-Cisco List Logging/CISCO.WS.1.2) 
          with ESMTP id RAA24719; Tue, 8 Jan 2002 17:43:47 -0800 (PST)
Message-Id: <200201090143.RAA24719@kouvelas-u10.cisco.com>
X-Authentication-Warning: kouvelas-u10.cisco.com: kouvelas owned process doing 
                          -bs
To: Todd Hayton <thayton@torrentnet.com>
cc: magma <magma@innovationslab.net>, idmr <idmr@cs.ucl.ac.uk>
Subject: Re: Purpose of Suppress Router-Side Processing Flag
In-reply-to: Your message of "Tue, 08 Jan 2002 16:50:44 EST." <Pine.GSO.4.33.0201081626300.12415-100000@malibu.torrentnet.com>
Date: Tue, 08 Jan 2002 17:43:46 -0800
From: Isidor Kouvelas <kouvelas@cisco.com>
Sender: owner-idmr@cs.ucl.ac.uk
Precedence: bulk


In order to maintain the IGMP protocol robustness (i.e. making sure
that ROBUSTNESS reports follow the original query that caused the
timers to be lowered) the querier has to send the remaining queries
after the report is received. To prevent these remaining queries from
lowering the timers again the SRSP flag is set. The SRSP flag should
have been part of queries even in IGMPv2.

thanks
I

Todd Hayton writes:
>Hey there,
>
>I was exmining Cisco's implementation of IGMPv3 and had a question
>regarding what benefit the S Flag provides. According to the draft,
>the s flag is set in a query if a source's timer is greater than LMQT and
>cleared otherwise.
>
>So, my understanding of this is that if a router has a pending guery for a
>source and then it receives a report indicating desired reception for that
>source, then that source's timer gets raised to GMI, but the pending
>query does NOT get cancelled. And so when the pending query gets sent out
>it has the s flag set.
>
>My question is why not just cancel the query if a report has been
>received? If the S Flag is set and no other routers are going to
>update their timers because of this, then what benefit is being provided
>by sending out this query?
>
>Here are the traces I've been observing of how Cisco implemented this:
>
>1) Note: OK, we first send an ALLOW
>
>Receiver > 224.0.0.22: igmp v3 report, 1 group record(s)
>                            [gaddr 232.1.1.2
>                             allow { 10.0.0.1
>                                     10.0.0.2
>                                     10.0.0.3
>                                     10.0.0.4 }]
>                         4500 0034 b591 0000 2002 41c4 c0a8 02b4
>                         e000 0016 2200 c7ec 0000 0001 0500 0004
>                         e801 0102 0a00 0001 0a00 0002 0a00 0003
>                         0a00 0004
>
>2) Note: A BLOCK is now sent for source 10.0.0.3 immediately followed by
>         an ALLOW for source 10.0.0.3.
>
>Receiver > 224.0.0.22: igmp v3 report, 1 group record(s)
>                            [gaddr 232.1.1.2
>                             block { 10.0.0.3 }]
>                         4500 0028 b594 0000 2002 41cd c0a8 02b4
>                         e000 0016 2200 e4f6 0000 0001 0600 0001
>                         e801 0102 0a00 0003
>
>Receiver > 224.0.0.22: igmp v3 report, 1 group record(s)
>                            [gaddr 232.1.1.2
>                             allow { 10.0.0.3 }]
>                         4500 0028 b595 0000 2002 41cc c0a8 02b4
>                         e000 0016 2200 e5f6 0000 0001 0500 0001
>                         e801 0102 0a00 0003
>
>3) Note: Query sent in response to block with S Flag cleared.
>
>Querier > 232.1.1.2: igmp query v3 [gaddr 232.1.1.2 { 10.0.0.3 }]
>                         46c0 0028 9c5e 0000 0102 db49 c0a8 02bc
>                         e801 0102 9404 0000 110a f9b1 e801 0102
>                         023c 0001 0a00 0003 0000 0000 0000
>                          ^
>                          |
>                          S Flag = 0
>
>3) Note: Query sent again, but this time the source timer must be bigger
>         than LMQT because the S flag is now SET. In fact, according to
>         the debug output the source timer gets raised to GMI before the
>         query gets sent out:
>
>  IGMP: Updating expiration time on (10.0.0.3,232.1.1.2) to 180 secs
>  IGMP: Building v3 Query source list for 232.1.1.2 on Ethernet0 (0 / 1 srsp)
>  IGMP: Send v3 Source Query on Ethernet0 for group 232.1.1.2
>
>Querier > 232.1.1.2: igmp query v3 [gaddr 232.1.1.2 { 10.0.0.3 }]
>                         46c0 0028 9c5f 0000 0102 db48 c0a8 02bc
>                         e801 0102 9404 0000 110a f1b1 e801 0102
>                         0a3c 0001 0a00 0003 0000 0000 0000
>                          ^
>                          |
>                          S Flag = 1
>
>regards,
>Todd H
>
>


