Re: [Sip] On The Essentialness of Corrections

Jonathan Rosenberg <jdrosen@cisco.com> Mon, 17 December 2007 17:30 UTC

Return-path: <sip-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1J4Jnc-0002y4-Ov; Mon, 17 Dec 2007 12:30:40 -0500
Received: from sip by megatron.ietf.org with local (Exim 4.43) id 1J4Jnb-0002xp-Le for sip-confirm+ok@megatron.ietf.org; Mon, 17 Dec 2007 12:30:39 -0500
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1J4Jnb-0002xf-B8 for sip@ietf.org; Mon, 17 Dec 2007 12:30:39 -0500
Received: from sj-iport-1-in.cisco.com ([171.71.176.70] helo=sj-iport-1.cisco.com) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1J4Jna-0000hi-7A for sip@ietf.org; Mon, 17 Dec 2007 12:30:39 -0500
Received: from sj-dkim-4.cisco.com ([171.71.179.196]) by sj-iport-1.cisco.com with ESMTP; 17 Dec 2007 09:30:37 -0800
Received: from sj-core-5.cisco.com (sj-core-5.cisco.com [171.71.177.238]) by sj-dkim-4.cisco.com (8.12.11/8.12.11) with ESMTP id lBHHUbc0002542; Mon, 17 Dec 2007 09:30:37 -0800
Received: from xbh-sjc-221.amer.cisco.com (xbh-sjc-221.cisco.com [128.107.191.63]) by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id lBHHU80s016100; Mon, 17 Dec 2007 17:30:29 GMT
Received: from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by xbh-sjc-221.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 17 Dec 2007 09:30:25 -0800
Received: from [10.32.241.147] ([10.32.241.147]) by xfe-sjc-212.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 17 Dec 2007 09:30:25 -0800
Message-ID: <4766B259.6000905@cisco.com>
Date: Mon, 17 Dec 2007 12:31:05 -0500
From: Jonathan Rosenberg <jdrosen@cisco.com>
User-Agent: Thunderbird 2.0.0.9 (Windows/20071031)
MIME-Version: 1.0
To: Dean Willis <dean.willis@softarmor.com>
Subject: Re: [Sip] On The Essentialness of Corrections
References: <B765A23B-AB7F-4723-A957-4EEB48788FA4@softarmor.com> <47630555.7090605@cisco.com> <FFC9EE7C-B0D0-4BDF-BE9E-139A4B4D4532@softarmor.com>
In-Reply-To: <FFC9EE7C-B0D0-4BDF-BE9E-139A4B4D4532@softarmor.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 17 Dec 2007 17:30:25.0447 (UTC) FILETIME=[825C8370:01C840D2]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=7279; t=1197912637; x=1198776637; c=relaxed/simple; s=sjdkim4002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=jdrosen@cisco.com; z=From:=20Jonathan=20Rosenberg=20<jdrosen@cisco.com> |Subject:=20Re=3A=20[Sip]=20On=20The=20Essentialness=20of=2 0Corrections |Sender:=20; bh=BHTXtFvlskSvaTvQXwQiAehdW+3bzS9eTECxhQ+6f7I=; b=aMKormaPdLFUews+XWVMfdPIrPPXbQ7sxIJXaOLzyTL0KGbcxPwvUrR8/5 2Mhmajk/4G29Q7aiDKcyDuJpQDjit3Y2Nvn4YOdrXdafBZo3G0DbkUqC7VJD ACaDx7RPID;
Authentication-Results: sj-dkim-4; header.From=jdrosen@cisco.com; dkim=pass ( sig from cisco.com/sjdkim4002 verified; );
X-Spam-Score: -4.0 (----)
X-Scan-Signature: 3fbd9b434023f8abfcb1532abaec7a21
Cc: IETF SIP List <sip@ietf.org>
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>
Errors-To: sip-bounces@ietf.org

inline:

Dean Willis wrote:
> 
> On Dec 14, 2007, at 4:36 PM, Jonathan Rosenberg wrote:
> 
>> inline:
>>
>> Dean Willis wrote:
>>
>>> Here's a test I'd like to propose: If the change is such that if we 
>>> were re-writing the affected RFC we'd include the new behavior as 
>>> normative behavior, then we track it as a revision. This allows us to 
>>> fully deprecate the behavior that it replaces, such that we no longer 
>>> have to consider the old behavior when compliance testing. If we 
>>> can't deprecate the replaced behavior, then we really do have an 
>>> extension (not a revision), and we need an extension negotiation 
>>> mechanism to know when it can be used or is being used.
>>
>> I'm not sure I agree with this. I think we have some extensions which 
>> we'd arguably include as, 'things we'd make as new normative behavior 
>> that is core to sip'. I personally would have wished that nat 
>> traversal were an integral part of sip and if I could do it over, 
>> would not have it split out. But clearly ICE and outbound and all that 
>> are not essential corrections.
>>
>> In my mind, the right litmus test is that the new behavior:
>>
>>   1. cannot be negotiated using the standardized techniques, AND
>>   2. represents a change that impacts interoperability with other 
>> implementations which might not implement this new behavior
>>
>> THEN its an essential correction.
>>
>> THings like BNF bugs are clearly in scope. Something like record-route 
>> fix doesn't meet this litmus test because of the second item. I can 
>> implement this and fully interoperate with existing implementations.
> 
> Ok, there's probably a valid argument here. It's important to note also 
> that if something is an "essential correction", we'd be willing to say 
> that an implementation that does not conform to the correction is in 
> violation of the specification and needs to be fixed. In other words, 
> there is the same sort of justification for fixing it as there is for 
> "MUST" in RFC 2119 -- failure to conform creates a failure to 
> interoperate or function correctly.

Right, and to be clear, 'violation of the specification' basically 
refers to 3261 itself.

> 
> Now, it's arguable whether the record-route-fix falls into this category 
> or not. Route rewriting, as opposed to double recording, prevents route 
> signing. Is the ability to use route-signing important enough that we'd 
> say that any implementation that precludes its use is "broken"? I'd say 
> that this is the test.

Clearly no. RFC3261 explicitly says you can't do it. I can't think of 
any reasonable use case for it.


> 
> 
>>> I'd actually like to see us go beyond the batching of "essential 
>>> corrections" and start maintaining complete and fully-revised 
>>> versions of the normative behaviors as internet drafts, perhaps 
>>> occasionally publishing them as RFCs that replace the older versions. 
>>> So for example with RFC 3261, we'd maintain a 
>>> "draft-ietf-sip-rfc3261-bis" that would start as a copy of RFC 3261 
>>> (with current boilerplate, of course) and then be edited to reflect 
>>> the changes documented in each "essential correction" we agree to. 
>>> Then instead of telling implementors to go read RFC 3261 plus a dozen 
>>> more potentially conflicting revision documents, we could just say 
>>> "see draft-ietf-sip-rfc3261-bis-xx".
>>
>> I thought the idea is that there is just one revision document 
>> (essential corrections) and not seven.
> 
> Let's say we roll the 7 changes (I just made that number up, there may 
> be more or less) for 2008 into the 2008 essential corrections RFC. What 
> do we do in 2009? Copy all of the 2008 changes into the 2009 RFC? 

That was Keith's original proposal.

> What 
> happens when we've had overlapping changes, such that the same part of 
> the spec has been touched twice? Does the second change need to write 
> step-by-step edits against the base RFC, or against the base RFC as 
> amended by the first change? 

Well, this may be a problem in theory only and not in practice. We don't 
have this problem AFAIK for any of the existing stuff.


> This gets hairy, and it is made a lot 
> easier if we write the first change against the RFC, apply the first 
> change to the RFC to generate the -bis spec, and then make subsequent 
> corrections bundles against the -bis spec. This gives us a "fully 
> assembled" spec to work against. Reverse deltas as opposed to forward 
> deltas, from a source-code-control perspective.

I agree that it is easier for someone, starting from scratch, to pick up 
a document which is all of sip including the corrections, all built in. 
However for folks who already implemented rfc3261 and want to know what 
has changed, a separate document that clearly states the new 
functionality is easier.

> 
>> I promise you that once you open the floodgates to an rfc3261 revision 
>> spec, the temptation to do LOTS of other things to the document will 
>> be too great. Clarify this while we're at it? OK. Maybe we should pull 
>> that extension in. ANd so on. I don't want to do that. Segmenting this 
>> into an essential corrections document keeps pandoras box from opening.
> 
> I'll certainly agree that a substantial amount of discipline is required 
> in either case.

I think we'll find the discipline much harder to follow if we are 
actually producing an rfc3261bis. Would we indeed reject a one-line 
clarifying correction?

> 
> The question is: Do we want one document an implementor can go to, or do 
> we want a base document plus many "diff" deltas?
> 
> Looking at the bug tracker for RFC 3261, I can see that there have been 
> 85 different bugs filed. While some may not meet the criteria of 
> "essential" (is confusing "excepting" and "accepting" essential?), I'll 
> bet you there are still a lot of things that need fixing in the doc. And 
> RFC 3261 isn't the only spec that needs polishing -- there are over 200 
> bugs in that tracker.

OK - so that is more than just a few essential corrections, its a real 
revision.

> 
>> The amount of work that went into rfc2543 -> rfc3261 was astoundingly 
>> large, as any of the editors who basically did this as a full time job 
>> for like 6 months will tell you (my boss would ask me when I was 
>> coming back to work...). I do not think we as a working group have or 
>> want to spend the cycles on such a monumentally large task at this time.
> 
> I'm not proposing SIP 3.0 here -- just proposing ways to correct the 
> known bugs in our RFCs that produces a result usable by developers, 
> students, other SDOs, and other readers of those RFCs. What we're doing 
> now IS NOT WORKING.

WELL, rfc2543->rfc3261 wasn't a sip3.0 either; it was meant to be only 
fixes, clarifications and elimination of unimplemented things. But it 
was still huge.

-Jonathan R.


-- 
Jonathan D. Rosenberg, Ph.D.                   499 Thornall St.
Cisco Fellow                                   Edison, NJ 08837
Cisco, Voice Technology Group
jdrosen@cisco.com
http://www.jdrosen.net                         PHONE: (408) 902-3084
http://www.cisco.com


_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sipping@ietf.org for new developments on the application of sip