module ietf-te-topology-state { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology-state"; prefix tet-s; import ietf-te-types { prefix te-types; reference "RFC 8776: Common YANG Data Types for Traffic Engineering"; } import ietf-te-topology { prefix tet; reference "RFC 8795: YANG Data Model for Traffic Engineering (TE) Topologies"; } import ietf-network-state { prefix nw-s; reference "RFC 8345: A YANG Data Model for Network Topologies"; } import ietf-network-topology-state { prefix nt-s; reference "RFC 8345: A YANG Data Model for Network Topologies"; } organization "IETF Traffic Engineering Architecture and Signaling (TEAS) Working Group"; contact "WG Web: WG List: Editor: Xufeng Liu Editor: Igor Bryskin Editor: Vishnu Pavan Beeram Editor: Tarek Saad Editor: Himanshu Shah Editor: Oscar Gonzalez de Dios "; description "This YANG module defines a TE topology state model. Copyright (c) 2020 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 8795; see the RFC itself for full legal notices."; revision 2020-08-06 { description "Initial revision."; reference "RFC 8795: YANG Data Model for Traffic Engineering (TE) Topologies"; } /* * Groupings */ grouping te-node-connectivity-matrix-attributes { description "Termination point references of a connectivity matrix entry."; container from { description "Reference to a source Link Termination Point (LTP)."; leaf tp-ref { type leafref { path "../../../../../../nt-s:termination-point/nt-s:tp-id"; } description "Relative reference to a termination point."; } uses te-types:label-set-info; } container to { description "Reference to a destination LTP."; leaf tp-ref { type leafref { path "../../../../../../nt-s:termination-point/nt-s:tp-id"; } description "Relative reference to a termination point."; } uses te-types:label-set-info; } uses tet:connectivity-matrix-entry-path-attributes; } // te-node-connectivity-matrix-attributes grouping te-node-tunnel-termination-point-llc-list { description "Local Link Connectivity List (LLCL) of a Tunnel Termination Point (TTP) on a TE node."; list local-link-connectivity { key "link-tp-ref"; description "The termination capabilities between the TTP and the LTP. This capability information can be used to compute the tunnel path. The Interface Adjustment Capability Descriptors (IACDs) (defined in RFC 6001) on each LTP can be derived from this list."; reference "RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)"; leaf link-tp-ref { type leafref { path "../../../../../nt-s:termination-point/nt-s:tp-id"; } description "LTP."; } uses te-types:label-set-info; uses tet:connectivity-matrix-entry-path-attributes; } // local-link-connectivity } // te-node-tunnel-termination-point-llc-list /* * Data nodes */ augment "/nw-s:networks/nw-s:network/nw-s:network-types" { description "Introduces a new network type for a TE topology."; container te-topology { presence "Indicates a TE topology"; description "Its presence identifies the TE topology type."; } } augment "/nw-s:networks" { description "Augmentation parameters for TE topologies."; uses tet:te-topologies-augment; } augment "/nw-s:networks/nw-s:network" { when 'nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Configuration parameters for a TE topology."; uses tet:te-topology-augment; } augment "/nw-s:networks/nw-s:network/nw-s:node" { when '../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Configuration parameters for TE at the node level."; leaf te-node-id { type te-types:te-node-id; description "The identifier of a node in the TE topology. A node is specific to a topology to which it belongs."; } container te { must '../te-node-id' { description "'te-node-id' is mandatory."; } must 'count(../nw-s:supporting-node)<=1' { description "For a node in a TE topology, there cannot be more than one supporting node. If multiple nodes are abstracted, the 'underlay-topology' field is used."; } presence "TE support"; description "Indicates TE support."; uses tet:te-node-augment; } } augment "/nw-s:networks/nw-s:network/nt-s:link" { when '../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Configuration parameters for TE at the link level."; container te { must 'count(../nt-s:supporting-link)<=1' { description "For a link in a TE topology, there cannot be more than one supporting link. If one or more link paths are abstracted, the underlay is used."; } presence "TE support"; description "Indicates TE support."; uses tet:te-link-augment; } } augment "/nw-s:networks/nw-s:network/nw-s:node/" + "nt-s:termination-point" { when '../../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Configuration parameters for TE at the termination point level."; uses tet:te-termination-point-augment; } augment "/nw-s:networks/nw-s:network/nt-s:link/te/" + "bundle-stack-level/bundle/bundled-links/bundled-link" { when '../../../../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Augmentation for a TE bundled link."; leaf src-tp-ref { type leafref { path "../../../../../nw-s:node[nw-s:node-id = " + "current()/../../../../nt-s:source/" + "nt-s:source-node]/" + "nt-s:termination-point/nt-s:tp-id"; require-instance true; } description "Reference to another TE termination point on the same source node."; } leaf des-tp-ref { type leafref { path "../../../../../nw-s:node[nw-s:node-id = " + "current()/../../../../nt-s:destination/" + "nt-s:dest-node]/" + "nt-s:termination-point/nt-s:tp-id"; require-instance true; } description "Reference to another TE termination point on the same destination node."; } } augment "/nw-s:networks/nw-s:network/nw-s:node/te/" + "information-source-entry/connectivity-matrices/" + "connectivity-matrix" { when '../../../../../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Augmentation for the TE node connectivity matrix."; uses te-node-connectivity-matrix-attributes; } augment "/nw-s:networks/nw-s:network/nw-s:node/te/" + "te-node-attributes/connectivity-matrices/" + "connectivity-matrix" { when '../../../../../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Augmentation for the TE node connectivity matrix."; uses te-node-connectivity-matrix-attributes; } augment "/nw-s:networks/nw-s:network/nw-s:node/te/" + "tunnel-termination-point/local-link-connectivities" { when '../../../../nw-s:network-types/tet-s:te-topology' { description "Augmentation parameters apply only for networks with a TE topology type."; } description "Augmentation for TE node TTP LLCs (Local Link Connectivities)."; uses te-node-tunnel-termination-point-llc-list; } }