Re: [6lowpan] hc-01

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Fri, 10 October 2008 16:26 UTC

Return-Path: <6lowpan-bounces@ietf.org>
X-Original-To: 6lowpan-archive@megatron.ietf.org
Delivered-To: ietfarch-6lowpan-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 12A2C3A68F3; Fri, 10 Oct 2008 09:26:28 -0700 (PDT)
X-Original-To: 6lowpan@core3.amsl.com
Delivered-To: 6lowpan@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EEB403A6880 for <6lowpan@core3.amsl.com>; Fri, 10 Oct 2008 09:26:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 6GgkGRIhED2x for <6lowpan@core3.amsl.com>; Fri, 10 Oct 2008 09:26:25 -0700 (PDT)
Received: from ams-iport-1.cisco.com (ams-iport-1.cisco.com [144.254.224.140]) by core3.amsl.com (Postfix) with ESMTP id 6EFA83A63D2 for <6lowpan@ietf.org>; Fri, 10 Oct 2008 09:26:24 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.33,390,1220227200"; d="scan'208";a="22289332"
Received: from ams-dkim-1.cisco.com ([144.254.224.138]) by ams-iport-1.cisco.com with ESMTP; 10 Oct 2008 16:26:57 +0000
Received: from ams-core-1.cisco.com (ams-core-1.cisco.com [144.254.224.150]) by ams-dkim-1.cisco.com (8.12.11/8.12.11) with ESMTP id m9AGQvwv004054; Fri, 10 Oct 2008 18:26:57 +0200
Received: from xbh-ams-332.emea.cisco.com (xbh-ams-332.cisco.com [144.254.231.87]) by ams-core-1.cisco.com (8.13.8/8.13.8) with ESMTP id m9AGQvpj011818; Fri, 10 Oct 2008 16:26:57 GMT
Received: from xmb-ams-337.cisco.com ([144.254.231.82]) by xbh-ams-332.emea.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 10 Oct 2008 18:26:40 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Fri, 10 Oct 2008 18:26:30 +0200
Message-ID: <7892795E1A87F04CADFCCF41FADD00FC065C2E62@xmb-ams-337.emea.cisco.com>
In-Reply-To: <9DDB4F7F-D00C-4873-A28A-849B46FE67DF@archrock.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: hc-01
Thread-Index: AckqQV24Bz2J2XtDT+WY0zBxKCkTygArX7ZQ
References: <38F26F36EAA981478A49D1F37F474A86020D01F8@xmb-ams-33d.emea.cisco.com> <7892795E1A87F04CADFCCF41FADD00FC06577440@xmb-ams-337.emea.cisco.com> <179B90FC-33BF-4FF1-908C-9B539E6AE82A@archrock.com> <38F26F36EAA981478A49D1F37F474A86020D05FC@xmb-ams-33d.emea.cisco.com> <9DDB4F7F-D00C-4873-A28A-849B46FE67DF@archrock.com>
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Jonathan Hui <jhui@archrock.com>, "Julien Abeille (jabeille)" <jabeille@cisco.com>, Zach Shelby <zach@sensinode.com>
X-OriginalArrivalTime: 10 Oct 2008 16:26:40.0395 (UTC) FILETIME=[F98D65B0:01C92AF4]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=14708; t=1223656017; x=1224520017; c=relaxed/simple; s=amsdkim1002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=pthubert@cisco.com; z=From:=20=22Pascal=20Thubert=20(pthubert)=22=20<pthubert@ci sco.com> |Subject:=20RE=3A=20hc-01 |Sender:=20; bh=bolo3o1Mt78I29hm2Np0Ap0RuQdx6xBQx/1lSBzMMX4=; b=cZIDrD1HJPmBVzzkat1YWe2V1MIcRMYuuaG5bnVYLSr0mxNtMbvZKOAmwV DdFFavEzfn7keQfAErFTVqBxm6fG4SMs5aKU6mYg8GchwMqFJGfa8OPWuHMp M72zywwMuF;
Authentication-Results: ams-dkim-1; header.From=pthubert@cisco.com; dkim=pass ( sig from cisco.com/amsdkim1002 verified; );
Cc: 6lowpan@ietf.org
Subject: Re: [6lowpan] hc-01
X-BeenThere: 6lowpan@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Working group discussion for IPv6 over LowPan networks <6lowpan.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/6lowpan>, <mailto:6lowpan-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/6lowpan>
List-Post: <mailto:6lowpan@ietf.org>
List-Help: <mailto:6lowpan-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lowpan>, <mailto:6lowpan-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: 6lowpan-bounces@ietf.org
Errors-To: 6lowpan-bounces@ietf.org

Hi Jonathan:

The way I see it, comparing to
http://tools.ietf.org/html/draft-ietf-6lowpan-hc-01 

- This is cleaner and more readable 

- but consumes an additional bit, that is 8 more dispatches that can not
be used for something

- this is done to simplify the code for multicast addresses that will be
little to not used if the whiteboard ND is generalized.

- and at the end of the day there is nothing that is really useful and
compressed better here (do I miss something here?)

I am fine with moving to this proposal if implementors (Julien?) confirm
that the implementation is really simpler and worth the cost of 8
consecutive dispatch values.

If not, please consider the response I made to Julien. We are NOT
missing cases; but there are cases we do not compress because they are
deemed rare enough.

Let me try to defend the formats we have for the sake of the discussion
and the stability of the draft. I think the bigger inadequacy in hc-01
(my fault I assume it) is the name DDF (Zach seems to confirm that) and
the description of the field that is oriented on the type of address
(causing Julien's concerns). 

When I look at it what do we do with this DDF field, what's really
behind it is the method of compression being applied. Renaming DDF to CM
we'd get:

Compression Method (CM):

00 = Stateless compression using MAC address and inline values. Also
uses a default context state for full compression. Includes the "no
address compression" last resort.
01 = Stateful compression using contextual states, context byte follows
10 = Stateless compression (using well known prefix and MAC address) for
Link local addresses
11 = Stateless compression (using well known prefix and inline values)
for multicast addresses

With that description, it appears more clearly that multicast address
may be compressed using 00:
- there is no address pair that can not be described with the format (00
covers all)
- the stateless mechanism can not compress all cases. In particular if
source and destination have different scope (but is that worth spending
bits and code space?)
- implementation do not have to compress multicast addresses using
method 11 though they have to decompress that method.

What do you think?

Pascal

>-----Original Message-----
>From: Jonathan Hui [mailto:jhui@archrock.com]
>Sent: jeudi 9 octobre 2008 21:01
>To: Julien Abeille (jabeille)
>Cc: Pascal Thubert (pthubert); 6lowpan@ietf.org
>Subject: Re: hc-01
>
>
>Hi Julien,
>
>Your comments are valid. By adding a single bit, I think we can
>support all the cases you mention without compromising any of the
>cases we currently support. So here is a proposed modification:
>
>     0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
>   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
>   | X | X | X | X |  TF   | HLIM  |NH |  CTX  |  SAM  | M |  DAM  |
>   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
>
>- CTX (context identifier for both source and destination addrs, if
>applicable):
>  - 00: Link-local
>  - 01: Unspecified Address (valid only for source addr with mcast)
>  - 10: Global w/ Default
>  - 11: Global w/ Context Identifier Extension
>
>- SAM:
>  - 00: 128-bit
>  - 01: 64-bit
>  - 10: 16-bit
>  - 11: 0-bit
>
>- M: Multicat
>  - 0: Unicast Destination
>  - 1: Multicast Destination
>
>- DAM:
>  - When M = 0:
>    - 00: 128-bit
>    - 01: 64-bit
>    - 10: 16-bit
>    - 11: 0-bit
>  - When M = 1:
>    - 00: 128-bit
>    - 01: 48-bit (FFXX:XXplen::prefix:XXXX:XXXX)
>    - 10: 48-bit (FF0X::XX:XXXX:XXXX)
>    - 11: 8-bit (FF02::XX)
>
>This covers all the multicast cases you care about. It also covers
>multicast with a global source address. And it covers all the unicast
>formats that we've supported since the beginning (link-local, global
>with default context, global with other contexts). Whether or not we
>want to support all of the cases you outlined is a question, but given
>that it only adds a single bit to the format, I think it's little
>added overhead.
>
>How does that look to you?
>
>--
>Jonathan Hui
>
>
>
>On Oct 9, 2008, at 5:45 AM, Julien Abeille (jabeille) wrote:
>
>> Hi Pascal, Jonathan,
>>
>> For addresses I see an issue with a few scenarios:
>> - dest multicast, source global non compressable (SAM does not define
>> 128 bits format)
>> - some dest multicast are not in either of the 4 DAM cases, e.g
>> FF3E:0040:aaaa:a:a:a:1:1 (address based on prefix aaaa:a:a:a::/64,
>> with
>> 32 bit group id = 1:1)
>>
>> Pascal, can you clarify the DDF = 01 case
>>
>> I tried to make my ideas clear by listing all current multicast
>> scenarios , based on
>> http://www.iana.org/assignments/ipv6-multicast-addresses and RFC
>> 3306 +
>> 3956 (unicast prefix based multicast addresses)
>>
>> A 128, not compressed
>> B FF02::XX 1 byte needed
>> C FF0X::00XX:XXXX 4 bytes needed
>> D FF0X::00XX:XXXX:XXXX 6 bytes needed
>> E unicast prefix based address, not embedding rendez vous point: 5
>> bytes
>> needed
>> F unicast prefix based address, embedding rendez vous point: 6 bytes
>> needed
>>
>> A covers unicast prefix based multicast addresses with prefix not in
>> context
>> B covers most useful link local cases (see IANA) e.g. LL all nodes,
>> FF02::1
>> C covers longer well known cases (see IANA) e.g. all-dhcp-servers
>> FF05::1:3
>> D covers solicited node and node information queries
FF02::1:FFXX:XXXX
>> and FF02::2:FFXX:XXXX
>> E covers format defined in RFC3306, when the prefix used is in the
>> default context.
>>
>> |   8    |  4 |  4 |   8    | 8  |       64       |    32    |
>> +--------+----+----+--------+----+----------------+----------+
>> |11111111|flgs|scop|reserved|plen| network prefix | group ID |
>> +--------+----+----+--------+----+----------------+----------+
>> Here flags are 0011 (e.g. not embedding rendez vous point, unicast
>> prefix based, non permanently assigned)
>> We only need to send flags, scope, group ID (5 bytes)
>>
>> F covers format defined in RFC3956, when the prefix used is in the
>> default context.
>>
>> |   8    |  4 |  4 |  4 |  4 | 8  |       64       |    32    |
>> +--------+----+----+----+----+----+----------------+----------+
>> |11111111|flgs|scop|rsvd|RIID|plen| network prefix | group ID |
>> +--------+----+----+----+----+----+----------------+----------+
>> Here flags are 0111 (e.g. embedding rendez vous point, unicast prefix
>> based, non permanently assigned)
>> We only need flags, scope, reserved + RIID, group ID (6bytes)
>>
>>
>> Questions:
>> - do we want to support all this?
>> - do we want to group some cases: we could group C and D, E and F,
>> then
>> we have 4 cases only
>> - what do we do for dest multicast, source non compressable.
>> - Do we keep unspecified support?
>> - do we afford one more bit (this would be 7 bits for addresses) and
>> use
>> dispatch e.g. 1101xxxx?
>> - do we keep src and dest encoding linked. For now we have 2 bits
>> common
>> to src and dest (DDF), plus SAM and DAM. This makes 16 cases for both
>> src and dest, 32 in total.
>>
>> Cheers,
>> Julien
>>
>>
>> -----Original Message-----
>> From: Jonathan Hui [mailto:jhui@archrock.com]
>> Sent: jeudi 9 octobre 2008 01:50
>> To: Pascal Thubert (pthubert)
>> Cc: Julien Abeille (jabeille); 6lowpan@ietf.org
>> Subject: Re: hc-01
>>
>>
>> Hi Pascal,
>>
>> I think this looks great. It covers the cases we care about (unicast
>> and
>> multicast) without using any extra bits that my initial proposal.
>> The small thing I would change is moving the "DDF" field to bits
10-11
>> (shifting TF and NH 2 bits to the left). Then TF would not span a
byte
>> boundary.
>>
>>     0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
>>   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
>>   | 0 | 1 | 0 | 0 | 1 |  TF   |NH | HLIM  |  DDF  |  SAM  |  DAM  |
>>   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
>>
>> --
>> Jonathan Hui
>>
>>
>>
>> On Oct 8, 2008, at 4:31 PM, Pascal Thubert (pthubert) wrote:
>>
>>> Hi Julien:
>>>
>>> I think you're right, we need to dig a little bit more.
>>>
>>> So starting from Jonathan's encoding, maybe we can refine was was
CTX
>>>
>>>
>>>    0   1   2   3   4   5   6   7   8   9   0   1   2   3   4   5
>>>  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
>>>  | 0 | 1 | 0 | 0 | 1 |  DDF  |  TF   |NH | HLIM  |  SAM  |  DAM  |
>>>  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
>>>
>>> - Dispatch: 8-15
>>> - DDF: Destination dependant fiels
>>> - 00: Destination is global (or ULA), no context byte after the HC
>>> field
>>> - 01: Destination is global (or ULA), one byte context byte after
the
>>
>>> HC field
>>> - 10: Destination is Link local
>>> - 11: Destination is multicast scoped address
>>>
>>> - TF: Traffic Class, Flow Label
>>> - 00: 4-bit Pad + Traffic Class + Flow Label (4 bytes)
>>> - 01: ECN + 2-bit Pad + Flow Label (3 bytes)
>>> - 10: Traffic Class (1 byte)
>>> - 11: No Traffic Class and Flow Label
>>>
>>> - NH: Next Header compression
>>>
>>> - HLIM: Hop Limit
>>> - 00: uncompressed
>>> - 01: 1
>>> - 10: 64
>>> - 11: 255
>>>
>>> When destination is link local:
>>> -------------------------------
>>> prefix is FC80::/64 when compressed
>>>
>>> - SAM: Source Address Mode - prefix is link-local, when compressed
>>> - 00: 128 bits
>>> - 01: 64 bits
>>> - 10: 16 bits
>>> - 11: 0 bits
>>> - DAM: Destination Address Mode - prefix is link-local, when
>>> compressed
>>> - 00: 128 bits
>>> - 01: 64 bits
>>> - 10: 16 bits
>>> - 11: 0 bits
>>>
>>> When destination is multicast:
>>> -------------------------------
>>> prefix is FF02::/64 when compressed
>>>
>>> - SAM: Source Address Mode
>>> - 00: 0 bits, unspecified address
>>> - 01: 64 bits, prefix is link local
>>> - 10: 16 bits, prefix is link local
>>> - 11: 0 bits, derived from the IID, prefix is link local
>>> - DAM: Destination Address Mode - prefix is link-local, when
>>> compressed
>>> - 00: 8 bits,  prefix is compressed, suffix is 7 octets of zeroes,
>>> then this octet
>>> - 01: 24 bits, prefix is compressed, suffix is 4 octets of zeroes,
>>> then one octet 0xFF then this octet
>>> - 10: 16 bits. 4 bits flags, 4 bits scope, 1 byte suffix.
>>> Prefix as defined in RFC 4291, suffix is 7 octets of zeroes, then
>>> this
>>
>>> suffix octet
>>> - 11: 24 bits  4 bits flags, 4 bits scope, 2 bytes suffix Prefix as
>>> defined in RFC 4291, suffix is 6 octets of zeroes, then those suffix
>>> octets
>>>
>>> When destination is ULA or global:
>>> -------------------------------
>>> The prefix is found from the context table.
>>> If there is no context octet after the HC field then this is the
>>> default prefix.
>>>
>>> - SAM: Source Address Mode
>>> - 00: 128 bits
>>> - 01: 64 bits
>>> - 10: 16 bits
>>> - 11: 0 bits
>>> - DAM: Destination Address Mode
>>> - 00: 128 bits
>>> - 01: 64 bits
>>> - 10: 16 bits
>>> - 11: 0 bits
>>>
>>> Notes:
>>>
>>> With this change, the 16 bits format of Link local and ULA and
global
>>> really means the last 16 bits ( apposed to 15 in
>>> http://tools.ietf.org/html/draft-ietf-6lowpan-hc-00
>>> 2.2.  IPv6 Unicast Address Compression.
>>>
>>> With this change, we have the most useful mcast cases covered:
>>> DAM of 00 compresses FF02::XX, so you get all routers on link,
etc...
>>> DAM of 01 compresses FF02::FFXX:YYZZ, sollicited node mcast address
>>> DAM of 10 and 11 compress all permanently-assigned multicast
>>> addresses
>>
>>> defined today for all scopes
>>>
>>> What do you think?
>>>
>>> Pascal
>>> ________________________________________
>>> From: Julien Abeille (jabeille)
>>> Sent: mercredi 8 octobre 2008 17:51
>>> To: Jonathan Hui
>>> Cc: Pascal Thubert (pthubert)
>>> Subject: hc-01
>>>
>>> Hi Jonathan,
>>>
>>> I send unicast because my thought will not be clear, and to make a
>>> quick presentation and bind it to "cisco sensor team".
>>> I did my master thesis in 2005 at Cisco in Sophia Antipolis. My
>>> project manager was Patrick Wetterwald (IPSO president) and I worked
>>> with Pascal on tree discovery and bubbles protocols. I joined Cisco
>>> as
>>
>>> employee in july last year, and have been working on sensors with
>>> Patrick as project manager, Pascal and a few others as engineers. I
>>> met JP Vasseur a year ago and we have frequent calls and meetings,
as
>>> he recently moved 150km from switzerland where my office is. I work
>>> most closely with Mathilde Durvy whom you met for IPSO interop
calls.
>>>
>>> after discussion with Pascal about address compression, I try to
>>> clarify my thoughts:
>>> - 64 last bits compression in unicast address compression is only
>>> feasible if last 64 bits are based on IID (either 64 bit MAC address
>>> or PAN ID+0+16bit address). I thought it would be nice to be able to
>>> compress as well addresses with bytes 8 to 13 = 0. (e.g. a::1)
>>> - could be nice as well to compress the IID only when the prefix is
>>> not compressable?
>>> - for multicast address compression, i thought stateless compression
>>> could be nice. This works well with permanently assigned addresses
>>> (Pascal, the link i promissed:
>>> http://www.iana.org/assignments/ipv6-multicast-addresses)
>>> , as many bytes are 0 after the two first ones
>>> - for multicast again, it would be nice to be able to compress
>>> addresses with more than 9-bit non 0 (a few permanently assigned
ones
>>> apply there, like all-dhcp-agents)
>>> - regarding the 16-bit compressed format, i would prefer not having
>>> one bit or more in the compressed field with a special meaning
(first
>>> bit 0 = unicast, 3 first bits 101 = multicast), but keep all these
>>> bits in the encoding
>>> - I was wondering if assuming flags are 0 cannot be an issue.
>>>
>>> These are just thoughts, as i am not extremely clear on the
important
>>> scenarios where we want to compress (e.g. solicited node multicast
>>> compression might not be needed as with ND optimizations, there will
>>> not be many NS), and am not clear either about multicast addresses
>>> except permanently assigned ones. More preciely i do not know if we
>>> want to support unicast prefix based multicast addresses or rendez
>>> vous point addresses, and what they look like.
>>>
>>> hope this helps in the discussion,
>>> regards,
>>> Julien
>>>
>>

_______________________________________________
6lowpan mailing list
6lowpan@ietf.org
https://www.ietf.org/mailman/listinfo/6lowpan