Re: [re-ECN] Complete draft Charter for proposed CONEX WG

<philip.eardley@bt.com> Sat, 19 December 2009 14:00 UTC

Return-Path: <philip.eardley@bt.com>
X-Original-To: re-ecn@core3.amsl.com
Delivered-To: re-ecn@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0EDFB3A6A4B for <re-ecn@core3.amsl.com>; Sat, 19 Dec 2009 06:00:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.298
X-Spam-Level:
X-Spam-Status: No, score=-4.298 tagged_above=-999 required=5 tests=[AWL=1.300, BAYES_00=-2.599, GB_I_LETTER=-2, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
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 Fsbk-HF2BfIF for <re-ecn@core3.amsl.com>; Sat, 19 Dec 2009 05:59:50 -0800 (PST)
Received: from smtp4.smtp.bt.com (smtp4.smtp.bt.com [217.32.164.151]) by core3.amsl.com (Postfix) with ESMTP id BED2C3A69BA for <re-ecn@ietf.org>; Sat, 19 Dec 2009 05:59:47 -0800 (PST)
Received: from E03MVB1-UKBR.domain1.systemhost.net ([193.113.197.108]) by smtp4.smtp.bt.com with Microsoft SMTPSVC(6.0.3790.3959); Sat, 19 Dec 2009 13:59:31 +0000
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CA80B3.735951AE"
Date: Sat, 19 Dec 2009 13:59:15 -0000
Message-ID: <4A916DBC72536E419A0BD955EDECEDEC06363BEE@E03MVB1-UKBR.domain1.systemhost.net>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: Re: [re-ECN] Complete draft Charter for proposed CONEX WG
Thread-Index: AcqAs3Ds4mAxog4cSKaEVe4CPfX3hw==
From: <philip.eardley@bt.com>
To: <bob.briscoe@bt.com>, <re-ecn@ietf.org>, <leslie@thinkingcat.com>
X-OriginalArrivalTime: 19 Dec 2009 13:59:31.0789 (UTC) FILETIME=[7CFC47D0:01CA80B3]
Subject: Re: [re-ECN] Complete draft Charter for proposed CONEX WG
X-BeenThere: re-ecn@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: re-inserted explicit congestion notification <re-ecn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/re-ecn>, <mailto:re-ecn-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/re-ecn>
List-Post: <mailto:re-ecn@ietf.org>
List-Help: <mailto:re-ecn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/re-ecn>, <mailto:re-ecn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 19 Dec 2009 14:00:00 -0000

Bob

Thanks, some follow-ups in-line (if your email doesn't crash my computer for 3rd time!! - anti-crashing measures mean my replies are labelled [phil[ but sorry bob's email is not indented/marked)

Phil, Leslie,

I'm happy with the agreement so far (mainly on the intro text), but i'm afraid I have some issues with the intended outputs of the w-g, listed here, then details inline:

1. Separate IP spec? (I've started separate thread on this)

[phil] I think people are ok with them being separate docs

2. Which numbers and letters mean separate docs, and which don't?

[phil] the list of docs is in the Milestones (there's no indecision!). Didn't see that as the purpose of the Output - which is more of an overall summary about what the WG's trying to do. On the specific topic of transport-related output, the docs are:
	*	INFO Best practices on 3A & B, ie transport of cong info & ensuring trustworhiness
	*	EXP TCP mod to do 3A, transport of cong info
	*	EXP one mechanism to ensure trustworthiness


		Note: capability negotiation is out of scope, except to the extent that a CONEX sender should either be able to work with a legacy destination or be able to fall-back to non-CONEX operation.

How about:
"Capability negotiation is only in scope to the extent that one ConEx host needs to know the capabilities of the other end that are necessary for ConEx to interwork. Otherwise capability negotiation is out of scope."

Reasoning: 
The spec of the transport should surely be whatever is necessary to implement it. If capability negotiation is necessary, it is in scope. If not it's out of scope.

If there are different types of legacy out there that each require a ConEx host to behave in one of n different ways, we need to handle them all, whether n=1 or 3. We can't handle some of them, and hope we can handle the others later.

E.g. I believe a basic level of capability negotiation will be necessary for TCP, but not for RTCP.

Consider TCP-ECN. The way TCP was written doesn't work well for ConEx, because the feedback loses any more than 1 ECN mark per RTT. If we specify a ConEx-specific feedback upgrade to a TCP receiver (3A), the sender needs to know whether the meaning of the feedback is legacy or new.

[phil] I guess I don't mind deleting the "Note:..." text. 

[phil] But I think we have a somewhat different perspective. I'd like any capability negotiation to be the absolute minimum possible - the TCP mod doc is an EXP, make some assumptions, solve the main case, a revised doc can handle etc. Whereas I think you'd like it to solve all the capability negotiation in the doc, it will not get revised, or even if it does you introduce another migration problem / capability negotiation, etc. on balance, I suspect that capability negotiation is quite hard to get right and has only a small influence on whether conex is a success, so the WG should focus efforts on the important bits (esp defining IP).  


		4. Use cases -- possible uses of CONEX information to reduce congestion and/or increase the accountability for it. The main purpose is to encourage experiments that use CONEX information and to describe their results; it is not to delineate all potential uses cases, nor to provide a full architectural/deployment/security analysis of use cases. Future work may include specifications to implement one or more use cases. 
		The output is Informational and Experimental, apart from #2 which is tentatively slated as Standards track. 

At what point do we need to decide which track each doc is on? Surely best to have a crack at that during chartering?

[phil] we'd had a crack (assuming it's obvious which things are Info and which Expt). But you bring up some good points below.

[phil] rather than the detail about possibilities you give below, I wonder instead we add:
"Depending on the bits that are proposed to be used in the IP header and their semantics (eg Bit 48, ECN nonce), there may need to be further STD or INFO documents to reassign the bits from their current definition(s)."

Bear in mind the only bit we've found suitable in IPv4 (bit 48) is "reserved for future use". That's not even experimental track, let alone stds track. I would be v surprised if the IESG give away the last bit in the IPv4 header without an experiment first - and an experiment that must prove it can be unwound if it fails (so the bit could be reused elsewhere). 

RFC4727, RFC3692 & particularly RFC2780 define a fairly straightforward process for experimental use of values in the IP header (and other base headers). Assuming for a moment, that we use bit 48 in IPv4, this implies work items for a charter would need to include:

ONLY IF NECESSARY:
2A. (STD) Reassign value 1 of IPv4 bit 48 from 'reserved' to 'experimental use'
   (not specifically for ConEx)
   Also possibly describe conditions on experiments, e.g.:
   - confined in space and in time
   - multiple simultaneous experiments with same value would need v strong case


2B. (EXP) ConEx protocol in IPv4 (using experimental bit 48 in IPv4)
2C. (STD) ConEx protocol extension hdr in v6

We also have to include contingency in the charter in case we cannot find a viable ConEx encoding without reusing the ECN nonce codepoint. Then the charter needs to allow us to write a doc to change the status of the ECN nonce (RFC3540) from expt to historic, BUT ONLY IF ABSOLUTELY NECESSARY. It would also have to update DCCP and SCTP, which are stds track. In summary:

ONLY IF NECESSARY:
2D. (INF/STD) Move ECN nonce in IPv4&6 (RFC3540) from Experimental to Historic

[When we designed re-ECN, we found we needed to reuse the ECN Nonce codepoint. Given ConEx provides a superset of the Nonce capabilities, and given no-one is aware of the Nonce ever having been implemented, except in TCP on the machine of the author, moving it to historic seems reasonable. This applies for use of the nonce in all of TCP, DCCP & SCTP - all specified but never tested through implementation.]


		Milestones 

Finally, a nit. I agree with others that the milestone list is hard to follow.

[phil] ack