module ietf-otn-tunnel {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
prefix "otn-tunnel";
import ietf-te-types {
prefix te-types;
revision-date "2019-02-06";
reference "draft-ietf-teas-yang-te-types: A YANG Data Model for
Common Traffic Engineering Types";
}
import ietf-te {
prefix "te";
revision-date "2019-02-15";
reference
"I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic
Engineering Tunnels and Interfaces. ";
}
import ietf-layer1-types {
prefix "l1-types";
reference
"I-D.ietf-ccamp-layer1-types:
A YANG Data Model for Layer 1 Types. ";
}
organization
"IETF CCAMP Working Group";
contact
"WG Web:
WG List:
Editor: Haomian Zheng
Editor: Italo Busi
Editor: Sergio Belotti
Editor: Victor Lopez
Editor: Yunbin Xu
";
description
"This module defines a model for OTN Tunnel Services.
The model fully conforms to the Network Management
Datastore Architecture (NMDA).
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 XXXX; see
the RFC itself for full legal notices.";
revision "2021-04-12" {
description
"Initial Revision";
reference
"RFC XXXX: OTN Tunnel YANG Model";
// RFC Ed.: replace XXXX with actual RFC number, update date
// information and remove this note
}
/*
* Data nodes
*/
/*
* Augment TE bandwidth
*/
/* Augment bandwidth of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses l1-types:otn-path-bandwidth;
}
}
/* Augment bandwdith of tunnel */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses l1-types:otn-path-bandwidth;
}
}
/* Augment bandwidth of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses l1-types:otn-path-bandwidth;
}
}
/* Augment bandwidth of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses l1-types:otn-path-bandwidth;
}
}
/* Augment bandwidth of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses l1-types:otn-path-bandwidth;
}
}
/*
* Augment TE label.
*/
/* Augment label hop of route-object-exclude-always of
named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-include-exclude of
named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restrictions/te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label hop of route-exclude of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-include of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-exclude-always of
primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-include-exclude of
primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label restrictions for the path-in-segment of
primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label hop of path-route of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:computed-paths-properties/"
+ "te:computed-path-properties/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of record-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of path-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-exclude of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-include of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-exclude-always of
reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-include-exclude of
reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label hop of path-route of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:computed-paths-properties/te:computed-path-properties/"
+ "te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of record-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of path-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/"
+ "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-exclude of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-include of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-exclude-always of
secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of route-object-include-exclude of
secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label restrictions for the forwarding direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions for the forwarding direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses l1-types:otn-label-range-info;
}
/* Augment label restrictions start for the forwarding direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label restrictions end for the forwarding direction of
path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-start-end;
}
}
/* Augment label hop of path-route of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:computed-paths-properties/"
+ "te:computed-path-properties/"
+ "te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of record-route of secondary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of path-route of secondary LSP */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
/* Augment label hop of record-route of LSP */
augment "/te:te/te:lsps-state/"
+ "te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses l1-types:otn-label-hop;
}
}
}