From: Pce <pce-boun...@ietf.org> on behalf of Adrian Farrel 
<adr...@olddog.co.uk>
Sent: 23 March 2021 10:17
To: julien.meu...@orange.com; pce@ietf.org

<one comment inline>

Hi Julien, WG, authors.

Code point allocation: Is the request for all of the code points in the
document? What about the not-yet-allocated code point from
[I-D.ietf-pce-pcep-extension-for-pce-controller]. This spec can't be
implemented without it.

WG last call: I have a few questions/issues/nits below.

Best,
Adrian

== Questions / Issues ==

Abstract

What is the difference between "a Binding Segment Identifier (BSID)" and
a "binding Segment-ID (SID)"?
---

Abstract

"Such a binding label/SID"
This is the first use of "label". You need some context.

<tp>
Adrian

I share your comments about the terminology in this I-D which is not precise, 
failing to specify 'MPLS label' and failing to use 'MPLS label stack entry' but 
I think that the worst part is this 'binding/Label SID' which to me is a 
classic example of how not to choose an identifier.  The I-D does use 'binding 
value' in one place as what appears to be one of the many different terms for 
this concept and I think that term much better.

Since this term, whatever it is, gets embedded in IANA, I said that the IANA 
early allocation should not proceed until this is resolved, but you may not 
take it that far.

Tom Petch
---

Abstract

   This document proposes
   an approach for reporting binding label/SID to Path Computation
   Element (PCE) for supporting PCE-based Traffic Engineering policies.

Who does the reporting?
Same in Section 1 top of page 4.

---

3.

   o  BT = 0: The binding value is an MPLS label carried in the format
      specified in [RFC5462] where only the label value is valid, and
      other fields MUST be considered invalid.  The Length MUST be set
      to 7.

I don't think that RFC 5462 is the right reference. That document simply
renames a field in the MPLS label stack entry.

So, are you carrying an MPLS label or an MPLS label stack entry? Either
is possible, although since you're only interested in the label, it
might be more normal to carry just the label value in the least
significant 20 bits of the binding value field. That would be consistent
with a Length of 7.

But, if you want to carry the full label stack entry (with the other
fields  ignored) then perhaps...
   o  BT = 0: The binding value is an MPLS label carried in an MPLS
      label stack entry format as specified in [RFC3032] where only the
      label value is valid, and other fields MUST be ignored.  The
      Length MUST be set to 8.

This would be more consistent with:
   o  BT = 1: Similar to the case where BT is 0 except that all the
      fields on the MPLS label entry are set on transmission.  However,
      the receiver MAY choose to override TC, S, and TTL values
      according its local policy.  The Length MUST be set to 8.
But here you may want a little more clarity as:
   o  BT = 1: Similar to the case where BT is 0 except that all the
      fields of the MPLS label stack entry are set on transmission of
      the PCEP message containing the TLV.  A PCC receiver of this TLV
      in a PCEP message MAY choose to override TC, S, and TTL values
      according its local policy.  The Length MUST be set to 8.

But, at the bottom of the section...
   For the BT as 0, the 20 bits represent the MPLS
   label.  For the BT as 1, the 32-bits represent the label stack entry
   as per [RFC5462].
Which is going back on itself (and using the wrong reference).

Just make a decision on the meaning of BT=0 and make the text clean.

---

3.

I'm a bit puzzled as to why this document defines two flags for the
Path Binding TLV Flags field, when this document clearly doesn't use or
depend on them.

In order to not make [I-D.ietf-spring-segment-routing-policy] a
normative reference, perhaps you should not mention the specific bits,
create the registry (in 11.1.1) as empty, and simply not that
[I-D.ietf-spring-segment-routing-policy] defines some flags.

(Obviously, [I-D.ietf-spring-segment-routing-policy] will need to make
assignments from the registry.)

---

4.

   Multiple TE-PATH-BINDING TLVs are allowed to be present in the same
   LSP object.  This signifies the presence of multiple binding SIDs for
   the given LSP.

If one of these contains a bad value, and a PCErr is sent according to
the previous paragraph, what happens to all the other Binding Values?
Are they used or discarded?

---

4.

   For SRv6 BSIDs, it is RECOMMENDED to always explicitly specify the
   SRv6 Endpoint Behavior and SID Structure in the TE-PATH-BINDING TLV
   by setting the BT (Binding Type) to 3, instead of 2.  The choice of
   interpreting SRv6 Endpoint Behavior and SID Structure when none is
   explicitly specified is left up to the implementation.

I puzzled about the alternative to "RECOMMENDED".  I wondered if the
second sentence was meant to offer that guidance, but perhaps it is
intended to only to cover the case when no Path Binding TLV is present.
Two concepts in one paragraph?

---

4.

   If a PCC wishes to withdraw or modify a previously reported binding
   value, it MUST send a PCRpt message without any TE-PATH-BINDING TLV
   or with the TE-PATH-BINDING TLV containing the new binding value
   respectively.

   If a PCE wishes to modify a previously requested binding value, it
   MUST send a PCUpd message with TE-PATH-BINDING TLV containing the new
   binding value.  The absence of TE-PATH-BINDING TLV in PCUpd message
   means that the PCE does not specify a binding value in which case the
   binding value allocation is governed by the PCC's local policy.

How does this work if multiple binding values have been assigned by
using multiple TE-PATH-BINDING TLVs? Suppose, having done that, it is
the intention to withdraw one of the binding values but leave the others
in place. Should the message making the change contain all the TLVs
except the one being withdrawn?

   If a PCC receives a valid binding value from a PCE which is different
   than the current binding value, it MUST try to allocate the new
   value.  If the new binding value is successfully allocated, the PCC
   MUST report the new value to the PCE.  Otherwise, it MUST send a
   PCErr message with Error-Type = TBD2 ("Binding label/SID failure")
   and Error Value = TBD4 ("Unable to allocate the specified label/
   SID").

And in this failure case, what is the residual state? Is the old value
still in place, or is no value in place?





== A whole pile of nits and minor issues ==

Abstract

s/a BSID to RSVP-TE/a BSID to an RSVP-TE/
s/or binding Segment-/or a binding Segment-/
s/to SR Traffic/to an SR Traffic/

---

Abstract

"This document proposes". You need to word this to be appropriate for an
RFC. Thus, "This document specifies".

---

Abstract

s/for supporting/to support/

---

Requirements Language should move to Section 2.

---

1.

Expand PCE on first use

---

1.

s/through a network that are/through a network where those paths are/
s/[RFC8402], Binding/[RFC8402], a Binding/
s/an Segment Routed/a Segment Routed/
s/equal to BSID/equal to a BSID/
s/interface or tunnels/interface or tunnel/
s/as segments/as a segment/
s/extension to PCEP that allows/extensions to PCEP that allow/
s/PCEP extension to setup/PCEP extensions to set up/

---

1. Please expand "LSP" on first use

---

1.

   The PCEP extension to setup and maintain SR-TE
   paths is specified in [RFC8664].

   [RFC8664] provides a mechanism for a network controller (acting as a
   PCE) to instantiate candidate paths for an SR Policy onto a head-end
   node (acting as a PCC) using PCEP.

Do you need both of these sentences?

---

1.

s/"Binding label/SID has local"/"A binding label/SID has local"/
s/the following diagram/Figure 1/  (you can use an xref)
s/"In IP/MPLS WAN"/"In the IP/MPLS WAN"/
s/setup using/set up using/

---

1.

   Binding value means either MPLS label or SID
   throughout this document.

This might read better as:

   Throughout this document, the term "binding value" means either an
   MPLS label or SID.

---

2.

The following are not used in this document and don't need to be in the
list:
   LER
   LSR

The following are not used in later sections of this document and don't
need to be in the list:
   SRGB
   SRLB

---

3.

s/in the figure below/in Figure 3/
s/in ([RFC8231])/in [RFC8231]/
s/type of this TLV is to be allocated by IANA/type of this TLV is TBD1/

---

3.

For Binding Type (BT), a forward pointer to 11.1.1 would be nice.

---

3.1.

   Carried as the Binding Value in the TE-PATH-BINDING TLV when the BT
   is set to 3.  Applicable for SRv6 Binding SIDs
   [I-D.ietf-spring-srv6-network-programming].

These need to be sentences with a subject.
I think you can update to [RFC8986].

---

3.1

Figure 4 should be numbered Figure 3.
The text should contain an explicit mention of Figure 3.
The text should mention each of the fields in the figure.

---

3.1
   Endpoint Behavior: 2 octets.  The Endpoint Behavior code point for
   this SRv6 SID as defined in section 9.2 of
   [I-D.ietf-spring-srv6-network-programming].
There is no section 9.2 in RFC 8986. You're probably after section 10.2.
But is that the right thing to do? Don't you want to point at the IANA
registry so that you embrace any future values as well?

---

3.1
   LB Length: 1 octet.  SRv6 SID Locator Block length in bits.

   LN Length: 1 octet.  SRv6 SID Locator Node length in bits.

   Function Length: 1 octet.  SRv6 SID Function length in bits.

   Argument Length: 1 octet.  SRv6 SID Arguments length in bits.

It is unclear what these lengths refer to in the context of this binding
value. Probably you can just provide pointers to where the meaning is
found.

---

4.
s/([RFC5440])/[RFC5440]/
s/message, PCE MUST/message, the PCE MUST/
s/MUST send the PCErr/MUST send a PCErr/

---

4.
   If a PCE requires a PCC to allocate a specific binding value, it may
   do so by sending a PCUpd or PCInitiate message containing a TE-PATH-
   BINDING TLV.
In order to avoid confusion, I suggest s/may do/does/

---

4.
   If a PCE requires a PCC to allocate a specific binding value, it may
   do so by sending a PCUpd or PCInitiate message containing a TE-PATH-
   BINDING TLV.

"it may do so" is probably "it instructs the PCC"

---

4.

s/receives TE-PATH-BINDING TLV/receives a TE-PATH-BINDING TLV/
s/other than LSP object/other than an LSP object/
s/It may do so by sending a PCUpd/It does so by sending a PCUpd/

---

5.

"a PCErr message is sent"  Who does the sending? "the receiver"?

---

6.

s/for SRv6 SID./for an SRv6 SID./

---

7.

s/This section specify/This section specifies/

---

7.

"allocate the binding label" Do you mean "binding label/SID"?
The rest of the paragraph seems a little inconsistent on that.
Perhaps, also, the section title is wrong.

---

7.

s/before PCE could/before the PCE can/

---

7.

      The TLV in LSP object identifies what should be
      allocated, such as Binding label/SID.

Suggest to remove this sentence as superfluous with following text.

---

7.

OLD
   o  to let the PCC allocates the binding label/SID, a PCE could set
      P=0 and empty TE-PATH-BINDING TLV ( i.e., no binding value is
      specified) in the LSP object in PCInitiate/PCUpd message.
NEW
   o  to let the PCC allocates the binding label/SID, a PCE could set
      P=0 and include an empty TE-PATH-BINDING TLV (i.e., no binding
      value is specified) in the LSP object in PCInitiate/PCUpd message.
END

Similarly

OLD
   o  a PCC could request that the PCE allocate the binding label/SID by
      setting P=1, D=1, and empty TE-PATH-BINDING TLV in PCRpt message.
NEW
   o  a PCC could request that the PCE allocate the binding label/SID by
      setting P=1, D=1, and including an empty TE-PATH-BINDING TLV in
      PCRpt message.
END

---

7.

Bullets following "Note that,..." should all start with capital letters
so that multi-sentence bullet text is not confused.

---

7.

   o  if both peers have not exchanged the PCECC capabilities as per
      [I-D.ietf-pce-pcep-extension-for-pce-controller] and it receives
      P=1 in the LSP object, it needs to act as per
      [I-D.ietf-pce-pcep-extension-for-pce-controller]:

What is "it"?

---

7.

      *  Send a PCErr message with Error-Type=19 (Invalid Operation) and
         Error-Value=TBD (Attempted PCECC operations when PCECC
         capability was not advertised)

I understand this to mean to use the Error-Value defined in
[I-D.ietf-pce-pcep-extension-for-pce-controller] and marked in that
document as TBD3.

I suggest you use

      *  Send a PCErr message with Error-Type=19 ("Invalid Operation")
         and Error-Value=TBD7 ("Attempted PCECC operations when PCECC
         capability was not advertised"). [RFC-EDITOR: Please replace
         TBD7 with the value assigned by IANA for this Error-Value,
         indicated by "TBD3" in [I-D.ietf-pce-pcep-extension-for-pce-
         controller].]

---

7.
   PCE would directly allocate the label
   from the PCE-controlled label space using P=1 as described above,
   whereas PCE would request for the allocation of a specific BSID from
   the PCC-controlled label space with P=0 as described in Section 4.
s/PCE would/The PCE can/ (twice)

---

9.

s/rouge/rogue/
s/other LSPs that uses/other LSP that uses/

---

11.1.1

The two new registries need to have ranges specified so that IANA knows
what new values can be assigned.

---

I think the affiliations of some of your authors and contributors may
be out of date.

_______________________________________________
Pce mailing list
Pce@ietf.org
https://www.ietf.org/mailman/listinfo/pce

_______________________________________________
Pce mailing list
Pce@ietf.org
https://www.ietf.org/mailman/listinfo/pce

Reply via email to