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;
}
}