RFC 9094

A YANG Data Model for Wavelength Switched Optical Networks (WSONs)

πŸ“… published August 2021, from ietf

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 (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