Benjamin Kaduk has entered the following ballot position for draft-ietf-pce-wson-rwa-ext-11: 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-wson-rwa-ext/ ---------------------------------------------------------------------- DISCUSS: ---------------------------------------------------------------------- I'm concerned that this is not sufficiently specified to be implementable in an interoperable fashion. In particular, I'm concerned that there need to be some values allocated from IANA registries that are not currently mentioned in this document, and there are some potential subtleties surrounding data structure reuse that I'm not entirely sure about as well. I include section-by-section comments in this DISCUSS section (populated by duplicating my COMMENT section and trimming; my apologies is a comment is duplicated in both ballot sections by mistake). Section 4.1 Additionally, given a range of potential labels to allocate, the request SHOULD convey the heuristic / mechanism to the allocation. I can't tell which protocol interaction is being described here. <PCReq Message> ::= <Common Header> [<svec-list>] <request-list> Where: <request-list>::=<request>[<request-list>] <request>::= <RP> <ENDPOINTS> <WA> [other optional objects...] Is this intended to conform to any particular formal language, or is it an ad hoc description? Where is <svec-list> defined? (RFC 5440 spells it as "<END-POINTS>" and not "<ENDPOINTS>", BTW.) If the WA object is present in the request, it MUST be encoded after the ENDPOINTS object as defined in [PCEP-GMPLS]. Orderings with respect to the other following objects are irrelevant. The prose and the figure do not exactly match up in this regard (is WA optional or mandatory; does <WA> need to be the first of the optional objects?). . Wavelength Selection TLV (32 bits): See Section 4.2 for details. Either this is a proper TLV, in which case it has 32 bits of tag and length plus an additional 32 bits of value, for 64 bits total, or it is not a TLV and comprises solely of the "value" field of the Wavelength Selection Sub-TLV. Section 8.2 allocates a TLV type indicator for it, which suggests that the full TLV encoding is intended; where are the 32 bits for type and length reflected in this text and in the figure? Section 4.3 The Wavelength Restriction Constraint TLV type is TBD3 (See Section 8.3). This TLV MAY appear more than once to be able to specify multiple restrictions. This is in conflict with the diagram in Section 4.1 (which does not appear to depict multiple occurrences). It's also unclear that the stated reasoning applies, since the RBNF indicates that (<Link Identifiers> <Wavelength Restriction>) can repeat, so the need for multiple TLVs is for different *action* (and count) rather than specifically for the wavelength restrictions. How are future "Action" values to be defined? Various encoding errors are possible with this TLV (e.g., not exactly two link identifiers with the range case, unknown identifier types, no matching link for a given identifier, etc.). To indicate errors associated with this type, a new Error-Type (TBD8) and an Error-value (Error-value=3) MUST be defined so that the PCE MUST send a PCErr message with a PCEP-ERROR Object. See Section 5.1 for the details. This normative language is not appropriate -- it in effect is only constraining the current document, so descriptive language of "a new error type is assigned" is more appropriate. What is the mechanism for extensibility of future Link Identifier sub-TLV types? Should there be a registry? Section 4.3.2 RFC 6205 says that the "Identifier" is a per-node assigned and scoped value that may change on a per-hop basis. I don't see where our base label gets scoped to a node (just that it's part of a PCReq message which does not seem scoped to a node), so this seems problematic. Section 4.4 The END-POINTS type generalized endpoint is extended as follows: <endpoint-restrictions> ::= <LABEL-REQUEST> <Wavelength Restriction Constraint> [<signal-compatibility-restriction>...] Where is the original <endpoint-restrictions> definition that is being updated? (Why does this definition not include the <label-restriction-list> component from [PCEP-GMPLS]?) Why is there no Updates: relationship to reflect this extension? Is <Wavelength Restriction Constraint> supposed to be the same TLV as defined in Section 4.3.2 without a separate containing PCEP object? Per [PCEP-GMPLS], <LABEL-REQUEST> is a TLV. Does that not also mean that <Wavelength Restriction Constraint> and <signal-compatibility-restriction> need to be (comprised of) sibling TLVs? This document allocates a TLV type for Wavelength Restriction Constraint in Section 8.3, but the references to RFC 7581 for <Optical Interface Class List> and <Client Signal Information> seem to only be for the encoding of sub-TLVs, with sub-TLV values that live in the separate "Types for Subfields of WSON Resource Block Information" registry and are in a colliding namespace. Don't we need to allocate TLV values from the same place as <LABEL-REQUEST> (i.e., first-level PCEP TLVs) in order for this to be en/decodable? Section 4.4.1 The permitted sub-sub objects are the Optical Interface Class List and the Client Signal information whose encodings are described in Section 4.1 and Section 4.2 of [RFC7581], respectively. Similarly to for the <endpoint-restrictions>, don't we need to allocate XRO Subobject values in order for these structures to be semantically en/decodable? Section 4.4.2 This is supported by adding the sub-object "WSON Processing Hop Attribute TLV" defined for ERO in Section 4.2 [RFC7689] to the PCEP IRO object [RFC5440]. The referenced structure is defined as an RSVP-TE LSP attribute. I cannot find any evidence that its usage in PCEP is defined, nor any TLV or subobject type allocated for its usage with PCEP. (Is there some generic equivalence or mapping between (G)MPLS EROs and IROs and the PCEP analogues that I haven't encountered yet?) Don't we need to allocate an IRO Subobject value for this usage in a PCEP IRO object? Also, the WSON Processing Hop Attribute field is encoded as a sequence of sub-TLVs; if we want to reuse the same sub-TLVs from the existing usage, don't we need to document the linkage from the existing registry to the new usage somewhere? How does the error handling translate to PCEP usage? This seems rather underspecified. Section 5 I'm very confused by the structure definition. It claims to be the "TLV data", but also includes a type and length field so as to indicate that it is not just the data contents but the header as well. But the length field is truncated by a bit for use as the 'M' flag -- how can we modify the outer TLV header in this way?! Section 8.4 indicates that this type value is to be allocated from the "PCEP TLV Type Indicators" subregistry created by RFC 5440, that uses the full 2 bytes for the "length" field. Section 5.1 This section describes an Error-value=3 that is not reflected in Section 8.8 in the requests to IANA. Section 8.5 Isn't this mentioned in Section 4.4 (not 4.3)? Section 8.6 As above, isn't this mentioned in Section 4.4 (not 4.3)? ---------------------------------------------------------------------- COMMENT: ---------------------------------------------------------------------- Section 3 A Lambda Switch Capable (LSC) Label Switched Path (LSP) may span one or several transparent segments, which are delimited by 3R regenerators (Re-amplification, Re-shaping, Re-timing) typically with electronic regenerator and optional wavelength conversion. Each transparent segment or path in WSON is referred to as an optical path. An optical path may span multiple fiber links and the path should be assigned the same wavelength for each link. In such case, the optical path is said to satisfy the wavelength-continuity constraint. Figure 1 illustrates the relationship between a LSC LSP and transparent segments (optical paths). Some nit-level remarks: using "optical path" for both transparent segments and paths is perhaps confusing; perhaps "an optical path in WSON refers to a transparent pathe that can comprise of one or more segments". If the path "should be assigned the same wavelength for each link", what kind of constraint is that? Is it just a nice "feel-good" thing for humans, is there some physical requirement for it, does it make planning simpler? I understand that this is lowercase and thus not intended to be normative, but on first read it feels like the implication is that there is some aspect of the physics that drives this to be the case; I don't actually believe that to be true, though. What entities would care if the "wavelength-continuity constraint" is satisfied? (That is, is it really a "constraint" or more of a "property"?) I'm a little confused by Figure 1, shich weems to imply by link labels that the middle nodes that are not makred "(3R)" are LSC nodes, but isn't it the case that if these nodes make use of their lamda switching capabilities that they will cease to be transparent and instead also be 3Rs? Note that two optical paths within a WSON LSP do not need to operate on the same wavelength (due to the wavelength conversion capabilities). Two optical paths that share a common fiber link cannot be assigned the same wavelength; Otherwise, the two signals Are these "two optical paths" part of the same or different LSPs? My best reading of the two instances of the phrase are that the first one is the same LSP and the second usage is for different LSPs, which is pretty confusing to the reader (if true). Please expand PSC and TDM. In order to improve the signal quality and limit some optical effects several advanced modulation processing capabilities are used. [...] Used by this document specifically, or in general usage? This document, however, does not address optical impairments as part of RWA path computation. Do we need a link/reference for "optical impairments"? Section 4.1 o Reserved (16 bits): Reserved for future use and SHOULD be zeroed. Do we also want to say "ignored on receipt"? Please expand TED and NMS (IGP is "well-known" per https://www.rfc-editor.org/materials/abbrev.expansion.txt). Section 4.3 Note that "interfaces" are assumed to be bidirectional. You haven't used the term "interface" (with or without scare quotes) yet, so this is a dangling reference. How are future "Action" values to be defined? o Reserved (16 bits): Reserved for future use and SHOULD be zeroed. And ignored on receipt? Section 4.3.2 If you're going to copy the Label Set format here from RFC 7579, maybe you could say something like "repeated here for convenience, with the base label internal structure included" to spare the reader from having to go compare the two formats? This also holds for the list of Action values and the other field descriptions not already incorporated from RFC 7579 by reference. RFC 6205 says that the "Identifier" is a per-node assigned and scoped value that may change on a per-hop basis. I don't see where our base label gets scoped to a node (just that it's part of a PCReq message which does not seem scoped to a node), so this seems problematic. Section 4.4 Path computation for WSON includes checking of signal processing capabilities at each interface against requested capability; this requirement MAY be implemented by the IGP. [...] How is the IGP supposed to check the processing capabilities of an interface against a given request? I'd suggest rephrasing this text to parallel the text in Section 4.3 about how mechanisms to know the interface capabilities can include IGP or NMS. The supported signal processing capabilities are those described in [RFC7446]: "Supported by what?" Perhaps rephrase as "The signal processing capabilities considered in the RWA Information Model [RFC7446] are:". Section 4.4.1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |X| Type = X | Length | Reserved | Attribute | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I strongly suggest using a different placeholder than 'X' in "Type = X" since there is a separate 'X' bit. Reserved bits (8 bits) are for future use and SHOULD be zeroed. And ignored on receipt? The Attribute field (8 bits) indicates how the exclusion sub-object is to be interpreted. The Attribute can only be 0 (Interface) or 1 (Node). I would suggest phrasing this more like "[RFC5521] defines several Attribute values; the only permitted Attribute values for this sub-object are [...]". Section 4.4.2 This is supported by adding the sub-object "WSON Processing Hop Attribute TLV" defined for ERO in Section 4.2 [RFC7689] to the PCEP IRO object [RFC5440]. The referenced structure is defined as an RSVP-TE LSP attribute. I cannot find any evidence that its usage in PCEP is defined, nor any TLV or subobject type allocated for its usage with PCEP. (Is there some generic equivalence or mapping between (G)MPLS EROs and IROs and the PCEP analogues that I haven't encountered yet?) Don't we need to allocate an IRO Subobject value for this usage in a PCEP IRO object? Also, the WSON Processing Hop Attribute field is encoded as a sequence of sub-TLVs; if we want to reuse the same sub-TLVs from the existing usage, don't we need to document the linkage from the existing registry to the new usage somewhere? How does the error handling translate to PCEP usage? This seems rather underspecified. Section 5 Option (b) allows distributed label allocation (performed during signaling) to complete wavelength allocation. The Wavelength Allocation TLV type is TBD4 (See Section 8.4). The TLV data is defined as follows: Could you maybe give a bit more of transition/explanation, e.g., whether this TLV is used for both (a) and (b), that it's a hop attribute that appears in a TLV in the ERO's TLV list, etc. This TLV is encoded as an attributes TLV, per [RFC5420], which is carried in the ERO LSP Attribute Subobjects per [RFC7570]. RFC 7570 seems to call these "Hop Attribute Subobjects", if I'm finding the right place. Using consistent naming would be a big help to the (confused) reader. Section 6 Thank you for the Manageability Considerations section; it helps give a picture of how this slots into the broader ecosystem. _______________________________________________ Pce mailing list Pce@ietf.org https://www.ietf.org/mailman/listinfo/pce