mirror of
https://github.com/Telecominfraproject/oopt-gnpy-api.git
synced 2025-10-29 09:02:39 +00:00
Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com> Change-Id: I44c9c96c58fabb79e2b569f7b404036b475b4fde
1953 lines
58 KiB
YANG
Executable File
1953 lines
58 KiB
YANG
Executable File
module ietf-te-topology {
|
|
yang-version 1.1;
|
|
namespace "urn:ietf:params:xml:ns:yang:ietf-te-topology";
|
|
prefix tet;
|
|
|
|
import ietf-yang-types {
|
|
prefix yang;
|
|
reference
|
|
"RFC 6991: Common YANG Data Types";
|
|
}
|
|
import ietf-inet-types {
|
|
prefix inet;
|
|
reference
|
|
"RFC 6991: Common YANG Data Types";
|
|
}
|
|
import ietf-te-types {
|
|
prefix te-types;
|
|
reference
|
|
"RFC 8776: Common YANG Data Types for Traffic Engineering";
|
|
}
|
|
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";
|
|
}
|
|
|
|
organization
|
|
"IETF Traffic Engineering Architecture and Signaling (TEAS)
|
|
Working Group";
|
|
contact
|
|
"WG Web: <https://datatracker.ietf.org/wg/teas/>
|
|
WG List: <mailto:teas@ietf.org>
|
|
|
|
Editor: Xufeng Liu
|
|
<mailto:xufeng.liu.ietf@gmail.com>
|
|
|
|
Editor: Igor Bryskin
|
|
<mailto:i_bryskin@yahoo.com>
|
|
|
|
Editor: Vishnu Pavan Beeram
|
|
<mailto:vbeeram@juniper.net>
|
|
|
|
Editor: Tarek Saad
|
|
<mailto:tsaad@juniper.net>
|
|
|
|
Editor: Himanshu Shah
|
|
<mailto:hshah@ciena.com>
|
|
|
|
Editor: Oscar Gonzalez de Dios
|
|
<mailto:oscar.gonzalezdedios@telefonica.com>";
|
|
description
|
|
"This YANG module defines a TE topology model for representing,
|
|
retrieving, and manipulating technology-agnostic TE topologies.
|
|
|
|
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";
|
|
}
|
|
|
|
/*
|
|
* Features
|
|
*/
|
|
|
|
feature nsrlg {
|
|
description
|
|
"This feature indicates that the system supports NSRLGs
|
|
(Non-Shared Risk Link Groups).";
|
|
}
|
|
|
|
feature te-topology-hierarchy {
|
|
description
|
|
"This feature indicates that the system allows an underlay
|
|
and/or overlay TE topology hierarchy.";
|
|
}
|
|
|
|
feature template {
|
|
description
|
|
"This feature indicates that the system supports
|
|
template configuration.";
|
|
}
|
|
|
|
/*
|
|
* Typedefs
|
|
*/
|
|
|
|
typedef geographic-coordinate-degree {
|
|
type decimal64 {
|
|
fraction-digits 8;
|
|
}
|
|
description
|
|
"Decimal degree (DD) used to express latitude and longitude
|
|
geographic coordinates.";
|
|
}
|
|
// geographic-coordinate-degree
|
|
|
|
typedef te-info-source {
|
|
type enumeration {
|
|
enum unknown {
|
|
description
|
|
"The source is unknown.";
|
|
}
|
|
enum locally-configured {
|
|
description
|
|
"Configured entity.";
|
|
}
|
|
enum ospfv2 {
|
|
description
|
|
"OSPFv2.";
|
|
}
|
|
enum ospfv3 {
|
|
description
|
|
"OSPFv3.";
|
|
}
|
|
enum isis {
|
|
description
|
|
"IS-IS.";
|
|
}
|
|
enum bgp-ls {
|
|
description
|
|
"BGP-LS.";
|
|
reference
|
|
"RFC 7752: North-Bound Distribution of Link-State and
|
|
Traffic Engineering (TE) Information Using BGP";
|
|
}
|
|
enum system-processed {
|
|
description
|
|
"System-processed entity.";
|
|
}
|
|
enum other {
|
|
description
|
|
"Other source.";
|
|
}
|
|
}
|
|
description
|
|
"Describes the type of source that has provided the
|
|
related information, and the source's credibility.";
|
|
}
|
|
// te-info-source
|
|
|
|
/*
|
|
* Groupings
|
|
*/
|
|
|
|
grouping connectivity-matrix-entry-path-attributes {
|
|
description
|
|
"Attributes of a connectivity matrix entry.";
|
|
leaf is-allowed {
|
|
type boolean;
|
|
description
|
|
"'true' - switching is allowed;
|
|
'false' - switching is disallowed.";
|
|
}
|
|
container underlay {
|
|
if-feature "te-topology-hierarchy";
|
|
description
|
|
"Attributes of the TE link underlay.";
|
|
reference
|
|
"RFC 4206: Label Switched Paths (LSP) Hierarchy with
|
|
Generalized Multi-Protocol Label Switching (GMPLS)
|
|
Traffic Engineering (TE)";
|
|
uses te-link-underlay-attributes;
|
|
}
|
|
uses te-types:generic-path-constraints;
|
|
uses te-types:generic-path-optimization;
|
|
uses te-types:generic-path-properties;
|
|
}
|
|
// connectivity-matrix-entry-path-attributes
|
|
|
|
grouping geolocation-container {
|
|
description
|
|
"Contains a GPS location.";
|
|
container geolocation {
|
|
config false;
|
|
description
|
|
"Contains a GPS location.";
|
|
leaf altitude {
|
|
type int64;
|
|
units "millimeters";
|
|
description
|
|
"Distance above sea level.";
|
|
}
|
|
leaf latitude {
|
|
type geographic-coordinate-degree {
|
|
range "-90..90";
|
|
}
|
|
description
|
|
"Relative position north or south on the Earth's surface.";
|
|
}
|
|
leaf longitude {
|
|
type geographic-coordinate-degree {
|
|
range "-180..180";
|
|
}
|
|
description
|
|
"Angular distance east or west on the Earth's surface.";
|
|
}
|
|
}
|
|
// geolocation
|
|
}
|
|
// geolocation-container
|
|
|
|
grouping information-source-state-attributes {
|
|
description
|
|
"The attributes identifying the source that has provided the
|
|
related information, and the source's credibility.";
|
|
leaf credibility-preference {
|
|
type uint16;
|
|
description
|
|
"The preference value for calculating the Traffic
|
|
Engineering database credibility value used for
|
|
tie-break selection between different information-source
|
|
values. A higher value is preferable.";
|
|
}
|
|
leaf logical-network-element {
|
|
type string;
|
|
description
|
|
"When applicable, this is the name of a logical network
|
|
element from which the information is learned.";
|
|
}
|
|
leaf network-instance {
|
|
type string;
|
|
description
|
|
"When applicable, this is the name of a network instance
|
|
from which the information is learned.";
|
|
}
|
|
}
|
|
// information-source-state-attributes
|
|
|
|
grouping information-source-per-link-attributes {
|
|
description
|
|
"Per-node container of the attributes identifying the source
|
|
that has provided the related information, and the source's
|
|
credibility.";
|
|
leaf information-source {
|
|
type te-info-source;
|
|
config false;
|
|
description
|
|
"Indicates the type of information source.";
|
|
}
|
|
leaf information-source-instance {
|
|
type string;
|
|
config false;
|
|
description
|
|
"The name indicating the instance of the information
|
|
source.";
|
|
}
|
|
container information-source-state {
|
|
config false;
|
|
description
|
|
"Contains state attributes related to the information
|
|
source.";
|
|
uses information-source-state-attributes;
|
|
container topology {
|
|
description
|
|
"When the information is processed by the system,
|
|
the attributes in this container indicate which topology
|
|
is used to generate the result information.";
|
|
uses nt:link-ref;
|
|
}
|
|
}
|
|
}
|
|
// information-source-per-link-attributes
|
|
|
|
grouping information-source-per-node-attributes {
|
|
description
|
|
"Per-node container of the attributes identifying the source
|
|
that has provided the related information, and the source's
|
|
credibility.";
|
|
leaf information-source {
|
|
type te-info-source;
|
|
config false;
|
|
description
|
|
"Indicates the type of information source.";
|
|
}
|
|
leaf information-source-instance {
|
|
type string;
|
|
config false;
|
|
description
|
|
"The name indicating the instance of the information
|
|
source.";
|
|
}
|
|
container information-source-state {
|
|
config false;
|
|
description
|
|
"Contains state attributes related to the information
|
|
source.";
|
|
uses information-source-state-attributes;
|
|
container topology {
|
|
description
|
|
"When the information is processed by the system,
|
|
the attributes in this container indicate which topology
|
|
is used to generate the result information.";
|
|
uses nw:node-ref;
|
|
}
|
|
}
|
|
}
|
|
// information-source-per-node-attributes
|
|
|
|
grouping interface-switching-capability-list {
|
|
description
|
|
"List of Interface Switching Capability Descriptors (ISCDs).";
|
|
list interface-switching-capability {
|
|
key "switching-capability encoding";
|
|
description
|
|
"List of ISCDs for this link.";
|
|
reference
|
|
"RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
|
|
Signaling Functional Description
|
|
RFC 4203: OSPF Extensions in Support of Generalized
|
|
Multi-Protocol Label Switching (GMPLS)";
|
|
leaf switching-capability {
|
|
type identityref {
|
|
base te-types:switching-capabilities;
|
|
}
|
|
description
|
|
"Switching capability for this interface.";
|
|
}
|
|
leaf encoding {
|
|
type identityref {
|
|
base te-types:lsp-encoding-types;
|
|
}
|
|
description
|
|
"Encoding supported by this interface.";
|
|
}
|
|
uses te-link-iscd-attributes;
|
|
}
|
|
// interface-switching-capability
|
|
}
|
|
// interface-switching-capability-list
|
|
|
|
grouping statistics-per-link {
|
|
description
|
|
"Statistics attributes per TE link.";
|
|
leaf discontinuity-time {
|
|
type yang:date-and-time;
|
|
description
|
|
"The time of the most recent occasion at which any one or
|
|
more of this interface's counters suffered a
|
|
discontinuity. If no such discontinuities have occurred
|
|
since the last re-initialization of the local management
|
|
subsystem, then this node contains the time the local
|
|
management subsystem re-initialized itself.";
|
|
}
|
|
/* Administrative attributes */
|
|
leaf disables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was disabled.";
|
|
}
|
|
leaf enables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was enabled.";
|
|
}
|
|
leaf maintenance-clears {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was taken out of maintenance.";
|
|
}
|
|
leaf maintenance-sets {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was put in maintenance.";
|
|
}
|
|
leaf modifies {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was modified.";
|
|
}
|
|
/* Operational attributes */
|
|
leaf downs {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was set to an operational state
|
|
of 'down'.";
|
|
}
|
|
leaf ups {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link was set to an operational state
|
|
of 'up'.";
|
|
}
|
|
/* Recovery attributes */
|
|
leaf fault-clears {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced a fault-clear
|
|
event.";
|
|
}
|
|
leaf fault-detects {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced fault detection.";
|
|
}
|
|
leaf protection-switches {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced protection
|
|
switchover.";
|
|
}
|
|
leaf protection-reverts {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced protection
|
|
reversion.";
|
|
}
|
|
leaf restoration-failures {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced restoration
|
|
failure.";
|
|
}
|
|
leaf restoration-starts {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced restoration
|
|
start.";
|
|
}
|
|
leaf restoration-successes {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced restoration
|
|
success.";
|
|
}
|
|
leaf restoration-reversion-failures {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced restoration
|
|
reversion failure.";
|
|
}
|
|
leaf restoration-reversion-starts {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced restoration
|
|
reversion start.";
|
|
}
|
|
leaf restoration-reversion-successes {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a link experienced restoration
|
|
reversion success.";
|
|
}
|
|
}
|
|
// statistics-per-link
|
|
|
|
grouping statistics-per-node {
|
|
description
|
|
"Statistics attributes per TE node.";
|
|
leaf discontinuity-time {
|
|
type yang:date-and-time;
|
|
description
|
|
"The time of the most recent occasion at which any one or
|
|
more of this interface's counters suffered a
|
|
discontinuity. If no such discontinuities have occurred
|
|
since the last re-initialization of the local management
|
|
subsystem, then this node contains the time the local
|
|
management subsystem re-initialized itself.";
|
|
}
|
|
container node {
|
|
description
|
|
"Contains statistics attributes at the TE node level.";
|
|
leaf disables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a node was disabled.";
|
|
}
|
|
leaf enables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a node was enabled.";
|
|
}
|
|
leaf maintenance-sets {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a node was put in maintenance.";
|
|
}
|
|
leaf maintenance-clears {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a node was taken out of
|
|
maintenance.";
|
|
}
|
|
leaf modifies {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a node was modified.";
|
|
}
|
|
}
|
|
// node
|
|
container connectivity-matrix-entry {
|
|
description
|
|
"Contains statistics attributes at the level of a
|
|
connectivity matrix entry.";
|
|
leaf creates {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a connectivity matrix entry was
|
|
created.";
|
|
reference
|
|
"RFC 6241: Network Configuration Protocol (NETCONF),
|
|
Section 7.2, 'create' operation";
|
|
}
|
|
leaf deletes {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a connectivity matrix entry was
|
|
deleted.";
|
|
reference
|
|
"RFC 6241: Network Configuration Protocol (NETCONF),
|
|
Section 7.2, 'delete' operation";
|
|
}
|
|
leaf disables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a connectivity matrix entry was
|
|
disabled.";
|
|
}
|
|
leaf enables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a connectivity matrix entry was
|
|
enabled.";
|
|
}
|
|
leaf modifies {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a connectivity matrix entry was
|
|
modified.";
|
|
}
|
|
}
|
|
// connectivity-matrix-entry
|
|
}
|
|
// statistics-per-node
|
|
|
|
grouping statistics-per-ttp {
|
|
description
|
|
"Statistics attributes per TE TTP (Tunnel Termination Point).";
|
|
leaf discontinuity-time {
|
|
type yang:date-and-time;
|
|
description
|
|
"The time of the most recent occasion at which any one or
|
|
more of this interface's counters suffered a
|
|
discontinuity. If no such discontinuities have occurred
|
|
since the last re-initialization of the local management
|
|
subsystem, then this node contains the time the local
|
|
management subsystem re-initialized itself.";
|
|
}
|
|
container tunnel-termination-point {
|
|
description
|
|
"Contains statistics attributes at the TE TTP level.";
|
|
/* Administrative attributes */
|
|
leaf disables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was disabled.";
|
|
}
|
|
leaf enables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was enabled.";
|
|
}
|
|
leaf maintenance-clears {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was taken out of maintenance.";
|
|
}
|
|
leaf maintenance-sets {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was put in maintenance.";
|
|
}
|
|
leaf modifies {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was modified.";
|
|
}
|
|
/* Operational attributes */
|
|
leaf downs {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was set to an operational state
|
|
of 'down'.";
|
|
}
|
|
leaf ups {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was set to an operational state
|
|
of 'up'.";
|
|
}
|
|
leaf in-service-clears {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was taken out of service
|
|
(TE tunnel was released).";
|
|
}
|
|
leaf in-service-sets {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that a TTP was put in service by a TE
|
|
tunnel (TE tunnel was set up).";
|
|
}
|
|
}
|
|
// tunnel-termination-point
|
|
container local-link-connectivity {
|
|
description
|
|
"Contains statistics attributes at the TE LLCL (Local Link
|
|
Connectivity List) level.";
|
|
leaf creates {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that an LLCL entry was created.";
|
|
reference
|
|
"RFC 6241: Network Configuration Protocol (NETCONF),
|
|
Section 7.2, 'create' operation";
|
|
}
|
|
leaf deletes {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that an LLCL entry was deleted.";
|
|
reference
|
|
"RFC 6241: Network Configuration Protocol (NETCONF),
|
|
Section 7.2, 'delete' operation";
|
|
}
|
|
leaf disables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that an LLCL entry was disabled.";
|
|
}
|
|
leaf enables {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that an LLCL entry was enabled.";
|
|
}
|
|
leaf modifies {
|
|
type yang:counter32;
|
|
description
|
|
"Number of times that an LLCL entry was modified.";
|
|
}
|
|
}
|
|
// local-link-connectivity
|
|
}
|
|
// statistics-per-ttp
|
|
|
|
grouping te-link-augment {
|
|
description
|
|
"Augmentation for a TE link.";
|
|
uses te-link-config;
|
|
uses te-link-state-derived;
|
|
container statistics {
|
|
config false;
|
|
description
|
|
"Statistics data.";
|
|
uses statistics-per-link;
|
|
}
|
|
}
|
|
// te-link-augment
|
|
|
|
grouping te-link-config {
|
|
description
|
|
"TE link configuration grouping.";
|
|
choice bundle-stack-level {
|
|
description
|
|
"The TE link can be partitioned into bundled links or
|
|
component links.";
|
|
case bundle {
|
|
container bundled-links {
|
|
description
|
|
"A set of bundled links.";
|
|
reference
|
|
"RFC 4201: Link Bundling in MPLS Traffic
|
|
Engineering (TE)";
|
|
list bundled-link {
|
|
key "sequence";
|
|
description
|
|
"Specifies a bundled interface that is
|
|
further partitioned.";
|
|
leaf sequence {
|
|
type uint32;
|
|
description
|
|
"Identifies the sequence in the bundle.";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
case component {
|
|
container component-links {
|
|
description
|
|
"A set of component links.";
|
|
list component-link {
|
|
key "sequence";
|
|
description
|
|
"Specifies a component interface that is
|
|
sufficient to unambiguously identify the
|
|
appropriate resources.";
|
|
leaf sequence {
|
|
type uint32;
|
|
description
|
|
"Identifies the sequence in the bundle.";
|
|
}
|
|
leaf src-interface-ref {
|
|
type string;
|
|
description
|
|
"Reference to a component link interface on the
|
|
source node.";
|
|
}
|
|
leaf des-interface-ref {
|
|
type string;
|
|
description
|
|
"Reference to a component link interface on the
|
|
destination node.";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// bundle-stack-level
|
|
leaf-list te-link-template {
|
|
if-feature "template";
|
|
type leafref {
|
|
path "../../../../te/templates/link-template/name";
|
|
}
|
|
description
|
|
"The reference to a TE link template.";
|
|
}
|
|
uses te-link-config-attributes;
|
|
}
|
|
// te-link-config
|
|
|
|
grouping te-link-config-attributes {
|
|
description
|
|
"Link configuration attributes in a TE topology.";
|
|
container te-link-attributes {
|
|
description
|
|
"Link attributes in a TE topology.";
|
|
leaf access-type {
|
|
type te-types:te-link-access-type;
|
|
description
|
|
"Link access type, which can be point-to-point or
|
|
multi-access.";
|
|
}
|
|
container external-domain {
|
|
description
|
|
"For an inter-domain link, specifies the attributes of
|
|
the remote end of the link, to facilitate the signaling at
|
|
the local end.";
|
|
uses nw:network-ref;
|
|
leaf remote-te-node-id {
|
|
type te-types:te-node-id;
|
|
description
|
|
"Remote TE node identifier, used together with
|
|
'remote-te-link-tp-id' to identify the remote Link
|
|
Termination Point (LTP) in a different domain.";
|
|
}
|
|
leaf remote-te-link-tp-id {
|
|
type te-types:te-tp-id;
|
|
description
|
|
"Remote TE LTP identifier, used together with
|
|
'remote-te-node-id' to identify the remote LTP in a
|
|
different domain.";
|
|
}
|
|
}
|
|
leaf is-abstract {
|
|
type empty;
|
|
description
|
|
"Present if the link is abstract.";
|
|
}
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"Link name.";
|
|
}
|
|
container underlay {
|
|
if-feature "te-topology-hierarchy";
|
|
description
|
|
"Attributes of the TE link underlay.";
|
|
reference
|
|
"RFC 4206: Label Switched Paths (LSP) Hierarchy with
|
|
Generalized Multi-Protocol Label Switching (GMPLS)
|
|
Traffic Engineering (TE)";
|
|
uses te-link-underlay-attributes;
|
|
}
|
|
leaf admin-status {
|
|
type te-types:te-admin-status;
|
|
description
|
|
"The administrative state of the link.";
|
|
}
|
|
uses te-link-info-attributes;
|
|
}
|
|
// te-link-attributes
|
|
}
|
|
// te-link-config-attributes
|
|
|
|
grouping te-link-info-attributes {
|
|
description
|
|
"Advertised TE information attributes.";
|
|
leaf link-index {
|
|
type uint64;
|
|
description
|
|
"The link identifier. If OSPF is used, this object
|
|
represents an ospfLsdbID. If IS-IS is used, this object
|
|
represents an isisLSPID. If a locally configured link is
|
|
used, this object represents a unique value, which is
|
|
locally defined in a router.";
|
|
}
|
|
leaf administrative-group {
|
|
type te-types:admin-groups;
|
|
description
|
|
"Administrative group or color of the link.
|
|
This attribute covers both administrative groups (defined
|
|
in RFCs 3630 and 5305) and Extended Administrative Groups
|
|
(defined in RFC 7308).";
|
|
reference
|
|
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF
|
|
Version 2
|
|
RFC 5305: IS-IS Extensions for Traffic Engineering
|
|
RFC 7308: Extended Administrative Groups in MPLS Traffic
|
|
Engineering (MPLS-TE)";
|
|
}
|
|
uses interface-switching-capability-list;
|
|
uses te-types:label-set-info;
|
|
leaf link-protection-type {
|
|
type identityref {
|
|
base te-types:link-protection-type;
|
|
}
|
|
description
|
|
"Link Protection Type desired for this link.";
|
|
reference
|
|
"RFC 4202: Routing Extensions in Support of
|
|
Generalized Multi-Protocol Label Switching (GMPLS)";
|
|
}
|
|
container max-link-bandwidth {
|
|
uses te-types:te-bandwidth;
|
|
description
|
|
"Maximum bandwidth that can be seen on this link in this
|
|
direction. Units are in bytes per second.";
|
|
reference
|
|
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF
|
|
Version 2
|
|
RFC 5305: IS-IS Extensions for Traffic Engineering";
|
|
}
|
|
container max-resv-link-bandwidth {
|
|
uses te-types:te-bandwidth;
|
|
description
|
|
"Maximum amount of bandwidth that can be reserved in this
|
|
direction in this link. Units are in bytes per second.";
|
|
reference
|
|
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF
|
|
Version 2
|
|
RFC 5305: IS-IS Extensions for Traffic Engineering";
|
|
}
|
|
list unreserved-bandwidth {
|
|
key "priority";
|
|
max-elements 8;
|
|
description
|
|
"Unreserved bandwidth for priority levels 0-7. Units are in
|
|
bytes per second.";
|
|
reference
|
|
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF
|
|
Version 2
|
|
RFC 5305: IS-IS Extensions for Traffic Engineering";
|
|
leaf priority {
|
|
type uint8 {
|
|
range "0..7";
|
|
}
|
|
description
|
|
"Priority.";
|
|
}
|
|
uses te-types:te-bandwidth;
|
|
}
|
|
leaf te-default-metric {
|
|
type uint32;
|
|
description
|
|
"Traffic Engineering metric.";
|
|
reference
|
|
"RFC 3630: Traffic Engineering (TE) Extensions to OSPF
|
|
Version 2
|
|
RFC 5305: IS-IS Extensions for Traffic Engineering";
|
|
}
|
|
leaf te-delay-metric {
|
|
type uint32;
|
|
description
|
|
"Traffic Engineering delay metric.";
|
|
reference
|
|
"RFC 7471: OSPF Traffic Engineering (TE) Metric Extensions";
|
|
}
|
|
leaf te-igp-metric {
|
|
type uint32;
|
|
description
|
|
"IGP metric used for Traffic Engineering.";
|
|
reference
|
|
"RFC 3785: Use of Interior Gateway Protocol (IGP) Metric as a
|
|
second MPLS Traffic Engineering (TE) Metric";
|
|
}
|
|
container te-srlgs {
|
|
description
|
|
"Contains a list of SRLGs.";
|
|
leaf-list value {
|
|
type te-types:srlg;
|
|
description
|
|
"SRLG value.";
|
|
reference
|
|
"RFC 4202: Routing Extensions in Support of
|
|
Generalized Multi-Protocol Label Switching (GMPLS)";
|
|
}
|
|
}
|
|
container te-nsrlgs {
|
|
if-feature "nsrlg";
|
|
description
|
|
"Contains a list of NSRLGs (Non-Shared Risk Link Groups).
|
|
When an abstract TE link is configured, this list specifies
|
|
the request that underlay TE paths need to be mutually
|
|
disjoint with other TE links in the same groups.";
|
|
leaf-list id {
|
|
type uint32;
|
|
description
|
|
"NSRLG ID, uniquely configured within a topology.";
|
|
reference
|
|
"RFC 4872: RSVP-TE Extensions in Support of End-to-End
|
|
Generalized Multi-Protocol Label Switching (GMPLS)
|
|
Recovery";
|
|
}
|
|
}
|
|
}
|
|
// te-link-info-attributes
|
|
|
|
grouping te-link-iscd-attributes {
|
|
description
|
|
"TE link ISCD attributes.";
|
|
reference
|
|
"RFC 4203: OSPF Extensions in Support of Generalized
|
|
Multi-Protocol Label Switching (GMPLS), Section 1.4";
|
|
list max-lsp-bandwidth {
|
|
key "priority";
|
|
max-elements 8;
|
|
description
|
|
"Maximum Label Switched Path (LSP) bandwidth at
|
|
priorities 0-7.";
|
|
leaf priority {
|
|
type uint8 {
|
|
range "0..7";
|
|
}
|
|
description
|
|
"Priority.";
|
|
}
|
|
uses te-types:te-bandwidth;
|
|
}
|
|
}
|
|
// te-link-iscd-attributes
|
|
|
|
grouping te-link-state-derived {
|
|
description
|
|
"Link state attributes in a TE topology.";
|
|
leaf oper-status {
|
|
type te-types:te-oper-status;
|
|
config false;
|
|
description
|
|
"The current operational state of the link.";
|
|
}
|
|
leaf is-transitional {
|
|
type empty;
|
|
config false;
|
|
description
|
|
"Present if the link is transitional; used as an
|
|
alternative approach in lieu of 'inter-layer-lock-id'
|
|
for path computation in a TE topology covering multiple
|
|
layers or multiple regions.";
|
|
reference
|
|
"RFC 5212: Requirements for GMPLS-Based Multi-Region and
|
|
Multi-Layer Networks (MRN/MLN)
|
|
RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
|
|
for Multi-Layer and Multi-Region Networks (MLN/MRN)";
|
|
}
|
|
uses information-source-per-link-attributes;
|
|
list information-source-entry {
|
|
key "information-source information-source-instance";
|
|
config false;
|
|
description
|
|
"A list of information sources learned, including the source
|
|
that is used.";
|
|
uses information-source-per-link-attributes;
|
|
uses te-link-info-attributes;
|
|
}
|
|
container recovery {
|
|
config false;
|
|
description
|
|
"Status of the recovery process.";
|
|
leaf restoration-status {
|
|
type te-types:te-recovery-status;
|
|
description
|
|
"Restoration status.";
|
|
}
|
|
leaf protection-status {
|
|
type te-types:te-recovery-status;
|
|
description
|
|
"Protection status.";
|
|
}
|
|
}
|
|
container underlay {
|
|
if-feature "te-topology-hierarchy";
|
|
config false;
|
|
description
|
|
"State attributes for the TE link underlay.";
|
|
leaf dynamic {
|
|
type boolean;
|
|
description
|
|
"'true' if the underlay is dynamically created.";
|
|
}
|
|
leaf committed {
|
|
type boolean;
|
|
description
|
|
"'true' if the underlay is committed.";
|
|
}
|
|
}
|
|
}
|
|
// te-link-state-derived
|
|
|
|
grouping te-link-underlay-attributes {
|
|
description
|
|
"Attributes for the TE link underlay.";
|
|
reference
|
|
"RFC 4206: Label Switched Paths (LSP) Hierarchy with
|
|
Generalized Multi-Protocol Label Switching (GMPLS)
|
|
Traffic Engineering (TE)";
|
|
leaf enabled {
|
|
type boolean;
|
|
description
|
|
"'true' if the underlay is enabled.
|
|
'false' if the underlay is disabled.";
|
|
}
|
|
container primary-path {
|
|
description
|
|
"The service path on the underlay topology that
|
|
supports this link.";
|
|
uses nw:network-ref;
|
|
list path-element {
|
|
key "path-element-id";
|
|
description
|
|
"A list of path elements describing the service path.";
|
|
leaf path-element-id {
|
|
type uint32;
|
|
description
|
|
"To identify the element in a path.";
|
|
}
|
|
uses te-path-element;
|
|
}
|
|
}
|
|
// primary-path
|
|
list backup-path {
|
|
key "index";
|
|
description
|
|
"A list of backup service paths on the underlay topology that
|
|
protect the underlay primary path. If the primary path is
|
|
not protected, the list contains zero elements. If the
|
|
primary path is protected, the list contains one or more
|
|
elements.";
|
|
leaf index {
|
|
type uint32;
|
|
description
|
|
"A sequence number to identify a backup path.";
|
|
}
|
|
uses nw:network-ref;
|
|
list path-element {
|
|
key "path-element-id";
|
|
description
|
|
"A list of path elements describing the backup service
|
|
path.";
|
|
leaf path-element-id {
|
|
type uint32;
|
|
description
|
|
"To identify the element in a path.";
|
|
}
|
|
uses te-path-element;
|
|
}
|
|
}
|
|
// backup-path
|
|
leaf protection-type {
|
|
type identityref {
|
|
base te-types:lsp-protection-type;
|
|
}
|
|
description
|
|
"Underlay protection type desired for this link.";
|
|
}
|
|
container tunnel-termination-points {
|
|
description
|
|
"Underlay TTPs desired for this link.";
|
|
leaf source {
|
|
type binary;
|
|
description
|
|
"Source TTP identifier.";
|
|
}
|
|
leaf destination {
|
|
type binary;
|
|
description
|
|
"Destination TTP identifier.";
|
|
}
|
|
}
|
|
container tunnels {
|
|
description
|
|
"Underlay TE tunnels supporting this TE link.";
|
|
leaf sharing {
|
|
type boolean;
|
|
default "true";
|
|
description
|
|
"'true' if the underlay tunnel can be shared with other
|
|
TE links;
|
|
'false' if the underlay tunnel is dedicated to this
|
|
TE link.
|
|
This leaf is the default option for all TE tunnels
|
|
and may be overridden by the per-TE-tunnel value.";
|
|
}
|
|
list tunnel {
|
|
key "tunnel-name";
|
|
description
|
|
"Zero, one, or more underlay TE tunnels that support this
|
|
TE link.";
|
|
leaf tunnel-name {
|
|
type string;
|
|
description
|
|
"A tunnel name uniquely identifies an underlay TE tunnel,
|
|
used together with the 'source-node' value for this
|
|
link.";
|
|
reference
|
|
"RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
|
|
}
|
|
leaf sharing {
|
|
type boolean;
|
|
description
|
|
"'true' if the underlay tunnel can be shared with other
|
|
TE links;
|
|
'false' if the underlay tunnel is dedicated to this
|
|
TE link.";
|
|
}
|
|
}
|
|
// tunnel
|
|
}
|
|
// tunnels
|
|
}
|
|
// te-link-underlay-attributes
|
|
|
|
grouping te-node-augment {
|
|
description
|
|
"Augmentation for a TE node.";
|
|
uses te-node-config;
|
|
uses te-node-state-derived;
|
|
container statistics {
|
|
config false;
|
|
description
|
|
"Statistics data.";
|
|
uses statistics-per-node;
|
|
}
|
|
list tunnel-termination-point {
|
|
key "tunnel-tp-id";
|
|
description
|
|
"A termination point can terminate a tunnel.";
|
|
leaf tunnel-tp-id {
|
|
type binary;
|
|
description
|
|
"TTP identifier.";
|
|
}
|
|
uses te-node-tunnel-termination-point-config;
|
|
leaf oper-status {
|
|
type te-types:te-oper-status;
|
|
config false;
|
|
description
|
|
"The current operational state of the TTP.";
|
|
}
|
|
uses geolocation-container;
|
|
container statistics {
|
|
config false;
|
|
description
|
|
"Statistics data.";
|
|
uses statistics-per-ttp;
|
|
}
|
|
// Relationship to other TTPs
|
|
list supporting-tunnel-termination-point {
|
|
key "node-ref tunnel-tp-ref";
|
|
description
|
|
"Identifies the TTPs on which this TTP depends.";
|
|
leaf node-ref {
|
|
type inet:uri;
|
|
description
|
|
"This leaf identifies the node in which the supporting
|
|
TTP is present.
|
|
This node is either the supporting node or a node in
|
|
an underlay topology.";
|
|
}
|
|
leaf tunnel-tp-ref {
|
|
type binary;
|
|
description
|
|
"Reference to a TTP that is in either the supporting node
|
|
or a node in an underlay topology.";
|
|
}
|
|
}
|
|
// supporting-tunnel-termination-point
|
|
}
|
|
// tunnel-termination-point
|
|
}
|
|
// te-node-augment
|
|
|
|
grouping te-node-config {
|
|
description
|
|
"TE node configuration grouping.";
|
|
leaf-list te-node-template {
|
|
if-feature "template";
|
|
type leafref {
|
|
path "../../../../te/templates/node-template/name";
|
|
}
|
|
description
|
|
"The reference to a TE node template.";
|
|
}
|
|
uses te-node-config-attributes;
|
|
}
|
|
// te-node-config
|
|
|
|
grouping te-node-config-attributes {
|
|
description
|
|
"Configuration node attributes in a TE topology.";
|
|
container te-node-attributes {
|
|
description
|
|
"Contains node attributes in a TE topology.";
|
|
leaf admin-status {
|
|
type te-types:te-admin-status;
|
|
description
|
|
"The administrative state of the link.";
|
|
}
|
|
uses te-node-connectivity-matrices;
|
|
uses te-node-info-attributes;
|
|
}
|
|
}
|
|
// te-node-config-attributes
|
|
|
|
grouping te-node-config-attributes-template {
|
|
description
|
|
"Configuration node attributes for a template in a TE
|
|
topology.";
|
|
container te-node-attributes {
|
|
description
|
|
"Contains node attributes in a TE topology.";
|
|
leaf admin-status {
|
|
type te-types:te-admin-status;
|
|
description
|
|
"The administrative state of the link.";
|
|
}
|
|
uses te-node-info-attributes;
|
|
}
|
|
}
|
|
// te-node-config-attributes-template
|
|
|
|
grouping te-node-connectivity-matrices {
|
|
description
|
|
"Connectivity matrix on a TE node.";
|
|
container connectivity-matrices {
|
|
description
|
|
"Contains a connectivity matrix on a TE node.";
|
|
leaf number-of-entries {
|
|
type uint16;
|
|
description
|
|
"The number of connectivity matrix entries.
|
|
If this number is specified in the configuration request,
|
|
the number is the requested number of entries, which may
|
|
not all be listed in the list;
|
|
if this number is reported in the state data,
|
|
the number is the current number of operational entries.";
|
|
}
|
|
uses te-types:label-set-info;
|
|
uses connectivity-matrix-entry-path-attributes;
|
|
list connectivity-matrix {
|
|
key "id";
|
|
description
|
|
"Represents a node's switching limitations, i.e.,
|
|
limitations in the interconnecting network TE links
|
|
across the node.";
|
|
reference
|
|
"RFC 7579: General Network Element Constraint Encoding
|
|
for GMPLS-Controlled Networks";
|
|
leaf id {
|
|
type uint32;
|
|
description
|
|
"Identifies the connectivity matrix entry.";
|
|
}
|
|
}
|
|
// connectivity-matrix
|
|
}
|
|
// connectivity-matrices
|
|
}
|
|
// te-node-connectivity-matrices
|
|
|
|
grouping te-node-connectivity-matrix-attributes {
|
|
description
|
|
"Termination point references of a connectivity matrix entry.";
|
|
container from {
|
|
description
|
|
"Reference to a source LTP.";
|
|
leaf tp-ref {
|
|
type leafref {
|
|
path "../../../../../../nt:termination-point/nt: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:termination-point/nt:tp-id";
|
|
}
|
|
description
|
|
"Relative reference to a termination point.";
|
|
}
|
|
uses te-types:label-set-info;
|
|
}
|
|
uses connectivity-matrix-entry-path-attributes;
|
|
}
|
|
// te-node-connectivity-matrix-attributes
|
|
|
|
grouping te-node-info-attributes {
|
|
description
|
|
"Advertised TE information attributes.";
|
|
leaf domain-id {
|
|
type uint32;
|
|
description
|
|
"Identifies the domain to which this node belongs.
|
|
This attribute is used to support inter-domain links.";
|
|
reference
|
|
"RFC 5152: A Per-Domain Path Computation Method for
|
|
Establishing Inter-Domain Traffic Engineering (TE)
|
|
Label Switched Paths (LSPs)
|
|
RFC 5316: ISIS Extensions in Support of Inter-Autonomous
|
|
System (AS) MPLS and GMPLS Traffic Engineering
|
|
RFC 5392: OSPF Extensions in Support of Inter-Autonomous
|
|
System (AS) MPLS and GMPLS Traffic Engineering";
|
|
}
|
|
leaf is-abstract {
|
|
type empty;
|
|
description
|
|
"Present if the node is abstract; not present if the node
|
|
is actual.";
|
|
}
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"Node name.";
|
|
}
|
|
leaf-list signaling-address {
|
|
type inet:ip-address;
|
|
description
|
|
"The node's signaling address.";
|
|
}
|
|
container underlay-topology {
|
|
if-feature "te-topology-hierarchy";
|
|
description
|
|
"When an abstract node encapsulates a topology, the
|
|
attributes in this container point to said topology.";
|
|
uses nw:network-ref;
|
|
}
|
|
}
|
|
// te-node-info-attributes
|
|
|
|
grouping te-node-state-derived {
|
|
description
|
|
"Node state attributes in a TE topology.";
|
|
leaf oper-status {
|
|
type te-types:te-oper-status;
|
|
config false;
|
|
description
|
|
"The current operational state of the node.";
|
|
}
|
|
uses geolocation-container;
|
|
leaf is-multi-access-dr {
|
|
type empty;
|
|
config false;
|
|
description
|
|
"The presence of this attribute indicates that this TE node
|
|
is a pseudonode elected as a designated router.";
|
|
reference
|
|
"RFC 1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
|
|
Environments
|
|
RFC 3630: Traffic Engineering (TE) Extensions to OSPF
|
|
Version 2";
|
|
}
|
|
uses information-source-per-node-attributes;
|
|
list information-source-entry {
|
|
key "information-source information-source-instance";
|
|
config false;
|
|
description
|
|
"A list of information sources learned, including the source
|
|
that is used.";
|
|
uses information-source-per-node-attributes;
|
|
uses te-node-connectivity-matrices;
|
|
uses te-node-info-attributes;
|
|
}
|
|
}
|
|
// te-node-state-derived
|
|
|
|
grouping te-node-tunnel-termination-point-config {
|
|
description
|
|
"Termination capability of a TTP on a TE node.";
|
|
uses te-node-tunnel-termination-point-config-attributes;
|
|
container local-link-connectivities {
|
|
description
|
|
"Contains an LLCL for a TTP on a TE node.";
|
|
leaf number-of-entries {
|
|
type uint16;
|
|
description
|
|
"The number of LLCL entries.
|
|
If this number is specified in the configuration request,
|
|
the number is the requested number of entries, which may
|
|
not all be listed in the list;
|
|
if this number is reported in the state data,
|
|
the number is the current number of operational entries.";
|
|
}
|
|
uses te-types:label-set-info;
|
|
uses connectivity-matrix-entry-path-attributes;
|
|
}
|
|
}
|
|
// te-node-tunnel-termination-point-config
|
|
|
|
grouping te-node-tunnel-termination-point-config-attributes {
|
|
description
|
|
"Configuration attributes of a TTP on a TE node.";
|
|
leaf admin-status {
|
|
type te-types:te-admin-status;
|
|
description
|
|
"The administrative state of the TTP.";
|
|
}
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"A descriptive name for the TTP.";
|
|
}
|
|
leaf switching-capability {
|
|
type identityref {
|
|
base te-types:switching-capabilities;
|
|
}
|
|
description
|
|
"Switching capability for this interface.";
|
|
}
|
|
leaf encoding {
|
|
type identityref {
|
|
base te-types:lsp-encoding-types;
|
|
}
|
|
description
|
|
"Encoding supported by this interface.";
|
|
}
|
|
leaf-list inter-layer-lock-id {
|
|
type uint32;
|
|
description
|
|
"Inter-layer lock ID, used for path computation in a TE
|
|
topology covering multiple layers or multiple regions.";
|
|
reference
|
|
"RFC 5212: Requirements for GMPLS-Based Multi-Region and
|
|
Multi-Layer Networks (MRN/MLN)
|
|
RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
|
|
for Multi-Layer and Multi-Region Networks (MLN/MRN)";
|
|
}
|
|
leaf protection-type {
|
|
type identityref {
|
|
base te-types:lsp-protection-type;
|
|
}
|
|
description
|
|
"The protection type that this TTP is capable of.";
|
|
}
|
|
container client-layer-adaptation {
|
|
description
|
|
"Contains capability information to support a client-layer
|
|
adaptation in a multi-layer topology.";
|
|
list switching-capability {
|
|
key "switching-capability encoding";
|
|
description
|
|
"List of supported switching capabilities.";
|
|
reference
|
|
"RFC 4202: Routing Extensions in Support of
|
|
Generalized Multi-Protocol Label Switching (GMPLS)
|
|
RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
|
|
for Multi-Layer and Multi-Region Networks (MLN/MRN)";
|
|
leaf switching-capability {
|
|
type identityref {
|
|
base te-types:switching-capabilities;
|
|
}
|
|
description
|
|
"Switching capability for the client-layer adaptation.";
|
|
}
|
|
leaf encoding {
|
|
type identityref {
|
|
base te-types:lsp-encoding-types;
|
|
}
|
|
description
|
|
"Encoding supported by the client-layer adaptation.";
|
|
}
|
|
uses te-types:te-bandwidth;
|
|
}
|
|
}
|
|
}
|
|
// te-node-tunnel-termination-point-config-attributes
|
|
|
|
grouping te-node-tunnel-termination-point-llc-list {
|
|
description
|
|
"LLCL of a 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:termination-point/nt:tp-id";
|
|
}
|
|
description
|
|
"LTP.";
|
|
}
|
|
uses te-types:label-set-info;
|
|
uses connectivity-matrix-entry-path-attributes;
|
|
}
|
|
}
|
|
// te-node-tunnel-termination-point-llc-list
|
|
|
|
grouping te-path-element {
|
|
description
|
|
"A group of attributes defining an element in a TE path,
|
|
such as a TE node, TE link, TE atomic resource, or label.";
|
|
uses te-types:explicit-route-hop;
|
|
}
|
|
// te-path-element
|
|
|
|
grouping te-termination-point-augment {
|
|
description
|
|
"Augmentation for a TE termination point.";
|
|
leaf te-tp-id {
|
|
type te-types:te-tp-id;
|
|
description
|
|
"An identifier that uniquely identifies a TE termination
|
|
point.";
|
|
}
|
|
container te {
|
|
must '../te-tp-id';
|
|
presence "TE support";
|
|
description
|
|
"Indicates TE support.";
|
|
uses te-termination-point-config;
|
|
leaf oper-status {
|
|
type te-types:te-oper-status;
|
|
config false;
|
|
description
|
|
"The current operational state of the LTP.";
|
|
}
|
|
uses geolocation-container;
|
|
}
|
|
}
|
|
// te-termination-point-augment
|
|
|
|
grouping te-termination-point-config {
|
|
description
|
|
"TE termination point configuration grouping.";
|
|
leaf admin-status {
|
|
type te-types:te-admin-status;
|
|
description
|
|
"The administrative state of the LTP.";
|
|
}
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"A descriptive name for the LTP.";
|
|
}
|
|
uses interface-switching-capability-list;
|
|
leaf inter-domain-plug-id {
|
|
type binary;
|
|
description
|
|
"A network-wide unique number that identifies on the
|
|
network a connection that supports a given inter-domain
|
|
TE link. This is a more flexible alternative to specifying
|
|
'remote-te-node-id' and 'remote-te-link-tp-id' on a TE link
|
|
when the provider either does not know 'remote-te-node-id'
|
|
and 'remote-te-link-tp-id' or needs to give the client the
|
|
flexibility to mix and match multiple topologies.";
|
|
}
|
|
leaf-list inter-layer-lock-id {
|
|
type uint32;
|
|
description
|
|
"Inter-layer lock ID, used for path computation in a TE
|
|
topology covering multiple layers or multiple regions.";
|
|
reference
|
|
"RFC 5212: Requirements for GMPLS-Based Multi-Region and
|
|
Multi-Layer Networks (MRN/MLN)
|
|
RFC 6001: Generalized MPLS (GMPLS) Protocol Extensions
|
|
for Multi-Layer and Multi-Region Networks (MLN/MRN)";
|
|
}
|
|
}
|
|
// te-termination-point-config
|
|
|
|
grouping te-topologies-augment {
|
|
description
|
|
"Augmentation for TE topologies.";
|
|
container te {
|
|
presence "TE support";
|
|
description
|
|
"Indicates TE support.";
|
|
container templates {
|
|
description
|
|
"Configuration parameters for templates used for a TE
|
|
topology.";
|
|
list node-template {
|
|
if-feature "template";
|
|
key "name";
|
|
leaf name {
|
|
type te-types:te-template-name;
|
|
description
|
|
"The name to identify a TE node template.";
|
|
}
|
|
description
|
|
"The list of TE node templates used to define sharable
|
|
and reusable TE node attributes.";
|
|
uses template-attributes;
|
|
uses te-node-config-attributes-template;
|
|
}
|
|
// node-template
|
|
list link-template {
|
|
if-feature "template";
|
|
key "name";
|
|
leaf name {
|
|
type te-types:te-template-name;
|
|
description
|
|
"The name to identify a TE link template.";
|
|
}
|
|
description
|
|
"The list of TE link templates used to define sharable
|
|
and reusable TE link attributes.";
|
|
uses template-attributes;
|
|
uses te-link-config-attributes;
|
|
}
|
|
// link-template
|
|
}
|
|
// templates
|
|
}
|
|
// te
|
|
}
|
|
// te-topologies-augment
|
|
|
|
grouping te-topology-augment {
|
|
description
|
|
"Augmentation for a TE topology.";
|
|
uses te-types:te-topology-identifier;
|
|
container te {
|
|
must '../te-topology-identifier/provider-id'
|
|
+ ' and ../te-topology-identifier/client-id'
|
|
+ ' and ../te-topology-identifier/topology-id';
|
|
presence "TE support";
|
|
description
|
|
"Indicates TE support.";
|
|
uses te-topology-config;
|
|
uses geolocation-container;
|
|
}
|
|
}
|
|
// te-topology-augment
|
|
|
|
grouping te-topology-config {
|
|
description
|
|
"TE topology configuration grouping.";
|
|
leaf name {
|
|
type string;
|
|
description
|
|
"Name of the TE topology. This attribute is optional and can
|
|
be specified by the operator to describe the TE topology,
|
|
which can be useful when 'network-id' (RFC 8345) is not
|
|
descriptive and not modifiable because of being generated
|
|
by the system.";
|
|
reference
|
|
"RFC 8345: A YANG Data Model for Network Topologies";
|
|
}
|
|
leaf preference {
|
|
type uint8 {
|
|
range "1..255";
|
|
}
|
|
description
|
|
"Specifies a preference for this topology. A lower number
|
|
indicates a higher preference.";
|
|
}
|
|
leaf optimization-criterion {
|
|
type identityref {
|
|
base te-types:objective-function-type;
|
|
}
|
|
description
|
|
"Optimization criterion applied to this topology.";
|
|
reference
|
|
"RFC 3272: Overview and Principles of Internet Traffic
|
|
Engineering";
|
|
}
|
|
list nsrlg {
|
|
if-feature "nsrlg";
|
|
key "id";
|
|
description
|
|
"List of NSRLGs (Non-Shared Risk Link Groups).";
|
|
reference
|
|
"RFC 4872: RSVP-TE Extensions in Support of End-to-End
|
|
Generalized Multi-Protocol Label Switching (GMPLS)
|
|
Recovery";
|
|
leaf id {
|
|
type uint32;
|
|
description
|
|
"Identifies the NSRLG entry.";
|
|
}
|
|
leaf disjointness {
|
|
type te-types:te-path-disjointness;
|
|
description
|
|
"The type of resource disjointness.";
|
|
}
|
|
}
|
|
// nsrlg
|
|
}
|
|
// te-topology-config
|
|
|
|
grouping template-attributes {
|
|
description
|
|
"Common attributes for all templates.";
|
|
leaf priority {
|
|
type uint16;
|
|
description
|
|
"The preference value for resolving conflicts between
|
|
different templates. When two or more templates specify
|
|
values for one configuration attribute, the value from the
|
|
template with the highest priority is used.
|
|
A lower number indicates a higher priority. The highest
|
|
priority is 0.";
|
|
}
|
|
leaf reference-change-policy {
|
|
type enumeration {
|
|
enum no-action {
|
|
description
|
|
"When an attribute changes in this template, the
|
|
configuration node referring to this template does
|
|
not take any action.";
|
|
}
|
|
enum not-allowed {
|
|
description
|
|
"When any configuration object has a reference to this
|
|
template, changing this template is not allowed.";
|
|
}
|
|
enum cascade {
|
|
description
|
|
"When an attribute changes in this template, the
|
|
configuration object referring to this template applies
|
|
the new attribute value to the corresponding
|
|
configuration.";
|
|
}
|
|
}
|
|
description
|
|
"This attribute specifies the action taken for a
|
|
configuration node that has a reference to this template.";
|
|
}
|
|
}
|
|
// template-attributes
|
|
|
|
/*
|
|
* Data nodes
|
|
*/
|
|
|
|
augment "/nw:networks/nw:network/nw: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:networks" {
|
|
description
|
|
"Augmentation parameters for TE topologies.";
|
|
uses te-topologies-augment;
|
|
}
|
|
|
|
augment "/nw:networks/nw:network" {
|
|
when 'nw:network-types/tet:te-topology' {
|
|
description
|
|
"Augmentation parameters apply only for networks with a
|
|
TE topology type.";
|
|
}
|
|
description
|
|
"Configuration parameters for a TE topology.";
|
|
uses te-topology-augment;
|
|
}
|
|
|
|
augment "/nw:networks/nw:network/nw:node" {
|
|
when '../nw:network-types/tet: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: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 te-node-augment;
|
|
}
|
|
}
|
|
|
|
augment "/nw:networks/nw:network/nt:link" {
|
|
when '../nw:network-types/tet: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: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 te-link-augment;
|
|
}
|
|
}
|
|
|
|
augment "/nw:networks/nw:network/nw:node/"
|
|
+ "nt:termination-point" {
|
|
when '../../nw:network-types/tet: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 te-termination-point-augment;
|
|
}
|
|
|
|
augment "/nw:networks/nw:network/nt:link/te/bundle-stack-level/"
|
|
+ "bundle/bundled-links/bundled-link" {
|
|
when '../../../../nw:network-types/tet: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:node[nw:node-id = "
|
|
+ "current()/../../../../nt:source/"
|
|
+ "nt:source-node]/"
|
|
+ "nt:termination-point/nt: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:node[nw:node-id = "
|
|
+ "current()/../../../../nt:destination/"
|
|
+ "nt:dest-node]/"
|
|
+ "nt:termination-point/nt:tp-id";
|
|
require-instance true;
|
|
}
|
|
description
|
|
"Reference to another TE termination point on the
|
|
same destination node.";
|
|
}
|
|
}
|
|
|
|
augment "/nw:networks/nw:network/nw:node/te/"
|
|
+ "information-source-entry/connectivity-matrices/"
|
|
+ "connectivity-matrix" {
|
|
when '../../../../../nw:network-types/tet: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:networks/nw:network/nw:node/te/te-node-attributes/"
|
|
+ "connectivity-matrices/connectivity-matrix" {
|
|
when '../../../../../nw:network-types/tet: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:networks/nw:network/nw:node/te/"
|
|
+ "tunnel-termination-point/local-link-connectivities" {
|
|
when '../../../../nw:network-types/tet: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;
|
|
}
|
|
}
|