RFC 9094
A YANG Data Model for Wavelength Switched Optical Networks (WSONs)
RFC 9094: A YANG Data Model for Wavelength Switched Optical Networks (WSONs) π
okay bestie, RFC 9094 is a Standards Track doc from the IETF, dated August 2021, with ISSN 2070-1721 π¦ The header doesn't list any Obsoletes or Updates lines, so there's nothing it replaces or patches π
- Authors:
- ιε₯½ζ£ (H. Zheng), Huawei Technologies εδΈΊζζ―ζιε ¬εΈ πΈ
- Y. Lee, Samsung β¨
- A. Guo, Futurewei π§
- V. Lopez, Nokia π
- D. King, University of Lancaster π
Abstract
okay so the abstract is giving very direct β¨ it's a YANG data model for the routing and wavelength assignment (RWA) TE topology in Wavelength Switched Optical Networks (WSONs), and it conforms to the Network Management Datastore Architecture (NMDA) π
Status of This Memo
this one is official, not a vibe: it's an Internet Standards Track document π₯ it's a product of the Internet Engineering Task Force (IETF), it represents the consensus of the IETF community, got public review, and was approved for publication by the Internet Engineering Steering Group (IESG) π
more info on Internet Standards is in Section 2 of RFC 7841 π«Ά and the current status, errata, and feedback info lives at https://www.rfc-editor.org/info/rfc9094 π
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved. π
this document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date π read them carefully, because they explain your rights and restrictions. Code Components pulled out of this doc must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as described in the Simplified BSD License π
Table of Contents π
- 1. Introduction
- 1.1. Terminology and Notations
- 1.2. Tree Diagram
- 1.3. Prefix in Data Node Names
- 2. YANG Data Model (Tree Structure) for WSON Topology
- 3. YANG Module for WSON Topology
- 4. Security Considerations
- 5. IANA Considerations
- 6. References
- 6.1. Normative References
- 6.2. Informative References
- Contributors
- Authors' Addresses
1. Introduction β¨
okay the big picture: this doc gives a YANG data model for the routing and wavelength assignment (RWA) Traffic Engineering (TE) topology in transparent Wavelength Switched Optical Networks (WSONs) π¦ it's a WSON technology-specific YANG model, built on the information model from [RFC7446] and the two encoding docs, [RFC7581] and [RFC7579], which made protocol-independent encodings based on [RFC7446] π
[ITU-Tg6982] defines amplified multichannel dense wavelength division multiplexing applications with single-channel optical interfaces πΈ this YANG model points to the standard application mode defined in [ITU-Tg6982] β¨
Not in scope, bestie: neither impairment-aware optical networks nor flexi-grid are covered here π check out [OPT-IMPAIR-AWARE-YANG] for the impairment-aware optical network topology model and [FLEXI-GRID-YANG] for the flexi-grid one. Transponder models and resource block models (e.g., 3R) are also out of scope π
this doc defines one YANG module, "ietf-wson-topology" (Section 3) π and it augments the generic TE topology spec [RFC8795] π§
the apps are honestly iconic π nodes can use the model to capture their own understanding of the overall WSON topology and expose it to a controller, and a controller can pass that topology along to other controllers π«Ά the model is used by NETCONF [RFC6020] [RFC8341] or a RESTCONF [RFC8040] protocol, and it conforms to the Network Management Datastore Architecture [RFC8342] π
1.1. Terminology and Notations
for the key terms, go look at [RFC7446] and [RFC7581] π these terms are defined in [RFC7950] and not redefined here:
- client
- server
- augment
- data model
- data node
these ones are defined in [RFC6241] and not redefined here:
- configuration data
- state data
the terminology for describing YANG data models is in [RFC7950] π
1.2. Tree Diagram
Section 2 of this doc uses a simplified graphical view of the data model π¦ the meaning of the symbols in those diagrams is defined in [RFC8340] β¨
1.3. Prefix in Data Node Names
in this doc, data node names and other data model objects get the standard prefix tied to their imported YANG module, as shown in the table below π
+==========+=======================+===========+
| Prefix | YANG module | Reference |
+==========+=======================+===========+
| l0-types | ietf-layer0-types | [RFC9093] |
+----------+-----------------------+-----------+
| wsont | ietf-wson-topology | RFC 9094 |
+----------+-----------------------+-----------+
| nw | ietf-network | [RFC8345] |
+----------+-----------------------+-----------+
| nt | ietf-network-topology | [RFC8345] |
+----------+-----------------------+-----------+
| tet | ietf-te-topology | [RFC8795] |
+----------+-----------------------+-----------+
Table 1: Data Node Names π
2. YANG Data Model (Tree Structure) for WSON Topology π
okay the tree diagram is giving everything πΈ here's the next chunk, and I kept every line exactly as written π«Ά
module: ietf-wson-topology
augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
+--rw wson-topology!
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes:
+--rw wson-node!
+--rw is-reconfigurable-node? boolean
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:label-restrictions/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:from/tet:label-restrictions
/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:to/tet:label-restrictions
/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:information-source-entry/tet:connectivity-matrices
/tet:label-restrictions/tet:label-restriction:
+--ro grid-type? identityref
+--ro priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:information-source-entry/tet:connectivity-matrices
/tet:connectivity-matrix/tet:from/tet:label-restrictions
/tet:label-restriction:
+--ro grid-type? identityref
+--ro priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:information-source-entry/tet:connectivity-matrices
/tet:connectivity-matrix/tet:to/tet:label-restrictions
/tet:label-restriction:
+--ro grid-type? identityref
+--ro priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:label-restrictions
/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities
/tet:local-link-connectivity/tet:label-restrictions
/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nt:link/tet:te
/tet:information-source-entry/tet:label-restrictions
/tet:label-restriction:
+--ro grid-type? identityref
+--ro priority? uint8
augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction:
+--rw grid-type? identityref
+--rw priority? uint8
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:label-restrictions/tet:label-restriction
/tet:label-start/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:label-restrictions/tet:label-restriction
/tet:label-end/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:label-restrictions/tet:label-restriction
/tet:label-step/tet:technology:
+--:(wson)
+--rw (l0-grid-type)?
+--:(dwdm)
| +--rw wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--rw wson-cwdm-channel-spacing? identityref
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:underlay/tet:primary-path/tet:path-element/tet:type
/tet:label/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:underlay/tet:backup-path/tet:path-element/tet:type
/tet:label/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:optimizations/tet:algorithm/tet:metric
/tet:optimization-metric
/tet:explicit-route-exclude-objects
/tet:route-object-exclude-object/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:optimizations/tet:algorithm/tet:metric
/tet:optimization-metric
/tet:explicit-route-include-objects
/tet:route-object-include-object/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:path-properties/tet:path-route-objects
/tet:path-route-object/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro (single-or-super-channel)?
| +--:(single)
| | +--ro dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:from/tet:label-restrictions
/tet:label-restriction/tet:label-start/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:from/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:from/tet:label-restrictions
/tet:label-restriction/tet:label-step/tet:technology:
+--:(wson)
+--rw (l0-grid-type)?
+--:(dwdm)
| +--rw wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--rw wson-cwdm-channel-spacing? identityref
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:to/tet:label-restrictions
/tet:label-restriction/tet:label-start/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:to/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:to/tet:label-restrictions
/tet:label-restriction/tet:label-step/tet:technology:
+--:(wson)
+--rw (l0-grid-type)?
+--:(dwdm)
| +--rw wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--rw wson-cwdm-channel-spacing? identityref
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:underlay/tet:primary-path
/tet:path-element/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:te-node-attributes/tet:connectivity-matrices
/tet:connectivity-matrix/tet:underlay/tet:backup-path
/tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(wson) +--rw (grid-type)? +--:(dwdm)
| +--rw (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--rw dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--rw cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:te-node-attributes/tet:connectivity-matrices /tet:connectivity-matrix/tet:optimizations/tet:algorithm /tet:metric/tet:optimization-metric /tet:explicit-route-exclude-objects /tet:route-object-exclude-object/tet:type/tet:label /tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--rw (grid-type)? +--:(dwdm)
| +--rw (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--rw dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--rw cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:te-node-attributes/tet:connectivity-matrices /tet:connectivity-matrix/tet:optimizations/tet:algorithm /tet:metric/tet:optimization-metric /tet:explicit-route-include-objects /tet:route-object-include-object/tet:type/tet:label /tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--rw (grid-type)? +--:(dwdm)
| +--rw (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--rw dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--rw cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:te-node-attributes/tet:connectivity-matrices /tet:connectivity-matrix/tet:path-properties /tet:path-route-objects/tet:path-route-object/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:label-restrictions/tet:label-restriction /tet:label-start/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:label-restrictions/tet:label-restriction /tet:label-end/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:label-restrictions/tet:label-restriction /tet:label-step/tet:technology: +--:(wson) +--ro (l0-grid-type)? +--:(dwdm)
| +--ro wson-dwdm-channel-spacing? identityref |
+--:(cwdm) +--ro wson-cwdm-channel-spacing? identityref augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:underlay/tet:primary-path/tet:path-element/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:underlay/tet:backup-path/tet:path-element/tet:type /tet:label/tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:optimizations/tet:algorithm/tet:metric /tet:optimization-metric /tet:explicit-route-exclude-objects /tet:route-object-exclude-object/tet:type/tet:label /tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:optimizations/tet:algorithm/tet:metric /tet:optimization-metric /tet:explicit-route-include-objects /tet:route-object-include-object/tet:type/tet:label /tet:label-hop/tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:path-properties/tet:path-route-objects /tet:path-route-object/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:from/tet:label-restrictions /tet:label-restriction/tet:label-start/tet:te-label /tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:from/tet:label-restrictions /tet:label-restriction/tet:label-end/tet:te-label /tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:from/tet:label-restrictions /tet:label-restriction/tet:label-step/tet:technology: +--:(wson) +--ro (l0-grid-type)? +--:(dwdm)
| +--ro wson-dwdm-channel-spacing? identityref |
+--:(cwdm) +--ro wson-cwdm-channel-spacing? identityref augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:to/tet:label-restrictions /tet:label-restriction/tet:label-start/tet:te-label /tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:to/tet:label-restrictions /tet:label-restriction/tet:label-end/tet:te-label /tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:to/tet:label-restrictions /tet:label-restriction/tet:label-step/tet:technology: +--:(wson) +--ro (l0-grid-type)? +--:(dwdm)
| +--ro wson-dwdm-channel-spacing? identityref |
+--:(cwdm) +--ro wson-cwdm-channel-spacing? identityref augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:underlay/tet:primary-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) | |
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n |
+--:(cwdm) +--ro cwdm-n? l0-types:cwdm-n augment /nw:networks/nw:network/nw:node/tet:te /tet:information-source-entry/tet:connectivity-matrices /tet:connectivity-matrix/tet:underlay/tet:backup-path /tet:path-element/tet:type/tet:label/tet:label-hop /tet:te-label/tet:technology: +--:(wson) +--ro (grid-type)? +--:(dwdm)
| +--ro (single-or-super-channel)? | |
|---|---|
| +--:(single) | |
| +--ro dwdm-n? l0-types:dwdm-n | |
| +--:(super) |
okay bestie, we're picking up mid-tree π this next bit is all the WSON augments hanging off the tunnel-termination-point and local-link-connectivity branches, and the diagrams are literally giving symmetry π¦
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:information-source-entry/tet:connectivity-matrices
/tet:connectivity-matrix/tet:optimizations/tet:algorithm
/tet:metric/tet:optimization-metric
/tet:explicit-route-exclude-objects
/tet:route-object-exclude-object/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro (single-or-super-channel)?
| +--:(single)
| | +--ro dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:information-source-entry/tet:connectivity-matrices
/tet:connectivity-matrix/tet:optimizations/tet:algorithm
/tet:metric/tet:optimization-metric
/tet:explicit-route-include-objects
/tet:route-object-include-object/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro (single-or-super-channel)?
| +--:(single)
| | +--ro dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:information-source-entry/tet:connectivity-matrices
/tet:connectivity-matrix/tet:path-properties
/tet:path-route-objects/tet:path-route-object/tet:type
/tet:label/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro (single-or-super-channel)?
| +--:(single)
| | +--ro dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:label-restrictions
/tet:label-restriction/tet:label-start/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:label-restrictions
/tet:label-restriction/tet:label-step/tet:technology:
+--:(wson)
+--rw (l0-grid-type)?
+--:(dwdm)
| +--rw wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--rw wson-cwdm-channel-spacing? identityref
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:underlay
/tet:primary-path/tet:path-element/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:underlay
/tet:backup-path/tet:path-element/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:optimizations
/tet:algorithm/tet:metric/tet:optimization-metric
/tet:explicit-route-exclude-objects
/tet:route-object-exclude-object/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities/tet:optimizations
/tet:algorithm/tet:metric/tet:optimization-metric
/tet:explicit-route-include-objects
/tet:route-object-include-object/tet:type/tet:label
/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
ngl the nesting is doing SO much here π
β¨ the way the (wson) branch keeps showing up with its (grid-type) and (dwdm) / (cwdm) choices is so iconic π§ π
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nw:node/tet:te
/tet:tunnel-termination-point
/tet:local-link-connectivities
/tet:local-link-connectivity/tet:path-properties
/tet:path-route-objects/tet:path-route-object/tet:type
/tet:label/tet:label-hop/tet:te-label/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro (single-or-super-channel)?
| +--:(single)
| | +--ro dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--ro subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/tet:underlay/tet:primary-path
/tet:path-element/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/tet:underlay/tet:backup-path
/tet:path-element/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction/tet:label-start/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction/tet:label-step/tet:technology:
+--:(wson)
+--rw (l0-grid-type)?
+--:(dwdm)
| +--rw wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--rw wson-cwdm-channel-spacing? identityref
augment /nw:networks/nw:network/nt:link/tet:te
/tet:information-source-entry/tet:label-restrictions
/tet:label-restriction/tet:label-start/tet:te-label
/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:information-source-entry/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label
/tet:technology:
+--:(wson)
+--ro (grid-type)?
+--:(dwdm)
| +--ro dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--ro cwdm-n? l0-types:cwdm-n
augment /nw:networks/nw:network/nt:link/tet:te
/tet:information-source-entry/tet:label-restrictions
/tet:label-restriction/tet:label-step/tet:technology:
+--:(wson)
+--ro (l0-grid-type)?
+--:(dwdm)
| +--ro wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--ro wson-cwdm-channel-spacing? identityref
augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:underlay/tet:primary-path
/tet:path-element/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:underlay/tet:backup-path
/tet:path-element/tet:type/tet:label/tet:label-hop
/tet:te-label/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw (single-or-super-channel)?
| +--:(single)
| | +--rw dwdm-n? l0-types:dwdm-n
| +--:(super)
| +--rw subcarrier-dwdm-n* l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction/tet:label-start/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction/tet:label-end/tet:te-label
/tet:technology:
+--:(wson)
+--rw (grid-type)?
+--:(dwdm)
| +--rw dwdm-n? l0-types:dwdm-n
+--:(cwdm)
+--rw cwdm-n? l0-types:cwdm-n
augment /nw:networks/tet:te/tet:templates/tet:link-template
/tet:te-link-attributes/tet:label-restrictions
/tet:label-restriction/tet:label-step/tet:technology:
+--:(wson)
+--rw (l0-grid-type)?
+--:(dwdm)
| +--rw wson-dwdm-channel-spacing? identityref
+--:(cwdm)
+--rw wson-cwdm-channel-spacing? identityref
3. YANG Module for WSON Topology β¨
Okay bestie, this is the actual YANG module, the real code you can copy and drop into your tools π»π«Ά It's a whole vibe: it imports the generic TE topology modules and then layers the WSON stuff on top, so the wavelength details come along for the ride π Every line is copied exactly as written, because a module is only useful if it's perfect π β¨
<CODE BEGINS> file "ietf-wson-topology@2021-08-13.yang"
module ietf-wson-topology {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-wson-topology";
prefix wsont;
import ietf-network {
prefix nw;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-network-topology {
prefix nt;
reference
"RFC 8345: A YANG Data Model for Network Topologies";
}
import ietf-te-topology {
prefix tet;
reference
"RFC 8795: YANG Data Model for
Traffic Engineering (TE) Topologies";
}
import ietf-layer0-types {
prefix l0-types;
reference
"RFC 9093: A YANG Data Model for Layer 0 Types";
}
organization
"IETF CCAMP Working Group";
contact
"WG Web: <https://datatracker.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org>
Editor: Haomian Zheng <zhenghaomian@huawei.com>
Editor: Young Lee <younglee.tx@gmail.com>
Editor: Aihua Guo <aihuaguo.ietf@gmail.com>
Editor: Victor Lopez <victor.lopez@nokia.com>
Editor: Daniel King <d.king@lancaster.ac.uk>";
description
"This module provides a YANG data model for the routing and
wavelength assignment (RWA) Traffic Engineering (TE)
topology in Wavelength Switched Optical Networks (WSONs).
The YANG data model described in this document is a WSON
technology-specific YANG data model augmenting the generic TE
topology module (ietf-te-topology) based on the information
model developed in RFC 7446 and the two encoding documents
RFC 7579 and RFC 7581.
Copyright (c) 2021 IETF Trust and the persons identified
as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with
or without modification, is permitted pursuant to, and
subject to the license terms contained in, the Simplified
BSD License set forth in Section 4.c of the IETF Trust's
Legal Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 9094; see
the RFC itself for full legal notices.";
revision 2021-08-13 {
description
"Initial version";
reference
"RFC 9094: A YANG Data Model for Wavelength Switched
Optical Networks (WSONs)";
}
/*
* Data nodes
*/
augment "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology" {
description
"Augment network types to define the WSON topology type.";
container wson-topology {
presence "Its presence identifies the WSON topology type.";
description
"Introduce a new network type for WSON topology.";
}
}
augment "/nw:networks/nw:network/nw:node/tet:te"
+ "/tet:te-node-attributes" {
when '/nw:networks/nw:network/nw:network-types'
+ '/tet:te-topology/wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE node attributes.";
container wson-node {
presence "The TE node is a WSON node.";
description
"WSON node attributes";
leaf is-reconfigurable-node {
type boolean;
default "true";
description
"Indicates whether the WSON node is reconfigurable:
- true: the node is reconfigurable, i.e.,
it is representing a Reconfigurable Optical
Add/Drop Multiplexer (ROADM) node;
- false: the node is not reconfigurable, i.e.,
it is representing a Fixed Optical Add/Drop
Multiplexer (FOADM) node.";
}
}
}
/*
* Augment TE label range information
*/
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the TE node
connectivity matrices.";
uses l0-types:l0-label-range-info;
}
Okay, these augments are where the WSON label stuff really gets wired into the TE tree π
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the source LTP
of the connectivity matrix entry.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the destination LTP
of the connectivity matrix entry.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/"
+ "tet:connectivity-matrices/tet:label-restrictions/"
+ "tet:label-restriction" {
when '../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the TE node
connectivity matrices information source.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:from/tet:label-restrictions/tet:label-restriction" {
when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the source LTP
of the connectivity matrix entry information source.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:to/tet:label-restrictions/tet:label-restriction" {
when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the destination LTP
of the connectivity matrix entry information source.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the Tunnel
Termination Point (TTP) Local Link Connectivities.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the TTP
Local Link Connectivity entry.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the TE link.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/"
+ "tet:label-restrictions/tet:label-restriction" {
when '../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range information for the TE link
information source.";
uses l0-types:l0-label-range-info;
}
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction" {
description
"Augment TE label range information for the TE link template.";
uses l0-types:l0-label-range-info;
}
/*
* Augment TE label
*/
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the TE node
connectivity matrices.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:label-restrictions/"
+ "tet:label-restriction/tet:label-end/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the TE node
connectivity matrices.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:label-restrictions/"
+ "tet:label-restriction/tet:label-step/"
+ "tet:technology" {
when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the TE node
connectivity matrices.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:underlay/tet:primary-path/tet:path-element/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path of the
TE node connectivity matrices.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:underlay/tet:backup-path/tet:path-element/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path of the
TE node connectivity matrices.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects excluded
by the path computation of the TE node connectivity
matrices.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-include-objects/"
+ "tet:route-object-include-object/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects included
by the path computation of the TE node connectivity
matrices.";
case wson {
uses l0-types:wson-label-hop;
}
}
Okay bestie, these augment statements are where the WSON label stuff gets plugged into the connectivity matrices π§π
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the computed path route objects
of the TE node connectivity matrices.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the source LTP
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the source LTP
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:from/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/"
+ "tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the source LTP
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the destination LTP
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the destination LTP
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:to/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/"
+ "tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the destination LTP
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:underlay/tet:primary-path/tet:path-element/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:underlay/tet:backup-path/tet:path-element/"
+ "tet:type/tet:label/tet:label-hop/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:optimizations/"
+ "tet:algorithm/tet:metric/tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects excluded
by the path computation of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/tet:optimizations/"
+ "tet:algorithm/tet:metric/tet:optimization-metric/"
+ "tet:explicit-route-include-objects/"
+ "tet:route-object-include-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects included
by the path computation of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the computed path route objects
of the connectivity matrix entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/"
+ "tet:connectivity-matrices/tet:label-restrictions/"
+ "tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the TE node connectivity
matrices information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/"
+ "tet:connectivity-matrices/tet:label-restrictions/"
+ "tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the TE node connectivity
matrices information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/"
+ "tet:connectivity-matrices/tet:label-restrictions/"
+ "tet:label-restriction/"
+ "tet:label-step/tet:technology" {
when '../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the TE node connectivity
matrices information source.";
case wson {
uses l0-types:wson-label-step;
}
}
Okay bestie, this part is all about augments π They bolt WSON label details onto the TE node connectivity matrices, but only when the network's topology type is WSON π¦
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path
of the TE node connectivity matrices of the information
source entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path
of the TE node connectivity matrices of the information
source entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects excluded
by the path computation of the TE node connectivity matrices
information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-include-objects/"
+ "tet:route-object-include-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects included
by the path computation of the TE node connectivity matrices
information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the computed path route objects
of the TE node connectivity matrices information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:from/tet:label-restrictions/"
+ "tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the source LTP
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:from/tet:label-restrictions/"
+ "tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the source LTP
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:from/tet:label-restrictions/"
+ "tet:label-restriction/"
+ "tet:label-step/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the source LTP
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:to/tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the destination LTP
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:to/tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the destination LTP
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:to/tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the destination LTP
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects excluded
by the path computation of the connectivity matrix entry
information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
okay bestie, this part is pure augment statements, so the code stays exactly as written π β¨
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-include-objects/"
+ "tet:route-object-include-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects included
by the path computation of the connectivity matrix entry
information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix/"
+ "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the computed path route objects
of the connectivity matrix entry information source.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the TTP
Local Link Connectivities.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/"
+ "tet:te-label/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the TTP
Local Link Connectivities.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/"
+ "tet:technology" {
when '../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the TTP
Local Link Connectivities.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path
of the TTP Local Link Connectivities.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path
of the TTP Local Link Connectivities.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects excluded
by the path computation of the TTP Local Link
Connectivities.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-include-objects/"
+ "tet:route-object-include-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects included
by the path computation of the TTP Local Link
Connectivities.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the computed path route objects
of the TTP Local Link Connectivities.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the TTP
Local Link Connectivity entry.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
when '../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the TTP
Local Link Connectivity entry.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the TTP
Local Link Connectivity entry.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path
of the TTP Local Link Connectivity entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path
of the TTP Local Link Connectivity entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-exclude-objects/"
+ "tet:route-object-exclude-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects excluded
by the path computation of the TTP Local Link
Connectivity entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:optimizations/tet:algorithm/tet:metric/"
+ "tet:optimization-metric/"
+ "tet:explicit-route-include-objects/"
+ "tet:route-object-include-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the explicit route objects included
by the path computation of the TTP Local Link
Connectivity entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities/"
+ "tet:local-link-connectivity/"
+ "tet:path-properties/tet:path-route-objects/"
+ "tet:path-route-object/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the computed path route objects
of the TTP Local Link Connectivity entry.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay primary path
of the TE link.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
when '../../../../../../../../'
+ 'nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label hop for the underlay backup path
of the TE link.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the TE link.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the TE link.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/tet:technology" {
when '../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the TE link.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range start for the TE link
information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
when '../../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range end for the TE link
information source.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/nw:network/nt:link/tet:te/"
+ "tet:information-source-entry/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/tet:technology" {
when '../../../../../../nw:network-types/tet:te-topology/'
+ 'wsont:wson-topology' {
description
"Augmentation parameters apply only for networks with
WSON topology type.";
}
description
"Augment TE label range step for the TE link
information source.";
case wson {
uses l0-types:wson-label-step;
}
}
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
description
"Augment TE label hop for the underlay primary path
of the TE link template.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
+ "tet:label/tet:label-hop/tet:te-label/tet:technology" {
description
"Augment TE label hop for the underlay backup path
of the TE link template.";
case wson {
uses l0-types:wson-label-hop;
}
}
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-start/tet:te-label/tet:technology" {
description
"Augment TE label range start for the TE link template.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-end/tet:te-label/tet:technology" {
description
"Augment TE label range end for the TE link template.";
case wson {
uses l0-types:wson-label-start-end;
}
}
augment "/nw:networks/tet:te/tet:templates/"
+ "tet:link-template/tet:te-link-attributes/"
+ "tet:label-restrictions/tet:label-restriction/"
+ "tet:label-step/tet:technology" {
description
"Augment TE label range step for the TE link template.";
case wson {
uses l0-types:wson-label-step;
}
}
}
<CODE ENDS>
4. Security Considerations π
Okay bestie, security time, and this part is serious but still very much my vibe π The YANG module in this doc defines a schema for data that's meant to be reached through network management protocols like NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC8446] π
The NETCONF over SSH spec [RFC6242] describes a method for invoking and running NETCONF inside an SSH session as an SSH subsystem. Then there's the NETCONF access control model [RFC8341], which is giving gatekeeper energy: it lets you restrict particular NETCONF or RESTCONF users to a preconfigured subset of all the available protocol operations and content π¦
Now the spicy part πΆοΈ A bunch of data nodes in this module are writable, creatable, and deletable (that's config true, which is the default). These nodes may be considered sensitive or vulnerable in some network environments. Write operations, like edit-config, aimed at these nodes without proper protection can have a negative effect on network operations.
Translation: if anyone can edit these without proper protection, your network can get messed up, and that's not a vibe π
Considerations in Section 8 of [RFC8795] also apply to the module defined in this document π«Ά
Some of the readable data nodes in this module may also be considered sensitive or vulnerable in some network environments. So it's important to control read access to them, for example via get, get-config, or notification. Considerations in Section 8 of [RFC8795] apply here too π
Finally, the YANG module in this document augments the "ietf-network" YANG module [RFC8345] and the "ietf-te-topology" YANG module [RFC8795] by adding data nodes. The security considerations for the subtrees described in those RFCs apply equally to the new data nodes this module adds. So the same protections you'd use there cover these new nodes too, no extra drama needed π
5. IANA Considerations β¨
okay so IANA is the org that keeps the Internet's official lists, and they made some brand-new entries for this doc π they got a new URI from the "IETF XML Registry" [RFC3688], and it looks like this π
URI: urn:ietf:params:xml:ns:yang:ietf-wson-topology
Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace.
this doc also registers a YANG module in the "YANG Module Names" registry [RFC7950] [RFC6020] π¦ the entry is:
Name: ietf-wson-topology
Namespace: urn:ietf:params:xml:ns:yang:ietf-wson-topology
Prefix: wsont
Reference: RFC 9094
6. References π
6.1. Normative References π₯
these are the sources the doc literally needs to be read π here they are, every detail:
[ITU-Tg6982]
ITU-T, "Amplified multichannel dense wavelength division
multiplexing applications with single channel optical
interfaces", ITU-T Recommendation G.698.2, November 2018.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010,
<https://www.rfc-editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>.
[RFC7579] Bernstein, G., Ed., Lee, Y., Ed., Li, D., Imajuku, W., and
J. Han, "General Network Element Constraint Encoding for
GMPLS-Controlled Networks", RFC 7579,
DOI 10.17487/RFC7579, June 2015,
<https://www.rfc-editor.org/info/rfc7579>.
[RFC7581] Bernstein, G., Ed., Lee, Y., Ed., Li, D., Imajuku, W., and
J. Han, "Routing and Wavelength Assignment Information
Encoding for Wavelength Switched Optical Networks",
RFC 7581, DOI 10.17487/RFC7581, June 2015,
<https://www.rfc-editor.org/info/rfc7581>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>.
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>.
[RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N.,
Ananthakrishnan, H., and X. Liu, "A YANG Data Model for
Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March
2018, <https://www.rfc-editor.org/info/rfc8345>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>.
[RFC8795] Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and
O. Gonzalez de Dios, "YANG Data Model for Traffic
Engineering (TE) Topologies", RFC 8795,
DOI 10.17487/RFC8795, August 2020,
<https://www.rfc-editor.org/info/rfc8795>.
[RFC9093] Zheng, H., Lee, Y., Guo, A., Lopez, V., and D. King, "A
YANG Data Model for Layer 0 Types", RFC 9093,
DOI 10.17487/RFC9093, August 2021,
<https://www.rfc-editor.org/info/rfc9093>.
6.2. Informative References πΈ
these ones are extra reading, good to know but not required π§
[FLEXI-GRID-YANG]
Lopez de Vergara, J., Perdices Burrero, D., King, D., Lee,
Y., and H. Zheng, "A YANG Data Model for Flexi-Grid
Optical Networks", Work in Progress, Internet-Draft,
draft-ietf-ccamp-flexigrid-yang-10, 12 July 2021,
<https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
flexigrid-yang-10>.
[OPT-IMPAIR-AWARE-YANG]
Lee, Y., Le Rouzic, E., Lopez, V., Galimberti, G., and D.
Beller, "A YANG Data Model for Optical Impairment-aware
Topology", Work in Progress, Internet-Draft, draft-ietf-
ccamp-optical-impairment-topology-yang-07, 8 July 2021,
<https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
optical-impairment-topology-yang-07>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>.
[RFC7446] Lee, Y., Ed., Bernstein, G., Ed., Li, D., and W. Imajuku,
"Routing and Wavelength Assignment Information Model for
Wavelength Switched Optical Networks", RFC 7446,
DOI 10.17487/RFC7446, February 2015,
<https://www.rfc-editor.org/info/rfc7446>.
Contributors π«Ά
Dhruv Dhody
Huawei Technologies
Email: dhruv.ietf@gmail.com
Bin Yeong Yoon
ETRI
Email: byyun@etri.re.kr
Ricard Vilalta
CTTC
Email: vricard.vilalta@cttc.es
Italo Busi
Huawei Technologies
Email: Italo.Busi@huawei.com
Authors' Addresses π
the authors, with their contact details π
Haomian Zheng
Huawei Technologies
H1, Huawei Xiliu Beipo Village, Songshan Lake
Dongguan
Guangdong, 523808
China
Email: zhenghaomian@huawei.com
Additional contact information:
ιε₯½ζ£
δΈε½
523808
εΉΏδΈ δΈθ
ζΎε±±ζΉεδΈΊζΊͺζ΅θε‘ζH1
εδΈΊζζ―ζιε
¬εΈ
Young Lee
Samsung
South Korea
Email: younglee.tx@gmail.com
Aihua Guo
Futurewei
Email: aihuaguo.ietf@gmail.com
Victor Lopez
Nokia
Email: victor.lopez@nokia.com
Daniel King
University of Lancaster
Email: d.king@lancaster.ac.uk
π¦ where this page comes from
- ietf: rfc9094 2021-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms