Re: Adrian Farrel's No Objection on draft-ietf-6man-ext-transmit-04: (with COMMENT)

"C. M. Heard" <heard@pobox.com> Mon, 07 October 2013 16:53 UTC

Return-Path: <heard@pobox.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7798321F9D52 for <ipv6@ietfa.amsl.com>; Mon, 7 Oct 2013 09:53:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f0pcdYpGgDoc for <ipv6@ietfa.amsl.com>; Mon, 7 Oct 2013 09:53:47 -0700 (PDT)
Received: from shell4.bayarea.net (shell4.bayarea.net [209.128.82.1]) by ietfa.amsl.com (Postfix) with ESMTP id E657E21F9CC5 for <ipv6@ietf.org>; Mon, 7 Oct 2013 09:53:41 -0700 (PDT)
Received: (qmail 6924 invoked from network); 7 Oct 2013 09:53:40 -0700
Received: from shell4.bayarea.net (209.128.82.1) by shell4.bayarea.net with (DHE-RSA-AES256-SHA encrypted) SMTP; 7 Oct 2013 09:53:40 -0700
Date: Mon, 07 Oct 2013 09:53:40 -0700
From: "C. M. Heard" <heard@pobox.com>
X-X-Sender: heard@shell4.bayarea.net
To: Adrian Farrel <adrian@olddog.co.uk>
Subject: Re: Adrian Farrel's No Objection on draft-ietf-6man-ext-transmit-04: (with COMMENT)
In-Reply-To: <20131007144327.16131.88173.idtracker@ietfa.amsl.com>
Message-ID: <Pine.LNX.4.64.1310070914240.13173@shell4.bayarea.net>
References: <20131007144327.16131.88173.idtracker@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Cc: 6man-chairs@tools.ietf.org, draft-ietf-6man-ext-transmit@tools.ietf.org, ipv6@ietf.org, The IESG <iesg@ietf.org>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ipv6>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Oct 2013 16:53:52 -0000

On Mon, 7 Oct 2013, Adrian Farrel wrote:
> Section 1.1
> 
> A couple of points about the following paragraph:
> 
>    In this document "standard" IPv6 extension headers are those
>    specified in detail by IETF standards actions.  "Experimental"
>    extension headers are those defined by any Experimental RFC, and the
>    experimental extension header values 253 and 254 defined by [RFC3692]
>    and [RFC4727].  "Defined" extension headers are the "standard"
>    extension headers plus the "experimental" ones.
...
> Are 253 and 254 intended solely for experimental extension headers? 
> Couldn't the experiment be an experimental payload protocol?

This is a good point.  RFC 3692 calls these out as experimental 
values for the IP Protocol Field, so experiments could in principle 
use these values either for experimental upper layer protocols or 
for experimental IPv6 headers.  Nodes that are not involved in the 
experiment (including middleboxes) would have no way of knowing the 
difference.

This opens up a small can of worms, because Section 2.1 says that 
"[e]xperimental IPv6 extension headers SHOULD be treated in the same 
way as standard extension headers, including an individually 
configurable discard policy."  The problem is that if a node not 
participating in an experiment encounters a next header value of 253 
or 254 it won't know whether to treat what follows as an 
experimental extension header, conforming to the uniform TLV format 
specified in RFC 6564, or an experimental upper-layer protocol, 
where all bets are off with respect to format.  If packets 
containing these values are to be passed by a middlebox not 
participating in an experiment, it seems that the middlebox would 
have to stop parsing when encountering these values, and pass or 
drop the packet depending on what it's supposed to do with unknown 
upper layer protocol protocol types.

(As an aside, it occure to me that the same thing is true if a 
middlebox encounters a next header type that it does not recognize 
-- it won't know if it refers to an extension header or an upper 
layer protocol, and must treat it as the latter.  Hence the 
requirement that "[f]orwarding nodes MUST be configurable to allow 
packets containing unrecognised extension headers" means, in 
practice, that a middlebox needs to have a switch to allow unknown 
upper layer protocols to pass through.)


> ---
> 
> I find myself in I-wouldn't-have-done-it-this-way land, so this is, of
> course, just a Comment for you to chew on and accept or reject according
> to how it strikes you...
> 
> It seems to me unwise to create a new registry that duplicates
> information held in another registry. By adding a column to the
> "Assigned Internet Protocol Numbers" registry you are making it 
> completely clear which are the IPv6 Extension Headers. Rather than risk 
> having this registry out of step with your new "IPv6 Extension Header
> Types registry", I would have had the existing, empty "IPv6 Next Header
> Types" registry redirect users to the "Assigned Internet Protocol
> Numbers" registry and mention the existence of the specific column that
> identifies extension headers.

I think this idea has a lot of merit.  Putting that information in 
the Internet protocol numbers registry would also provide an 
opportunity to fix some things about extention header entryes that 
currently are not quite right, such as:


43	IPv6-Route	Routing Header for IPv6		[Steve_Deering]
44	IPv6-Frag	Fragment Header for IPv6	[Steve_Deering]


Thanks and regards,

Mike Heard