[sipcore] AD review: draft-ietf-sipcore-event-rate-control-03

Robert Sparks <rjsparks@nostrum.com> Thu, 10 June 2010 20:14 UTC

Return-Path: <rjsparks@nostrum.com>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8D5633A6768 for <sipcore@core3.amsl.com>; Thu, 10 Jun 2010 13:14:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[BAYES_50=0.001, SPF_PASS=-0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TJWpoumhOmn1 for <sipcore@core3.amsl.com>; Thu, 10 Jun 2010 13:14:29 -0700 (PDT)
Received: from nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by core3.amsl.com (Postfix) with ESMTP id 3F2173A659A for <sipcore@ietf.org>; Thu, 10 Jun 2010 13:14:29 -0700 (PDT)
Received: from [192.168.2.105] (pool-173-71-46-227.dllstx.fios.verizon.net [173.71.46.227]) (authenticated bits=0) by nostrum.com (8.14.3/8.14.3) with ESMTP id o5AKETur074050 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for <sipcore@ietf.org>; Thu, 10 Jun 2010 15:14:29 -0500 (CDT) (envelope-from rjsparks@nostrum.com)
From: Robert Sparks <rjsparks@nostrum.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 10 Jun 2010 15:14:29 -0500
Message-Id: <99619466-573D-4CEA-ACCD-3A3D262EB2B0@nostrum.com>
To: SIPCORE <sipcore@ietf.org>
Mime-Version: 1.0 (Apple Message framework v1078)
X-Mailer: Apple Mail (2.1078)
Received-SPF: pass (nostrum.com: 173.71.46.227 is authenticated by a trusted mechanism)
Subject: [sipcore] AD review: draft-ietf-sipcore-event-rate-control-03
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Jun 2010 20:14:31 -0000

Summary: This draft has a few adjustments that are needed before moving it into IETF Last Call.

Major question:

Why isn't this an Update to 3265? Is there text here that prevents a subscriber
from generating Event headers in 200 OKs to NOTIFYs mid-subscription (when he
didn't probe for support using the SUBSCRIBE?) How would they know the request
got honored?  The possibility of running into implementations that break should
be called out.  4.2 indicates the subscriber only gets a "hint" about support
for rate-control in the notifier - is the condition it describes really only a
hint?

In several places, the notifier is given permission to adjust an interval based
on local policy.  The document should be explicit about allowing the adjustment
in any direction (increasing or decreasing) since there are so many other uses
of intervals in SIP and SIP Events that allow adjustment only in one direction.
A few places I noted when reading the document were the Note in REQ7, 4.3 4th
paragraph, 5.2 paragraph 3, 6.2 paragraph 3.

The last paragraph of section 3.6 claims "exactly the same properties" except
for being generated constrained to a schedule. Can you clarify which properties
you mean? Many properties of the notifications beside their timing are clearly
different (for instance, you may miss state transitions).

The security considerations section deserves more text: 
* What is the forward reference from section 3.4 supposed to be pointing to?
* Call out the implications on a Notifier having to store/aggregate partial state
* Note that the Event header (particularly in 200 OKs) is not integrity protected. 
  This would allow anything that could modify the message in flight (or an 
  eavesdropper that could race a 200 OK in) to suppress (or flood) notifications 
  without the subscriber seeing what caused it.

The assertion that applying rate limiting and compression together results in
savings as good as the sum of applying them independently should be supported
or adjusted. I think it's sufficient to say they can be applied together.

Below are several suggestions for text tweaks. The first few (staring with *)
are the most important. 

* Section 3.2 paragraph 4: suggest replacing "does not typically" with "may not"

* Section 3.2 last paragraph: The sentence 'The "max-interval" parameter 
      indicates ... complete state information' is difficult to parse. Could it
      be simplified?

* Section 4.3 first paragraph, last sentence: "For such cases" is ambiguous.
  Suggest "If the min-interval value is greater than the subscription expiry".

* Section 6.2 last paragraph: This currently says the timeout mechanism does
  not affect when 3261 transaction retransmissions are generated. It should
  also explicitly note that retransmissions do not affect the calculation of
  the next timeout.

Introduction, paragraph 2: suggest replacing "congestion" with "load"

Section 3.1  paragraph 3: suggest replacing "amount of traffic" with 
"number of notifications"

Section 3.5 paragraph 1: Suggest a reference for RLS after "list subscription".
The sentence "Moreover, the list event notifier..." should be more explicit
about using the rate mechanism for any back-end subscriptions it might have.

Suggest referencing 3261 in the last paragraph of 4.2

Section 4.3, 3rd paragraph last sentence. The only way the subscriber _can_
resume notifications is to renew the subscription with a resubscribe request.
Would this text work? "This results in receiving no further notifications until
the subscription expires or the subscriber sends a SUBSCRIBE request refreshing
the subscription (perhaps resuming notifications)".

The text needs to be adjusted to reflect subnot-etags being issued as an RFC

Adam suggested some RFC-Editor notes in the proto writeup (which may address
some of the above comments). Please be sure to incorporate those when revising
the draft.

One last question:

If the combination of min-interval, max-interval, and average-interval make
little sense, why does the document allow them to be combined? I think what the
group was trying to say is that we currently don't forsee a use for combining
those options, but do not wish to forbid their combination.