Benjamin Kaduk has entered the following ballot position for
draft-ietf-pce-stateful-pce-lsp-scheduling-19: 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-lsp-scheduling/



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

This being a discuss ballot notwithstanding, the protocol mechanisms
here seem pretty well thought-out; I'm just wanting changes to how they
are described.

There seems to be an internal inconsistency in Section 4.3, between
"[t]he PCE SHOULD add the scheduled LSP into its scheduled LSP-DB and
update its scheduled TED" and "[t]he stateful PCE is required to update
its local scheduled LSP-DB and scheduled TED".  (I think the "SHOULD"
one is wrong, personally.)

Let's also take a closer look at the precise interdependency between the
B bit and PD bit -- Section 5.1 implies that the PD bit itself cannot be
set in the absence of the B bit, referring forward to Section 5.2.2, but
Section 5.2.2 seems to only say that you need both the B and PD bits set
in order to send SCHED-PD-LSP-ATTRIBUTE.  Bits being set as a
prerequisite for sending the TLV is a subtly different condition than
having the one bit itself depend on the other, with correspondingly
different error handling.

Section 6.6 refers to the "LSP-ERROR-CODE TLV (Section 7.3.3) which is
not defined in this document, rather, the reference should be to ยง 3.3
of RFC 8231.


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

I'm pretty sympathetic to Alvaro's not-quite-Discuss, but also am not
quite prepared to elevate it to Discuss level (and incur the
responsibility to determine what changes are necessary to resolve it).
I note several editorial comments and nits below, but those remarks are
not comprehensive.

Abstract

                                                            so as to
   enable Labeled Switched Path (LSP) scheduling for path computation
   and LSP setup/deletion based on the actual network resource usage and
   the duration of a traffic service in a centralized network
   environment as stated in RFC 8413.

Just looking at this text in isolation, it's not entirely clear if the
event that is scheduled is the LSP activation, creation, calculation, or
something else, and whether it is just the computed path that depends on
the resource usage/traffic duration, or if other things like the
frequency of scheduling or the existence of an LSP at all would be
dependent on those.  Presumably the rest of the document will clarify,
but perhaps there is some wordsmithing possible here.

Section 1

   letting other services use it when this service is not using it.  The
   requirement of scheduled LSP provision is mentioned in [RFC8231] and

nit(?): I think s/provision/provisioning/

   [RFC7399].  A solution for providing more efficient network resource
   usage for traffic engineering is desired.  Also, for deterministic

nit: I don't really follow the connection between these two sentences --
"a solution for [...] is desired" seems to be a general re-statement of
the problem, whereas the previous discussion has been discussing,
essentially, the benefits of the proposed solution.

Section 2.1

Hmm, RFC 8231 says that it itself takes the definitions for "Active
Stateful PCE", "Passive Stateful PCE", and several other terms from RFC
8051; we should probably short-circuit the reference chain(s).

   Scheduled TED:  Traffic engineering database with the awareness of
      scheduled resources for TE.  This database is generated by the PCE
      from the information in TED and scheduled LSP-DB and allows
      knowing, at any time, the amount of available resources (does not
      include failures in the future).

I'd consider "the expected amount of available resources (discounting
the possibility of failures in the future)".

Section 4.1

   The LSP scheduling allows PCEs and PCCs to provide scheduled LSP for
   customers' traffic services at its actual usage time, so as to
   improve the network resource efficient utilization.

nit: s/resource efficient utilization/resource utilization efficiency/

   In case of implementing PCC-initiated scheduled LSPs, before a PCC
   delegates a scheduled LSP, it MAY use the PCReq/PCRep messages to

Just to check: there is some risk that the computed path might change
between this query and when the LSP actually becomes active?

   learn the path for the scheduled LSP.  A PCC MUST delegate a
   scheduled LSP with information of its scheduling parameters,
   including the starting time and the duration using PCRpt message.

I suggest "When delegating a scheduled LSP, a PCC MUST include its
scheduling parameters, including [...]", to be clear about what cases
the "MUST" applies to.  (It might also be worth saying what a PCE should
do if it receives a delegation request for a scheduled LSP that does not
include the requisite parameters.)

   For a multiple PCE environment, a PCE MUST synchronize to other PCEs
   within the network, so as to keep their scheduling information
   synchronized.  There are many ways that this could be achieved: one
   such mechanism is described in [I-D.litkowski-pce-state-sync].  Which
   way is used to achieve this is out of scope for this document.  [...]

I'd suggest restructuring how this paragraph is laid out (akin to
Alvaro's comment).  Specifically, it's an intrinsic fact that if you're
in a multi-PCE environment, you have to have inter-PCE synchronization
or the stat skew causes problems.  That's not new with this document;
what we are most interested in saying is that, in addition to the
existing need to synchrnoize the TED and LSP-DB, when scheduled LSPs are
in use you also have to synchronize the SLSP-DB and have each PCE
reconstruct the Scheduled TED (or synchronize the Scheduled TED as
well).  The ways to perform such synchronization are hardly worth
mentioning, except to the extent that existing mechanisms cannot handle
sending the extra information.

   The scheduled LSP can also be initiated by PCE itself.  In case of

nit: missing article (perhaps "by a PCE itself").

   scheduled LSP based on the local policy.  For the former SCHED-LSP-
   ATTRIBUTE TLV (see Section 5.2.1) MUST be included in the message

I suggest s/For the former/In the former case, the/

   where as for the latter SCHED-LSP-ATTRIBUTE TLV SHOULD NOT be

nits: s/where as/whereas/, s/SCHED-LSP-ATTRIBUTE/the SCHED-LSP-ATTRIBUTE/

   included.  Either way the synchronization to other PCEs should be
   done when the scheduled LSP is created.

I recognize that the BCP 14 keywords are not being used, but earlier we
said "shall synchronize" but here it's just "synchronization should be
done"; it's probably worth making these consistent.

   In both modes, for activation of scheduled LSPs, the PCC could
   initiate the setup of scheduled LSP at the start time by itself or
   wait for the PCE to update the PCC to initiate the setup of LSP.

I'm worried about the "could initiate [...] or wait".  While it's true
that either party could take the initiative, doesn't there need to be an
agreement between them about which one it will be, to avoid the risk of
the LSP not actually geting instantiated at the start time?

   Similarly on the scheduling usage expires, the PCC could initiate the

nit: s/expires/expiry/ or s/expires/expiration/

(Same comment about "could" as above.)

Section 4.2.2

   When an LSP is configured with a scheduling interval such as "[Ta,
   Tb] repeats 10 times with a repeat cycle a week" (representing 11
   scheduling intervals), a path satisfying the constraints for the LSP
   in every interval represented by the periodical scheduling interval
   is computed once.  And then the LSP along the path is set up to carry
   traffic in each of the scheduling intervals.  If there is no path
   satisfying the constraints for some of the intervals, the LSP will
   not be set up at all.

This seems to say that the same path must be used for each recurrence of
the scheduled event, precluding some optimizations that might be desired
in the face of other (unscheduled or differently scheduled) load.  Is
that intended?

Section 4.2.2.1

   When an LSP is configured with elastic time interval "[Ta, Tb] within
   -P and Q", a path is computed such that the path satisfies the
   constraints for the LSP in the time period from (Ta+Xv) to (Tb+Xv)
   and |Xv| is the minimum value for Xv from -P to Q.  That is, [Ta+Xv,

To check my understanding, this mention of |Xv| is indicating that the
PCE attempts to limit the deviation from the requested interval, using
an absolute value metric to indicate distance from the requested value?
It might be worth putting in a few more words to indicate that this
optimization is being performed; just "is the minimum value" could be
confusing.

Section 4.2.2.2

   During grace periods from (Ta-GB) to Ta and from Tb to (Tb+GA), the
   LSP is up to carry traffic (maybe in best effort).

This point seems pretty key to having grace periods at all.  In
particular, if there is no difference between the traffic-handling
properties for the grace period and the "main interval", then the grace
period is more simply handled by the entity requesting the interval
(i.e., "just ask for a larger interval").  The fact that we propose to
give different traffic-handling behavior during the grace period should
be emphasized, in order to justify the existence of the protocol
element.  In the absence of such justifying text, I would propose to
remove the grace-period feature as needless complexity.

Section 4.3

   For PCE-Initiated Scheduled LSP, the stateful PCE can compute a path
   for the scheduled LSP per requests from network management systems
   automatically based on the network resource availability in the
   scheduled TED, send a PCInitiate message with the path information

nit: s/, send/ and send/

   back to the PCC.  Based on the local policy, the PCInitiate message
   could be sent immediately to ask PCC to create a scheduled LSP (as

nit: s/ask PCC/ask the PCC/

   o  Based on the configuration (and the C flag in scheduled TLVs),
      when it is time (i.e., at the start time) for the LSP to be set
      up, either the PCC triggers the LSP to be signaled or the
      delegated PCE sends a PCUpd message to the head end LSR providing
      the updated path to be signaled (with A flag set to indicate LSP
      activation).

We haven't discussed the C flag yet, so a reader is left wondering "how
do I know whether the PCC or PCE is going to take initiative?".  We
could reword, perhaps like "When it is time for the LSP to be set up
(i.e., at the start time), based on the value of the C flag for the
scheduled TLV, either the PCC [...]".  Similar changes would be
applicable in later sections as well.

Section 4.4

Are there any special considerations for modifying a periodic scheduled
LSP after some recurrences have already happened?  What about for
modifying any scheduled LSP that is currently active (whether before the
chage, after the change, or both)?

Section 5.1

   After a PCEP session has been established, a PCC and a PCE indicates
   its ability to support LSP scheduling during the PCEP session
   establishment phase.  For a multiple-PCE environment, the PCEs should
   also establish PCEP session and indicate its ability to support LSP
   scheduling among PCEP peers.  The Open Object in the Open message

Does a PCE need to refrain from advertising scheduling support to PCCs
if its PCE peers do not all support scheduling?

   scheduling among PCEP peers.  The Open Object in the Open message
   contains the STATEFUL-PCE-CAPABILITY TLV defined in [RFC8231].  Note
   that the STATEFUL-PCE-CAPABILITY TLV is defined in [RFC8231] and
   updated in [RFC8281] and [RFC8232]".  In this document, we define a
   new flag bit B (SCHED-LSP-CAPABLITY) flag for the STATEFUL-PCE-
   CAPABILITY TLV to indicate the support of LSP scheduling and another
   flag bit PD (PD-LSP-CAPABLITY) to indicate the support of LSP
   periodical scheduling.

I note that (e.g.) RFC 8623 does not seem to give mnemonic names for the
individual bits, so our "bit B" and "bit PD" seem a bit out of place.

Section 5.2

   Only one of these TLV SHOULD be present in the LSP object.  In case
   more than one scheduling TLV is found, the first instance is
   processed and others ignored.

It seems that this wording "more than one scheduling TLV" might apply to
some hypothetical future TLV type for a different variation of scheduled
LSPs.  If that would be undesirable, we could reword to mention the two
TLV types by name.

Section 5.2.1

Please note that this formulation (number of seconds since a fixed time)
is invariant to leap seconds, but that conversions from current UTC time
to it might need to account for leap seconds.  (Or if you want to ignore
leap seconds, say that.)

      C (1 bit):  Set to 1 to indicate the PCC is responsible to setup
         and remove the scheduled LSP based on the Start-Time and
         duration.

I suggest noting that the PCE holds these responsibilities when the bit
is set to zero.

   Start-Time (32 bits):  This value in seconds, indicates when the
      scheduled LSP is used to carry traffic and the corresponding LSP
      must be setup and activated.  Value of 0 MUST NOT be used in
      Start-Time.  Note that the transmission delay SHOULD be considered
      when R=1 and the value of Start-Time is small.

I don't understand why start-time of 0 is disallowed (for at least the
R=0 case) -- that would disallow requesting a start time that happens to
land on the time when the time counter wraps around, for no reason.

   The Start-Time indicates a time at or before which the scheduled LSP
   must be set up.  The value of the Start-Time represents the number of
   seconds since the epoch when R bit is set to 0.  When R bit is set to
   1, it represents the number of seconds from the current time.

   In addition, it contains an non zero grace-before and grace-after if

I suggest s/it/the SCHED-LSP-ATTRIBUTE TLV/; it's easy to misread the
"it" as referring to the "Start-Time" from the previous paragraph.

   grace periods are configured.  It includes an non zero elastic range

Are the Grace-Before/Grace-After fields set to zero when grace periods
are not configured?

   lower bound and upper bound if there is an elastic range configured.

(Likewise for elastic-range.)

Section 5.2.2

   Opt: (4 bits)  Indicates options to repeat.  A new registry "Opt"
      under SCHED-PD-LSP-ATTRIBUTE is created.  When a PCE receives a
      TLV with a Opt value not defined, it does not compute any path for
      the LSP.  It generates a PCEP Error (PCErr) with a PCEP-ERROR
      object having Error-type = 4 (Not supported object) and Error-
      value = 4 (Unsupported parameter).

Have we thought about what kind of negotiation might be needed in the
case where a new Opt value is defined?  Though the possibility currently
seems unlikely, this error message does not seem sufficient to indicate
which Opt value is problematic.

   NR: (12 bits)  The number of repeats.  In each of repeats, LSP
      carries traffic.

Maybe say that NR==0 is equivalent to using SCHED-LSP-ATTRIBUTE (to
avoid questions of 0- vs. 1-indexing)?

Section 6.x

We mention in several places "the scheduled TLVs" for the LSP object,
but this seems misleading, since at most one scheduled TLV should be
present in a given object. Perhaps "a scheduled TLV" would be better?

Section 6.2

Perhaps it's worth noting that in the PCE-initiated case there is the
option to avoid using the scheduled LSP TLVs (and, to some extent, PCUpd
at all), since the PCE can just not tell the PCC about the scheduled
path until its start-time occurs.

Section 6.4

   request the path computation based on scheduled TED and LSP-DB.  A
   PCC MAY use PCReq message to obtain the scheduled path before
   delegating the LSP.

[if my previous comment about "subject to change" results in text
changes, similar changes would apply here]

Section 6.5

Just to check: the scheduled TLV should still be included in the
response even for a negative response?
(Also, same comment about "obtain the scheduled path before
delegating".)

Section 8

Since we deal with scheduled events, we should remind implementations to
do something reasonable when their current time jumps.  Jumps can be
forward or backward, and might cross boundaries for when LSPs should be
(in)active.  The presence of a significant time correction may be
indicative of other (configuration) issues, and falling back to a
conservative stance (keep LSPs active?) might be appropriate.

Similarly, some discussion of how things break when there is clock skew
between PCC and PCE might be useful (we already have a requirement for
clock synchronization in discussion of the R flag).

   on the network.  Thus, such deployment should employ suitable PCEP
   security mechanisms like TCP Authentication Option (TCP-AO) [RFC5925]
   or [RFC8253].  The procedure based on Transport Layer Security (TLS)
   in [RFC8253] is considered a security enhancement and thus is much
   better suited for the sensitive information.  PCCs may also need to

nit: TCP-AO would be considered a "security enhancement" as well
(compared to a baseline of unprotected TCP).  Perhaps the intent is to
say that the TLS procedure from RFC 8253 additionally provides
confidentiality protection to the conveyed data?

nit: "such deployments" plural.

Section 9.1

   When configuring the parameters about time, a user SHOULD consider
   leap-years and leap-seconds.

I know I mentioned leap seconds earlier as well, but this feels like a
cop-out.  We can tell the reader in much more detail how leap years and
seconds will affect their calculations, which in aggregate will be much
more efficient than making each reader think it through for themself.

Section 9.2

nit(?) "view the capability" (singular) sounds like it's just seeing
whether the scheduled LSP functionality is enabled or not, a boolean
value.  If the intent is to say that the specific (e.g., per-tunnel)
state should be visible, then this should be reworded accordingly.

Section 9.4

Is there something to say about checking that LSPs are
activated/disabled at the appropriate times for scheduled and periodic
events?

Section 9.5

Are there any requirements on PCE-to-PCE synchronization protocols that
now need to carry the SLSP-DB?

Section 10.1.1

Is there anything to say about why the two reserved values are reserved?



_______________________________________________
Pce mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/pce

Reply via email to