Re: [Roll] using the flow label instead of hop by hop

Philip Levis <pal@cs.stanford.edu> Wed, 31 October 2012 16:48 UTC

Return-Path: <pal@cs.stanford.edu>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 410C121F870F for <roll@ietfa.amsl.com>; Wed, 31 Oct 2012 09:48:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.392
X-Spam-Level:
X-Spam-Status: No, score=-5.392 tagged_above=-999 required=5 tests=[AWL=1.207, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nx5nBURaSuUK for <roll@ietfa.amsl.com>; Wed, 31 Oct 2012 09:48:58 -0700 (PDT)
Received: from cs-smtp-3.Stanford.EDU (cs-smtp-3.Stanford.EDU [171.64.64.27]) by ietfa.amsl.com (Postfix) with ESMTP id 6B9CF21F84A6 for <roll@ietf.org>; Wed, 31 Oct 2012 09:48:58 -0700 (PDT)
Received: from 23-24-194-1-static.hfc.comcastbusiness.net ([23.24.194.1] helo=[10.111.222.25]) by cs-smtp-3.Stanford.EDU with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.77) (envelope-from <pal@cs.stanford.edu>) id 1TTbTL-0000Si-FB; Wed, 31 Oct 2012 09:48:57 -0700
Mime-Version: 1.0 (Apple Message framework v1283)
Content-Type: text/plain; charset="us-ascii"
From: Philip Levis <pal@cs.stanford.edu>
In-Reply-To: <E045AECD98228444A58C61C200AE1BD8221F3B13@xmb-rcd-x01.cisco.com>
Date: Wed, 31 Oct 2012 09:22:37 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <03D5F543-40BD-427C-9C53-EF5172DC0103@cs.stanford.edu>
References: <E045AECD98228444A58C61C200AE1BD8221EFB0B@xmb-rcd-x01.cisco.com> <EEB5434B-7084-4A36-8D81-5C9792210186@tzi.org> <E045AECD98228444A58C61C200AE1BD8221F3B13@xmb-rcd-x01.cisco.com>
To: Pascal Thubert <pthubert@cisco.com>
X-Mailer: Apple Mail (2.1283)
X-Scan-Signature: 3fe17504c5843e76b9e439a63759b02e
Cc: "roll@ietf.org" <roll@ietf.org>
Subject: Re: [Roll] using the flow label instead of hop by hop
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/roll>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 31 Oct 2012 16:48:59 -0000

On Oct 31, 2012, at 3:43 AM, Pascal Thubert (pthubert) wrote:

> Hello Carsten,
> 
> [Carsten] Most of our current protocols are indeed designed to ignore v6 specific IP header fields.
> [Carsten] But just to give a very accessible example: A v6 specific version of ESP (RFC4303) could use the label to transmit the SPI.
> 
> [Pascal] Which  I'd suggest exemplifies what must not be done.  The SPI is an end-to-end information that is useless to the network. Thus is does not belong to the IPv6 header. I hope we are not discussing this are we?

I don't understand -- simply because fields are used end-to-end and "useless" to the network doesn't mean it shouldn't belong in the IPv6 header. For example, the protocol field in IPv4 (or next header in IPv6 denoting a transport header). Or the offset/MF in IPv4. 

> [Carsten] I'm not saying this because I want to rule out the use of the label for forwarding fabric purposes; it's just that with more focus on IPv6, hosts may find good uses for the label.  But using the label from RPL-cognizant nodes, e.g for router-sourced packets or for the outer header of the RPL tunnel, should be fine (if there is a way to detect that this has happened).  Overwriting the label when a previously formulated IPv6 packet enters the RPL instance is bad for the same reasons adding the RFC 6553 RPL hop-by-hop option or the RFC 6554 routing header in the middle of the path would be bad.
> 
> [Pascal] The IP in IP encaps in the HbH case is actually required because of the ICMP errors. If no error relates to the flow label then there is no need to save it. And so far there is no standard that I know of that would depend on the flow label in the ICMP error. For the standard use, the flow label is consumed once it has passed the core. Considering the footprint constraints in the IPv6 header, allowing to reuse the FL for network business after the packet passed the core is actually a good idea. 
> 
> [Pascal] Now, if in some future we do need so save the flow label in order to echo it back to the source in an ICMP error, then we can carve a little room for 20 bits in the 6LoWPAN compression. But so far that need was not identified and/or cost-justified. So, no, I do not see that we need IP in IP when we use the flow label for the RPL information.

Pascal, I think the issue is really simple. IMHO, any reasonable interpretation of RFC6537 is that a flow label generated outside a RPL instance MUST be delivered unchanged to a node inside a RPL instance. Full stop. Applications and other protocols using IPv6 and reading RFC6537 might make this assumption: suddenly they might break working when they hit a RPL network.

I mean, please explain, in a single sentence, how the proposed use does not violate this statement:

"A forwarding node MUST either leave a non-zero flow label value unchanged or change it only for compelling operational security reasons as described in Section 6.1."

Basically, if 6man is willing to change the flow label specification such that nodes need to assume it might be changed along a route, then this seems like a reasonable use of the flow label. But to go against a prior specification (in a way that can break interoperability) for an as-of-yet-unsubstantiated optimization effort seems like poor engineering to me.

Phil