Subject: [6lowpan] #47: Context improvement

From: "6lowpan issue tracker" <[email-masked]>
Date: Mon, 03 Aug 2009 12:58:47 -0000

#47: Context improvement
--------------------------------+-------------------------------------------
 Reporter:  [email-masked]  |       Owner:  [email-masked]
     Type:  enhancement         |      Status:  new              
 Priority:  major               |   Milestone:                   
Component:  nd                  |     Version:                   
 Severity:  -                   |    Keywords:                   
--------------------------------+-------------------------------------------
 In the IETF-75 working group meeting the issue of the CID in the 6LoWPAN
 Prefix Information Option was brought up. During the IETF the design team
 found a solution which would clarify the advertisement of Prefix and
 Context information, which allows CID to be kept in 6LoWPAN-ND.

 - Separate the Prefix Information and Context Information into separate
 options. This clarifies what is a prefix and what is context.

 - Use either the standard RFC4861 Prefix Information Option or an
 optimized one to save overhead.

 - Create a new Context Information Option which includes the CID along
 with the context.

 Therefore an RA would include a PIO followed by CID options. The use of
 the Multihop Information Option would remain the same.

 Work to be performed on the details.

-- 
Ticket URL: <http://trac.tools.ietf.org/wg/6lowpan/trac/ticket/47>
6lowpan <http://tools.ietf.org/6lowpan/>

---

From: Carsten Bormann <[email-masked]>
Date: Mon, 3 Aug 2009 17:17:04 +0200

> optimized one to save overhead.

The 4861 PIO is about twice the size of the 6LoWPAN one, as 4861  
always sends all 16 bytes of a prefix and then needs to add padding  
(and a reserved field).

Combining 6LoWPAN-PIO and CID-IO into one option makes it unnecessary  
to send all the global prefix(es) of the LoWPAN twice.
There is still enough space in the option to indicate whether the CID  
number is valid or not (the A bit already tells us whether this is a  
valid subnet prefix).

When we went CBHC, I heard some noises that the context info might get  
somewhat large for distribution in RAs.
With this changes, yes, they will.

I still haven't heard a rationale for this change.  If there is indeed  
a need to clarify, do so in the text, not the encoding.

Gruesse, Carsten

---

From: Zach Shelby <[email-masked]>
Date: Tue, 04 Aug 2009 11:39:18 +0300

Hi,

Carsten Bormann wrote:
> The 4861 PIO is about twice the size of the 6LoWPAN one, as 4861 always 
> sends all 16 bytes of a prefix and then needs to add padding (and a 
> reserved field).

Yep. It needs to be optimized.

> Combining 6LoWPAN-PIO and CID-IO into one option makes it unnecessary to 
> send all the global prefix(es) of the LoWPAN twice.

You are correct, this will take more space using multiple options. 
Already this is an issue when having lots of contexts.

> I still haven't heard a rationale for this change.  If there is indeed a 
> need to clarify, do so in the text, not the encoding.

If I understand it, the rational for separating the prefix information 
from context information, was to allow for context information to be 
distributed in other ways as well in the future. E.g. including a 
Context Information Option also in other messages.

What if we would do something like this.

1. Rename the current option to "6LoWPAN Information Option" making it 
more neutral to whether it is carrying prefix or context information.

2. Add the extra bits needed to tell if the CID is valid or not.

3. Make it clear that the option can carry a prefix, a context or a 
prefix which is also a context.

This option would be generic enough that it could also potentially be 
carried in messages other than RAs.

Here is a shot at a proposal:

    0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |     Length    |  Info Length  |L|A|C|V|  CID  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                        Valid Lifetime                         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    .                                                               .
    .                         Information                           .
    .                                                               .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             	    6LoWPAN Information Option format

    Type:  TBD4

    Length:  8-bit unsigned integer.  The length of the option (including
       the type and length fields) in units of 8 octets.  May be 1, 2 or
       3 depending on the length of the Prefix field.

    Info Length:  8-bit unsigned integer.  The number of leading bits
       in the Information field that are valid.  The value ranges from 0
       to 128.
       The info length field provides necessary information for on-link
       determination (when combined with the L flag in the prefix
       information option).  It also assists with address
       autoconfiguration as specified in [RFC4862], for which there may
       be more restrictions on the info length.

    L: 1-bit on-link flag.  This flag MUST be unset for Route Over
       LoWPANs and Extended LoWPANs, and MAY be set for Mesh Under Simple
       LoWPANs.

    A: 1-bit autonomous address-configuration flag.  When set indicates
       that this prefix can be used for stateless address configuration
       as specified in [RFC4861].

    C: 1-bit context flag. This flag indicates that this information
       option also serves as a context on the LoWPAN and is identified
       by the CID field.

    V: 1-bit context validity flag. This flag indicates if the context
       is valid, and is used only in combination with the C flag.

    CID:  4-bit Context Identifier for this information.  CID is
       used by context based header compression specified in
       [I-D.ietf-6lowpan-hc].  The list of CIDs for a LoWPAN is
       configured on Edge Routers, who distribute the prefix list to all
       nodes in the LoWPAN.  CID = 0 identifies the default context to be
       used.

    Valid Lifetime:  32-bit unsigned integer.  The length of time in
       seconds (relative to the time the packet is sent) that the prefix
       is valid for the purpose of on-link determination.  A value of all
       one bits (0xffffffff) represents infinity.

    Information:  The IPv6 prefix or context information indicated. This
       may be a
       partial prefix, a partial context or even an entire IPv6 address
       for use as a context for compression.

Zach

-- 
http://www.sensinode.com
http://zachshelby.org - My blog “On the Internet of Things”
Mobile: +358 40 7796297

Zach Shelby
Head of Research
Sensinode Ltd.
Kidekuja 2
88610 Vuokatti, FINLAND

This e-mail and all attached material are confidential and may contain 
legally privileged information. If you are not the intended recipient, 
please contact the sender and delete the e-mail from your system without 
producing, distributing or retaining copies thereof.

---

From: "6lowpan issue tracker" <[email-masked]>
Date: Mon, 17 Aug 2009 15:18:05 -0000

#47: Context improvement
--------------------------------+-------------------------------------------
 Reporter:  [email-masked]  |        Owner:  [email-masked]
     Type:  enhancement         |       Status:  closed           
 Priority:  major               |    Milestone:                   
Component:  nd                  |      Version:                   
 Severity:  -                   |   Resolution:  fixed            
 Keywords:                      |  
--------------------------------+-------------------------------------------
Changes (by [email-masked]):

  * status:  new => closed
  * resolution:  => fixed

Comment:

 Fixed in -05. Solved using an updated 6LoWPAN Information Option as
 suggested on the mailing list.

-- 
Ticket URL: <http://trac.tools.ietf.org/wg/6lowpan/trac/ticket/47#comment:1>
6lowpan <http://tools.ietf.org/6lowpan/>