Re: [Roll] [6lo] RPL artifact compression discussion

Robert Cragie <robert.cragie@gridmerge.com> Tue, 24 March 2015 00:03 UTC

Return-Path: <robert.cragie@gmail.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8246E1A6F34; Mon, 23 Mar 2015 17:03:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level:
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F9selw44wMbc; Mon, 23 Mar 2015 17:03:06 -0700 (PDT)
Received: from mail-oi0-x234.google.com (mail-oi0-x234.google.com [IPv6:2607:f8b0:4003:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1FBFB1A7022; Mon, 23 Mar 2015 17:03:06 -0700 (PDT)
Received: by oigv203 with SMTP id v203so154770715oig.3; Mon, 23 Mar 2015 17:03:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=aKGznLnv3UyiIlGqsV4FxsFKZKDPqRoHXJP9nHMpXCM=; b=fnlRA5y46dLHyZcYgglFA4I1zGuTo240Fc3zwAy8vbrBgUrBe+iqeh/b37PT3OF/xy 7IlMaO0TdFlEPF0l/xQquAsRq3yln9PuAXotS3EgJalE4YZoGpoBqR5vkrOrsFZdkZjC n4eUN9gfQ+GQa8KAzkB2DlzyZCyo9GxYy4P0DfGKOqkzCEYQk/r3GL+CXYsAQ4UL84pm 7LoifLeEmR8RyVfd9ZzCMUyzApZHVfB95Bd7nlzCzHI9+O+/CQh1YGW0q/CzLC2J2QGh +29V1aoaF8+9OBw2mZdf+3HXfIU6quV05GiWIppkH2/WttNv8wIkA8aOcC0wJttlrinL 80pA==
MIME-Version: 1.0
X-Received: by 10.202.3.65 with SMTP id 62mr1158602oid.11.1427155385586; Mon, 23 Mar 2015 17:03:05 -0700 (PDT)
Sender: robert.cragie@gmail.com
Received: by 10.202.80.18 with HTTP; Mon, 23 Mar 2015 17:03:05 -0700 (PDT)
In-Reply-To: <17230.1427150928@sandelman.ca>
References: <BN1PR03MB0729E0B05811AA6C648B2DD950F0@BN1PR03MB072.namprd03.prod.outlook.com> <22866.1427143218@sandelman.ca> <CADrU+d+vPHN-Z0ZzYB0L98b5L1Yy3Vy02a1vTt0=vBvA3q6uuw@mail.gmail.com> <17230.1427150928@sandelman.ca>
Date: Tue, 24 Mar 2015 00:03:05 +0000
X-Google-Sender-Auth: n9I9HQGbSQctoPjD8lWru-84Fjg
Message-ID: <CADrU+dLLN+gMrxDcKym_FN+ncc7FUphorh-xOpkQyzBSv98L4w@mail.gmail.com>
From: Robert Cragie <robert.cragie@gridmerge.com>
To: Michael Richardson <mcr+ietf@sandelman.ca>
Content-Type: multipart/alternative; boundary="001a113ba080cc1c4e0511fd81f6"
Archived-At: <http://mailarchive.ietf.org/arch/msg/roll/9QDi5qVPbJaphEJGxTm3ztXCf3s>
Cc: "roll@ietf.org WG" <roll@ietf.org>, "6lo@ietf.org" <6lo@ietf.org>
Subject: Re: [Roll] [6lo] RPL artifact compression discussion
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: robert.cragie@gridmerge.com, Routing Over Low power and Lossy networks <roll@ietf.org>
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: Tue, 24 Mar 2015 00:03:09 -0000

The best way I can think of is to show what Wireshark shows:

6LoWPAN
    IPHC Header
        011. .... = Pattern: IP header compression (0x03)
        ...1 1... .... .... = Traffic class and flow label: Version,
traffic class, and flow label compressed (0x0003)
        .... .1.. .... .... = Next header: Compressed
        .... ..00 .... .... = Hop limit: Inline (0x0000)
        .... .... 0... .... = Context identifier extension: False
        .... .... .0.. .... = Source address compression: Stateless
        .... .... ..11 .... = Source address mode: Compressed (0x0003)
        .... .... .... 0... = Multicast address compression: False
        .... .... .... .0.. = Destination address compression: Stateless
        .... .... .... ..11 = Destination address mode: Compressed (0x0003)
        [Source context: fe80:: (fe80::)]
        [Destination context: fe80:: (fe80::)]
    Hop limit: 255
    Source: fe80::ff:fe00:3344 (fe80::ff:fe00:3344)
    Destination: fe80::ff:fe00:1122 (fe80::ff:fe00:1122)
    IPv6 extension header
        1110 .... = Pattern: IPv6 extension header (0x0e)
        .... 000. = Header ID: IPv6 hop-by-hop options (0x00)
        .... ...1 = Next header: Compressed
        Header length: 6
        Data (6 bytes)

0000  63 04 00 01 00 02                                 c.....
    IPv6 extension header
        1110 .... = Pattern: IPv6 extension header (0x0e)
        .... 111. = Header ID: IPv6 header (0x07)
        .... ...0 = Next header: Inline
    IPHC Header
        011. .... = Pattern: IP header compression (0x03)
        ...1 1... .... .... = Traffic class and flow label: Version,
traffic class, and flow label compressed (0x0003)
        .... .0.. .... .... = Next header: Inline
        .... ..00 .... .... = Hop limit: Inline (0x0000)
        .... .... 0... .... = Context identifier extension: False
        .... .... .1.. .... = Source address compression: Stateful
        .... .... ..10 .... = Source address mode: 16-bits inline (0x0002)
        .... .... .... 0... = Multicast address compression: False
        .... .... .... .1.. = Destination address compression: Stateful
        .... .... .... ..10 = Destination address mode: 16-bits inline
(0x0002)
        [Source context: 2002:db8:: (2002:db8::)]
        [Origin: 144]
        [Destination context: 2002:db8:: (2002:db8::)]
        [Origin: 144]
    Next header: ICMPv6 (0x3a)
    Hop limit: 63
    Source: 2002:db8::ff:fe00:5566 (2002:db8::ff:fe00:5566)
    Destination: 2002:db8::ff:fe00:1122 (2002:db8::ff:fe00:1122)
Internet Protocol Version 6, Src: fe80::ff:fe00:3344 (fe80::ff:fe00:3344),
Dst: fe80::ff:fe00:1122 (fe80::ff:fe00:1122)
Internet Protocol Version 6, Src: 2002:db8::ff:fe00:5566
(2002:db8::ff:fe00:5566), Dst: 2002:db8::ff:fe00:1122
(2002:db8::ff:fe00:1122)


Not sure if that helps but at least you should be able to work through it.
In essence, in this particular case (ZigBee IP going up the DODAG), it
looks like:

| IPHC outer, NHC = RPI | RPI, NHC = IPV6 | IPHC inner, NH inline | ICMPv6
| Payload |

There is the following text at the end of section 4.2 in RFC6282:

"When the identified next header is an IPv6 Header (EID=7), the NH bit of
the LOWPAN_NHC encoding is unused and MUST be set to zero.  The following
bytes MUST be encoded using LOWPAN_IPHC as defined in Section 3."

This allows IP-in-IP using IPHC compression.

Robert

On 23 March 2015 at 22:48, Michael Richardson <mcr+ietf@sandelman.ca> wrote:

>
> Robert Cragie <robert.cragie@gridmerge.com> wrote:
>     > <RCC>There is - it's IPHC. You can use IPHC twice as we discussed in
>     > the recent call.</RCC>
>
> Thank you for your reply, and reminding me that I didn't followup with you
> on
> this question.   So, I'm not really sure how you signal this.
>
> This is what I see at this time:
>
> 15.4 header stuff.
> Dispatch    = LOWPAN_IPHC (0b1110 111N).      (rfc6282. section 4/5)
>             here we want to put another compress header, so N=1.
>             base format, with "NH=1"
>                  NHC_1=0b1110 EID NH      EID=5,NH=1
>             = here we would have RPI
>                  NHC_2=???
>
> Now if NHC_2 = 7, then an IPIP header follows.
> If the NHC_1's NH=0, then an entire byte follows for something that
> doesn't fit into the EID (e.g. IPsec ESP).
>
> I don't know I signal that what follows the RPI isn't an IPv6 header
> (uncompressed), but rather another LOWPAN_IPHC.
>
> Maybe you have a better way of presenting this detail.
>
> --
> Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
>  -= IPv6 IoT consulting =-
>
>
>
>
> _______________________________________________
> 6lo mailing list
> 6lo@ietf.org
> https://www.ietf.org/mailman/listinfo/6lo
>
>