[Pce] Benjamin Kaduk's Discuss on draft-ietf-pce-stateful-pce-p2mp-12: (with DISCUSS and COMMENT)

Benjamin Kaduk via Datatracker <noreply@ietf.org> Wed, 10 April 2019 01:48 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: pce@ietf.org
Delivered-To: pce@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 15F3412013F; Tue, 9 Apr 2019 18:48:16 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Benjamin Kaduk via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-pce-stateful-pce-p2mp@ietf.org, Adrian Farrel <adrian@olddog.co.uk>, pce-chairs@ietf.org, adrian@olddog.co.uk, pce@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.95.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Benjamin Kaduk <kaduk@mit.edu>
Message-ID: <155486089608.19649.9617345506233285248.idtracker@ietfa.amsl.com>
Date: Tue, 09 Apr 2019 18:48:16 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/pce/6wIYIRvJoxOEwr8JrnzTauL98YY>
Subject: [Pce] Benjamin Kaduk's Discuss on draft-ietf-pce-stateful-pce-p2mp-12: (with DISCUSS and COMMENT)
X-BeenThere: pce@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Path Computation Element <pce.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pce>, <mailto:pce-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pce/>
List-Post: <mailto:pce@ietf.org>
List-Help: <mailto:pce-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pce>, <mailto:pce-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Apr 2019 01:48:16 -0000

Benjamin Kaduk has entered the following ballot position for
draft-ietf-pce-stateful-pce-p2mp-12: Discuss

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-pce-stateful-pce-p2mp/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

This is a comparatively minor point, but I don't think some of the
message layout is quite fully specified.  In particular, Section 7.2
discusses some new TLVs (in a confusing way, referring to the class of
two TLVs as a single nonexistent TLV) but does not always say which
object the TLVs are allowed to appear within.  (The first paragraph
seems to talk of the TLV appearing in a PCRpt, which is a message and as
such would contain only objects and not TLVs directly.)  The second
paragraph does mention the LSP object, which leads the reader to infer
that this TLV is only intended to appear in the LSP object, and only in
the PCRpt and PCUpd messages explicitly mentioned, but we probably
shouldn't force readers to make that leap.


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

I've made a lot of comments about grammar nits (tagged as such), but
there are also some more substantial comments to look for.

Section 1

   [RFC4875] describes how to set up point-to-multipoint (P2MP) Traffic
   Engineering Label Switched Paths (TE LSPs) for use in Multiprotocol
   Label Switching (MPLS) and Generalized MPLS (GMPLS) networks.  The
   PCE has been identified as a suitable application for the computation
   of paths for P2MP TE LSPs ([RFC5671]).

nit: some readers might wonder who has done this identification.

Section 3.1

   [RFC8051] presents several use cases, demonstrating scenarios that
   benefit from the deployment of a stateful PCE including optimization,
   recovery, etc., which are equally applicable to P2MP TE LSPs.
   [RFC8231] defines the extensions to PCEP for P2P TE LSPs.  [...]

nit: maybe "the extensions to PCEP needed for stateful operation of P2P
TE LSPs"?  Just "the extensions" is pretty generic.

Section 5.1

   Path Computation State Report (PCRpt):  Each P2MP TE LSP State Report
      in a PCRpt message can contain actual P2MP TE LSP path attributes,

Is this "can contain" or just "contains"?

Section 5.6.3.1

   The Instantiation operation of P2MP TE LSPs is same as defined in

nit: "the same as"

   section 5.3 of [RFC8281] including handling of PLSP-ID, SYMBOLIC-

nit: comma after "[RFC8281]"

   PATH-NAME TLV etc.  Rules of processing and error codes remains

nit: comma after TLV

   unchanged.  The N (P2MP) flag (Section 7.1) MUST be set in LSP object

nit: "The rules for processing and use of error codes remain unchanged."
nit: "in the LSP object"

   in PCInitiate message by PCE to specify the instantiation is for P2MP

nit: "PCInitiate messages by the PCE to specify that the instantiation"

   TE LSPs.  Like the PLSP-ID as per [RFC8281], the P2MP-LSP-IDENTIFIERS

nit: parentheses around "as per [RFC8281]"

   TLV SHOULD NOT be included in the LSP object in PCIntiitate message

nit: "PCInitiate messages"

   (as it is generated by PCC and carried in PCRpt message instead) and
   MUST be ignored on receipt.

Section 6.1

Was it a conscious decision to depart from RFC 8231 and inline objects
in the definition of <state-report> (as opposed to keeping the <path>
intermediate construction)?

   The P2MP END-POINTS object defined in [RFC8306] is mandatory for
   specifying address of P2MP leaves grouped based on leaf types.

nit: "addresses of P2MP leaves, grouped by leaf type"

   When reporting the status of a P2MP TE LSP, the destinations MUST be
   grouped in END-POINTS object based on the operational status (O field
   in S2LS object) and leaf type (in END-POINTS).  This way, leaves of
   the same type that share the same operational status are grouped
   together.  [...]

Does this mean that it's an error for a PCRpt message to include more
than one END-POINTS object with a given value of leaf-type?  If so, it
may be worth stating that explicitly.

   For a delegated P2MP TE LSP configuration changes are reported via
   PCRpt message.  For example, adding of new leaves END-POINTS (leaf-
   type = 1) is used where as removing of old leaves (leaf-type = 2) is
   used.

nit: "is used, and removing of old leaves (leaf-type = 2) is used".

   Note that the compatibility with the [RFC8231] definition of <state-
   report> is preserved.  At least one instance of <END-POINTS> MUST be
   present in this message for P2MP LSP.

Interestingly, RFC 8231 does not spell the structure of the PCRpt
message using an <END-POINTS> object.

Section 6.2

   Note that the compatibility with the [RFC8231] definition of <update-
   request> is preserved.

If I'm reading this right, compatibility is only preserved when
<END-POINTS> is omitted (and the list only has a single endpoint/path
pair).  Perhaps some more text could be added about the nature of the
provided (and needed) compatibility?

Section 6.6.2

   The LSP State Report message is sent by a PCC to report or delegate
   the P2MP TE LSPs.  An example of a PCRpt message for a delegated P2MP
   TE LSPs is described below to add new leaves to an existing P2MP TE

nit: "TE LSP"

It might be handy to mention inline "for leaf type 1 (add)" and "leaf
type 2 (remove)" just to refresh the reader's memory.

Section 7.1

   The flags defined in this section (N, F, E flags) are used in PCRpt,
   PCUpd, or PCInitiate message.  In case of PCReq and PCRep message,
   these flags have no meaning and thus MUST be ignored.  The
   corresponding flags in the RP (Request Parameters) object are used as
   described in [RFC8231].

I'm not really finding much discussion of RP flags in RFC 8231 (as
opposed to SRP, in Section 7.2 thereof).  RFC 5440 does define a few
flags for the RP object, though.

Section 7.2

I strongly suggest changing the initial language to make it clear that
there is not a single P2MP-LSP-IDENTIFIER TLV, but rather a class of two
related TLVs that serve to identify P2MP LSPs, e.g., by referring to
"P2MP LSP Identification TLVs" (without hyphenation or all-caps).

   If the N bit is set on a PCRpt but the P2MP-LSP-IDENTIFIER TLV is

nit: the bit is set in the LSP object within the PCRpt, right?

   The P2MP-LSP-IDENTIFIERS TLV MAY be included in the LSP object in the
   PCUpd message for P2MP TE LSPs.  The special value of all zeros for
   this TLV is used to refer to all paths pertaining to a particular
   PLSP-ID.

Given that we haven't specialized into the IP version-specific TLVs yet,
I agree with the previous comments that we need greater clarity on what
the "value of all zeros" means, here.  Additionally, is that special
value supposed to be restricted to the given IP version or literally all
paths, so that there are two functionally equivalent encodings for these
semantics?

Section 9

   The PCEP extensions described in this document for stateful PCEs with
   P2MP capability MUST NOT be used if PCE has not advertised its
   stateful capability with P2MP as per Section 5.2.  If the PCEP
   Speaker on the PCC supports the extensions of this draft (understands
   the P2MP flag in the LSP object) but did not advertise this
   capability, then upon receipt of PCUpd message from the PCE, it
   SHOULD generate a PCErr with error-type 19 ("Invalid Operation"),
   error-value 12 (early allocated by IANA) ("Attempted LSP Update
   Request for P2MP if active stateful PCE capability for P2MP was not
   advertised") and terminate the PCEP session.  If the PCEP Speaker on
   the PCE supports the extensions of this draft (understands the P2MP
   flag in the LSP object) but did not advertise this capability, then

We should probably disambiguate these two "P2MP flag"s to "M flag" and
"N flag", respectively.  ("P flags" is used below.)

   If a Stateful PCE receives a P2MP TE LSP report message and the PCE
   does not understand the P2MP flag in the LSP object, and therefore
   the PCEP extensions described in this document, then the Stateful PCE
   would act as per [RFC8231].

Without a section reference, it's a little annoying to figure out
exactly what that behavior would be.

Section 14.2

One could perhaps argue that RFCs 4875, 7525, and 8253 should be
normative references.