ietf
[Top] [All Lists]

Re: Last Call: <draft-cardenas-dff-09.txt> (Depth-First Forwarding in Unreliable Networks (DFF)) to Experimental RFC

2013-02-12 15:59:24
AB,

thank you for the review. See my answer below:

On Sun, Feb 10, 2013 at 3:08 AM, Abdussalam Baryun
<abdussalambaryun(_at_)gmail(_dot_)com> wrote:

Reply to your request dated 07/02/2013
Also following AD advice.
Draft Reviewed By: Abdussalam Baryun (AB)   Dated: 10/02/2013

Reviewer Comment #AB1: Related to Aim and Terminology.
++++++++++++++++++++++++++++++++++++

Overall I support the work, but subject to amendments.

The Abstract is interesting but seem general

Do you have any specific suggestions what you would like to add/change
in the abstract?



   This document specifies the "Depth-First Forwarding" (DFF) protocol
   for IPv6 networks,

AB> do you mean all IPv6 networks, if some please mention *some*

I don't think this is relevant to add in the abstract. As stated in
section 3 of the draft, it can be used for all IPv6 networks, but for
some the protocol is not very beneficial (and examples are given for
such situations).


   a data forwarding mechanism that can increase
   reliability of data delivery in networks with dynamic topology and/or
   lossy links.

AB> IPv6 considers dynamic topology, does the paragraph mean that some
networks are static topology.

I am not quite sure what you mean by IPv6 "considers topology". In a
static topology (i.e. with no or very few changes of links) and with
low packet loss rate, the DFF protocol would have little (or no)
benefit, because most likely the packets would be sent from the source
to the destination according to the information provided by the
routing protocol, and no packets would be lost.



Suggest to clarify the dynamic
frequency.

I am not sure what you would like to see clarified. Can you be more specific?


Also not clear what is missing with IPv6 protocol in such
nets that needs DFF.

If you mean data forwarding, I think the draft is pretty clear about
which cases it is beneficial in. The motivation for DFF is explained
in section 1.1.


 The protocol operates entirely on the forwarding plane,
   but may interact with the routing plane.

AB> amend> entirely on the forwarding plane,
           to; entirely within the forwarding plane,

I am not a native English speaker, but "to operate on" seems a valid
usage of the word. But maybe a native speaker could suggest which is
the right usage.



   The routing plane may be informed of
   failures to deliver a packet or loops.

AB> Amend> routing plane may be informed
          to;   routing plane protocols may be informed

I think the current sentence is sufficient; I don't see the benefit of
adding the word "protocols".



Terminology section>

AB> you need to define that all routers have the DFF protocol, even
though it is known by heart that any forwarder needs to run DFF but
you MUST mention that at least to the reader,

I think this is actually a good point. I was wondering whether to
enforce all routers in a routing domain to run DFF. That does not seem
like a reasonable approach. I found only one case that could be a
problem when using both DFF and non-DFF routers in the network that
results in a loop, but I think I found an easy fix. Here is the
problem illustrated using an example:

...--- A ----- B ---- C --- ...

Assume routers A and C use DFF, but not B. When B receives a packet
from A, it would ignore the DFF header and skip over it, and then
forward the packet to C (assuming C is the next hop in its RIB). Now,
it is possible that C returns  the packet (RET==1) to B, e.g. because
it does not have any other neighbor. B receives the returned packet
and would resend the packet to C (because it does not care about the
DFF header), and thus RET would still be 1. C, having tried already
all neighbors would return the packet to B (and so on, loop between B
and C until hop-limit == 0).

I see the following options:
1) Change the options header type from something starting with 001
    (i.e. "skip over this option and continue processing the header.") to
    011 ("discard the packet.") in IPv6 to discard the packet if the
    header is unknown. This would avoid the problem, but I don't think
    that's possible for 6lowpan mesh-under.
2) Mandate that all routers in the routing domain "MUST use DFF" for
    forwarding packets.
3) Add a rule that if a packet is returned (RET==1) from P_prev_hop
    (i.e. the original previous hop when first received a packet), it is
    discarded, e.g. if router C receives a packet from B with RET==1 and B
    is the P_prev_hop.

Option 1) would be possible, but not for 6lowpans, only for IPv6
route-over. Option 2) is probably not very good. Option 3) would fix
the loop issue, and thus allows non-DFF and DFF routers in the same
network. I will provide some updated text in the next revision of the
draft.




AB> you missed to define the Router, which is mentioned many times but
I don't know which one. I think it is a must because you refer to two
planes forwarding and routing planes. Please define the Forwarder as
well. I don't find any Forwarder action in the draft, why not while
you specify there is a forwarding plane!

I am undecided on defining the term "router". It is a well-known term
in IETF; but then, maybe one could define it like in RFC6130 ("Router
- A router running this protocol"). Not sure this conveys a lot of
information, though. So unless others also suggest adding it, I will
not change the terminology section.
Since I don't use the term "forwarder" (which is usually part of the
functions of a router), I don't think I should define that in the
terminology.



AB> suggest that you explaine forwarding and routing in separate and
show where they join relating to your protocol.

I think the concept of forwarding and routing plane is fairly well
understood in the IETF, so I don't think I should re-explain that in
the draft.

Best regards
Ulrich