Re: [Roll] [6lo] call for consensus for the RPL RPI / RH3 compression

Robert Cragie <> Mon, 12 January 2015 20:38 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 724D81ACDE4; Mon, 12 Jan 2015 12:38:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8ZxU9jld1Zrf; Mon, 12 Jan 2015 12:38:34 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6C7E81ACDE0; Mon, 12 Jan 2015 12:38:34 -0800 (PST)
Received: from mailscanlb0.hi.local ([] by mailscan-g64.hi.local with esmtp (Exim 4.80.1) (envelope-from <>) id 1YAlku-00087U-UJ; Mon, 12 Jan 2015 20:38:32 +0000
Received: from mailscanlb0.hi.local ([] by with esmtps (UNKNOWN:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.80.1) (envelope-from <>) id 1YAlkr-00062G-J7; Mon, 12 Jan 2015 20:38:32 +0000
Received: from ([] helo=[]) by with esmtpsa (UNKNOWN:DHE-RSA-AES128-SHA:128) (Exim 4.80.1) id 1YAlkk-0000u9-Dd; Mon, 12 Jan 2015 20:38:22 +0000
Message-ID: <>
Date: Mon, 12 Jan 2015 20:38:18 +0000
From: Robert Cragie <>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Routing Over Low power and Lossy networks <>, "Pascal Thubert (pthubert)" <>
References: <>, <> <> <> <>
In-Reply-To: <>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha1"; boundary="------------ms040808080101060109030703"
X-Extend-Src: mailout
Archived-At: <>
Cc: "" <>, "" <>, "" <>, " WG" <>, "" <>
Subject: Re: [Roll] [6lo] call for consensus for the RPL RPI / RH3 compression
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To:, Routing Over Low power and Lossy networks <>
List-Id: Routing Over Low power and Lossy networks <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 12 Jan 2015 20:38:37 -0000

My views on what I think are the salient points in the discussion so far:

1) Use of interop to validate a way forward

I don't agree that a specification has to be set in stone for an 
interop. The whole point of an interop sometimes is to test the 
specification and expect it to change afterwards. If there are a number 
of proposals, then it doesn't seem unreasonable to clearly specify each 
proposal and implement all proposals. This in itself will give an idea 
of complexity; the interop will give an idea of issues arising and 
therefore it should help in deciding which one is the best as clearly 
there doesn't seem to be consensus based solely on the drafts.

2) Choice of proposals

Assuming elimination isn't going to occur via the mailing list, the 
three options are:

a. draft-thubert-roll-flow-label-02 (RPI only)
b. draft-thubert-6lo-rpl-nhc-02 but pick one of the three (greedy, 
conservative, efficient) first (RPI only)
c. draft-thubert-6lo-routing-dispatch-01 (RPI and RH3)

This implies the current method would be used for RH3 in cases (a) and (b).

3) Compression of RH3 using NHC

This could be developed as an alternative. I don't recall the NHC 
approach being abandoned.

4) Time schedule

Carsten gave a good summary earlier. I can't see why 
draft-thubert-6lo-routing-dispatch-01 would take any longer to finalise 
than draft-thubert-6lo-rpl-nhc-02, especially if the latter would 
include RH3 as well.

5) Sub-IP protocol

The mesh header as it stands is not significantly different to what is 
being proposed for 6LoRH as it too could be used to carry IPv6 addresses 
in a compressed format on the basis that link layer addresses are 
already used with autoconfigured IPv6 addresses. I would therefore see 
6LoRH as a general more flexible replacement for the mesh header and 
therefore 6LoRH used in conjunction with RPI/RH3 would not be a sub-ip 

In essence, the difference is really this:

mesh[0..a] | FRAG1 | IPHC | {IPHC[0..b] | NHC[0..c]}[0..d] | Payload
mesh[0..a] | FRAGN | Payload

6LoRH[0..a] | FRAG1 | 6LoRH[0..b] | IPHC | {IPHC[0..c] | 
NHC[0..d]}[0..e} | Payload
6LoRH[0..a] | FRAGN | Payload

All the above really shows is that 6LoRH can be used in place of a mesh 
header for sub-ip purposes simply as a "less greedy" way or it can be 
used to replace an IPHC header as used currently in conjunction with a 
more efficient header extension. If I have one issue, it is calling them 
all "6LoRH" - the RPI can sit a "6LoRH-style" header extension alongside 
an IPHC header if there is no encapsulation, I believe?

This is where I have some sympathy with James Woodyatt's e-mail - the 
options start to look a little hairy and it becomes significantly more 
complex to figure out what goes where.

6) Bump-in-the-stack

I have seen both bump-in-the-stack and full decompression/recompression. 
In addition to what Pascal points out, there are some other subtle 
considerations which need to be applied for BITS, especially with regard 
to eliding what look like padding fields - I have seen one issue where a 
value of 0 was considered to be padding and not included correctly.

On 07/01/2015 16:43, Carsten Bormann wrote:
> On 2015-01-06 18:03, Michael Richardson wrote:
>> An experiment which I have yet to do is to see what happens if one 
>> applies
>> GHC ( to 6553 and 6554.
> Little point -- there is very little inherent redundancy on the byte 
> sequence level.
> Gruesse, Carsten
> _______________________________________________
> Roll mailing list