Hi Jari,

I think we are converging here as well.  If there are no other comments, we 
will update the draft based on your review.  See below:

On Sep 2, 2011, at 2:40 PM, Jari Arkko wrote:

> Jonathan,
> 
> Please see below. I think we are converging. The main remaining discussion 
> item below is the description of what the border router does.
> 
>>> > Here are my comments in more detail:
>>> >
>>> >> Datagrams being forwarded within a RPL domain MUST include a RPL
>>> >> Option.  For datagrams sourced within a RPL domain, the RPL Option
>>> >> MAHui,Y be included in the datagram itself.
>>> >
>>> > I'm not sure I understand the difference or its motivation. Do you really 
>>> > mean that a packet might not have the option until it hits the first 
>>> > router? Or are you just talking about something that happens internally 
>>> > on a host, but on the wire all packets would still have the option? Also, 
>>> > since the tunnel (or something else) is used to include the option for 
>>> > datagrams sourced outside the RPL domain, wouldn't it be easier to just 
>>> > say this:
>>> >
>>> > "Datagrams sent between nodes within an RPL domain MUST include an RPL 
>>> > Option."
>>> 
>>> Agree.
>>> 
> 
> OK

I spoke too quickly on the comment above.  In fact, the RPL Option is not 
required when a RPL Source Route Header exists.  With SRH, there is no 
potential for loops, so the RPL Option is not required.  How about the 
following text?

"Datagrams sent between nodes within a RPL domain MUST include a RPL Option or 
RPL Source Route Header.  Datagrams MAY include both a RPL Option and a RPL 
Source Route Header."

>>> >>  For datagrams sourced
>>> >>   outside a RPL domain, IPv6-in-IPv6 tunneling, as specified in
>>> >>   [RFC2473 <http://tools.ietf.org/html/rfc2473>] SHOULD be used to 
>>> >> include a RPL Option.
>>> >
>>> > This text should be aligned with whatever conclusion we will have for the 
>>> > issue that I raised with the other document.
>>> 
>>> Agree.  See my response to your other review.
>>> 
> 
> OK
> 
>>> 
>>> >> To help avoid IP-layer fragmentation, the RPL Option has a maximum
>>> >> size of RPL_OPTION_MAX_SIZE octets and links within a RPL domain
>>> >> SHOULD have a MTU of at least 1280 + 44 (outer IP header, Hop-by-Hop
>>> >> Option header, Option header) + RPL_OPTION_MAX_SIZE + (additional
>>> >> extension headers or options needed within RPL domain).
>>> >>
>>> >
>>> > There's a same MTU issue here as in the other document.
>>> 
>>> Agree.  See my response to your other review.
>>> 
> 
> I have a text suggestion on the other thread now.,

We will add the suggested text in the next revision.

>>> >> The action taken by using the RPL Option and the potential set of
>>> >> sub-TLVs carried within the RPL Option MUST be specified by the RFC
>>> >> of the protocol that use that option.  No TLVs are defined in this
>>> >> document.
>>> >>
>>> >
>>> > I think you should define the behavior when a node encounters a sub-TLV 
>>> > that it does not recognize. E.g., ignore and move on to the next sub-TLV. 
>>> > Or do you want a stricter policy? In any case, for future extensions it 
>>> > will be necessary to know how they are treated by legacy RPL nodes.
>>> 
>>> Yes, we need to define the behavior.  I'm comfortable with specifying an 
>>> skip-over-and-continue policy for unknown sub-TLVs.
>>> 
> 
> OK
> 
>>> >> In very specific cases, IPv6-in-IPv6 tunneling may be undesirable due
>>> >> to the added cost and complexity required to process and carry a
>>> >> datagram with two IPv6 headers.  [I-D.hui-6man-rpl-headers 
>>> >> <http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03#ref-I-D.hui-6man-rpl-headers>]
>>> >>  describes
>>> >> how to avoid using IPv6-in-IPv6 tunneling in such specific cases and
>>> >> the risks involved.
>>> >>
>>> >
>>> > Again, the same comments as in the other draft. Please delete this 
>>> > paragraph.
>>> 
>>> Agree.
>>> 
> 
> OK
> 
> 
>>> 
>>> >> For datagrams exiting the RPL domain, RPL Border Routers MUST remove
>>> >> the RPL Option from the datagram.  If the RPL Option was included
>>> >> using tunneled mode and the RPL Border Router serves as the tunnel
>>> >> end-point, removing the outer IPv6 header serves to remove the RPL
>>> >> Option as well.  Otherwise, the RPL Border Router assumes that the
>>> >> RPL Option was included using transport mode and MUST remove the RPL
>>> >> Option from the IPv6 Hop-by-Hop Option header.
>>> >>
>>> >
>>> > The part about removing the RPL option even in a non-tunneled case 
>>> > relates to the issue of supporting that particular mode of operation.
>>> >
>>> > But in addition, I wonder if you should write the above text not in terms 
>>> > of packet modification operations but rather in terms of forwarding 
>>> > decision outcomes. Like this, for instance:
>>> >
>>> > "For datagrams destined to the RPL Border Router the router processes the 
>>> > packet in the usual way. For instance, if the RPL Option was included 
>>> > using tunneled mode and the RPL Border Router serves as the tunnel 
>>> > end-point, the router removes the outer IPv6 header, at the same removing 
>>> > the RPL Option as well. Datagrams destined elsewhere within the same RPL 
>>> > domain are forwarded to the right interface. Datagrams destined outside 
>>> > the RPL domain are dropped."
>>> 
>>> The intent was to allow operation where a device within the RPL domain 
>>> could source a packet destined outside the RPL domain and not use 
>>> tunneling.  In this case, we would like to simply remove the option at the 
>>> border router rather than drop the packet.  Do you see cases where removing 
>>> the option is unacceptable?
>>> 
> 
> I don't know.
> 
> But maybe it doesn't matter. If we don't have other alternative 
> encapsulations than tunneling, the point is moot. And I'm not sure we do. The 
> two drafts really only describe the tunneling case. Even if you source a 
> packet from an RPL domain and want to send it to an outside destination, 
> you'll still have to use both the routing header and the option, no?

I agree.  As mentioned above, if the packet already includes a RPL routing 
header, it does not also need to include the RPL option.

>>> >> 6. Usage of the RPL Option
>>> >>
>>> >>   The RPL Option is only for use within a RPL domain.  RPL routers MUST
>>> >>   process and include the RPL Option when forwarding datagrams to other
>>> >>   nodes within the RPL domain.  Routers on the edge of a RPL domain
>>> >>   MUST remove the RPL Option when forwarding datagrams to nodes outside
>>> >>   the RPL domain.
>>> >
>>> > What is it that this section says that is not already covered by sections 
>>> > 2 and 5:
>>> >
>>> > Sect 2: Datagrams being forwarded within a RPL domain MUST include a RPL 
>>> > Option.
>>> >
>>> > Sect 5: ... serves as the tunnel end-point, removing the outer IPv6 
>>> > header serves to remove the RPL Option as well.  Otherwise, the RPL 
>>> > Border Router assumes that the RPL Option was included using transport 
>>> > mode and MUST remove the RPL Option from the IPv6 Hop-by-Hop Option 
>>> > header.
>>> 
>>> Agree.  Will remove the redundant text.
>>> 
> 
> OK
> 
>>> 
>>> >> This option may be used to mount several potential attacks since
>>> >> routers may be flooded by bogus datagram containing the RPL option.
>>> >> It is thus RECOMMENDED for routers to implement a rate limiter for
>>> >>   datagrams using the RPL Option.
>>> >
>>> > Please open this up a bit. What specific danger does flooding by bogus 
>>> > datagrams and RPL options cause? What would be the default settings for 
>>> > the rate limiter?
>>> 
>>> The option contains information that can affect the operation of RPL.  For 
>>> example, an inconsistent Rank value can cause a RPL router to reset its 
>>> trickle timer.
>>> 
>>> After some careful thought, I'm not sure specifying a default setting for a 
>>> rate limiter is the best approach.  Determining what is acceptable vs. 
>>> unacceptable can vary greatly between different deployments and 
>>> environments.  But rather than rate limiting, how about the following:
>>> 
>>>  This option may be used to mount several potential attacks since
>>>  routers may be flooded by bogus datagrams containing the RPL
>>>  option.  In particular, an inconsistent Rank value can cause a RPL
>>>  router to reset its DIO Trickle timer.  Thus, it is RECOMMENDED
>>>  that a RPL router monitor triggers caused by receiving a RPL
>>>  option and log conditions when the average rate is higher than
>>>  expected.
>>> 
> 
> I like your description of the problem. But given the possibility of some DIO 
> timer issues, wouldn't it be prudent to actually have some kind of rate 
> limiting? Maybe not rate limiting of packets with this option, but rate 
> limiting of packets  causing a trigger to happen?

How about the following text?

"In order to avoid any unacceptable impact on network operations, an 
implementation MAY allow a limit to be placed on the number of triggers caused 
by receiving a RPL  option, and MAY allow a limit to be placed on the rate of 
messages sent by a specific neighbor.  It MAY also allow logging an error or 
sending a notification when a rate threshold is reached."

>>> 
>>> >>   Opt Data Len:  8-bit field indicating the length of the option, in
>>> >>         octets, excluding the Option Type and Opt Data Len fields.
>>> >>
>>> >>   Down 'O':  1-bit flag as defined in Section 11 of
>>> >>         [I-D.ietf-roll-rpl 
>>> >> <http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03#ref-I-D.ietf-roll-rpl>].
>>> >>
>>> >>   Rank-Error 'R':  1-bit flag as defined in Section 11 of
>>> >>         [I-D.ietf-roll-rpl 
>>> >> <http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03#ref-I-D.ietf-roll-rpl>].
>>> >>
>>> >>   Forwarding-Error 'F':  1-bit flag as defined in Section 11 of
>>> >>         [I-D.ietf-roll-rpl 
>>> >> <http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03#ref-I-D.ietf-roll-rpl>].
>>> >>
>>> >>   RPLInstanceID:  8-bit field as defined in Section 11 of
>>> >>         [I-D.ietf-roll-rpl 
>>> >> <http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03#ref-I-D.ietf-roll-rpl>].
>>> >>
>>> >>   SenderRank:  16-bit field as defined in Section 11 of
>>> >>         [I-D.ietf-roll-rpl 
>>> >> <http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03#ref-I-D.ietf-roll-rpl>].
>>> >>
>>> >>   Values within the RPL Option are expected to change en-route.
>>> >
>>> > This specification needs to describe what the behavior of a router is 
>>> > with the content of the option. I think this is easy, you should just add 
>>> > to the end: "The processing shall follow the rules described in Section 
>>> > 11.2 of [roll-rpl].
>>> 
>>> Agree.
>>> 
>>> > As an aside, the entire Section 11 is marked in roll-rpl as 
>>> > non-normative. I don't think that's actually right as far as 11.2 goes, 
>>> > because it contains tons of MUSTs and SHOULDs. Perhaps you want to fix 
>>> > that in AUTH48...
>>> 
>>> Right.
>>> 
> OK

Thanks.

--
Jonathan Hui

--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to