Hi Alissa, An update has been posted that makes changes based on the genart review by the authors - https://www.ietf.org/rfcdiff?url1=draft-ietf-pce-association-diversity-10&url2=draft-ietf-pce-association-diversity-12 A response to the Dale's email discussing these changes is pending. Dhruv On Wed, Oct 30, 2019 at 9:09 PM Alissa Cooper <alissa@xxxxxxxxxx> wrote: > > Thanks Dale. I entered a DISCUSS ballot to chat about a couple of your major points below and requested a response to the rest of your review. > > Alissa > > > > On Oct 12, 2019, at 8:04 PM, Dale Worley via Datatracker <noreply@xxxxxxxx> wrote: > > > > Reviewer: Dale Worley > > Review result: Ready with Issues > > > > I am the assigned Gen-ART reviewer for this draft. The General Area > > Review Team (Gen-ART) reviews all IETF documents being processed by > > the IESG for the IETF Chair. Please treat these comments just like > > any other last call comments. > > > > For more information, please see the FAQ at > > > > <https://trac.ietf.org/trac/gen/wiki/GenArtfaq>. > > > > Document: draft-ietf-pce-association-diversity-10 > > Reviewer: Dale R. Worley > > Review Date: 2019-10-12 > > IETF LC End Date: 2019-10-18 > > IESG Telechat date: not known > > > > Summary: > > > > This draft is on the right track but has open issues, described > > in the review. > > > > There are various exposition issues, as detailed below. > > > > There are some minor technical issues about reporting of error > > conditions, the significance of the P bit in DISJOINTNESS-STATUS-TLV, > > the detailed definition of the new objective functions, etc. as > > detailed below. > > > > But it seems like a number of complex cases haven't been clearly > > specified: (1) the effect of the P bit if multiple LSPs have P=1, (2) > > the interaction of SVEC and disjoint-groups, and (3) the interaction > > of partially overlapping disjoint-groups and/or SVEC sets. > > > > Major issues: > > > > The relationship of this mechanism with SVEC seems to be important but > > is not clearly stated. The relevant sections of the text seem to be: > > section 4 para 2, section 5.3, and section 5.4 from "[RFC5440] uses > > SVEC diversity flag" on. I think that they need to be pulled into one > > section. Then it will be possible to have a good description of the > > interaction with SVEC. > > > > At the end of section 5.6 is the revelation that (1) the > > DISJOINTNESS-CONFIGURATION-TLV is not attached to a group (in some > > sense), but instead a separate copy of it is attached to every LSP in > > the group, (2) these copies must match in the group IDs they carry and > > also the T, S, N, and L flags in them must agree, (3) (I suspect) any > > OF-code must agree, and (4) the P flags in them may differ. This > > information is needed as background for a number of parts of the text > > to make sense, particularly the description of the P bit in section > > 5.2 and section 5.5. I recommend that the last para of section 5.5 be > > moved to section 5.1 or the beginning of section 5.2, so the reader is > > aware that the descriptions of each LSP carry separate, and not > > necessarily identical, DISJOINTNESS-CONFIGURATION-TLVs. > > > > The path computation effects of the P bit are described in the "P" > > item in section 5.2 and section 5.5. But the descriptions are > > unclear, or perhaps they presume that there are only two LSPs in the > > group. I think the intended meaning is that all of the LSPs in the > > group with P=1 are computed first, and then with those LSPs fixed, the > > LSPs in the group with P=0 are computed. This will cause > > shortest-path constraints (and other objective functions) to be > > optimized on the P=1 LSPs, and those paths will not be de-optimized by > > competition from the other paths. This should probably be pulled out > > of the description of the "P" in its TLV and put into a separate > > paragraph. > > > > Minor issues: > > > > Nits/editorial comments: > > > > In general, check the uses of "could" and "would". I think "would" is > > sometimes used to mean "... in that situation, the XXX MUST ...", and > > "could" is sometimes used where "MAY" would be clearer. > > > > The running title is given as "ASSOC-DISJOINT". I think "PCEP > > Diversity Constraint Signaling" would be clearer. > > > > Abstract > > > > The proposed extension allows a Path Computation Client (PCC) to > > advertise to a PCE that a particular LSP belongs to a > > disjoint-group, thus the PCE knows that ... > > > > It would be clearer if "a disjoint-group" was amplified to "a > > particular disjoint-group". > > > > Table of Contents > > > > There are a few section titles in which important words aren't > > capitalized ("functions" in section 5.4), or unimportant words are > > capitalized ("On" in sections 8.5 and 8.6). > > > > The title of section 8.4 is a verb phrase, compared to the titles of > > the other subsections of section 8. I suggest "Verification of > > Correct Operations" or maybe "Correct Operation Verification". > > > > Perhaps change the title of Appendix A to just "Contributors", since > > there is no other enumeration of contributors. > > > > 1. Introduction > > > > This document specifies a PCEP extension to signal that a particular > > group of LSPs should use diverse paths including the requested type > > , ---------------------------------------^ > > of diversity. > > > > Add a comma as indicated, to make it clear that "including" modifies > > "signal" rather than "paths". > > > > This document specifies a PCEP extension to signal that a particular > > group of LSPs should use diverse paths including the requested type > > of diversity. > > > > This implies that the "group" here is an instance of the association > > "grouping" of the preceding paragraph, but the Intro doesn't state > > that this document's grouping is an instance of the generic grouping > > mechanism. Perhaps > > > > This document specifies a PCEP grouping to signal that ... > > > > 3. Motivation > > > > A customer may request > > that the operator provide two end-to-end disjoint paths across the > > IP/MPLS core. > > > > I suggest "the operator's IP/MPLS core". > > > > [There are various places where the document seems to be phrased from > > the point of view of the network vendor rather than the point of view > > of the endpoint/user. The IETF convention is to focus on the endpoint > > or user.] > > > > The customer may use those paths as primary/backup or > > active/active. > > > > This phrasing uses an adjective as a noun. I prefer: > > > > The customer may use these paths with a primary/backup or an > > active/active configuration. > > > > -- > > > > Different level of disjointness may be offered: > > > > Perhaps "Different levels of disjointness can be defined:" > > > > 4. Applicability > > > > In the figure above, let us consider that the customer wants to have > > two disjoint paths between CE1/CE2 and CE3/CE4. > > > > I think that to make this accurate, you need to say "two disjoint > > paths, one between CE1 and CE2 and one between CE3 and CE4." > > > > This section seems disorganized. In particular, 2nd and 3rd paras > > don't seem to add much. Para 2 should be relocated to the SVEC > > discussion (see "Major issues). Para 3 seems to have two sentences of > > background information (I think it's duplicated in section 1) and one > > sentence that essentially states that this document defines a > > "diversity group" of LSPs which is a type of the generalized "LSP > > group". > > > > Using PCEP, the PCC could indicate that a disjoint path computation > > is required, such indication should include disjointness parameters > > such as the type of disjointness, the disjoint group identifiers, and > > any customization parameters according to the configured local > > policy. As mentioned previously, the extension described in > > [I-D.ietf-pce-association-group] is well suited to associate a set of > > LSPs with a particular disjoint-group. > > > > This touches on the right topics, but doesn't really connect them. > > Also, don't use "could" for an action that this document defines how > > to do. You want to say something like > > > > Using the extension to PCEP defined in this document, the PCC uses > > the [I-D.ietf-pce-association-group] extension to indicate that a > > group of LSPs are required to be disjoint; such indication should > > include disjointness parameters such as the type of disjointness, > > the disjoint group identifiers, and any customization parameters > > according to the configured local policy. > > > > -- > > > > Figure 2 - Sample use-cases for carrying disjoint-group over PCEP > > session > > > > In this figure, there seems to be a conflict in notation: Case 1 uses > > "PCC" seemingly in the same role for which Case 2 uses "PE 1" and "PE > > 3". The captions of both cases refer to "PCC". > > > > Also, the Case 1 and Case 2 captions run into each other. > > > > Using the disjoint-group within a PCEP messages may have two purpose: > > > > Better would be "The disjoint-group within PCEP messages is used for:" > > > > 5.1. Association Group > > > > As per [I-D.ietf-pce-association-group], LSPs are associated with > > other LSPs with which they interact by adding them to a common > > association group. > > > > To be exact, you want to say "by adding all of them"; by default > > "them" refers only to the "LSPs" that is the subject of the sentence. > > > > The Association parameters, as described in > > [I-D.ietf-pce-association-group] as the combination of the mandatory > > fields Association type, Association ID and Association Source in the > > ASSOCIATION object, that uniquely identify the association group > > belonging to this association. If the optional TLVs - Global > > Association Source or Extended Association ID - are included, then > > they are included in combination with mandatory fields to uniquely > > identify the association group. > > > > Use either "field" or "TLV" consistently (unless the TLVs really are > > different from the "fields"). > > > > This is awkward. Better would be > > > > As described in [I-D.ietf-pce-association-group], the association > > group is uniquely identified by the combination of these fields in > > the ASSOCIATION object: Association Type, Association ID, > > Association Source, and (if present) Global Association Source or > > Extended Association ID. > > > > ... This document defines a new ... > > > > Start a new para with this sentence. > > > > o Association type = TBD1 ("Disjointness Association Type") for > > Disjoint Association Group (DAG). > > > > This seems redundant, unless there exists another type that is also > > associated with Disjoint Association Group (DAG). Otherwise, you can > > probably use > > > > o Association type = TBD1 Disjoint Association Type > > > > -- > > > > This capability exchange for the association type > > described in this document (i.e. Disjointness Association Type) MUST > > be done before using the disjointness association. > > > > This can be simplified to > > > > This capability exchange for Disjointness Association Type MUST > > be done before using the disjointness association. > > > > There seem to be multiple uses of "Disjoint Association Group (DAG)" > > and "Disjointness Association Type (TBD1)", each of which states the > > equivalence of two things. You should be able to use one instance of > > each. Also, it's probably worth putting "Disjointness Association > > Type" into section 2. > > > > This association type is considered to be both dynamic and operator- > > configured in nature. > > > > It might be worth providing references for the meaning of "dynamic" > > and "operator-configured". > > > > A disjoint group can have two or more LSPs, [...] > > > > The significance of this clause to the rest of the sentence is > > unclear; it seems obvious that a disjoint group needs at least two > > members before it is significant. However, as a matter of protocol, > > can a group that has only one LSP be established? > > > > The disjoint status is informed to the PCC. > > > > This seems to be describing how to report to the PCC that the > > computation was not done as requested. I think you want to provide > > more details here, or a pointer to them. In any case, "disjoint > > status" isn't really a clear statement that the error condition will > > be reported. > > > > Associating a particular LSP to multiple disjoint groups is > > authorized from a protocol perspective, however there is no assurance > > that the PCE will be able to compute properly the multi-disjointness > > constraint. > > > > You want to state *much* more clearly what might happen. This starts > > with "A particular LSP MAY be associated to multiple disjoint groups, > > but in that case, the PCE MAY ..." What are the outer boundaries of > > the results that the PCE MAY return? Is the PCE required to provide > > any particular error indication? > > > > 5.2. Disjoint TLVs > > > > See "Major issues" regarding explaining that there is a separate copy > > of DISJOINTNESS-CONFIGURATION-TLV for each LSP, and they needn't all > > be the same. All of the constraints described in the last paragraph > > of section 5.5 should be moved to here, or perhaps section 5.1. > > > > 0 1 2 3 > > 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 > > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > | Type = TBD2 | Length | > > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > | Flags |T|P|S|N|L| > > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > > > > "Flags" should be "Reserved". > > > > * P (Shortest path) bit: when set, this indicates that the > > computed path of the LSP SHOULD satisfy all the constraints and > > objective functions first without considering the diversity > > constraint. ... > > > > See "Major issues" for providing a separate paragraph to explain the > > semantics of the "P" bit. > > > > * T (Strict disjointness) bit: when set, if disjoint paths cannot > > be found, PCE SHOULD return no path for LSPs that could not be > > be disjoint. When unset, the PCE is allowed to relax > > disjointness by either applying a requested objective function > > (cf. Section 5.4 below) or using any other behavior if no > > objective function is requested (e.g. using a lower disjoint > > type (link instead of node) or fully relaxing disjointness > > constraint). Further see Section 5.6 for details. > > > > Instead of "or using any other behavior if no objective function is > > requested" it would be more conventional to say "or, if no objective > > function is requested, using local policy". > > > > The DISJOINTNESS-STATUS-TLV uses the same format as the DISJOINTNESS- > > CONFIGURATION-TLV with a different type TBD3 (in the TLV). The L, N, > > and S flags are set based if the computed path meet the disjointness > > criteria. > > > > Should be "... are set if the respective disjointness criterion was > > requested and the computed paths meet it" > > > > The P flag is set to indicate that the computed path is > > the shortest > > > > Surely "the shortest" needs further explanation -- the shortest path > > that meets what constraints? I suspect that this just reflects the P > > flag in the CONFIGURATION-TLV -- is there a situation where it would > > not? > > > > and the T flag has no meaning in the DISJOINTNESS- > > STATUS-TLV and MUST NOT be set while sending and ignored on receipt. > > > > This clause should be a separate sentence. > > > > Any new flag defined for the DISJOINTNESS-CONFIGURATION-TLV is be > > automatically applicable to the DISJOINTNESS-STATUS-TLV. > > > > This can't be correct, as there is no defined way to automatically > > apply a new flag to DISJOINTNESS-STATUS-TLV. (The previous paragraph > > defines three separate semantics for flags in DISJOINTNESS-STATUS-TLV!) > > But you can say: > > > > Any document defining a new flag for the > > DISJOINTNESS-CONFIGURATION-TLV automatically defines a new flag > > with the same name and in the same location in > > DISJOINTNESS-STATUS-TLV; the semantics of the flag in > > DISJOINTNESS-STATUS-TLV MUST be specified in the document that > > specifies the flag in DISJOINTNESS-CONFIGURATION-TLV. > > > > 5.3. Relationship to SVEC > > > > The PCE would consider both the objects > > > > I think you mean MUST instead of "would". > > > > In case no such path is possible (or the > > constraints are incompatible), the PCE MUST send a path computation > > reply (PCRep) with a NO-PATH object indicating path computation > > failure as per [RFC5440]. > > > > Adding "(or the constraints are incompatible)" to "no such path is > > possible" is redundant! > > > > This discussion is not clear to me. Partly it is because I'm not > > familiar with SVEC. But I suspect that "synchronization of a set of > > path computation requests" means that "the computations have to be > > done together" and "dependent requests" means something similar to the > > constraints between computed paths specified by the > > DISJOINTNESS-CONFIGURATION-TLV. > > > > Is it possible to provide a comparison between the requirements > > specified by SVEC and the requirements specified by > > DISJOINTNESS-CONFIGURATION-TLV? > > > > Also, is there any specific relationship between the set of LSPs in an > > SVEC and the set of LSPs in a disjoint-group? What if multiple SVECs > > and disjoint-groups overlap in a complex way? > > > > 5.4. Disjointness Objective functions > > > > To minimize the common shared resources (Node, Link or SRLG) between > > a set of paths during path computation three new OF-codes are > > proposed: > > > > Actually, the new codes are to allow specification of minimization of > > shared resources. Also, an RFC doesn't just proposed the codes, it > > specifies them. So this is better phrased: > > > > Three new OF-codes allow specification of minimization of common > > shared resources (Node, Link or SRLG) between a set of paths during > > path computation: > > > > -- > > > > MSL > > > > * Name: Minimize the number of shared (common) Links. > > > > * Objective Function Code: TBD4 > > > > * Description: Find a set of paths such that it passes through the > > least number of shared (common) links. > > > > MSS > > > > * Name: Minimize the number of shared (common) SRLGs. > > > > * Objective Function Code: TBD5 > > > > * Description: Find a set of paths such that it passes through the > > least number of shared (common) SRLGs. > > > > MSN > > > > * Name: Minimize the number of shared (common) Nodes. > > > > * Objective Function Code: TBD6 > > > > * Description: Find a set of paths such that it passes through the > > least number of shared (common) nodes. > > > > The use of "it" in the above definitions is unclear, since the paths > > are "they". > > > > There are a number of similar but different ways that "the number of > > shared" entities can be defined. E.g., if four LSPs pass through a > > single node, does that count as 1 (a single node is shared), 4 (four > > LSPs pass through a node that is shared), 6 (six pairs of LSPs > > conflict, in that the paths in the pair share a node)? That is, are > > we counting (and thus minimizing) shared entities, the number of LSPs > > that violate the requested constraint, or the number of pairs of LSPs > > that overlap in an unacceptable way? > > > > If the OF-list TLV is included in the Association Object, the OF-code > > inside the OF Object MUST include one of the disjoint OFs defined in > > this document. If this condition is not met, the PCEP speaker MUST > > respond with a PCErr message with Error-Type=10 (Reception of an > > invalid object) and Error-Value=TBD9 (Incompatible OF code). > > > > I find it surprising that you've defined a specific error code for an > > unexpected OF-code, but you don't apply that error code to the > > situation where there are multiple OF-codes. Instead, you have all > > but the first silently ignored. > > > > There's also the intersection case where the first OF-code is > > legitimate, but the second OF-code is not one in this set. Does that > > get an "Incompatible OF code" error, or is the second one just > > ignored? > > > > I think it's cleaner to change TBD9 to "Incompatible OF-list for > > disjoint-group" and require it for all of these cases. > > > > [RFC5440] uses SVEC diversity flag for node, link or SRLG to describe > > the potential disjointness between the set of path computation > > requests used in PCEP protocol. > > > > This paragraph seems very important, but completely out of place here. > > Might it fit better in section 5.3? > > > > This document defines three new OF-codes to maximize diversity as > > much as possible, in other words, minimize the common shared > > resources (Node, Link or SRLG) between a set of paths. > > > > This paragraph seems redundant after the detailed discussion of these > > codes. > > > > The remaining paragraphs of this section seem like they should go in > > section 5.3. > > > > 5.5. P Flag Considerations > > > > See above queries about the P flag. > > > > As mentioned in Section 5.2, the P flag (when set) indicates that the > > computed path of the LSP SHOULD satisfies all constraints and > > objective functions first without considering the diversity > > constraint. > > > > There are complexities that don't seem to be addressed. E.g., if > > there are two LSPs with P=1 and two with P=0, I would expect that the > > first two would be computed with full consideration of the > > disjointness constraint between them. So "without considering the > > diversity constraint" really isn't a good description of what is > > intended. > > > > 5.6. Disjointness Computation Issues > > > > Also, in case of network event leading to an impossible > > strict disjointness, the PCE MUST send a PCUpd message ... > > > > I think you want to start a new paragraph here and say > > > > In case of a network event which makes it impossible to satisfy the > > constraints, the PCE MUST send a PCUpd message ... > > > > -- > > > > The > > actual level of disjointness computed by the PCE ... > > > > More correct to say > > > > The > > actual level of disjointness of the paths computed by the PCE ... > > > > -- > > > > While the DISJOINTNESS-CONFIGURATION-TLV defines the > > expected level of disjointness required by configuration, the > > DISJOINTNESS-STATUS-TLV defines the actual level of disjointness > > computed. > > > > Better to s/expected/desired/ and s/actual/achieved/. > > > > There are some cases where the PCE may need to completely relax the > > disjointness constraint in order to provide a path to all the LSPs > > that are part of the association. A mechanism that allows the PCE to > > fully relax a constraint is considered by the authors as more global > > to PCEP rather than linked to the disjointness use case. As a > > consequence, it is considered as out of scope of the document. > > > > This para doesn't seem to make any difference. As long as the T bit > > is clear and the local policy allows complete relaxation of the > > requested disjointness, this case is covered within the mechanisms of > > this document. And this case will be reported in a straightforward > > way by a DISJOINTNESS-STATUS-TLV with all bits clear. > > > > 6. Security Considerations > > > > This document defines one new type for association ... > > > > Better "This document defines one new PCEP association type ..." > > > > After para 1, you probably want to add this case: "A spurious LSP can > > have flags that are inconsistent with those of the legitimate LSPs of > > the group and thus cause LSP allocation for the legitimate LSPs to > > fail with an error." > > > > > > _______________________________________________ > > Gen-art mailing list > > Gen-art@xxxxxxxx > > https://www.ietf.org/mailman/listinfo/gen-art > -- last-call mailing list last-call@xxxxxxxx https://www.ietf.org/mailman/listinfo/last-call