Re: [Roll] AD Review of draft-ietf-roll-aodv-rpl-07

Ines Robles <mariainesrobles@googlemail.com> Wed, 07 August 2019 12:09 UTC

Return-Path: <mariainesrobles@googlemail.com>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D99B912001A; Wed, 7 Aug 2019 05:09:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=googlemail.com
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 tsvct-amAe7h; Wed, 7 Aug 2019 05:09:34 -0700 (PDT)
Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com [IPv6:2607:f8b0:4864:20::32e]) (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 650CE120018; Wed, 7 Aug 2019 05:09:34 -0700 (PDT)
Received: by mail-ot1-x32e.google.com with SMTP id d17so103348337oth.5; Wed, 07 Aug 2019 05:09:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5qH5wn4oQ1TQ+2rlZAmbaw7BXH/2RhouSL43c4aEnZ4=; b=m8ZKv3vecfV2PSotBRQxzzYZsA4OIqz4U/J6ZbvJ1QQts15XeUG3/cb5uHieOnxPF+ QfnHHHMs5zgQtLIDyMs5F+oUaP09ARPAJpqJjDTabcImC9oy14GGmRwU/y2fgHp3PCcn xZDOJTvkEpmYscogzE1fO4SinImf1MVmcYgDCRZydQD/uUC6eGyFGSsCKqSVRdiTFE8Z vbokEWRKNHlo27G/leo1OknF7k28med3vLJJbaZTa1OHfOznVerOn6zTo6WvTWZuAPBe LQhUF+bA/xpiiRD0uBjhsHJ3Yz8mGaYSibbZjMt2SFWwC67CdbH0kTaKfI3HAYijc910 i4tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5qH5wn4oQ1TQ+2rlZAmbaw7BXH/2RhouSL43c4aEnZ4=; b=DAuAW9dV6LTKhB/kGZzl6OVOs6s2BOER5f0As1v07fNdEvEnT2S6ZH8A9CtOJHIpuY IiSdS1fUzPvACQAX5GzXj0dXksz2GrjjZSddIHAoCAk4dNZQC31W0+VoceZl4HPp4UWf 68/RZKMG/nObL9d5fQ6vBcm52IbH+fWKCyW5JJ41zz3tWVlnUZPgirtKHQZAFvSJ67Ip xM52w+5F/mAEmaEKFsm+B3KLntlUbob20IrA4Ktgaawfg5BP71LyC9Xv0+tea4lBmqi+ uXHiptAM0s89pFr+tmK19m7RSf5/kSGRRPurFvGc5dZ2rMz7U2tV8bmlW/WqkI8cVW3D NCnQ==
X-Gm-Message-State: APjAAAUm6XU/t36Q2AbDHTfmn03cLYZiAlBEpDn2rEv57t2EmrixmZ2n Kh4+eTskrVAfmo2rYLmofMPREz9lw4FDrAzqQC8=
X-Google-Smtp-Source: APXvYqw3kf+ZXO+ViN16pUJMYGOUxyhQuuYAlMrqlVj8B5bduTnHlyZX2867hWcNap4KdUs22Ag/bysk+1YkYe38kB0=
X-Received: by 2002:a5d:8a06:: with SMTP id w6mr9209283iod.267.1565179773112; Wed, 07 Aug 2019 05:09:33 -0700 (PDT)
MIME-Version: 1.0
References: <CAMMESsw5N=YQ7Z2H-ueEMDniAwtt6Nx_AhvrQ=5M+QKV+dJQDA@mail.gmail.com>
In-Reply-To: <CAMMESsw5N=YQ7Z2H-ueEMDniAwtt6Nx_AhvrQ=5M+QKV+dJQDA@mail.gmail.com>
From: Ines Robles <mariainesrobles@googlemail.com>
Date: Wed, 07 Aug 2019 15:09:20 +0300
Message-ID: <CAP+sJUex8aSRLbuvhoXcj1EmFpLw0WBkVCiqrW99swxc5Z76-Q@mail.gmail.com>
To: Alvaro Retana <aretana.ietf@gmail.com>
Cc: draft-ietf-roll-aodv-rpl@ietf.org, roll <roll@ietf.org>, roll-chairs <roll-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000062d8a9058f85d0d0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/S0tVNsZHo46EEEPHi9TZZV2QiAs>
Subject: Re: [Roll] AD Review of draft-ietf-roll-aodv-rpl-07
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
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: <https://mailarchive.ietf.org/arch/browse/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: Wed, 07 Aug 2019 12:09:42 -0000

Thank you Alvaro for the review,

The tickets #194, #195, #196, #197, #198  were created to address the
issues [1].

Related to ticket #195 (Document Status), we are going to discuss it into
the ML.

Best regards,

Ines.

[1] https://trac.ietf.org/trac/roll/report/2


On Thu, Aug 1, 2019 at 5:54 PM Alvaro Retana <aretana.ietf@gmail.com> wrote:

> Dear authors:
>
> I just finished reading this document.  I am excited about the new
> functionality, but I have several significant issues/questions about the
> document, and a lot of comments (in-line below).
>
> (1) What is AODV-RPL?
>
> Reading the document, my impression of AODV-RPL varies between an
> enhancement to RPL for Reactive Route Discovery (*maybe* in addition to the
> usual proactive routing), to ships-in-the-night reactive-only protocol that
> uses some of the RPL concepts (but not exactly sure which ones).  The
> different MOP indicates that it is different from "base" RPL (rfc6550), but
> it is not clear what the assumptions are...and which parts are "inherited"
> from the "base" and which ones are not used.
>
> Another way to ask the same question is: What is the relationship of
> AODV-RPL to RPL?  What mechanisms are not applicable with the new MOP?  Is
> it expected that an instance of RPL will also be running in the network?
>
> Please be clear early in the document.  To quote Charlie: "AODV-RPL is a
> variation on RPL" [1].  What remains, what changes, etc..
>
>
> (2) Document Status (for the Chairs/Shepherd)
>
> I didn't find a specific discussion in the archive about the status of
> this document.  Did one take place?  At this point I am mostly curious
> given the similarities with rfc6997 (Experimental) and the fact that
> "Future Work" is discussed -- not typical in a Standards Track document.
> IOW, why is this document intended to be a Proposed Standard and not
> Experimental?
>
>
> (3) Replacing rfc6997??
>
> This document uses some of the features from rfc6997 (see some comments
> about that in-line), which is fine.  The Introduction falls just short of
> saying that this work replaces rfc6997.  Should it be considered a
> replacement?  I ask mostly in the context of rfc7733 (RPL in Home and
> Building) which mandates (MUST) the use of rfc6997.  Should rfc7733 be
> Updated?  [I'm just asking the question for it to be considered...I am not
> sure of deployments which conform to rfc7733 or rfc6997...or the impact
> this would have.]
>
>
> (4) Link checks
>
> The operation of AODV-RPL depend on link checks (§6.2.1/§6.4) to determine
> symmetry and whether it can "fulfill the requirements".  But these checks
> are not explained or defined anywhere (are they?) beyond an *example* in
> the Appendix.  I think defining the checks is a critical part of the
> specification of the mechanism...specially for a Standards Track protocol.
>
>
>
> Please take a look at the comments below.  I will wait for the major
> points to be addressed before starting the IETF Last Call.
>
> Thanks!!
>
> Alvaro.
>
> [1] https://mailarchive.ietf.org/arch/msg/roll/PoQQBOmWZ2XFRWVK13Q5Z4W9x-s
>
>
> [Line numbers from idnits.]
>
> ...
> 14     Asymmetric AODV-P2P-RPL in Low-Power and Lossy Networks (LLNs)
>
> [minor] This is not the clearest title I've ever seen.   Suggestion:
> Reactive Route Discovery using RPL (AODV-RPL)    ...or something like that.
>
> 15                      draft-ietf-roll-aodv-rpl-07
>
> 17 Abstract
>
> 19   Route discovery for symmetric and asymmetric Point-to-Point (P2P)
> 20   traffic flows is a desirable feature in Low power and Lossy Networks
> 21   (LLNs).  For that purpose, this document specifies a reactive P2P
> 22   route discovery mechanism for both hop-by-hop routing and source
> 23   routing: Ad Hoc On-demand Distance Vector Routing (AODV) based RPL
> 24   protocol.  Paired Instances are used to construct directional paths,
> 25   in case some of the links between source and target node are
> 26   asymmetric.
>
> [minor] s/(AODV) based RPL protocol/(AODV) based RPL protocol (AODV-RPL)
>
>
> ...
> 100 1.  Introduction
>
> [general comment] Avoid mentioning the "negative" of other proposals and
> focus on why this work is needed.  IOW, the justification should not be
> "because others can't do it".
>
> [nit] Some of the paragraphs throughout the document are very long and
> could be split to better convey the ideas.
>
> 102   RPL[RFC6550] (Routing Protocol for LLNs (Low-Power and Lossy
> 103   Networks)) is a IPv6 distance vector routing protocol designed to
> 104   support multiple traffic flows through a root-based Destination-
> 105   Oriented Directed Acyclic Graph (DODAG).  Typically, a router does
> 106   not have routing information for most other routers.  Consequently,
> 107   for traffic between routers within the DODAG (i.e., Point-to-Point
> 108   (P2P) traffic) data packets either have to traverse the root in non-
> 109   storing mode, or traverse a common ancestor in storing mode.  Such
> 110   P2P traffic is thereby likely to traverse longer routes and may
> 111   suffer severe congestion near the DAG root (for more information see
> 112   [RFC6997], [RFC6998]).
>
> [nit] s/RPL[RFC6550]/RPL [RFC6550]
>
> [minor] s/Routing Protocol for LLNs (Low-Power and Lossy Networks)/Routing
> Protocol for Low-Power and Lossy Networks    That's the name of the
> protocol.
>
> [nit] s/is a IPv6/is an IPv6
>
> [minor] "Such P2P traffic is thereby likely to traverse longer routes and
> may suffer severe congestion near the DAG root (for more information see
> [RFC6997], [RFC6998])."  I see that those other RFCs also make the
> statement that congestion is possible, and even longer routes...but I don't
> see more information there.  Did I miss it?  If not, then I don't see the
> value of those references at this point.
>
> 114   To discover better paths for P2P traffic flows in RPL, P2P-RPL
> 115   [RFC6997] specifies a temporary DODAG where the source acts as a
> 116   temporary root.  The source initiates DIOs encapsulating the P2P
> 117   Route Discovery option (P2P-RDO) with an address vector for both
> hop-
> 118   by-hop mode (H=1) and source routing mode (H=0).  Subsequently, each
> 119   intermediate router adds its IP address and multicasts the P2P mode
> 120   DIOs, until the message reaches the Target Node, which then sends
> the
> 121   "Discovery Reply" object.  P2P-RPL is efficient for source routing,
> 122   but much less efficient for hop-by-hop routing due to the extra
> 123   address vector overhead.  However, for symmetric links, when the P2P
> 124   mode DIO message is being multicast from the source hop-by-hop,
> 125   receiving nodes can infer a next hop towards the source.  When the
> 126   Target Node subsequently replies to the source along the established
> 127   forward route, receiving nodes determine the next hop towards the
> 128   Target Node.  For hop-by-hop routes (H=1) over symmetric links, this
> 129   would allow efficient use of routing tables for P2P-RDO messages
> 130   instead of the "Address Vector".
>
> [minor] Expand DIO on first use.
>
> [minor] The description above of P2P-RPL seems to include too much
> (unnecessary for this document) detail.  It also seems to propose
> enhancements (in the last couple of sentences).  Consider simplifying to
> something like this:
>
>    To discover better paths for P2P traffic flows in RPL, P2P-RPL
>    [RFC6997] specifies a temporary DODAG where the source acts as a
>    temporary root.  P2P-RPL is efficient for source routing,
>    but can be much less efficient for hop-by-hop routing due to the
>    extra address vector overhead.
>
>
> 132   RPL and P2P-RPL both specify the use of a single DODAG in networks
> of
> 133   symmetric links, where the two directions of a link MUST both
> satisfy
> 134   the constraints of the objective function.  This disallows the use
> of
> 135   asymmetric links which are qualified in one direction.  But,
> 136   application-specific routing requirements as defined in IETF ROLL
> 137   Working Group [RFC5548], [RFC5673], [RFC5826] and [RFC5867] may be
> 138   satisfied by routing paths using bidirectional asymmetric links.
> For
> 139   this purpose, [I-D.thubert-roll-asymlink] described bidirectional
> 140   asymmetric links for RPL [RFC6550] with Paired DODAGs, for which the
> 141   DAG root (DODAGID) is common for two Instances.  This can satisfy
> 142   application-specific routing requirements for bidirectional
> 143   asymmetric links in core RPL [RFC6550].  Using P2P-RPL twice with
> 144   Paired DODAGs, on the other hand, requires two roots: one for the
> 145   source and another for the target node due to temporary DODAG
> 146   formation.  For networks composed of bidirectional asymmetric links
> 147   (see Section 5), AODV-RPL specifies P2P route discovery, utilizing
> 148   RPL with a new MoP.  AODV-RPL makes use of two multicast messages to
> 149   discover possibly asymmetric routes.  This provides higher route
> 150   diversity and can find suitable routes that might otherwise go
> 151   undetected by RPL.  AODV-RPL eliminates the need for address vector
> 152   overhead in hop-by-hop mode.  This significantly reduces the control
> 153   packet size, which is important for Constrained LLN networks.  Both
> 154   discovered routes (upward and downward) meet the application
> specific
> 155   metrics and constraints that are defined in the Objective Function
> 156   for each Instance [RFC6552].  On the other hand, the point-to-point
> 157   nature of routes discovered by AODV-RPL can reduce interference near
> 158   the root nodes and also provide routes with fewer hops, likely
> 159   improving performance in the network.
>
> [major] "RPL and P2P-RPL both specify the use of a single DODAG in
> networks of symmetric links, where the two directions of a link MUST both
> satisfy the constraints of the objective function."  s/MUST/must   Because
> you are referring to RPL/P2P-RPL, the MUST is not Normative.
>
> [minor] s/as defined in IETF ROLL Working Group [RFC5548]/as defined in
> [RFC5548]
>
> [minor] s/application-specific routing requirements...may be satisfied by
> routing paths using bidirectional asymmetric links./application-specific
> routing requirements may also be satisfied by routing paths using
> bidirectional asymmetric links.     I found just one mention of anything
> related to asymmetry (in rfc5673)...so I think adding "also" is important.
>
> [minor] "For this purpose, [I-D.thubert-roll-asymlink] described
> bidirectional asymmetric links for RPL [RFC6550] with Paired DODAGs, for
> which the DAG root (DODAGID) is common for two Instances.  This can satisfy
> application-specific routing requirements for bidirectional asymmetric
> links in core RPL [RFC6550]."    I think that mention to this draft is
> unnecessary and may be confusing to readers: the work seems to have been
> abandoned, and if it satisfies the requirements, then why do we need
> something else?  ;-)
>
> [minor] I would also take out this sentence: "Using P2P-RPL twice..."
>
> [minor] Expand MoP on first use.  BTW, rfc6550 uses MOP (not MoP), please
> be consistent.
>
> [minor] "Both discovered routes (upward and downward) meet the application
> specific metrics and constraints that are defined in the Objective Function
> for each Instance [RFC6552]."   I didn't find any talk of application
> specific metrics in rfc6552.
>
>
> ...
> 170 2.  Terminology
>
> 172   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
> 173   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
> 174   "OPTIONAL" in this document are to be interpreted as described in
> 175   [RFC2119], [RFC8174].  This document uses the following terms:
>
> [major] Please use the rfc8174 template without modifications.
>
>
> ...
> 264 3.  Overview of AODV-RPL
>
> [minor] It would be very nice if this overview had forward references to
> where the behavior is specified.
>
> 266   With AODV-RPL, routes from OrigNode to TargNode within the LLN
> 267   network are established "on-demand".  In other words, the route
> 268   discovery mechanism in AODV-RPL is invoked reactively when OrigNode
> 269   has data for delivery to the TargNode but existing routes do not
> 270   satisfy the application's requirements.  The routes discovered by
> 271   AODV-RPL are not constrained to traverse a common ancestor.  Unlike
> 272   RPL [RFC6550] and P2P-RPL [RFC6997], AODV-RPL can enable asymmetric
> 273   communication paths in networks with bidirectional asymmetric links.
> 274   For this purpose, AODV-RPL enables discovery of two routes: namely,
> 275   one from OrigNode to TargNode, and another from TargNode to
> OrigNode.
> 276   When possible, AODV-RPL also enables symmetric route discovery along
> 277   Paired DODAGs (see Section 5).
>
> [major] I get the impression that this document is an extension to RPL, to
> be used when the existing routes don't meet specific requirements...at this
> point the reactive part would kick in.  Is that a fair characterization?
>
> The document jumps into talking about the extension, but it says nothing
> about how the base RPL is used with it...or even if it is.  Please spend a
> paragraph explaining that relationship.
>
> 279   In AODV-RPL, routes are discovered by first forming a temporary DAG
> 280   rooted at the OrigNode.  Paired DODAGs (Instances) are constructed
> 281   according to the AODV-RPL Mode of Operation (MoP) during route
> 282   formation between the OrigNode and TargNode.  The RREQ-Instance is
> 283   formed by route control messages from OrigNode to TargNode whereas
> 284   the RREP-Instance is formed by route control messages from TargNode
> 285   to OrigNode.  Intermediate routers join the Paired DODAGs based on
> 286   the rank as calculated from the DIO message.  Henceforth in this
> 287   document, the RREQ-DIO message means the AODV-RPL mode DIO message
> 288   from OrigNode to TargNode, containing the RREQ option (see
> 289   Section 4.1).  Similarly, the RREP-DIO message means the AODV-RPL
> 290   mode DIO message from TargNode to OrigNode, containing the RREP
> 291   option (see Section 4.2).  The route discovered in the RREQ-Instance
> 292   is used for transmitting data from TargNode to OrigNode, and the
> 293   route discovered in RREP-Instance is used for transmitting data from
> 294   OrigNode to TargNode.
>
> [nit] s/rank/Rank/g   To be consistent with how rfc6550 uses the term.
>
> 296 4.  AODV-RPL DIO Options
>
> 298 4.1.  AODV-RPL DIO RREQ Option
>
> 300   OrigNode sets its IPv6 address in the DODAGID field of the RREQ-DIO
> 301   message.  A RREQ-DIO message MUST carry exactly one RREQ option.
>
> [major] What should a receiver do if more than one RREQ options are
> received?
>
> 303      0                   1                   2                   3
> 304      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
> 305     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 306     |     Type      | Option Length |S|H|X| Compr | L |   MaxRank   |
> 307     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 308     |  Orig SeqNo   |                                               |
> 309     +-+-+-+-+-+-+-+-+                                               |
> 310     |                                                               |
> 311     |                                                               |
> 312     |           Address Vector (Optional, Variable Length)          |
> 313     |                                                               |
> 314     |                                                               |
> 315     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>
> 317             Figure 1: DIO RREQ option format for AODV-RPL MoP
>
> 319   OrigNode supplies the following information in the RREQ option:
>
> 321   Type
> 322      The type assigned to the RREQ option (see Section 9.2).
>
> [major] s/Type/Option Type/g   That is the name in rfc6550.
>
> [minor] Use TBDx so that it matches the IANA Considerations section.  The
> same applies to other places where TBDx can be used.
>
> ...
> 348   L
>
> 350      2-bit unsigned integer determining the duration that a node is
> 351      able to belong to the temporary DAG in RREQ-Instance, including
> 352      the OrigNode and the TargNode.  Once the time is reached, a node
> 353      MUST leave the DAG and stop sending or receiving any more DIOs
> for
> 354      the temporary DODAG.  The definition for the "L" bit is similar
> to
> 355      that found in [RFC6997], except that the values are adjusted to
> 356      enable arbitrarily long route lifetime.
>
> [major] "definition for the "L" bit is similar to that found in [RFC6997],
> except that..."   I think that this statement may be confusing to
> readers...remove it.
>
> 358      *  0x00: No time limit imposed.
> 359      *  0x01: 16 seconds
> 360      *  0x02: 64 seconds
> 361      *  0x03: 256 seconds
>
> 363      L is independent from the route lifetime, which is defined in the
> 364      DODAG configuration option.  The route entries in hop-by-hop
> 365      routing and states of source routing can still be maintained even
> 366      after the DAG expires.
>
> [??] I don't understand what the last sentence is trying to say.  It
> sounds as if the information learned through the DAG can still be used
> after the DAG expires...up until the route lifetime expires...is that it?
> Please clarify.
>
>
> ...
> 373   Orig SeqNo
> 374      Sequence Number of OrigNode, defined similarly as in AODV
> 375      [RFC3561].
>
> [major] "similarly as in AODV"  Similarly, or the same??  Note that this
> reference could require rfc3561 to be a Normative Reference.
>
> I found this text in §6.1, which defines this field.  Which one is
> correct?  Suggestion: point to §6.1.
>
>    Each node maintains a sequence number, which rolls over like a
>    lollipop counter [Perlman83]; refer to section 7.2 of [RFC6550] for
>    detailed operation.  When the OrigNode initiates a route discovery
>    process, it MUST increase its own sequence number to avoid conflicts
>    with previously established routes.  The sequence number is carried
>    in the OrigSeqNo field of the RREQ option.
>
>
> ...
> 382   A node MUST NOT join a RREQ instance if its own rank would equal to
> 383   or higher than MaxRank.  Targnode can join the RREQ instance at a
> 384   rank whose integer portion is equal to the MaxRank.  A router MUST
> 385   discard a received RREQ if the integer part of the advertised rank
> 386   equals or exceeds the MaxRank limit.  This definition of MaxRank is
> 387   the same as that found in [RFC6997].
>
> [minor] s/own rank would equal to/own rank would be equal to
>
> [nit] s/Targnode/TargNode
>
> [minor] The second sentence sounds like it contradicts the first one
> (where it says that "A node MUST NOT join..."); I think that inverting the
> order would help:
>
>    TargNode can join the RREQ instance at a rank whose integer portion is
>    equal to the MaxRank.  Other nodes MUST NOT join a RREQ instance if its
>    own rank is equal to or higher than MaxRank.
>
>
> [major] "This definition of MaxRank is the same as that found in
> [RFC6997]."  True, for the most part: the context of the definition is
> different.  Because the definition are not exactly the same, and MaxRank is
> defined in this document, please take the sentence out.  I don't think it
> adds anything significant.
>
>
> 389 4.2.  AODV-RPL DIO RREP Option
>
> 391   TargNode sets its IPv6 address in the DODAGID field of the RREP-DIO
> 392   message.  A RREP-DIO message MUST carry exactly one RREP option.
> 393   TargNode supplies the following information in the RREP option:
>
> [major] What should the receiver do if more than one RREP option is
> received?
>
>
> ...
> 441   Shift
> 442      6-bit unsigned integer.  This field is used to recover the
> 443      original InstanceID (see Section 6.3.3); 0 indicates that the
> 444      original InstanceID is used.
>
> [major] s/InstanceID/RPLInstanceID/g
>
> 446   Rsv
> 447      MUST be initialized to zero and ignored upon reception.
>
> [major] Do you expect these bits to be assigned by IANA in the future?
>
>
> ...
> 456 4.3.  AODV-RPL DIO Target Option
>
> 458   The AODV-RPL Target (ART) Option is based on the Target Option in
> 459   core RPL [RFC6550].  The Flags field is replaced by the Destination
> 460   Sequence Number of the TargNode and the Prefix Length field is
> 461   reduced to 7 bits so that the value is limited to be no greater than
> 462   127.
>
> [minor] What is the name of this option: "AODV-RPL DIO Target Option" or
> "AODV-RPL Target Option"?  Please be consistent.
>
> [??] "the Prefix Length field is reduced to 7 bits so that the value is
> limited to be no greater than 127."  Why?  Is there an advantage?
> Seriously, I'm curious.
>
> 464   A RREQ-DIO message MUST carry at least one ART Option.  A RREP-DIO
> 465   message MUST carry exactly one ART Option.
>
> [major] What should a node do if more than one ART Option is received in a
> RREP-DIO message?
>
> 467   OrigNode can include multiple TargNode addresses via multiple AODV-
> 468   RPL Target Options in the RREQ-DIO, for routes that share the same
> 469   constraints.  This reduces the cost to building only one DODAG.
> 470   Furthermore, a single Target Option can be used for different
> 471   TargNode addresses if they share the same prefix; in that case the
> 472   use of the destination sequence number is not defined in this
> 473   document.
>
> [major] To be clear, what are the "constraints"?  Where are they
> defined/signaled?  Are you talking about the contents of the RREQ Option
> (S, H, MaxRank...anything else?)?  If so, please point that out explicitly;
> "constraints" are mentioned in different places, but I couldn't find an
> explicit definition.
>
> [major] "...in that case the use of the destination sequence number is not
> defined in this document."   Then that means that this last feature is not
> supported...right?  If that's true, then please don't mention it.
>
>
> ...
> 511   Target Prefix / Address
> 512      (variable-length field) An IPv6 destination address or prefix.
> 513      The Prefix Length field contains the number of valid leading bits
> 514      in the prefix.  The bits in the Target Prefix / Address field
> 515      after the prefix length (if any) MUST be set to zero on
> 516      transmission and MUST be ignored on receipt.
>
> [major] "The bits in the Target Prefix / Address field after the prefix
> length (if any)..."   I can see how this "is ok" because the receiver knows
> of these trailing bits from the Option Length...*but*, why even allow it?
> Why would the Target Prefix / Address not simply have a length = Prefix
> Length?
>
> BTW, I know that rfc6550 has the same definition.  That doesn't make it
> right.  Every extra bit has a cost...prefixes are elided, and here extra
> bits are allowed.
>
>
> 518 5.  Symmetric and Asymmetric Routes
>
> 520   In Figure 4 and Figure 5, BR is the Border Router, O is the
> OrigNode,
> 521   R is an intermediate router, and T is the TargNode.  If the RREQ-DIO
> 522   arrives over an interface that is known to be symmetric, and the 'S'
> 523   bit is set to 1, then it remains as 1, as illustrated in Figure 4.
> 524   If an intermediate router sends out RREQ-DIO with the 'S' bit set to
> 525   1, then all the one-hop links on the route from the OrigNode O to
> 526   this router meet the requirements of route discovery, and the route
> 527   can be used symmetrically.
>
> [nit] A couple of places use "S bit", "'S' bit" is used above (and in most
> of the document)...please be consistent.   Recommendation: S bit or S-bit.
>   [BTW, please apply the same style to the other bits.]
>
>
> ...
> 552   Upon receiving a RREQ-DIO with the 'S' bit set to 1, a node
> 553   determines whether this one-hop link can be used symmetrically,
> i.e.,
> 554   both the two directions meet the requirements of data transmission.
> 555   If the RREQ-DIO arrives over an interface that is not known to be
> 556   symmetric, or is known to be asymmetric, the 'S' bit is set to 0.
> If
> 557   the 'S' bit arrives already set to be '0', it is set to be '0' on
> 558   retransmission (Figure 5).  Therefore, for asymmetric route, there
> is
> 559   at least one hop which doesn't fulfill the constraints in the two
> 560   directions.  Based on the 'S' bit received in RREQ-DIO, the TargNode
> 561   T determines whether or not the route is symmetric before
> 562   transmitting the RREP-DIO message upstream towards the OrigNode O.
>
> [nit] s/for asymmetric route/for an asymmetric route
>
> 564   The criteria used to determine whether or not each link is symmetric
> 565   is beyond the scope of the document, and may be implementation-
> 566   specific.  For instance, intermediate routers MAY use local
> 567   information (e.g., bit rate, bandwidth, number of cells used in
> 568   6tisch), a priori knowledge (e.g. link quality according to previous
> 569   communication) or use averaging techniques as appropriate to the
> 570   application.
>
> [major] s/MAY/may   This may is not Normative because there is no specific
> action (just examples).
>
>
> ...
> 602 6.1.  Route Request Generation
> ...
> 614   Each node maintains a sequence number, which rolls over like a
> 615   lollipop counter [Perlman83]; refer to section 7.2 of [RFC6550] for
> 616   detailed operation.  When the OrigNode initiates a route discovery
> 617   process, it MUST increase its own sequence number to avoid conflicts
> 618   with previously established routes.  The sequence number is carried
> 619   in the OrigSeqNo field of the RREQ option.
>
> [minor] s/Each node maintains a sequence number...detailed operation./Each
> node maintains a sequence number; the operation is specified in section 7.2
> of [RFC6550].
>
> ...and take the reference to Perlman83 out.  It is enough for the
> specification to be done once; rfc6550 already took care of it.
>
> [nit] s/OrigSeqNo/Orig SeqNo
>
>
> ...
> 632   The transmission of RREQ-DIO obeys the Trickle timer.  If the
> 633   duration specified by the "L" bit has elapsed, the OrigNode MUST
> 634   leave the DODAG and stop sending RREQ-DIOs in the related
> 635   RPLInstance.
>
> [minor] "The transmission of RREQ-DIO obeys the Trickle timer."   A
> reference would be nice.
>
>
> 637 6.2.  Receiving and Forwarding RREQ messages
>
> 639 6.2.1.  General Processing
>
> 641   Upon receiving a RREQ-DIO, a router which does not belong to the
> 642   RREQ-instance goes through the following steps:
>
> [nit] s/RREQ-instance/RREQ-Instance/g
>
> [major] What if you do belong to the instance?  I'm assuming that RREQ can
> be sent once the DODAG is built...or would what require a difference
> RPLInstance?
>
> 644   Step 1:
>
> 646      If the 'S' bit in the received RREQ-DIO is set to 1, the router
> 647      MUST check the two directions of the link by which the RREQ-DIO
> is
> 648      received.  In case that the downward (i.e. towards the TargNode)
> 649      direction of the link can't fulfill the requirements, the link
> 650      can't be used symmetrically, thus the 'S' bit of the RREQ-DIO to
> 651      be sent out MUST be set as 0.  If the 'S' bit in the received
> 652      RREQ-DIO is set to 0, the router only checks into the upward
> 653      direction (towards the OrigNode) of the link.
>
> [major] "the router MUST check the two directions of the link"  How is the
> link checked?
>
> [major] "If the 'S' bit...is set to 0..."  The action for when the S bit
> is set to 1 was defined using MUST...should this action also include
> Normative Language?
>
> 655      If the upward direction of the link can fulfill the requirements
> 656      indicated in the constraint option, and the router's rank would
> 657      not exceed the MaxRank limit, the router joins the DODAG of the
> 658      RREQ-Instance.  The router that transmitted the received RREQ-DIO
> 659      is selected as the preferred parent.  Later, other RREQ-DIO
> 660      messages might be received.  How to maintain the parent set,
> 661      select the preferred parent, and update the router's rank obeys
> 662      the core RPL and the OFs defined in ROLL WG.  In case that the
> 663      constraint or the MaxRank limit is not fulfilled, the router MUST
> 664      discard the received RREQ-DIO and MUST NOT join the DODAG.
>
> [major] What is the "constraint option"?
>
> [minor] "How to maintain the parent set, select the preferred parent, and
> update the router's rank obeys the core RPL and the OFs defined in ROLL
> WG."  If there's no change, then I think this sentence is not needed.  If
> you want to keep it, then please reference specific documents and don't
> just point to the WG (in fact, don't point to the WG because the persistent
> references are documents).
>
>
> ...
> 672   Step 3:
>
> 674      If the 'H' bit is set to 1, then the router (TargNode or
> 675      intermediate) MUST build the upward route entry accordingly.  The
> 676      route entry MUST include at least the following items: Source
> 677      Address, InstanceID, Destination Address, Next Hop, Lifetime, and
> 678      Sequence Number.  The Destination Address and the InstanceID can
> 679      be respectively learned from the DODAGID and the RPLInstanceID of
> 680      the RREQ-DIO, and the Source Address is copied from the ART
> 681      Option.  The next hop is the preferred parent.  The lifetime is
> 682      set according to DODAG configuration and can be extended when the
> 683      route is actually used.  The sequence number represents the
> 684      freshness of the route entry, and it is copied from the Orig
> SeqNo
> 685      field of the RREQ option.  A route entry with same source and
> 686      destination address, same InstanceID, but stale sequence number,
> 687      SHOULD be deleted.
>
> [major] "...MUST build the upward route entry accordingly."  I was going
> to ask what does "accordingly" mean, but the next sentence indicates what
> it has to include.  Instead of having two sentences trying to specify the
> same thing, please collapse them into one.
>
> [minor] This route is to OrigNode, correct?  Please say so.  I know that
> it has been mentioned that the RREQ-Instance is used for that -- remind the
> reader.
>
> [major] "...the Source Address is copied from the ART Option."   What is
> the "Source Address"?  I ask because I assumed that it is the address used
> by the local router to send data to the OrigNode, but the only address in
> the ART Option is the "Target Prefix".  What am I missing?
>
> [nit] Please be consistent in how names are used.  For example, the
> paragraph above uses both "Next Hop" and "next hop" to refer to the same
> thing.
>
> [minor] "The lifetime is set according to DODAG configuration and can be
> extended when the route is actually used."  I think that this is a little
> confusing, because you seem to be talking about route lifetime and not the
> L (which I interpreted as lifetime too) value in the RREQ Option, right?
> Please be specific.
>
> [nit] s/entry with same source/entry with the same source
>
> [major] "A route entry with same source and destination address, same
> InstanceID, but stale sequence number, SHOULD be deleted."  When would it
> be ok to not delete the entry?  IOW, why is that not a MUST?
>
> 689      If the 'H' bit is set to 0, an intermediate router MUST include
> 690      the address of the interface receiving the RREQ-DIO into the
> 691      address vector.
>
> [major] Step 3 (at least the first paragraph) seems to be about building a
> route entry.  What is different if the H bit is set to 0?  How is the route
> entry built?
>
> [minor] This last paragraph talks about forwarding the RREQ, so perhaps it
> fits better in the next step.
>
> 693   Step 4:
>
> 695      An intermediate router transmits a RREQ-DIO via link-local
> 696      multicast.  TargNode prepares a RREP-DIO.
>
> [minor] "TargNode prepares a RREP-DIO."  Please add a forward reference to
> §6.3.
>
> 698 6.2.2.  Additional Processing for Multiple Targets
>
> 700   If the OrigNode tries to reach multiple TargNodes in a single RREQ-
> 701   instance, one of the TargNodes can be an intermediate router to the
> 702   others, therefore it SHOULD continue sending RREQ-DIO to reach other
> 703   targets.  In this case, before rebroadcasting the RREQ-DIO, a
> 704   TargNode MUST delete the Target Option encapsulating its own
> address,
> 705   so that downstream routers with higher ranks do not try to create a
> 706   route to this TargetNode.
>
> [major] "...one of the TargNodes can be an intermediate router to the
> others, therefore it SHOULD continue sending RREQ-DIO to reach other
> targets."  When would a TargNode choose not to forward the RREQ?  IOW, why
> is that not a MUST?
>
> 708   An intermediate router could receive several RREQ-DIOs from routers
> 709   with lower ranks in the same RREQ-instance but have different lists
> 710   of Target Options.  When rebroadcasting the RREQ-DIO, the
> 711   intersection of these lists SHOULD be included.  For example,
> suppose
> 712   two RREQ-DIOs are received with the same RPLInstance and OrigNode.
> 713   Suppose further that the first RREQ has (T1, T2) as the targets, and
> 714   the second one has (T2, T4) as targets.  Then only T2 needs to be
> 715   included in the generated RREQ-DIO.  If the intersection is empty,
> it
> 716   means that all the targets have been reached, and the router SHOULD
> 717   NOT send out any RREQ-DIO.  Any RREQ-DIO message with different ART
> 718   Options coming from a router with higher rank is ignored.
>
> [major] "...the intersection of these lists SHOULD be included."  When
> would a node not include the intersection?  IOW, why is this not a MUST?
>
> [major] "If the intersection is empty...the router SHOULD NOT send out any
> RREQ-DIO."  When would it be ok to sent the RREQ out?  If there are no
> targets, then it seems like you would never want to.  IOW, why is that not
> a MUST NOT?
>
> [minor] I'm not sure about the intersection logic above...but maybe I'm
> missing something.  The example seems to imply that every RREQ should
> include all outstanding targets (?)...so that comparing the first one (T1,
> T2) with the second (T2, T4), implies that T1 has been found...is that
> correct?  If so, then it looks like T4 is still a valid target, but the
> intersection wouldn't include it.  What am I missing?
>
> [minor] Related:  The specification above only applies to the period of
> time between receiving the first RREQ and the initial rebroadcast, right?
> IOW, if a RREQ is received and rebroadcast....and then a second RREQ is
> received (with a different list of targets), then the rebroadcast should
> not include just the intersection, right?
>
> 720 6.3.  Generating Route Reply (RREP) at TargNode
>
> 722 6.3.1.  RREP-DIO for Symmetric route
>
> 724   If a RREQ-DIO arrives at TargNode with the 'S' bit set to 1, there
> is
> 725   a symmetric route along which both directions can fulfill the
> 726   requirements.  Other RREQ-DIOs might later provide asymmetric upward
> 727   routes (i.e.  S=0).  Selection between a qualified symmetric route
> 728   and an asymmetric route that might have better performance is
> 729   implementation-specific and out of scope.  If the implementation
> uses
> 730   the symmetric route, the TargNode MAY delay transmitting the
> RREP-DIO
> 731   for duration RREP_WAIT_TIME to await a better symmetric route.
>
> [major] RREP_WAIT_TIME is not defined anywhere.
>
> [major] "...a better symmetric route."  What makes a route better?
>
> 733   For a symmetric route, the RREP-DIO message is unicast to the next
> 734   hop according to the accumulated address vector (H=0) or the route
> 735   entry (H=1).  Thus the DODAG in RREP-Instance does not need to be
> 736   built.  The RPLInstanceID in the RREP-Instance is paired as defined
> 737   in Section 6.3.3.  In case the 'H' bit is set to 0, the address
> 738   vector received in the RREQ-DIO MUST be included in the RREP-DIO.
> 739   TargNode increments its current sequence number and uses the
> 740   incremented result in the Dest SeqNo in the ART option of the RREQ-
> 741   DIO.  The address of the OrigNode MUST be encapsulated in the ART
> 742   Option and included in this RREP-DIO message.
>
> 744 6.3.2.  RREP-DIO for Asymmetric Route
>
> 746   When a RREQ-DIO arrives at a TargNode with the 'S' bit set to 0, the
> 747   TargNode MUST build a DODAG in the RREP-Instance rooted at itself in
> 748   order to discover the downstream route from the OrigNode to the
> 749   TargNode.  The RREP-DIO message MUST be re-transmitted via
> link-local
> 750   multicast until the OrigNode is reached or MaxRank is exceeded.
>
> [minor] The previous section talked about delaying the RREP.  Should that
> be considered here too?
>
> 752   The settings of the fields in RREP option and ART option are the
> same
> 753   as for the symmetric route, except for the 'S' bit.
>
> 755 6.3.3.  RPLInstanceID Pairing
>
> [minor] Pairing only applied to symmetric routes, right?  Please say so.
>
> 757   Since the RPLInstanceID is assigned locally (i.e., there is no
> 758   coordination between routers in the assignment of RPLInstanceID),
> the
> 759   tuple (OrigNode, TargNode, RPLInstanceID) is needed to uniquely
> 760   identify a discovered route.  The upper layer applications may have
> 761   different requirements and they can initiate the route discoveries
> 762   simultaneously.  Thus between the same pair of OrigNode and
> TargNode,
> 763   there can be multiple AODV-RPL instances.  To avoid any mismatch,
> the
> 764   RREQ-Instance and the RREP-Instance in the same route discovery MUST
> 765   be paired somehow, e.g. using the RPLInstanceID.
>
> [minor] "The upper layer applications may have different requirements and
> they can initiate the route discoveries simultaneously."  The applications
> don't initiate route discovery...  Application requirements are mentioned
> several times in this document, but it is not clear to me how those
> requirements are reflected in the RREQ.
>
> [major] "..MUST be paired somehow, e.g. using the RPLInstanceID."  There
> is no clear Normative action here.  s/MUST/must
>
>
> ...
> 782 6.4.  Receiving and Forwarding Route Reply
>
> [-] Some of the comments above apply to this section too.
>
>
> ...
> 803      If the constraints are not fulfilled, the router MUST NOT join
> the
> 804      DODAG; the router MUST discard the RREQ-DIO, and does not execute
> 805      the remaining steps in this section.
>
> [nit] s/and does not execute/and not execute
>
>
> ...
> 813   Step 3:
>
> 815      If the 'H' bit is set to 1, then the router (OrigNode or
> 816      intermediate) MUST build a downward route entry.  The route entry
> 817      SHOULD include at least the following items: OrigNode Address,
> 818      InstanceID, TargNode Address as destination, Next Hop, Lifetime
> 819      and Sequence Number.  For a symmetric route, the next hop in the
> 820      route entry is the router from which the RREP-DIO is received.
> 821      For an asymmetric route, the next hop is the preferred parent in
> 822      the DODAG of RREQ-Instance.  The InstanceID in the route entry
> 823      MUST be the original RPLInstanceID (after subtracting the Shift
> 824      field value).  The source address is learned from the ART Option,
> 825      and the destination address is learned from the DODAGID.  The
> 826      lifetime is set according to DODAG configuration and can be
> 827      extended when the route is actually used.  The sequence number
> 828      represents the freshness of the route entry, and is copied from
> 829      the Dest SeqNo field of the ART option of the RREP-DIO.  A route
> 830      entry with same source and destination address, same InstanceID,
> 831      but stale sequence number, SHOULD be deleted.
>
> [major] The description in §6.2.1 says that the "route entry MUST
> include...".  Why is SHOULD used in this case?  When is it ok to not
> include these items?  Should the same apply to §6.2.1?
>
>
> ...
> 851 7.  Gratuitous RREP
>
> [minor] This section introduces T and O (instead of TargNode/OrigNode) to
> explain the operation.  That is not a bad thing, but I think that having
> consistent terminology is a really good thing.
>
>
> ...
> 872   In case of hop-by-hop routing, R MUST unicast the received RREQ-DIO
> 873   hop-by-hop to T.  The routers along the route SHOULD build new route
> 874   entries with the related RPLInstanceID and DODAGID in the downward
> 875   direction.  Then T MUST unicast the RREP-DIO hop-by-hop to R, and
> the
> 876   routers along the route SHOULD build new route entries in the upward
> 877   direction.  Upon receiving the unicast RREP-DIO, R sends the
> 878   gratuitous RREP-DIO to the OrigNode as defined in Section 6.3.
>
> [major] I don't understand how the "routers along the route" can do
> anything if the messages are unicast...??
>
> 880 8.  Operation of Trickle Timer
>
> 882   The trickle timer operation to control RREQ-Instance/RREP-Instance
> 883   multicast is similar to that in P2P-RPL [RFC6997].
>
> [major] "The trickle timer operation...is similar to that in P2P-RPL
> [RFC6997]."  Similar, or the same??
>
> Note that if it is the same, then rfc6997 would have to be a Normative
> Reference.
>
> 885 9.  IANA Considerations
>
> 887 9.1.  New Mode of Operation: AODV-RPL
>
> 889   IANA is required to assign a new Mode of Operation, named "AODV-RPL"
> 890   for Point-to-Point(P2P) hop-by-hop routing under the RPL registry.
> 891   The value of TBD1 is assigned from the "Mode of Operation" space
> 892   [RFC6550].
>
> [major] NEW>
>    IANA is asked to assign a new Mode of Operation, named "AODV-RPL"
>    for Point-to-Point(P2P) hop-by-hop routing from the "Mode of Operation"
>    Registry [RFC6550].
>
>
> 894              +-------------+---------------+---------------+
> 895              |    Value    |  Description  |   Reference   |
> 896              +-------------+---------------+---------------+
> 897              |   TBD1 (5)  |   AODV-RPL    | This document |
> 898              +-------------+---------------+---------------+
>
> 900                        Figure 6: Mode of Operation
>
> 902 9.2.  AODV-RPL Options: RREQ, RREP, and Target
>
> 904   Three entries are required for new AODV-RPL options "RREQ", "RREP"
> 905   and "ART" with values of TBD2 (0x0A), TBD3 (0x0B) and TBD4 (0x0C)
> 906   from the "RPL Control Message Options" space [RFC6550].
>
> [major] NEW>
>    IANA is asked to assign three new AODV-RPL options "RREQ", "RREP" and
>    "ART", as described in Figure 7 from the "RPL Control Message Options"
>    Registry [RFC6550].
>
> 908          +-------------+------------------------+---------------+
> 909          |    Value    |        Meaning         |   Reference   |
> 910          +-------------+------------------------+---------------+
> 911          | TBD2 (0x0A) |      RREQ Option       | This document |
> 912          +-------------+------------------------+---------------+
> 913          | TBD3 (0x0B) |      RREP Option       | This document |
> 914          +-------------+------------------------+---------------+
> 915          | TBD3 (0x0C) |       ART Option       | This document |
> 916          +-------------+------------------------+---------------+
>
> 918                        Figure 7: AODV-RPL Options
>
> 920 10.  Security Considerations
>
> 922   The security mechanisms defined in section 10 of [RFC6550] and
> 923   section 11 of [RFC6997] can also be applied to the control messages
> 924   defined in this specification.  The RREQ-DIO and RREP-DIO both have
> a
> 925   secure variant, which provide integrity and replay protection as
> well
> 926   as optional confidentiality and delay protection.
>
> [major] rfc6997/§11 mostly talks about the processing of the new messages
> defined there.  How does that apply to this document?
>
> [major] rfc6997 says that section "10 of [RFC6550] describe RPL's security
> framework...This security framework can also be used in P2P-RPL after
> taking into account the constraints specified in Section 11."  How does
> that apply to this document if both "section 10 of [RFC6550] and section 11
> of [RFC6997]" are mentioned above?
>
> [minor] §3 talks about the fact that an RREQ-DIO is a DIO message with the
> rREQ Option (and there's similar text for the RREP-DIO).  However, I think
> it's confusing to the reader to mention that there are secure variants.  I
> think that expanding the description (at the end of §3) of what exactly the
> *-DIO messages are (and that the definition includes the secure variants)
> would go a long way.
>
> 928   AODV-RPL can operate in the three security modes defined in
> 929   [RFC6550].  AODV-RPL messages SHOULD use a security mode at least as
> 930   strong as the security mode used in RPL.
>
> [major] "AODV-RPL messages SHOULD use a security mode at least as strong
> as the security mode used in RPL."  What does that mean?  As I asked
> before, what is the relationship in the network between RPL and AODV-RPL.
> I have been assuming that the Options are simply included as an "add-on" to
> the base RPL already running, but this statement seems to imply that they
> are completely independent if they can have different security modes.   ??
>
> 932   o  Unsecured.  In this mode, RREQ-DIO and RREP-DIO are used without
> 933      any security fields as defined in section 6.1 of [RFC6550].  The
> 934      control messages can be protected by other security mechanisms,
> 935      e.g. link-layer security.  This mode SHOULD NOT be used when RPL
> 936      is using Preinstalled mode or Authenticated mode (see below).
>
> [major] There is a Normative contradiction: (above) "This mode SHOULD NOT
> be used when RPL is using Preinstalled mode or Authenticated mode (see
> below)." ...and... (below) "Unsecured messages MUST be dropped."  It seems
> to me that maybe s/SHOULD NOT/MUST NOT
>
> [major] Related:  There's no indication on what should be done with
> unsecured messages in Authenticated mode.  I'm assuming the same drop
> action.
>
> 938   o  Preinstalled.  In this mode, AODV-RPL uses secure RREQ-DIO and
> 939      RREP-DIO messages, and a node wishing to join a secured network
> 940      will have been pre-configured with a shared key.  A node can use
> 941      that key to join the AODV-RPL DODAG as a host or a router.
> 942      Unsecured messages MUST be dropped.  This mode SHOULD NOT be used
> 943      when RPL is using Authenticated mode.
>
> [major] When is it ok to use this mode with Authenticated mode?  IOW, why
> is that not a MUST NOT?
>
> ...
> 961 11.  Future Work
>
> [minor] This section sounds appropriate for an Experimental document and
> not one in the Standards Track.
>
> [major] I would expect some of the items below to be specified in a
> Standards Track document.  For instance, "the initial state of a link"
> seems pretty basic. Put another way, what should be the settings (for the
> items mentioned here)?
>
> 963   There has been some discussion about how to determine the initial
> 964   state of a link after an AODV-RPL-based network has begun operation.
> 965   The current draft operates as if the links are symmetric until
> 966   additional metric information is collected.  The means for making
> 967   link metric information is considered out of scope for AODV-RPL.  In
> 968   the future, RREQ and RREP messages could be equipped with new fields
> 969   for use in verifying link metrics.  In particular, it is possible to
> 970   identify unidirectional links; an RREQ received across a
> 971   unidirectional link has to be dropped, since the destination node
> 972   cannot make use of the received DODAG to route packets back to the
> 973   source node that originated the route discovery operation.  This is
> 974   roughly the same as considering a unidirectional link to present an
> 975   infinite cost metric that automatically disqualifies it for use in
> 976   the reverse direction.
>
> [major] "The current draft operates as if the links are symmetric until
> additional metric information is collected."  §6 mandates a check to
> determine the state symmetry.  How is that (unspecified) check related to
> this text?  It seems to be that it is the same thing; is it?
>
> 978 12.  Contributors
>
> [minor] In general Contributors are listed list before the Author's
> Address at the bottom [rfc7322].
>
>
> ...
> 1060 Appendix A.  Example: ETX/RSSI Values to select S bit
>
> [minor] Please expand ETX/RSSI on first mention (§5).
>
> 1062   We have tested the combination of "RSSI(downstream)" and "ETX
> 1063   (upstream)" to determine whether the link is symmetric or
> asymmetric
> 1064   at the intermediate nodes.  The example of how the ETX and RSSI
> 1065   values are used in conjuction is explained below:
>
> [style nit] Don't write in the first person ("We have...").
>
> [minor] It would be really nice to provide a reference for these tests.
>
> [minor] Add references for ETX/RSSI.
>
> [nit] s/conjuction/conjunction
>
>
> ...
> 1083   We tested the operations in this specification by making the
> 1084   following experiment, using the above parameters.  In our
> experiment,
> 1085   a communication link is considered as symmetric if the ETX value of
> 1086   NodeA->NodeB and NodeB->NodeA (See Figure.8) are, say, within 1:3
> 1087   ratio.  This ratio should be taken as a notional metric for
> deciding
> 1088   link symmetric/asymmetric nature, and precise definition of the
> ratio
> 1089   is beyond the scope of the draft.  In general, NodeA can only know
> 1090   the ETX value in the direction of NodeA -> NodeB but it has no
> direct
> 1091   way of knowing the value of ETX from NodeB->NodeA.  Using physical
> 1092   testbed experiments and realistic wireless channel propagation
> 1093   models, one can determine a relationship between RSSI and ETX
> 1094   representable as an expression or a mapping table.  Such a
> 1095   relationship in turn can be used to estimate ETX value at nodeA for
> 1096   link NodeB--->NodeA from the received RSSI from NodeB.  Whenever
> 1097   nodeA determines that the link towards the nodeB is bi-directional
> 1098   asymmetric then the "S" bit is set to "S=0".  Later on, the link
> from
> 1099   NodeA to Destination is asymmetric with "S" bit remains to "0".
>
> [nit] s/Figure.8/Figure 8
>
> [nit] s/within 1:3 ratio/within 1:3 a ratio
>
> [nit] s/, and precise definition of the ratio is beyond the scope of the
> draft./.    Not needed, this is just an example.
>
> 1101 Appendix B.  Changelog
>
> [nit] Add a note to the RFC Editor to remove this section before
> publication.
>
>
>