Skip to main content

Path Computation Element Communication Protocol (PCEP) Extensions for Segment Routing
draft-ietf-pce-segment-routing-16

Yes

(Deborah Brungard)

No Objection

(Ignas Bagdonas)
(Mirja Kühlewind)
(Suresh Krishnan)

Note: This ballot was opened for revision 14 and is now closed.

Warren Kumari
No Objection
Comment (2018-12-07 for -14) Sent
I’m balloting NoObj, but support Alvaro’s DISCUSS, especially point #4, and his comments, especially #1 and #7.
Alvaro Retana Former IESG member
(was Discuss) Yes
Yes (2019-03-12) Sent
Thank you for addressing my DISCUSS points!
Deborah Brungard Former IESG member
Yes
Yes (for -14) Unknown

                            
Alissa Cooper Former IESG member
No Objection
No Objection (2018-12-04 for -14) Sent
Section 8.4 strikes me as a little odd for an archival document -- presumably draft-ietf-pce-pcep-yang either will or will not include the listed items, so the recommendations will either be out-of-date or false once draft-ietf-pce-pcep-yang is published.
Benjamin Kaduk Former IESG member
No Objection
No Objection (2018-11-30 for -14) Sent
Abstract

                   This document specifies extensions to the Path
   Computation Element Communication Protocol (PCEP) that allow a
   stateful PCE to compute and initiate Traffic Engineering (TE) paths,
   as well as a PCC to request a path subject to certain constraints and
   optimization criteria in SR networks.

Why are we talking about TE paths now instead of SR?

Section 1

   Several types of segment are defined.  A node segment represents an
   ECMP-aware shortest-path to a specific node, and is always identified
   uniquely within the SR/IGP domain.  [...]

A path to a node is only going to be unique if the starting node is also
included, is it not?

Section 3

The sentences:

   In an SR network, the ingress node of an SR path prepends an SR
   header to all outgoing packets.  The SR header consists of a list of
   SIDs (or MPLS labels in the context of this document).

Appear virtually unchanged in both the start of the first paragraph and the
middle of the second paragraph; is this duplication really needed?

   A PCC MAY include an RRO containing the recorded LSP in PCReq and
   PCRpt messages as specified in [RFC5440] and [RFC8231], respectively.
   This document defines a new RRO subobject for SR networks.  The
   methods used by a PCC to record the SR-TE LSP are outside the scope
   of this document.

It's not entirely clear that we need to define a standard container to
carry site-local data when a site-local container could also be used.

Section 5.2

Please expand SRP (and RP, for that matter) on first usage.
(Interestingly, https://www.rfc-editor.org/materials/abbrev.expansion.txt
does not seem to have the correct expansion for this usage.)

Section 5.3.1

      *  C: If the M bit and the C bit are both set to 1, then the TC,
         S, and TTL fields in the MPLS label stack entry are specified
         by the PCE.  However, a PCC MAY choose to override these values
         according its local policy and MPLS forwarding rules.  If the M
         bit is set to 1 but the C bit is set to zero, then the TC, S,
         and TTL fields MUST be ignored by the PCC.  The PCC MUST set
         these fields according to its local policy and MPLS forwarding
         rules.  [...]

Must be ignored in incoming messages received from where?

Isn't the 'F' bit fully redundant with NT?

Section 5.3.2

Do we need to say anything about which node is the reference point for
evaluating "local" and "remote" w.r.t. IP addresses?  (Maybe we
don't, since these are always unidirectional adjacencies, right?)

Section 6.1

   If a PCC sets the N flag to 1, then the PCE MAY send an SR-ERO
   subobject containing NAI and no SID (see Section 6.2).  Otherwise,
   the PCE MUST NOT send an SR-ERO subobject containing NAI and no SID.

Sets the N flag in what message?

                                                 If a PCE receives an
   SR-PCE-CAPABILITY sub-TLV with the L flag set to 1 then it MUST
   ignore the MSD field and MUST assume that the sender can impose a SID
   stack of any depth.  [...]

nit: this second MUST seems like overkill; "and assumes" would probably
work fine.  (Similarly for the following case.)

It's interesting that the routing protocols' MSD value supersedes the
PCE-obtained one, given that all three (IS-IS, OSPF, and BGP-LS) documents
have text to the effect of "PCEP provides a way to get this, but if PCEP is
not used you can use our thing", which a naive reader would take to mean
that PCEP is intended to be the primary distribution mechanism.

Section 7

Is there some history regarding making it MUST-level mandatory to treat
top-level SR-CAPABILITY-TLV in OPEN for backwards-compatibility (as opposed
to SHOULD-level but leaving open the option of a strict implementation)?
(The guidance for what to do when both forms appear seems good to have at
MUST-level, to me.)

Section 9

RFC 8281's security considerations incorporate those of RFC 8231 by
reference; we could save the reader a step and also mention it at the
toplevel here.

I don't think it's a good idea to just refer to "the security mechanisms of
[RFC 5440] and [RFC8281]", since there are qualitative differences between
the TCP authentication schemes and the full-on encryption provided by TLS
and IPsec.  (Also, what exactly are the security mechanisms of RFC8281
supposed to be -- a quick look only sees the new guidance to apply resource
limits?)  The second paragraph only requires integrity protection to avoid
the vulnerability mentioned there, but the third paragraph requires
confidentiality protection to preent the attack.

Section 10.6

RFC 8408 does not "request" the creation of the registry; IANA has already
created the registry.  I would just say "[RFC8408] created a sub-registry
[...]" but the smaller change to "requested" would be okay, too.
Ignas Bagdonas Former IESG member
No Objection
No Objection (for -14) Not sent

                            
Martin Vigoureux Former IESG member
No Objection
No Objection (2018-12-04 for -14) Sent
Hello,

thank you for this document. I have few comments/questions:

Could you elaborate on what you mean by: "or to perform a specific service on the packet."

s/A Segment Routed path/A Segment Routing path/

   In SR networks, an ingress node of an SR path prepends an SR header to
   all outgoing packets.  The SR header consists of a list of SIDs (or
   MPLS labels in the context of this document).
This appears twice in two consecutive paragraphs at the beginning of section 3.

I'm not a native english speaker but I find the use of "ERO subobject" confusing when used to refer to the SR-ERO subobject.
Maybe say the "the (SR-ERO) subobject of the ERO".

   Length:  Contains the total length of the subobject in octets,
      including the L, Type and Length fields.  The Length MUST be at
      least 8, and MUST be a multiple of 4.  An SR-ERO subobject MUST
      contain at least one of a SID or an NAI.  The length should
      include the SID and NAI fields if and only if they are not absent.
I am confused about the minimum length. L, Type and Length use 2 octets. What bring this to 8 considering that a SID is 4?
Also the last sentence is very confusing. It seems normal not to count something which is not there. No need to say so. The current statement seems to contradict the preceding sentence in fact, so I'd just remove it.

      *  A 4 octet MPLS label, where the 20 most significant bits encode
         the label value per [RFC3032].
s/MPLS label/MPLS Label Stack Entry/

I believe it is too late to change but I find L=1 meaning "no limit" is *very* confusing. For me L stands for Limit and when L=1 there is a limit, when L=0 there is none.

On the metric object.
You have the requirement that "the PCE MUST minimize the SID depth". This is a non actionable requirement. You need to set a bound. I very much understand that the bound is the specified sid depth (and you say it properly afterwards ("the PCE MUST NOT return a path whose SID depth exceeds the given metric-value"), but still the sentence I point to is a non actionable requirement which you may want to reformulate.

   If a PCEP session is established with a non-zero default MSD value,
   then the PCC MUST NOT send an MSD METRIC object with an MSD greater
   than the session's default MSD. 
Out of curiosity, why do you forbid that case?
Mirja Kühlewind Former IESG member
No Objection
No Objection (for -14) Not sent

                            
Spencer Dawkins Former IESG member
No Objection
No Objection (2018-12-05 for -14) Sent
I can guess what 

   This mechanism is useful in Software Defined
   Networking (SDN) applications, such as on-demand engineering, or
   bandwidth calendaring.

means, but I'm guessing. Is there a reference for "on-demand engineering" or "bandwidth calendaring"?
Suresh Krishnan Former IESG member
No Objection
No Objection (for -14) Not sent