Re: [6lowpan] HC

"Stephen Dawson-Haggerty" <stevedh@eecs.berkeley.edu> Fri, 18 July 2008 00:39 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 2E0E23A67B6; Thu, 17 Jul 2008 17:39:36 -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 23DAB3A67B6 for <6lowpan@core3.amsl.com>; Thu, 17 Jul 2008 17:39:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.216
X-Spam-Level:
X-Spam-Status: No, score=0.216 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_21=0.6, J_CHICKENPOX_66=0.6, MISSING_HEADERS=1.292, WEIRD_PORT=0.001]
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 d9niEatb2LnB for <6lowpan@core3.amsl.com>; Thu, 17 Jul 2008 17:39:34 -0700 (PDT)
Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.227]) by core3.amsl.com (Postfix) with ESMTP id F37D23A63D2 for <6lowpan@ietf.org>; Thu, 17 Jul 2008 17:39:33 -0700 (PDT)
Received: by rv-out-0506.google.com with SMTP id b25so113256rvf.49 for <6lowpan@ietf.org>; Thu, 17 Jul 2008 17:40:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references :x-google-sender-auth; bh=TC7aKJ9pu/AGD15A73Jnf1ZP2/jbgi9OA6eNRgtMHZw=; b=vvI+1POIeVsWwgaSRbqLOBj7rSaVJVs0puVlskfm5XCASsqJtIOygfvSndOY26hra7 czaHcDq/UKzuFteyOe3YNkxhhLtI93r9YodGhENubR3lZmOx/QrJwV85jljj2gKNFBwj aEPXT7WzOuLodq3qLkFIJnd9JFHbfqx2HzpTk=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references:x-google-sender-auth; b=nuK8JP0ycjFnMlIqQ1YRWdBqcCmht8QxOCSr+JThFAvAS7rdt5jboqL3E2VuHV9ff5 jaPKgb1D7/m1cDR5GM5Ts9vOMUJHPkZchwtZeGdwIuDZGxXMZH/qvnrZmUZr6lXy7sLT imU7mEK73+DEe+RBvrPq0bi0ZNc17kQ/Us2aI=
Received: by 10.140.202.21 with SMTP id z21mr1554039rvf.81.1216341603899; Thu, 17 Jul 2008 17:40:03 -0700 (PDT)
Received: by 10.141.33.10 with HTTP; Thu, 17 Jul 2008 17:40:03 -0700 (PDT)
Message-ID: <44680fe70807171740w4a53b1dfm62589f7a7fba1e5b@mail.gmail.com>
Date: Thu, 17 Jul 2008 17:40:03 -0700
From: Stephen Dawson-Haggerty <stevedh@eecs.berkeley.edu>
In-Reply-To: <1216306481.6621.123.camel@dellx1>
MIME-Version: 1.0
Content-Disposition: inline
References: <OF5473A5FD.6B155ACA-ONC1257489.002DF3BE-C1257489.0030E03A@philips.com> <1216306481.6621.123.camel@dellx1>
X-Google-Sender-Auth: c4a32b3f8e81202e
Cc: 6lowpan@ietf.org, David Culler <david.culler@gmail.com>
Subject: Re: [6lowpan] HC
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

I'd like to weigh in with a few notes that people on this list might
be interested in.  First, I've released the Berkeley 6lowpan
implementation for TinyOS into tinyos-2.x-contrib/berkeley/b6lowpan
under a BSD license.  It is still very much a work in progress, but it
should be useful to anyone wanting to experiment with 6lowpan.  It
uses HC for header compression and IPv6 stateless autoconf for prefix
assignment.  It provides UDP as the transport, and supports multi-hop
routing.  Standard tools like ping6, nc6, and tracert6 all work with
the stack.  More information is available on the project wiki
(http://smote.cs.berkeley.edu:8000/tracenv/wiki/b6loWPAN).

Second, it might be useful to (re)start the conversation about HC.
Overall, it's relatively clean and easy to implement; many of the
implementation choices surrounding a 6lowpan stack aren't really that
affected by how headers are compressed.  There are a couple of things
neither the draft nor 4944 directly address, though:

 - support route-over combined with no hop-by-hop reassembly
 - support source routing

As older discussions on the list have gone over, the first is
currently possible by unpacking the IP headers in the first fragment
and caching the routing information for successive fragments.  I think
it's probably not necessary to do anything other then declare that the
compressed IP headers must fit into the first fragment, but there
could be other ideas for how to best allow this.

The second belongs in any standard, because it interacts with address
compression: the source route can be used to infer the source and
destination IP address for intra-pan routing.  What I would suggest
here is the addition of an LOWPAN_HCNH encoding for source routing.
This also brings up the issue it should be possible to follow this
header (NHSR?) with a NH_UDP encoding block so as to have compressed
source routing as well as UDP headers.  Whatever header format is
decided on should also support a record route option in the dispatch
byte.  If people agree that this is important, I can write up a
proposal on how to do this.

What else do people see as needing work in HC?

Steve

On Thu, Jul 17, 2008 at 7:54 AM, Geoff Mulligan <geoff@mulligan.com> wrote:
> I also agree.  Now is the right time before we have to carry this design
> baggage forward.
>
> As Pascal pointed out - we then need to get HC done sooner.
>
>        geoff
>
> On Thu, 2008-07-17 at 10:56 +0200, Anthony Schoofs wrote:
>> I am also in favor of that approach.
>> We have had issues with routing packets from 6lowpan nodes to IP
>> hosts, and we definitively need the HC compression to make things
>> cleaner and optimized.
>>
>> Anthony
>> --
>> Anthony Schoofs
>> Research Scientist
>> Philips Research
>> High Tech Campus 34 , 5656 AE Eindhoven, The Netherlands
>> Email: anthony.schoofs@philips.com
>>
>> Inactive hide details for Pascal"Pascal Thubert (pthubert)"
>> <pthubert@cisco.com>
>>
>>
>>         "Pascal Thubert (pthubert)"
>>         <pthubert@cisco.com>
>>
>>         Sent by:
>>         6lowpan-bounces@ietf.org
>>
>>         17-07-2008 10:13
>>
>>
>>                To
>>
>> "David Culler"
>> <david.culler@gmail.com>
>> <6lowpan@ietf.org>
>>
>>                cc
>>
>>
>>
>>           Subject
>>
>> Re: [6lowpan] HC
>>
>>    Classification
>>
>>
>>
>>
>>
>> Hi David:
>>
>> I do support that approach. I'd note that it would impose some
>> pressure to release HC rather quickly.
>> Is there a way to get a feedback on existing deployments that use
>> 6LoWPAN HC1?
>>
>> Pascal
>>
>>
>> ______________________________________________________________________
>> From: 6lowpan-bounces@ietf.org [mailto:6lowpan-bounces@ietf.org] On
>> Behalf Of David Culler
>> Sent: mercredi 16 juillet 2008 18:25
>> To: 6lowpan@ietf.org
>> Subject: [6lowpan] HC
>>
>> It appears that the 6LoWPAN WG is poised to take up serious discussion
>> of HC (http://www3.tools.ietf.org/html/draft-hui-6lowpan-hc-00) and I
>> would like to encourage us to make a bold move forward while the
>> number of "dusty deck 6LoWPAN implementations" are few - eliminate
>> HC1/HC2 in the process.
>>
>> As a bit of background, the original format document defined HC1 for
>> compression of link local IPv6 addresses and HC2 for compression of
>> UDP and ICMP headers. Both were part of a rather awkward encoding.
>> Most other parts of the encoding got cleaned up with the switch to the
>> stacked header format that went to RFC. Aside from its awkwardness,
>> HC1 was never sufficient, because it provided no compression of
>> routable addresses, nor for the most useful multicast addresses - both
>> rather essential to IPv6. HC1g was proposed to provide a similar
>> (somewhat more effective) stateless compression of common addresses of
>> global scope. This meant two similar compression schemes, HC1 for
>> link-local, HC1G for global. Both are implementable with much less
>> than a thousand lines of code. No ambiguity about when to use which.
>>
>> HC provides a much cleaner approach which subsumes both HC1 and HC1g,
>> better supports multicast, and is much more usable with IPv6 stacked
>> headers because the order of the subheaders is respected. (HC2 comes
>> in between the dispatch and the address subheader, rather than as a
>> portion of the transport subheader).
>>
>> The decision to take on HC, clean up the rough edges, and build
>> consensus around it is the easy part. The bolder step that I would
>> like to suggest is that we deprecate HC1 and get it removed soon.
>>
>> It is always easier to maintain backward compatibility than to make a
>> clean break. But, ultimately that is burdening all the many future
>> implementations in order to avoid a burden on the few current
>> implementations.
>>
>> The reason to avoid this burden is not that either is a huge amount of
>> code. Implementing any of these HCs is only several hundred LOC. The
>> issue is testing and interoperability. The interoperability draft
>> sheds some light on this. There are so many different compression
>> forms and since each is an optimization on the uncompressed version,
>> there are many different ways to represent the same thing. All with
>> different sizes and offsets. At least they are all in the same suite.
>> To multiply that with all the combinations of HC1 and HC will be
>> really unpleasant. Moreover, the only thing anyone will ever use after
>> a short while is HC, since it is so much cleaner and more effective.
>> That means all the HC1 mess and all the testing and interoperability
>> investment will be for nothing other than that - just to pass the
>> test. But it will generate latent bugs, increase the footprint, and
>> frustrate interoperabilty.
>>
>> So, as we imagine a future of billions of 6LoWPAN IP devices embedded
>> in important hard to reach places, lets take the step now to simplify
>> their implementation and testing, rather worry too much about saving a
>> few hours of coding for the half dozen existing implementations. If
>> that is not reason enough, those same implementors will save many
>> times that amount in reduced testing and interoperability validation.
>> _______________________________________________
>> 6lowpan mailing list
>> 6lowpan@ietf.org
>> https://www.ietf.org/mailman/listinfo/6lowpan
>>
>> _______________________________________________
>> 6lowpan mailing list
>> 6lowpan@ietf.org
>> https://www.ietf.org/mailman/listinfo/6lowpan
>
> _______________________________________________
> 6lowpan mailing list
> 6lowpan@ietf.org
> https://www.ietf.org/mailman/listinfo/6lowpan
>
_______________________________________________
6lowpan mailing list
6lowpan@ietf.org
https://www.ietf.org/mailman/listinfo/6lowpan