Subject: Benjamin Kaduk's No Objection on draft-ietf-rtgwg-multihomed-prefix-lfa-08: (with COMMENT)

From: Benjamin Kaduk <[email-masked]>
Date: Mon, 22 Oct 2018 11:24:54 -0700

Benjamin Kaduk has entered the following ballot position for
draft-ietf-rtgwg-multihomed-prefix-lfa-08: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-rtgwg-multihomed-prefix-lfa/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

I was forced to make lots of inferences while reading this document, so
it's pretty likely that some of my comments will not make sense because I
misunderstood the technology.  My apologies in advance, and please help me
to become un-confused.  I think part of this is because the document relies
very heavily on prior knowledge, and could be avoided by sprinkling a few
more words here and there, such as "downstream-paths-only (for micro-loop
avoidance)" or "alternate neighbor N of S".  I've tried to note some more
cases in the section-by-section comments.

The Abstract and Introduction sound like they should be attached to an
Informational document; why is this going for PS?

Section 1.1

   SPF     -  Shortest Path First PDU

Is the "PDU" really entirely silent in the acronym?

Section 2

It might be nice to super-briefly reframe the situation, maybe:

The scenario for LFA protection for MHPs involves protecting a node N in
the path from source S to MHP prefix P, providing an alternate path subject
to constraints on the distance metric, measured as the sum of the cost of
the links traversed by the path.

Perhaps also expand the inequality headers slightly, as "Link-Protection
for PO_i to P is possible via N if:"

      Cost(X,P)    - Cost of reaching the prefix P from prefix
                     originating node X.

Isn't it important to note that the Cost differs from a D_opt in that the
Cost is only defined for what we essentially model here as a link and not a
multi-link path?

Section 3

Are these procedures supposed to terminate when the first LFA is found, or
produce multiple LFAs as output?  (Perhaps this is just an editorial nit,
but "for each alternate neighbor N" and "a valid LFA" would then be a
singular/plural mismatch", and perhaps the "select N as" steps in the
various procedures as well.

The phrase "If alternate neighbor N is also prefix-originator of P"
confused me a fair amount -- the "also" makes me think that what N is a
neighbor of should be the "primary" prefix-originator of P, i.e., PO_best,
but text elsewhere in the document implies that N is a neighbor of *S*, to
be used as the next-hop for forwarding to P.  I guess the intended sense of
the "also" could be more like "if, in addition to being a neighbor, N is
also a prefix-originator of P", but as written it seems ambiguous to me.

   However, if N is not a prefix-originator of P, the computing router
   SHOULD evaluate one of the corresponding LFA inequalities, as

Why is this a SHOULD?

Section 3.1

       In this scenario, E and F both are pre-failure optimal points of
   attachment and share the same primary next-hop.  Hence, an
   implementation MAY compare the kind of protection A provides to F
   (link-and-node protection) with the kind of protection C provides to
   E (link protection) and inherit the better alternative to prefix P
   and here it is A.

I find that this chunk makes more sense if I read it as "kind of protection
A provides to E" (not F).  Am I just confused?

                                                                  In
   this case, prefix P MUST inherit corresponding LFAs of each primary
   next-hop calculated for the router advertising the same respectively.

Is this MUST a new requirement imposed by this specification or a
restatement of something from (e.g.) RFC 5286?

   In summary, if there are multiple pre-failure points of attachment
   for a MHP and primary next-hop of a MHP is same as that of the
   primary next-hop of the router that was pre-failure optimal point of
   attachment, an implementation MAY provide a better protection to MHP
   without incurring any additional computation cost.

I had a hard time understanding why this is the case, most likely because I
don't have a clear picture about what the reference point is for
computational cost (that this is not "additional" to).

Section 4.2.1

This procedure is not super-well-defined if a cost type other than 1 or 2
is encountered.

   5. If route type (type 5/type 7)
           5a. If route type is same, check route p-bit,
                  forwarding address field for routes from both
                  ASBRs match. [...]

nit: "check if the route p-bit and the forwarding address field for"

Section 4.2.1.2

   If there are multiple ASBRs not pruned via rules defined in
   Section 4.2.1.1, [...]

nit: I wouldn't exactly say that the rules are *defined* in 4.2.1.1, rather
that they are "described in" or "referred to by" it.

Section 4.2.2.1

Similarly to a previous comment, if we started out with "A neighbor N of S
is a valid LFA to P under the named conditions when the corresponding
inequality holds:", that would seem to help readability a lot.

Section 5.2

   In Multi Topology (MT) IGP deployments, for each MT ID, a separate
   shortest path tree (SPT) is built with topology specific adjacencies,
   the LFA principles laid out in [RFC5286] are actually applicable for
   MT IS-IS [RFC5120] LFA SPF. [...]

nit: I think this is formally a comma splice as written, and would be
better by adding "so" after the last comma, and maybe expanding to "so the
LFA principles laid out in [RFC5286] are actually applicable on a per-MT-ID
basis for MT IS-IS [RFC5120] LFA SPF."

Section 9

I don't see any new security considerations to mention here, but would
suggest a rewording of the current text for readability:

   The existing OSPF security considerations continue to apply, as do the
   recommended manual key management mechanisms specified in [RFC7474].  The
   existing security considerations for IS-IS also continue to apply, as
   specified in [RFC5304] and [RFC5310] and extended by [RFC7645] for KARP.
   This document does not change any of the discussed protocol specifications
   [RFC1195] [RFC5120] [RFC2328] [RFC5838], and the security considerations of
   the LFA base specification [RFC5286] therefore continue to apply.