OTN Tunnel YANG Model
Huawei Technologies
H1, Huawei Xiliu Beipo Village, Songshan Lake
Dongguan
Guangdong
523808
China
zhenghaomian@huawei.com
Huawei Technologies
HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2
Milan
Milan
20090
Italy
Italo.Busi@huawei.com
Nokia
sergio.belotti@nokia.com
Telefonica
victor.lopezalvarez@telefonica.com
CAICT
xuyunbin@caict.ac.cn
CCAMP Working Group
This document describes the YANG data model for OTN Tunnels.
OTN transport networks, specified in , can carry various types of client signals. In many cases, the client signal is carried over an OTN tunnel across connected domains in a multi-domain network.
This document provides YANG model for creating OTN tunnel. The model augments the TE Tunnel model.
A simplified graphical representation of the data model is used in this document. The meaning of the symbols in the YANG data tree presented later in this draft is defined in . They are provided below for reference.
Brackets "[" and "]" enclose list keys.
Abbreviations before data node names: "rw" means configuration (read-write) and "ro" state data (read-only).
Symbols after data node names: "?" means an optional node, "!" means a presence container, and "*" denotes a list and leaf-list.
Parentheses enclose choice and case nodes, and case nodes are also marked with a colon (":").
Ellipsis ("...") stands for contents of subtrees that are not shown.
More OTN specific terms can be found in .
The OTN tunnel model is using TE tunnel as a basic model and augment to the TE tunnel with OTN-specific parameters, including the bandwidth information and label information. It is also worth noting that the OTN tunnel provisioning is usually based on the OTN topology. Therefore the OTN tunnel model is usually used together with OTN topology model specified in . The OTN tunnel model also imports a few type modules, including ietf-layer1-types, ietf-te-types and ietf-inet-types. The OTN-specific attributes, such as Tributary Slot (TS), Tributary Port Number (TPN), are specified in the module ietf-layer1-types in and used in this document.
More scenarios and model applications can be found in and . The current model is following the YANG language specification as , and the corresponding protocol is recommended to be Netconf protocol in or RESTconf protocol in .
The YANG module ietf-otn-tunnel defined in this document conforms to the Network Management Datastore Architecture (NMDA) defined in .
OTN specific parameters have been augmenting to the TE tunnel models. The attributes on both of the source and destination need to be configured when setting up the tunnel. Typical parameters, including client signal, TPN, TSG and corresponding tributary slot information, are required in the OTN tunnel model. These parameters are consistent with the framework in , and the specification in and .
The OTN bandwidth information has been augmenting to various sections of TE tunnel models, including tunnel bandwidth, primary path bandwidth and so on. The OTN label information has been augmenting to label hop of a group of routing objects and also LSPs.
file "ietf-otn-tunnel@2020-03-09.yang"
module ietf-otn-tunnel {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
prefix "otn-tunnel";
import ietf-te {
prefix "te";
reference
"I-D.ietf-teas-yang-te: 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) 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 XXXX; see
the RFC itself for full legal notices.";
revision "2020-03-09" {
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
}
/*
* Groupings
*/
grouping otn-tunnel-attributes {
description "Parameters for OTN tunnel";
leaf src-client-signal {
type identityref {
base l1-types:client-signal;
}
description
"Client signal at the source endpoint of the tunnel. ";
}
leaf dst-client-signal {
type identityref {
base l1-types:client-signal;
}
description
"Client signal at the destination endpoint of the tunnel";
}
}
/*
* Data nodes
*/
augment "/te:te/te:tunnels/te:tunnel" {
description
"Augment with additional parameters required for OTN service";
uses otn-tunnel-attributes;
}
/*
* 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 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" {
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;
}
}
}
]]>
The YANG module specified in this document defines a schema for data that is designed to be accessed via network management protocols such as NETCONF or RESTCONF . The lowest NETCONF layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) . The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure transport is TLS .
The NETCONF access control model provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.
There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes may be considered sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations. These are the subtrees and data nodes and their sensitivity/vulnerability:
/te:te/te:tunnels/te:tunnel
/te:te/../te:te-bandwidth/te:technology
/te:te/../te:type/te:label/te:label-hop/te:te-label/te:technology
/te:te/../te:label-restrictions/te:label-restriction/te:label-start/te:te-label/te:technology
/te:te/../te:label-restrictions/te:label-restriction/te:label-end/te:te-label/te:technology
/te:te/../te:label-restrictions/te:label-restriction/
Editors note: we are using simplified description by folding similar branches to avoid repetation.
Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. These are the subtrees and data nodes and their sensitivity/vulnerability:
/te:te/../te:type/te:label/te:label-hop/te:te-label/te:technology
Editors note: we are using simplified description by folding similar branches to avoid repetation.
It is proposed that IANA should assign new URIs from the "IETF XML Registry" as follows:
This document registers following YANG modules in the YANG Module Names registry .
Aihua Guo
Individual
Email: aihuaguo.ietf@gmail.com
Anurag Sharma
Google
Email: ansha@google.com
Rajan Rao
Infinera
Email: rrao@infinera.com
Yunbo Li
China Mobile
Email: liyunbo@chinamobile.com
Dieter Beller
Nokia
Email: dieter.beller@nokia.com
Yanlei Zheng
China Unicom
Email: zhengyanlei@chinaunicom.cn
Xian Zhang
Huawei Technologies
Email: zhang.xian@huawei.com
Lei Wang
China Mobile
Email: wangleiyj@chinamobile.com
Oscar Gonzalez de Dios
Telefonica
Email: oscar.gonzalezdedios@telefonica.com
Interfaces for the optical transport network
International Telecommunication Union