On 9/27/13 8:53 AM, "Alvaro Retana (aretana)" 
<aret...@cisco.com<mailto:aret...@cisco.com>> wrote:

We want to hear from people who have read and understood the draft (besides the 
authors!) about this topic.  Please provide some explanation as to why you 
support or not the adoption of the draft — avoid "+1".

<WG Chair Hat Off>

Hi!

I reviewed the draft and put some comments below.  In general, I think the 
draft is well written and surprisingly (given the potential complexity of the 
topic) relatively easy to follow..but not in one sitting!

I do need the authors to clarify one thing before I "cast my vote" about 
adoption: it's Intended Status.  The draft has an intended status of 
Informational.  However, the Introduction reads:  "This document defines the 
MRT Lowpoint algorithm to be used as a standard in the default MRT profile for 
MRT-FRR."  Which one is it?

IMHO, there's a significant difference in saying "this is an algorithm than can 
be used" (informational) vs "this is the algorithm that MUST be used" 
(standard).  For the record, I have no issues with adopting this draft with an 
intended status of Informational.

Thanks!

Alvaro.


Major Issues:

  1.  The draft has an intended status of Informational.  However, the 
Introduction reads:  "This document defines the MRT Lowpoint algorithm to be 
used as a standard in the default MRT profile for MRT-FRR."  I would like to 
see a clarification on what the intended status is.
  2.  I found it interesting that, even though the document is defining an 
algorithm that when implemented will need to have consistency across nodes, 
there was no reference to RFC2119 — but some of the words were capitalized 
anyway. Even then, only 4 "MUST" and 1 "SHOULD" appeared.  I realize that the 
count of MUST/SHOULD is no indication of anything, but it doesn't feel right 
for a 40+ page document.  I would appreciate if the authors would not just add 
the 2119 reference (nit), but if they would also comb the text for parts where 
a little more normative direction might help (which doesn't necessarily 
translate into MUSTs).  For example (all the text is from Section 4 (Algorithm 
Sections)):
     *    "The different parts of this algorithm are described below.  These 
work on a network graph after, for instance, its interfaces are ordered as per 
Figure 14."  It sounds as if Figure 14 is optional or maybe ordering the 
interfaces is not mandatory..   Later it is clarified: "To ensure consistency 
in computation, all routers MUST order interfaces identically. . . The required 
ordering . . . Is given in Figure 14."  But the first read sounds not normative 
enough to me.
     *   Figure 14 is not deterministic.  The text says that the order doesn't 
matter in some cases, but then offers an example of a potential tie-breaker.
     *   Root Selection.  No algorithm is provided. There's a reference to 
I-D.atlas-ospf-mrt, where a suggestion is made ("..the router with the highest 
GADAG Root Selection Priority is picked to be the GADAG Root").  IMHO, the 
algorithm should be specified in this draft, where the requirement to carry the 
Priority is defined so that the extensions draft(s) can show how to implement 
it in OSPF (or any other protocol)..not the other way around.
     *   "Initially, all interfaces must be initialized to UNDIRECTED."   
Should that be "MUST"?
     *   "It is possible that some links and nodes will be marked as 
unusable.."  Same comment as the one above for the root selection:  this draft 
should define the requirements ("Due to operational or other issues, the 
capability to xxx SHOULD....") so that other docs (like I-D.atlas-ospf-mrt) can 
then implement the extensions..  The text right now says: "because OSPF can 
mark links as unusable then we'll do this.."
     *   "There are two methods to find ears; both are required."   REQUIRED?
  3.  Algorithm Alternatives and Evaluation.  There are a couple of 
alternatives described in the appendices, but there is no evaluation as to why 
the Lowpoint Algorithm is better.  In fact, the text seems to read as if the 
appendices describe options to the main algorithm (?) -- begging the question, 
are there instances where these options would/could be used?


Minor Issues:

  1.  Some important terms are not properly defined, or at least not defined in 
Section 2.
     *   "cut-edge"  The term is not defined in Section 2.  Later in the 
document it is described as "The algorithm identifies cut-edges simply as links 
where both ends of the link are cut-vertices.", which is the definition for 
cut-link.  It looks like cut-edges is used more through out.
     *   "MRT Island"  I know it is defined in the architecture draft.  It 
would be nice to carry the definition over to Section 2.
     *   "UNDIRECTED/OUTGOING/INCOMING"  These are used in the algorithm in 
various points, but are not really defined as to
  2.  I think that the algorithm in Figure 6 is not right — of course, I may be 
misunderstanding it.  When talking about the endpoints of the ear (X and Y) it 
says "if Y is root"..but a couple of paragraphs above the text reads: "Once a 
partial ADAG is already present, we can always add ears to it: just select a 
non-ready neighbor N of a ready node Q, such that Q is not the root.."  It then 
sounds like the starting point can't be the root..
  3.  The explanation of the motivation of the low-point values (after Figure 
9) needs either better examples or a better explanation — or maybe I got lost.  
You first start explaining about when 'L(c) >= D(x)', but the example mentions 
the 'L(x) < D(x)' case.  An example for the second reason would be nice.
  4.  Algorithm Evaluation.  While it is interesting to see MRT compared to 
rLFA, it would be much more interesting to see it compared to the options in 
the appendices or to ARC.  I would move the comparison to rLFA to an appendix.

Nits:

  1.  Section 2.  "standard pseudo-node representation"  Reference?
  2.  Section 2; in the definition of MRT-Red and MRT-Blue:  
s/described/describe
  3.  Section 2; ADAG definition: "whith"  ??
  4.  "strictly greater/lower"  These  terms are used in a couple of places, 
but the << or >> notation is used most of the time.  It would be nice to be 
consistent to avoid confusion.
  5.  Section 3.2: "If in the partial order where an ear's two ends are X and 
Y, X << Y, then there must already be a directed path from X to Y already in 
the ADAG."   Too many "already".
  6.  It would be nice to include "partial ADAG" in the definitions section.  
Yes, it is defined elsewhere, but a central place is nice in case you forget. 
;-)
  7.  I know sometimes it's hard, but please try to format the text so that the 
figures are not split between pages.
  8.  Section 3.4, after Figure 10. "This observation means that if we want to 
find a pair of MRTs rooted at R, then we need to build up a pair of RTs in 
block 3 with K as a root.  Similarly, we need to find another one in block 2 
with C as a root, and finally, we need the last one in block 1 with R as a 
root."  When talking about blocks 1 and 2, you really mean a pair to RTs (just 
like in block 3), not just "one", right?
  9.  Section 3.5: "The method for local-root computation is used in the MRT 
Lowpoint algorithm for computing a GADAG using Low-Point inheritance and the 
essence of it is given in Figure 12."  s/is used/used  and s/inheritance 
and/inheritance, and   To improve readability.
  10. There are a couple of out of date references.
_______________________________________________
rtgwg mailing list
rtgwg@ietf.org
https://www.ietf.org/mailman/listinfo/rtgwg

Reply via email to