[Roll] RPL Next Steps

Tim Winter <wintert@acm.org> Tue, 11 August 2009 22:59 UTC

Return-Path: <wintert@acm.org>
X-Original-To: roll@core3.amsl.com
Delivered-To: roll@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 90B7A3A6BAC for <roll@core3.amsl.com>; Tue, 11 Aug 2009 15:59:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.327
X-Spam-Level:
X-Spam-Status: No, score=-102.327 tagged_above=-999 required=5 tests=[AWL=0.271, BAYES_00=-2.599, UNPARSEABLE_RELAY=0.001, USER_IN_WHITELIST=-100]
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 XaXm8dS5ks34 for <roll@core3.amsl.com>; Tue, 11 Aug 2009 15:59:55 -0700 (PDT)
Received: from smtp103.prem.mail.ac4.yahoo.com (smtp103.prem.mail.ac4.yahoo.com [76.13.13.42]) by core3.amsl.com (Postfix) with SMTP id 6B8F73A6BD7 for <roll@ietf.org>; Tue, 11 Aug 2009 15:59:45 -0700 (PDT)
Received: (qmail 80777 invoked from network); 11 Aug 2009 22:58:38 -0000
Received: from 206-83-249-194.edurostream.com (wintert@206.83.249.194 with plain) by smtp103.prem.mail.ac4.yahoo.com with SMTP; 11 Aug 2009 15:58:37 -0700 PDT
X-Yahoo-SMTP: 30iEHGKswBCbca_Y5pX7d6RVQMoT5Mk-
X-YMail-OSG: 5spMwg8VM1kbAuyo..1PZRkoTr5uVfPK.ssak1KVVMeXluPByOirA3Ql36bHJzAleI0ZOKebiGoZ4Wkr1ti_c.tE9mtOL3Rd94.SK1C1oMQLJgU.A7I0.2m8KCaaAdBdfwlpFcYn5RFvsgUy05T.BFYz3QE7tp36cK63G2ujx_0s8CM5gtjpTjwzZF8mA0vocu6ESa5STLE8iS2aSyruiNxda4wlphUBdkm2mdrdoaSldNBhYWEoavkjZg__d_faYEuaMKBAv3O1Rcen4ndRtFhWbO.a87rcDXNWmprHHm7LNSGeBDhIg3k8L3JZwCUQeNvPOHO_Jt0mmmJSatWjwvEPgeblWnl3Qm8-
X-Yahoo-Newman-Property: ymail-3
Message-ID: <4A81F79A.10104@acm.org>
Date: Tue, 11 Aug 2009 18:58:34 -0400
From: Tim Winter <wintert@acm.org>
User-Agent: Thunderbird 2.0.0.21 (X11/20090330)
MIME-Version: 1.0
To: ROLL WG <roll@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: [Roll] RPL Next Steps
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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, 11 Aug 2009 22:59:57 -0000

WG,

Please find below some additional feedback from the design team on the
questions that have been raised so far for RPL.  Not everything has been
covered- but the questions have served to point out some areas of the draft
where we need to continue and focus efforts.

We (DT) propose, in the -01 version of the draft, to clarify as much
as possible the outstanding questions and concerns in the current
specification of RPL, with emphasis on the existing (-00) mechanisms.  The
intent is to provide a solid, unambiguous, implementable, foundation of the
existing core mechanisms in -01.  On this foundation we can then continue
to build and expand other necessary mechanisms in later revisions, such as
are being discussed for P2P routing.  There is no doubt that the P2P issues
need to be further discussed and addressed, but the thought is that by
clearing up the existing mechanisms we may be able to make better progress
in moving forward beyond the existing mechansisms in later revisions.

WG, how does this sound as a strategy to make progress on RPL?



Miscellaneous:
- Based on WG feedback, instead of `depth' we will refer to `rank'
- Instead of `siblings' we will refer to `nodes of the same rank'
- We will update the text to reflect that
        1) Grounded nodes do not always provide a default route
        2) Destination prefix suboption of DIO includes lifetime


---------------------------------------------------------------------------
        From: Alexandru Petrescu <alexandru.petrescu@gmail.com>

        I would like to get clarification on the IPv6 addressing architecture
        and subnet structure considered in RPL.

        -is it the AUTOCONF addressing model?

DT: It is important that RPL work with whatever addressing model we utilize
in the future and that it operate in contexts where the addressing model is
already constrained.  Thus, RPL treats the address as opaque.  If you like,
you can view it as flat, but really it is uninterpreted at this stage.

With this in mind, it is clear that RPL will benefit from the ability to do
route summarization along the DAG, particularly in order to improve
scalability.  Future work on the draft may evolve this mechanism, and there
is work to do on the ROLL architectural framework that may offer additional
clarifications.


        -is it the 6LoWPAN route over or mesh-under?
DT: RPL intends to operate purely at L3, and it is the intention of RPL to
be L2 agnostic, so it "routes over".  If it were over, e.g. switched
ethernet or 802.11 mesh or 802.15.4 mesh underneath, it should work.  It
should also work on, e.g., ethernet, 802.11, and 802.15.4 where no
"meshing" is done at layer 2.

        -how many physical interfaces does a node have?
DT: This is out of scope for RPL.

        -if a node has several interfaces then does it have only one physical
          interface?
DT: This may be a typical case, but again out of scope for RPL.  A
subnetwork / adaptation layer should handle this.

        -what is the default route behaviour?  Does each node have default
          route?
DT: A default route MAY be offered by a grounded DAG, in which case it will
be installed.  In some cases (application specific) the default route may
not be offered by a grounded DAG, in which case there is no default route
and a node will not be able to use a default route to forward packets.  In
such cases it is presumed that an application, choosing not to provision a
default route in a DAG root, will take care to use only prefixes that can
be routed within the DAG.

        -are there IPv6 prefix subnets /64?
DT: There could be, but it is not required.  In cases where RPL allows
prefix specification, the prefix length may be specified from 0-128.

        Here is a DAG excerpt from 01 draft:

                           (A)
                            |\
                            | `-----.
                            |        \
                           (B)        \
                             \        |
                              `-----. |
                                     \|
                                     (C)

        Does that mean the IPv6 addressing arechitecture is this:


                           (A)
                            |\
            2001:db8:1::/64 | `-----.
                            |        \  2001:db8:2::/64
                           (B)        \
                             \        |
                              `-----. |
                 2001:db8:3::/64     \|
                                     (C)



---------------------------------------------------------------------------
        From: "Don Sturek" <d.sturek@att.net>

        Here are some points that I would like to see the design team
        clarify with respect to the current RPL draft:
        1)  P2P support
                a.    I believe the P2P feature uses Destination Address
                        advertisements from the device wishing to receive
                        P2P traffic:
                        i.  What are the requirements for the receiving
                                device advertising via Destination Address
                                Advertisements assuming it is not the
                                DAG-root (eg, What is the rate of
                                Destination Address advertisements, How
                                does the device (or does it/can it) notify
                                devices of lower rank/depth that it has
                                detached from the DAG).   If there is no
                                mechanism for the receiving device to
                                notify devices of lower rank/depth it if
                                detaches, how is maintenance of the
                                Destination Address advertisement caching
                                within the DAG performed.
DT: Destination advertisements as specified in -00 may be triggered by any
node in the DAG who observes a change in the DAG.  The request is made by
setting the `D' bit and propagating a new DIO.  This change may have been
observed directly, e.g. a node changes its DAG Parents and preemptively
triggers the DA mechanism to update the inward nodes, or equivalently by
observing a change to the PathDigest.

A DAO of lifetime 0 (no-DAO) is used to indicate that the reachability is
lost (5.4.1.1).  If the Node has a chance to leave gracefully, it could
send that about itself.  The most common case is timing out a child though.

                        ii.   What are the requirements for devices with
                                lower rank/depth in the same DAG when
                                receiving a Destination Address
                                advertisement (eg, does it store the
                                Destination Address advertisements of its
                                children, Does it further re-propagate the
                                Destination Address advertisements to
                                devices of lower rank/depth, How long
                                should devices of lower rank/depth store
                                these destination address advertisements)

DT:
When a node is capable of storing DAs (i.e. it has sufficient storage for
the DA state), then it will do so, along with the depth, and after some
time will re-emit the best DA from the options it has seen, perhaps
performing route aggregation/summarization if it is able.

When a node is not capable of storing DAs (i.e. it has no storage for the
DA state), then it will update the reverse routing statck in the DA and
immediately pass it on.

There is a related concern, brought up in IETF-75, about the effect of
`fan-out' when coupled with the DA mechanism in a DAG, i.e. as DAs are
propagated among (potentially) multiple sets of DAG parents, what steps
need to be taken to keep the multiplicative effect under control.

For nodes who are storing DAs, the DA's will be stored until a no-DAO is
received or the DA lifetime expires.

No-DAO (lifetime 0) would be propagated immediately and unreliably.  This
another instance where a loop is easily created and thus requires
detection.  This is a case where an approach to loop detection would be
enough.

In general, it is clear that there is work to do in the RPL draft to more
clearly state the operation of the DA mechanism, and to remove some
ambiguity in the description of the core mechanism.

                b.    Routing of P2P traffic
                        i.     I assume that the DAG-root holds the address
                                of all Destination Address Advertisements
                                it has received from devices in its DAG.
                                Is this true?
DT: As mentioned on the list, there could be cases where only the MP2P flows
are of interest (no P2MP traffic), in which case the DA mechanism may not
even be invoked and there is not need to MUST the DAG-root to hold the
addresses.

If P2MP traffic is supported, and the DA mechanism is used, then the
DAG-root MUST store the state learned from the DAs it receives.  This
should be further clarified in the draft.

Note that if route summarization is in play, e.g. some sort of hierarchical
addressing structure is supported, then the DAG root may not receive a DA
for every device in its DAG; the addressing structure may allow DAs to be
absorbed and aggregated as the move up the DAG.  This mechanism needs
further exploration, as described in the answer to a related question
above.

                        ii.    I assume that other devices in the DAG of higher
                                rank/depth from the DAG-root but still
                                lower in rank than the final destination
                                routes packets down the DAG.  It seems
                                possible for the destination to receive
                                multiple copies (is this correct) and more
                                importantly it also seems possible for an
                                Unreachable notification to be generated by
                                some device in the DAG when in fact the
                                packet reached its destination through
                                another path (did I read the proposal
                                wrong?)
DT: Yes duplicates may be received but this is beyond the scope of RPL, and
any traffic running over an IP service should be prepared to handle
(or ignore, or not care) possible duplicates.  Likewise, in some
implementations, it may be possible for ICMP unreachable to be issued when
in fact the packet has slipped through.

                c.    Sibling routing seems to be not supported (though I
                                saw discussion of this on the reflector).
                                It seems problematic to have Siblings
                                processing Destination Address
                                advertisements within the same DAG.  We
                                should leave this out of the clarification
                                if my reading is correct and only add it
                                back as part of support for optimized P2P
                                if that is where the optimization leads.
DT: To clarify, `sibling routing' in this question is the same as
`next-door neighbor' or `1-hop' neighbor that has been discussed on the
list, and in fact entails all neighbors (not just siblings as in
nodes-of-the-same-rank).  It is the intention that this type of routing is
supported by RPL.  The proposal on the table is that nodes will make use of
mulicast DAOs in order to inform their neighbors of their owned prefixes.
Text will be added to the -01 draft to specify this mechanism.


        I also have some questions on the freezing of DAGs and ungrounded
        DAGs but I think that is a separate issue and I will put out a note
        later in the week on this.
DT: Please feel free to ask at any time- it will help to produce a better
-01 draft.

---------------------------------------------------------------------------
        From: Jerald.P.Martocci@jci.com

        I would like the following questions answered on subsequent
        revisions of the draft:

        a) What is the roll of 'siblings'?  They are in the current RPL
        document, yet seem to be demoted from parental links.  As I read
        the draft, one cannot use a sibling link unless the parental links
        are exhausted.  The nodes don't seem to explicitly define sibling
        links.
DT: We will clarify this in the draft -01.  Siblings are neighboring nodes
of the same rank in the DAG.  The idea is that forwarding via siblings may
allow a packet to make progress when the parents not available, i.e. the
sibling may have better luck making forward progress.  It is certainly
better than forwarding to a node of greater (outward) rank, and better than
dropping the packet.  So siblings are useful when making the list of
successors; first try the parents, second try siblings, last give up.

        b) What is the plan on communication to devices within direct radio
        range?  As I read the draft unless a node is made a 'parent', or
        possibly a 'sibling' it cannot be communicated with.  However,
        Anand mentions in his memo that at the Stockholm meeting there was
        discussion on directly connected devices.  Unfortunately, I
        couldn't attend the meeting.
DT: The intent is to support this and we intend to elaborate the mechanism
in the next revistion.  Please see the answer to `c' from Don
above.

        c) What are the approximate timer values for RPL?  The document
        gives no indication as to these timers, hence I can't calculate how
        long a floating DAG may be dislodged from its network.  In a
        real-time facility management control system, all nodes are
        monitored for falling off-line.  If the convergence time is too
        long (more than 1 minute), the devices will be flagged off-line and
        reported to the customer.
DT: The intent is that RPL may be parameterized first in a set of
applicability statements in each application domain and finally by the
implementors/administrators of the installed LLNs.  With this in mind, it
is clear that the document needs to better extract and clarify the role of
each timer, constraints on its values, and interactions with RPL mechanisms
in order that informed decisions can be made.  In some cases it may be
appropriate to derive relationships between the timers (e.g. timeout X
should be 3 times timeout Y), and in some cases it may be desirable to
have timers be adaptive.  We propose to clarify the timers in the -01 draft
so that there is a better basis to have these discussions.  A related task
is, e.g. the proper operation of the supression mechanism as has been
discussed on the list.

        d) What is the plan for security?  RPL doesn't currently weigh in
        on the topic.  Are security policies optional or mandatory?  Must
        the policy be consistent with the rest of the enterprise's IT
        security on other parts of the network?  Will security require
        nodes to keep state info as Rene suggests?
DT: There is no doubt that security is important and challenging for LLNs,
and it is important that security be designed in and not bolted on.  We
await WG progress in the security framework, and the guidance of ROLL's
advisor Rene Struik and will incorporate the necessary mechanisms into RPL.

Of particular interest here is to identify any potential places where the
unique issues of low power and lossy networks impact routing security.  For
example, have any of the measures that have been taken to operate with a
small routing footprint or at low protocol overhead increased
vulnerabilities?  (It is conceivable that by recording very little
information, being very parsimonious about what it communicated, and coping
with transient inconsistencies and uncertainty, these networks are actually
less vulnerable.) This may be distinct from the family of security issues for
the end-hosts that may have interfaces to such networks.  Of course, we
need also to attend to the relatively common case where a node is both host
and router.

        e) What requirements from the 4 requirement drafts are being
        considered?  When the DT first was engaged, it said it would
        publish the list of requirements as an appendix and note if the
        current draft supported which requirement.  This hasn't occurred
        and may be adding to the email angst.  As a requirement's author, I
        would rather know up front that some of my MUST requirements are
        not being considered.
DT: All requirements are to be considered, as summarized in
http://www.ietf.org/mail-archive/web/roll/current/msg01291.html (but
superceded as the application drafts are updated to become RFCs).  The
intent is not to re-iterate the requirements in the appendix, but rather to
justify any requirements that are not met in the final specification.  WG
members must help to ensure that the requirements are suitably met by the
proposed specification.

        f) What is the expected frame overhead size based on all the above
        criteria?  6LoWPAN requires subheader overhead for mesh, fragmentation,
        UDP/TCP.  We need to add in the encryption and authentication overhead;
        and now maybe source routing.  I realize ROLL is trying to be
        agnostic to L2, however in practice 802.15.4 is the only game in
        town.  It only carries a 128 by packet size.  The DT/WG should at
        least give an accounting of the expected frame overhead so we can
        determine what L2s are feasible for the protocol.
DT: As small as possible ;)  ROLL is agnostic to L2, and there are most
certainly folks in the WG involved with L2 other than 802.15.4.  We do
recognize that typical LLN solutions will be using very constrained link
technologies.  Let us continue to clarify the RPL specification, with the
goal in mind to provide the simplest, smallest footprint core mechanism,
and then see that any overhead is efficiently allocated.  Then we should
have justification of what an L2 may need to provide to support RPL,
whether or not it is appropriate, and/or what sort of
adaptation/subnetwork, is required for RPL operation.

As a related point, there is still work to do with regards to header
compression/address compression, ...

        g) What routing data must persist a warmstart/coldstart?  The
        overhead to establish a DAG is significant.  We should consider
        what data might be able to transcend a network reboot to minimize
        communication startup bottlenecks.
DT: It is not *required* that routing data persist a warmstart/coldstart,
e.g. RPL should not be fundamentally broken by a failure to do so, but as
you note it may certainly help to make things more efficient.  We propose
to clarify what data an implementation may consider to perist in the next
version of the draft.

        As Pascal has noted in previous emails, some of these issues may be
        considered out-of bounds for the protocol and should be an
        implementation decision.  That may indeed be true, but RPL should
        state its case explicitly.  In the Building Market, it is
        multi-disciplined (HVAC, Fire, Lighting) and multi-vendor.  Unless
        some higher authority prescribes operation, the chances of LLN
        node-to-node interoperability are moot.

               -------------------------------------------------------

        RPL currently makes no mention of sleepy devices.  These will be
        very commonplace in WSNs.  I would like to amend my list below and
        add sleepy device management.  RPL needs to state what happens to
        packets routed to sleepy devices while they are asleep.  Are they
        dropped?  Will a proxy manage the packet until the device awakens?
        Will the last router return an error to the source?
DT: This should be handled with an adaptation layer, and the underlying L2,
although L3 may need to be aware of such devices, e.g. to provision proper
DA timeouts for `long sleepers', etc.  We propose to follow the lead of
6LowPAN here and related L2 efforts such as 802.15.4e for the case of
LoWPANs.  PLC L2 layers and emerging WLAN, e.g., low power 802.11 have
related but distinct behaviors.


---------------------------------------------------------------------------
              "Mathilde Durvy (mdurvy)" <mdurvy@cisco.com>

        I would personally want to see more discussion on 3 topics where
        I'm still not fully convinced:

        [SIBLINGS] The role of siblings: this adds quite some extra
        complexity to the routing but what does it really bring in
        practice?  Should siblings be part of the foundation layer? My
        opinion is no.
DT: For the moment we think yes, see above answer to Jerry's question `a'
above.  But what does the rest of the WG think?

        [METRICS] If the choice of possible metrics is specified in the
        metric draft, why not impose the right conditions on these metrics
        so that we can base the DAG construction and the loop avoidance on
        a single metric rather than have a separate hop count or depth?
DT: We will clarify this further in the draft.  The intent is that the
depth (i.e. `rank') is to serve equivalently to this single metric you
described: its value is determined by the mechanism defined in the OCP, it
is to be derived in a way that is related to position in the DAG with
certain properties useful for loop avoidance, and its loop avoidance
properties are to be universal such that neighboring nodes may understand
even in the case where they don't understand the OCP (e.g. `esperanto').

        [TIMERS] Interaction between timers: I'm thinking in particular of
        the interaction of the RA timers and the DAG hop timers. In the
        loop avoidance example given by Jonathan during the IETF meeting
        can we guarantee the right sequencing of RA / DAG Hop timer firing?
DT: To be clarified, as per Jerry's question `c' above.  In addition, note
that we may not always be able to guarantee the sequencing of the RA / DAG
Hop timers as in the example- in the best case scenario the timer values
should allow for the coordinated freezing of the sub-DAG and subsequent DAG
Merge.  But in some cases, e.g. due to comm loss, the freezing might not be
coordinated and the DAG Merge might be choppy/fragmented.  But RPL should
still be able to operate, by detecting resuling inconsistencies and
repairing.

---------------------------------------------------------------------------
        From: "Julien Abeille (jabeille)" <jabeille@cisco.com>

        a few more items:
        [Packet format] Clarify the rationale to use RAs/NAs. More precisely:
        - are RAs sent for router discovery/prefix discovery the same as
                those used by ROLL (same timer).
                -- If yes, does it impact the way router discovery/prefix
                        discovery work (preformance, do they really have
                        the same timing constraints?)

DT: The DIO is specified as an RA option, and just like any other option,
it doesn't have to be sent in every RA. Sending the DIO does not have to be
on the same timer. However, it may be advantageous to include a prefix
information option along with a DIO so that a node can also autoconfigure
its address in addition to configuring a default route with a single
message transmission (reduced energy, channel utilization, etc). As a
result, it may mean that some options specified in RFC4861 may be sent more
frequently that if RPL was not using RA messages as a transport. We don't
think there is any issue with sending options more frequently than expected
- if you think there are, please raise them.

                -- if yes, what is the approach with regards to update of
                        RFC4861 (6lowpan-nd is not in scope in my opinion
                        as it is L2 dependant, while ROLL is not)?
                -- if not, why not using a specific packet?

        - NA:
                -- Are NAs sent for ROLL used for anything else? If not why
                        not use a specific packet to carry DAOs?

                -- NAs are already pretty overloaded (DAD, NUD, Address
                        resolution), using a different packet may bring NA
                        processing complexity down.
DT:  There was some discussion at IETF-75 regarding trying to generalize
the ND binding.  For now we may concentrate on the form and function of
DIOs/DAOs and how they interact in the RPL protocol, leaving the RA and
NA in place for the moment.  Once the core mechanisms are refined we may
then revisit/refine what is used to carry the advertisements.  A clear
preference would be to not cause modification to established IPv6 ND
behaviour.




- END -