Re: [Simple] WGLC Comments on draft-ietf-sip-xcapevent-01
Ben Campbell <ben@estacado.net> Thu, 03 April 2008 13:28 UTC
Return-Path: <simple-bounces@ietf.org>
X-Original-To: simple-archive@megatron.ietf.org
Delivered-To: ietfarch-simple-archive@core3.amsl.com
Received: from core3.amsl.com (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 28DC03A6C5B; Thu, 3 Apr 2008 06:28:57 -0700 (PDT)
X-Original-To: simple@core3.amsl.com
Delivered-To: simple@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7394C28C1B6; Thu, 3 Apr 2008 06:28:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.058
X-Spam-Level:
X-Spam-Status: No, score=-2.058 tagged_above=-999 required=5 tests=[AWL=0.541, BAYES_00=-2.599]
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 EHnkTZzBIyeE; Thu, 3 Apr 2008 06:28:54 -0700 (PDT)
Received: from estacado.net (estacado-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:266::2]) by core3.amsl.com (Postfix) with ESMTP id A77363A6AF4; Thu, 3 Apr 2008 06:28:53 -0700 (PDT)
Received: from [10.0.1.193] (adsl-68-94-18-109.dsl.rcsntx.swbell.net [68.94.18.109]) (authenticated bits=0) by estacado.net (8.14.2/8.14.1) with ESMTP id m33DSolE050096 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 3 Apr 2008 08:28:54 -0500 (CDT) (envelope-from ben@estacado.net)
Message-Id: <FDF38B9C-0E5E-49D5-A96C-D12AF727B7BA@estacado.net>
From: Ben Campbell <ben@estacado.net>
To: Jari Urpalainen <jari.urpalainen@nokia.com>
In-Reply-To: <47F4CD85.3090203@nokia.com>
Mime-Version: 1.0 (Apple Message framework v919.2)
Date: Thu, 03 Apr 2008 08:28:49 -0500
References: <5DDFCB0D-ADEC-49A7-BDDC-4112A011CAF8@estacado.net> <47F35A1E.4070109@nokia.com> <208326E5-B78C-49E3-BADC-B1CE94FE2963@estacado.net> <47F4CD85.3090203@nokia.com>
X-Mailer: Apple Mail (2.919.2)
Cc: Sip List <sip@ietf.org>, Simple WG <simple@ietf.org>
Subject: Re: [Simple] WGLC Comments on draft-ietf-sip-xcapevent-01
X-BeenThere: simple@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP for Instant Messaging and Presence Leveraging Extensions <simple.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/simple>, <mailto:simple-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/simple>
List-Post: <mailto:simple@ietf.org>
List-Help: <mailto:simple-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/simple>, <mailto:simple-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: simple-bounces@ietf.org
Errors-To: simple-bounces@ietf.org
On Apr 3, 2008, at 7:28 AM, Jari Urpalainen wrote: [...] >>> >>>> >>>> >>>> Paragraph 2: (substantive) >>>> >>>> You cannot safely use non-sequential CSeq to detect missing >>>> NOTIFY requests. For example, if the NOTIFY request is challenged >>>> by an intervening proxy, the subscriber will see non-sequential >>>> CSeq values. It may be unusual for NOTIFY to get challenged, but >>>> unless we forbid it, then we cannot depend on CSeq for this >>>> purpose. >>> ok, didn't think about that at all. >> >> This one needs some thought, then. There are actually a lot more >> causes than just digest challenges that may cause the client to see >> non-sequential CSeqs. If detection of lost notifies is critical, we >> need another solution (either to detect lost notifies or to remove >> the need to do so.) > now I've managed to put this "utter crap" myself :-), sorry, i.e. > unordering doesn't happen when the notifier acts _properly_, so it's > better to move that text altogether. The text was more about missing NOTIFY requests than it was out-of- order NOTIFYs (CSeq will actually catch the out-of-order case). Are you saying that it is okay to not be able to detect missing NOTIFYs, even in patch mode? Note that missing and out-of-order notifies can (rarely, we hope) happen due to intervening devices even if the notifier is perfectly well behaved. > >> >>>> Section 4.10 (substantive) >>>> >>>> It's not clear to me how this interacts with the "aggregation" >>>> mechanism. In particular, if the notifier has more than one >>>> change in the 5 second window, but the subscriber did not allow >>>> aggregation, how is it handled? >>> yep this is indeed _difficult_. Easy to write (one sentence only), >>> but really, really hard to implement properly ;-). First off >>> there's a SHOULD directive fortunately... I'm not 100 % sure if >>> you mean that xcap-patching is also disabled. So there's not a big >>> difference in this context whether you have aggregation or xcap- >>> patching modes, since in the xcap-patching mode you will see >>> changes e.g. from "a" to "b" to "c" with all corresponding Etags >>> while in the aggregate mode you'll see e.g. only changes from "a" >>> to "c" in the notification body without the intermediate state. >>> Certainly aggregation body is smaller but it fails to show the >>> versioning history and the diff formats differ, but the end result >>> will be the same certainly, i.e. "c". So _if_ you obey the timer, >>> you wait for it to expire and then send the result in both cases >>> (and of course during this timer interval you wait for any changes >>> in these resources, and do something relevant, e.g. store internal >>> object states). If there's not any patching modes applied, then >>> you should wait for the timer to expire and send appropriate >>> actions, i.e. document(s) has either been created, modified or >>> deleted. >> >> I'm not sure I understand what you mean on the last two sentences-- >> can you give an example? > btw. just noted that a rate limit was per a _user_ what would that > mean ? so should be per _subscription_. > > let's say you'll notify a initial document at some time x. then > comes two changes 1 & 2 for the same document within 2 seconds > (ETags are those timestamps): > NOTIFY 1 -- x change 1 -- x+1s. > change 2 -- x+2s. > NOTIFY 2 -- x+5s. > > so if those two changes are reported (NOTIFY 2) _without any > patching_ you'll report the document uri reference with Etags at > time x+5s due to this 5s rate limitation: > <xcap-diff xcap-root="http://xcap.example.com/root/"> > <document new-etag="x+2s" > sel="resource-lists/users/sip:joe@example.com/coworkers" > previous-etag="x"/> > </xcap-diff> > > with xcap-patching you could have: > > <xcap-diff xcap-root="http://xcap.example.com/root/"> > <document new-etag="x+1s" > sel="resource-lists/users/sip:joe@example.com/coworkers" > previous-etag="x"> > <add sel="*"><foo/></add> > </document> > <document new-etag="x+2s" > sel="resource-lists/users/sip:joe@example.com/coworkers" > previous-etag="x+1s"> > <add sel="*"><bar/></add> > </document> > </xcap-diff>' Ah, I see you are effectively listing both change events in a single xcap-diff document, but still as separate events. That makes sense, but it was not obvious to me from the text that you could do this. I don't recall if the data format doc addressed it or not. It would definitely help to include examples for each mode of operation. > > > while with the "aggregate" mode: > > <xcap-diff xcap-root="http://xcap.example.com/root/"> > <document new-etag="x+2s" > sel="resource-lists/users/sip:joe@example.com/coworkers" > previous-etag="x"> > <add sel="*"><foo/><bar/></add> > </document> > </xcap-diff> > > So the first one shows the simplest case, and then the more complex > xcap-patching and lastly aggregate, does this help ? I've the > intention to add something similar to an appendix regardless of the > pain... > > So as can be seen from the example "aggregate" and "xcap-patching" > both aggregate patches, but the "real" aggregate can do much clever > decisions with the added complexity. > > And i've made it now explicit that the notifier MAY respond with all > of these 3 ways if aggregate is requested. If notifier requests xcap- > patching "aggregate" MUST NOT be used, and with "no-patching" > naturally only the simplest mode is allowed. > >> >>> IIRC, in partial PIDF where we use the exact same patchings >>> there's not a single line about this since this timer is inherited >>> from the base PIDF package. In summary, you just don't have to do >>> anything mysterious with timers except wait for a certain period >>> of time. In practice, it happens to be quite a challenging task >>> (but these specs usually _ignore_ the implementation PITA ;-)) >> >> It's still not clear to me if this is just a "hard implementation" >> problem or if it is really a conflict in normative requirements. >> Coding aside, what do you expect the most commen behavior to be if >> multiple changes occur inside the 5 second window, but the client >> has not allowed aggregation? (The example requested above might >> help me understand this.) >> > imo it is not a conflict, just a PITA in implementations, though > sometimes a very nice optimization. I _think_ I am okay with this, pending seeing the new text. [...] Thanks! Ben. _______________________________________________ Simple mailing list Simple@ietf.org https://www.ietf.org/mailman/listinfo/simple
- [Simple] WGLC Comments on draft-ietf-sip-xcapeven… Ben Campbell
- Re: [Simple] WGLC Comments on draft-ietf-sip-xcap… Jari Urpalainen
- Re: [Simple] WGLC Comments on draft-ietf-sip-xcap… Ben Campbell
- Re: [Simple] WGLC Comments on draft-ietf-sip-xcap… Jari Urpalainen
- Re: [Simple] WGLC Comments on draft-ietf-sip-xcap… Ben Campbell
- Re: [Simple] WGLC Comments on draft-ietf-sip-xcap… Jari Urpalainen
- Re: [Simple] [Sip] WGLC Comments on draft-ietf-si… Paul Kyzivat
- Re: [Simple] WGLC Comments on draft-ietf-sip-xcap… Ben Campbell