draft-ietf-ccamp-otn-tunnel-model-09.txt   draft-ietf-ccamp-otn-tunnel-model-10.txt 
CCAMP Working Group H. Zheng CCAMP Working Group H. Zheng
Internet-Draft I. Busi Internet-Draft I. Busi
Intended status: Standards Track Huawei Technologies Intended status: Standards Track Huawei Technologies
Expires: May 5, 2020 S. Belotti Expires: September 10, 2020 S. Belotti
Nokia Nokia
V. Lopez V. Lopez
Telefonica Telefonica
Y. Xu Y. Xu
CAICT CAICT
November 2, 2019 March 9, 2020
OTN Tunnel YANG Model OTN Tunnel YANG Model
draft-ietf-ccamp-otn-tunnel-model-09 draft-ietf-ccamp-otn-tunnel-model-10
Abstract Abstract
This document describes the YANG data model for OTN Tunnels. This document describes the YANG data model for OTN Tunnels.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 5, 2020. This Internet-Draft will expire on September 10, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2 2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2
3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3 3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3
3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3 3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3
3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3 3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3
3.3. OTN Path Compute RPC . . . . . . . . . . . . . . . . . . 4
4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4
5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 14 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 15
6. Security Considerations . . . . . . . . . . . . . . . . . . . 30 6. Security Considerations . . . . . . . . . . . . . . . . . . . 32
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 32 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 33
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 32 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 34
10.1. Normative References . . . . . . . . . . . . . . . . . . 33 10.1. Normative References . . . . . . . . . . . . . . . . . . 34
10.2. Informative References . . . . . . . . . . . . . . . . . 34 10.2. Informative References . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36
1. Introduction 1. Introduction
OTN transport networks, specified in [ITU-Tg709], can carry various OTN transport networks, specified in [ITU-Tg709], can carry various
types of client services. In many cases, the client signal is types of client signals. In many cases, the client signal is carried
carried over an OTN tunnel across connected domains in a multi-domain over an OTN tunnel across connected domains in a multi-domain
network. These OTN services can either be transported or switched in network.
the OTN network. If an OTN tunnel is switched, then additional
parameters need to be provided to create a Mux OTN service.
This document provides YANG model for creating OTN tunnel. The model This document provides YANG model for creating OTN tunnel. The model
augments the TE Tunnel model. augments the TE Tunnel model.
2. Terminology and Notations 2. Terminology and Notations
A simplified graphical representation of the data model is used in A simplified graphical representation of the data model is used in
this document. The meaning of the symbols in the YANG data tree this document. The meaning of the symbols in the YANG data tree
presented later in this draft is defined in [RFC8340]. They are presented later in this draft is defined in [RFC8340]. They are
provided below for reference. provided below for reference.
skipping to change at page 3, line 25 skipping to change at page 3, line 22
3.1. Overview of OTN Tunnel Model 3.1. Overview of OTN Tunnel Model
The OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a The OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a
basic model and augment to the TE tunnel with OTN-specific basic model and augment to the TE tunnel with OTN-specific
parameters, including the bandwidth information and label parameters, including the bandwidth information and label
information. It is also worth noting that the OTN tunnel information. It is also worth noting that the OTN tunnel
provisioning is usually based on the OTN topology. Therefore the OTN provisioning is usually based on the OTN topology. Therefore the OTN
tunnel model is usually used together with OTN topology model tunnel model is usually used together with OTN topology model
specified in [I-D.ietf-ccamp-otn-topo-yang]. The OTN tunnel model specified in [I-D.ietf-ccamp-otn-topo-yang]. The OTN tunnel model
also imports a few type modules, including ietf-otn-types, ietf-te- also imports a few type modules, including ietf-layer1-types, ietf-
types and ietf-inet-types. 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 [I-D.ietf-ccamp-layer1-types] and
used in this document.
More scenarios and model applications can be found in More scenarios and model applications can be found in
[I-D.ietf-ccamp-transport-nbi-app-statement] and [I-D.ietf-ccamp-transport-nbi-app-statement] and
[I-D.ietf-teas-actn-yang]. The current model is following the YANG [I-D.ietf-teas-actn-yang]. The current model is following the YANG
language specification as [RFC7950], and the corresponding protocol language specification as [RFC7950], and the corresponding protocol
is recommended to be Netconf protocol in [RFC6241] or RESTconf is recommended to be Netconf protocol in [RFC6241] or RESTconf
protocol in [RFC8040]. protocol in [RFC8040].
The YANG module ietf-otn-tunnel defined in this document conforms to The YANG module ietf-otn-tunnel defined in this document conforms to
the Network Management Datastore Architecture (NMDA) defined in the Network Management Datastore Architecture (NMDA) defined in
skipping to change at page 4, line 5 skipping to change at page 4, line 5
client signal, TPN, TSG and corresponding tributary slot information, client signal, TPN, TSG and corresponding tributary slot information,
are required in the OTN tunnel model. These parameters are are required in the OTN tunnel model. These parameters are
consistent with the framework in [RFC7062], and the specification in consistent with the framework in [RFC7062], and the specification in
[RFC7138] and [RFC7139]. [RFC7138] and [RFC7139].
The OTN bandwidth information has been augmenting to various sections The OTN bandwidth information has been augmenting to various sections
of TE tunnel models, including tunnel bandwidth, primary path of TE tunnel models, including tunnel bandwidth, primary path
bandwidth and so on. The OTN label information has been augmenting bandwidth and so on. The OTN label information has been augmenting
to label hop of a group of routing objects and also LSPs. to label hop of a group of routing objects and also LSPs.
3.3. OTN Path Compute RPC
Similarly with TE tunnel, a 'compute-only' mode of OTN tunnel model
is also supported for stateful path computation. Given the OTN
tunnel computed, the client may query and/or subscribe on the tunnel
to be notified whenever it changes. In addition, also a stateless
Remote Procedural Call (RPC) is specified. On receiving this RPC,
the provider is expected to compute the available path subject to the
constraints specified in RPC and feedback to the client without any
changing of the OTN network or the OTN tunnels.
4. OTN Tunnel YANG Tree 4. OTN Tunnel YANG Tree
module: ietf-otn-tunnel module: ietf-otn-tunnel
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw src-client-signal? identityref +--rw src-client-signal? identityref
+--rw dst-client-signal? identityref +--rw dst-client-signal? identityref
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:te-bandwidth /te:named-path-constraint/te:te-bandwidth
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
+--rw (oduflex-type)?
+--:(generic)
| +--rw nominal-bit-rate uint64
+--:(cbr)
| +--rw client-type identityref
+--:(gfp-n-k)
| +--rw gfp-n uint8
| +--rw gfp-k? l1-types:gfp-k
+--:(flexe-client)
| +--rw flexe-client
| l1-types:flexe-client-rate
+--:(flexe-aware)
| +--rw flexe-aware-n uint16
+--:(packet)
+--rw opuflex-payload-rate uint64
augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
+--rw (oduflex-type)?
+--:(generic)
| +--rw nominal-bit-rate uint64
+--:(cbr)
| +--rw client-type identityref
+--:(gfp-n-k)
| +--rw gfp-n uint8
| +--rw gfp-k? l1-types:gfp-k
+--:(flexe-client)
| +--rw flexe-client
| l1-types:flexe-client-rate
+--:(flexe-aware)
| +--rw flexe-aware-n uint16
+--:(packet)
+--rw opuflex-payload-rate uint64
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:te-bandwidth /te:p2p-primary-path/te:te-bandwidth
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
+--rw (oduflex-type)?
+--:(generic)
| +--rw nominal-bit-rate uint64
+--:(cbr)
| +--rw client-type identityref
+--:(gfp-n-k)
| +--rw gfp-n uint8
| +--rw gfp-k? l1-types:gfp-k
+--:(flexe-client)
| +--rw flexe-client
| l1-types:flexe-client-rate
+--:(flexe-aware)
| +--rw flexe-aware-n uint16
+--:(packet)
+--rw opuflex-payload-rate uint64
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:te-bandwidth/te:technology: /te:te-bandwidth/te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
+--rw (oduflex-type)?
+--:(generic)
| +--rw nominal-bit-rate uint64
+--:(cbr)
| +--rw client-type identityref
+--:(gfp-n-k)
| +--rw gfp-n uint8
| +--rw gfp-k? l1-types:gfp-k
+--:(flexe-client)
| +--rw flexe-client
| l1-types:flexe-client-rate
+--:(flexe-aware)
| +--rw flexe-aware-n uint16
+--:(packet)
+--rw opuflex-payload-rate uint64
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:te-bandwidth /te:p2p-secondary-path/te:te-bandwidth
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
+--rw (oduflex-type)?
+--:(generic)
| +--rw nominal-bit-rate uint64
+--:(cbr)
| +--rw client-type identityref
+--:(gfp-n-k)
| +--rw gfp-n uint8
| +--rw gfp-k? l1-types:gfp-k
+--:(flexe-client)
| +--rw flexe-client
| l1-types:flexe-client-rate
+--:(flexe-aware)
| +--rw flexe-aware-n uint16
+--:(packet)
+--rw opuflex-payload-rate uint64
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint /te:named-path-constraint
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint /te:named-path-constraint
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/te:type /te:route-object-include-exclude/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:globals/te:named-path-constraints augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:optimizations /te:p2p-primary-path/te:optimizations
/te:algorithm/te:metric/te:optimization-metric /te:algorithm/te:metric/te:optimization-metric
/te:explicit-route-exclude-objects /te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:optimizations /te:p2p-primary-path/te:optimizations
/te:algorithm/te:metric/te:optimization-metric /te:algorithm/te:metric/te:optimization-metric
/te:explicit-route-include-objects /te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path /te:p2p-primary-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path /te:p2p-primary-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/te:type /te:route-object-include-exclude/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment /te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment /te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment /te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment /te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment /te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment /te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path /te:p2p-primary-path
/te:computed-paths-properties /te:computed-paths-properties
/te:computed-path-properties/te:path-properties /te:computed-path-properties/te:path-properties
/te:path-route-objects /te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:lsps/te:lsp /te:p2p-primary-path/te:lsps/te:lsp
/te:lsp-record-route-information /te:lsp-record-route-information
/te:lsp-record-route-information/te:type /te:lsp-record-route-information/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:lsps/te:lsp /te:p2p-primary-path/te:lsps/te:lsp
/te:path-properties/te:path-route-objects /te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:optimizations/te:algorithm/te:metric /te:optimizations/te:algorithm/te:metric
/te:optimization-metric /te:optimization-metric
/te:explicit-route-exclude-objects /te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:optimizations/te:algorithm/te:metric /te:optimizations/te:algorithm/te:metric
/te:optimization-metric /te:optimization-metric
/te:explicit-route-include-objects /te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/te:type /te:route-object-include-exclude/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label /te:label-restriction/te:label-start/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-in-segment/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label /te:label-restriction/te:label-end/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label /te:label-restriction/te:label-start/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label /te:label-restriction/te:label-end/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:computed-paths-properties /te:computed-paths-properties
/te:computed-path-properties/te:path-properties /te:computed-path-properties/te:path-properties
/te:path-route-objects /te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:lsps/te:lsp/te:lsp-record-route-information /te:lsps/te:lsp/te:lsp-record-route-information
/te:lsp-record-route-information/te:type /te:lsp-record-route-information/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-primary-reverse-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:lsps/te:lsp/te:path-properties /te:lsps/te:lsp/te:path-properties
/te:path-route-objects /te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:optimizations /te:p2p-secondary-path/te:optimizations
/te:algorithm/te:metric/te:optimization-metric /te:algorithm/te:metric/te:optimization-metric
/te:explicit-route-exclude-objects /te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:optimizations /te:p2p-secondary-path/te:optimizations
/te:algorithm/te:metric/te:optimization-metric /te:algorithm/te:metric/te:optimization-metric
/te:explicit-route-include-objects /te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path /te:p2p-secondary-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-exclude-always/te:type/te:label /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path /te:p2p-secondary-path
/te:explicit-route-objects-always /te:explicit-route-objects-always
/te:route-object-include-exclude/te:type /te:route-object-include-exclude/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw otn-tpn? l1-types:otn-tpn
+--rw tsg? identityref +--rw tsg? identityref
+--rw ts-list? string +--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment /te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment /te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment /te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment /te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? l1-types:otn-label-range-type
+--rw tsg? identityref +--rw tsg? identityref
+--rw odu-type-list* identityref +--rw odu-type-list* identityref
+--rw priority? uint8 +--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment /te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment /te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction /te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (range-type)?
+--:(tributary-port) +--:(trib-port)
| +--rw tpn? uint16 | +--rw otn-tpn? l1-types:otn-tpn
+--:(tributary-slot) +--:(trib-slot)
+--rw ts? uint16 +--rw otn-ts? l1-types:otn-ts
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path /te:p2p-secondary-path
/te:computed-paths-properties /te:computed-paths-properties
/te:computed-path-properties/te:path-properties /te:computed-path-properties/te:path-properties
/te:path-route-objects /te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:lsps/te:lsp /te:p2p-secondary-path/te:lsps/te:lsp
/te:lsp-record-route-information /te:lsp-record-route-information
/te:lsp-record-route-information/te:type /te:lsp-record-route-information/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:lsps/te:lsp /te:p2p-secondary-path/te:lsps/te:lsp
/te:path-properties/te:path-route-objects /te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:type/te:label /te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
augment /te:te/te:lsps-state/te:lsp augment /te:te/te:lsps-state/te:lsp
/te:lsp-record-route-information /te:lsp-record-route-information
/te:lsp-record-route-information/te:type /te:lsp-record-route-information/te:type
/te:label/te:label-hop/te:te-label /te:label/te:label-hop/te:te-label
/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro otn-tpn? l1-types:otn-tpn
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
5. OTN Tunnel YANG Code 5. OTN Tunnel YANG Code
<CODE BEGINS>file "ietf-otn-tunnel@2019-11-02.yang" <CODE BEGINS>file "ietf-otn-tunnel@2020-03-09.yang"
module ietf-otn-tunnel { module ietf-otn-tunnel {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel"; namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
prefix "otn-tunnel"; prefix "otn-tunnel";
import ietf-te { import ietf-te {
prefix "te"; prefix "te";
reference reference
"I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering "I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering
Tunnels and Interfaces. "; Tunnels and Interfaces. ";
} }
import ietf-layer1-types { import ietf-layer1-types {
prefix "layer1-types"; prefix "l1-types";
reference reference
"I-D.ietf-ccamp-layer1-types: "I-D.ietf-ccamp-layer1-types:
A YANG Data Model for Layer 1 Types. "; A YANG Data Model for Layer 1 Types. ";
} }
organization organization
"IETF CCAMP Working Group"; "IETF CCAMP Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/ccamp/> "WG Web: <http://tools.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org> WG List: <mailto:ccamp@ietf.org>
Editor: Haomian Zheng Editor: Haomian Zheng
<mailto:zhenghaomian@huawei.com> <mailto:zhenghaomian@huawei.com>
skipping to change at page 15, line 30 skipping to change at page 16, line 44
<mailto:sergio.belotti@nokia.com> <mailto:sergio.belotti@nokia.com>
Editor: Victor Lopez Editor: Victor Lopez
<mailto:victor.lopezalvarez@telefonica.com> <mailto:victor.lopezalvarez@telefonica.com>
Editor: Yunbin Xu Editor: Yunbin Xu
<mailto:xuyunbin@ritt.cn>"; <mailto:xuyunbin@ritt.cn>";
description description
"This module defines a model for OTN Tunnel Services. "This module defines a model for OTN Tunnel Services.
The model fully conforms to the Network Management The model fully conforms to the Network Management
Datastore Architecture (NMDA). Datastore Architecture (NMDA).
Copyright (c) 2019 IETF Trust and the persons Copyright (c) 2020 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
revision "2019-11-02" { revision "2020-03-09" {
description description
"Initial Revision"; "Initial Revision";
reference reference
"RFC XXXX: OTN Tunnel YANG Model"; "RFC XXXX: OTN Tunnel YANG Model";
// RFC Ed.: replace XXXX with actual RFC number, update date // RFC Ed.: replace XXXX with actual RFC number, update date
// information and remove this note // information and remove this note
} }
/* /*
* Groupings * Groupings
*/ */
grouping otn-tunnel-attributes { grouping otn-tunnel-attributes {
description "Parameters for OTN tunnel"; description "Parameters for OTN tunnel";
leaf src-client-signal { leaf src-client-signal {
type identityref { type identityref {
base layer1-types:client-signal; base l1-types:client-signal;
} }
description description
"Client signal at the source endpoint of the tunnel. "; "Client signal at the source endpoint of the tunnel. ";
} }
leaf dst-client-signal { leaf dst-client-signal {
type identityref { type identityref {
base layer1-types:client-signal; base l1-types:client-signal;
} }
description description
"Client signal at the destination endpoint of the tunnel"; "Client signal at the destination endpoint of the tunnel";
} }
} }
/* /*
* Data nodes * Data nodes
*/ */
skipping to change at page 16, line 50 skipping to change at page 18, line 18
/* /*
* Augment TE bandwidth * Augment TE bandwidth
*/ */
/* Augment bandwidth of named-path-constraints */ /* Augment bandwidth of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/" + "te:named-path-constraint/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses l1-types:otn-path-bandwidth;
} }
} }
/* Augment bandwdith of tunnel */ /* Augment bandwdith of tunnel */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses l1-types:otn-path-bandwidth;
} }
} }
/* Augment bandwidth of primary path */ /* Augment bandwidth of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses l1-types:otn-path-bandwidth;
} }
} }
/* Augment bandwidth of reverse primary path */ /* Augment bandwidth of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses l1-types:otn-path-bandwidth;
} }
} }
/* Augment bandwidth of secondary path */ /* Augment bandwidth of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:te-bandwidth/te:technology" { + "te:te-bandwidth/te:technology" {
description "OTN bandwidth."; description "OTN bandwidth.";
case otn { case otn {
uses layer1-types:otn-path-bandwidth; uses l1-types:otn-path-bandwidth;
} }
} }
/* /*
* Augment TE label. * Augment TE label.
*/ */
/* Augment label hop of route-object-exclude-always /* Augment label hop of route-object-exclude-always
* of named-path-constraints */ * of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:explicit-route-objects-always/" + "te:named-path-constraint/te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/te:type/te:label/" + "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-include-exclude /* Augment label hop of route-object-include-exclude
* of named-path-constraints */ * of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:explicit-route-objects-always/" + "te:named-path-constraint/te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/te:type/te:label/" + "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-in-segment of named-path-constraints */ * of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/" + "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restrictions/te:label-restriction" { + "te:label-restrictions/te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-in-segment of named-path-constraints */ * of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/" + "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restrictions/" + "te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-in-segment of named-path-constraints */ * of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/" + "te:named-path-constraint/te:path-in-segment/"
+ "te:label-restrictions/" + "te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-out-segment of named-path-constraints */ * of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/" + "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/" + "te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-out-segment of named-path-constraints */ * of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/" + "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/" + "te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-out-segment of named-path-constraints */ * of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/" + "te:named-path-constraint/te:path-out-segment/"
+ "te:label-restrictions/" + "te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label hop of route-exclude of primary path */ /* Augment label hop of route-exclude of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/" + "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-include of primary path */ /* Augment label hop of route-include of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/" + "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-exclude-always of /* Augment label hop of route-object-exclude-always of
* primary path */ * primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/" + "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/te:type/te:label/" + "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-include-exclude of /* Augment label hop of route-object-include-exclude of
* primary path */ * primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects-always/" + "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/te:type/te:label/" + "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-in-segment of primary path */ * of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-in-segment of primary path */ * of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-in-segment of primary path */ * of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions for the forwarding direction of /* Augment label restrictions for the forwarding direction of
* path-out-segment of primary path */ * path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-out-segment of primary path */ * of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-out-segment of primary path */ * of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label hop of path-route of primary path */ /* Augment label hop of path-route of primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:computed-paths-properties/" + "te:computed-paths-properties/"
+ "te:computed-path-properties/te:path-properties/" + "te:computed-path-properties/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of record-route of primary LSP */ /* Augment label hop of record-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of path-route of primary LSP */ /* Augment label hop of path-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
skipping to change at page 23, line 16 skipping to change at page 24, line 32
/* Augment label hop of path-route of primary LSP */ /* Augment label hop of path-route of primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-exclude of reverse primary path */ /* Augment label hop of route-exclude of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/" + "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-include of reverse primary path */ /* Augment label hop of route-include of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/" + "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-exclude-always of /* Augment label hop of route-object-exclude-always of
* reverse primary path */ * reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:explicit-route-objects-always/" + "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/" + "te:route-object-exclude-always/"
+ "te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-include-exclude of /* Augment label hop of route-object-include-exclude of
* reverse primary path */ * reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:explicit-route-objects-always/" + "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/" + "te:route-object-include-exclude/"
+ "te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-in-segment of reverse primary path */ * of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-in-segment of reverse primary path */ * of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-in-segment of reverse primary path */ * of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
skipping to change at page 25, line 17 skipping to change at page 26, line 33
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-in-segment of reverse primary path */ * of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-out-segment of reverse primary path */ * of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-out-segment of reverse primary path */ * of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-out-segment of reverse primary path */ * of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label hop of path-route of reverse primary path */ /* Augment label hop of path-route of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:computed-paths-properties/te:computed-path-properties/" + "te:computed-paths-properties/te:computed-path-properties/"
+ "te:path-properties/te:path-route-objects/" + "te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/" + "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of record-route of reverse primary LSP */ /* Augment label hop of record-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of path-route of reverse primary LSP */ /* Augment label hop of path-route of reverse primary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-primary-reverse-path/" + "te:p2p-primary-reverse-path/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/te:path-computed-route-object/" + "te:path-route-objects/te:path-computed-route-object/"
+ "te:type/te:label/" + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-exclude of secondary path */ /* Augment label hop of route-exclude of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/" + "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
skipping to change at page 27, line 14 skipping to change at page 28, line 32
/* Augment label hop of route-exclude of secondary path */ /* Augment label hop of route-exclude of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/" + "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-include of secondary path */ /* Augment label hop of route-include of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/" + "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-exclude-always /* Augment label hop of route-object-exclude-always
* of secondary path */ * of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects-always/" + "te:explicit-route-objects-always/"
+ "te:route-object-exclude-always/te:type/te:label/" + "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of route-object-include-exclude of /* Augment label hop of route-object-include-exclude of
* secondary path */ * secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects-always/" + "te:explicit-route-objects-always/"
+ "te:route-object-include-exclude/te:type/te:label/" + "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-in-segment of secondary path */ * of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-in-segment of secondary path */ * of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-in-segment of secondary path */ * of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions for the forwarding direction /* Augment label restrictions for the forwarding direction
* of path-out-segment of secondary path */ * of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses layer1-types:otn-label-range-info; uses l1-types:otn-label-range-info;
} }
/* Augment label restrictions start for the forwarding direction /* Augment label restrictions start for the forwarding direction
* of path-out-segment of secondary path */ * of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-start/" + "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label restrictions end for the forwarding direction /* Augment label restrictions end for the forwarding direction
* of path-out-segment of secondary path */ * of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/" + "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" { + "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-start-end; uses l1-types:otn-label-start-end;
} }
} }
/* Augment label hop of path-route of secondary path */ /* Augment label hop of path-route of secondary path */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:computed-paths-properties/" + "te:computed-paths-properties/"
+ "te:computed-path-properties/" + "te:computed-path-properties/"
+ "te:path-properties/te:path-route-objects/" + "te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/" + "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of record-route of secondary LSP */ /* Augment label hop of record-route of secondary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:lsps/te:lsp/te:lsp-record-route-information/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of path-route of secondary LSP */ /* Augment label hop of path-route of secondary LSP */
augment "/te:te/te:tunnels/te:tunnel/" augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:lsps/te:lsp/te:path-properties/" + "te:lsps/te:lsp/te:path-properties/"
+ "te:path-route-objects/" + "te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/" + "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
/* Augment label hop of record-route of LSP */ /* Augment label hop of record-route of LSP */
augment "/te:te/te:lsps-state/" augment "/te:te/te:lsps-state/"
+ "te:lsp/te:lsp-record-route-information/" + "te:lsp/te:lsp-record-route-information/"
+ "te:lsp-record-route-information/te:type/te:label/" + "te:lsp-record-route-information/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses layer1-types:otn-label-hop; uses l1-types:otn-label-hop;
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. Security Considerations 6. Security Considerations
The YANG module specified in this document defines a schema for data The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such that is designed to be accessed via network management protocols such
skipping to change at page 31, line 37 skipping to change at page 33, line 9
Some of the readable data nodes in this YANG module may be considered Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or important to control read access (e.g., via get, get-config, or
notification) to these data nodes. These are the subtrees and data notification) to these data nodes. These are the subtrees and data
nodes and their sensitivity/vulnerability: nodes and their sensitivity/vulnerability:
/te:te/../te:type/te:label/te:label-hop/te:te-label/te:technology /te:te/../te:type/te:label/te:label-hop/te:te-label/te:technology
Editors note: we are using simplified description by folding similar Editors note: we are using simplified description by folding similar
branches to avoid repetation. branches to avoid repetation.
Some of the RPC operations in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus
important to control access to these operations. These are the
operations and their sensitivity/vulnerability:
+---x otn-te-tunnel-path-compute This path compute RPC provides a
mechanism to enable the client to query and/or subscribe on the
tunnel to be notified whenever it changes. Thus path computation is
only for the client reference, with no real deploy or resource
reservation.
7. IANA Considerations 7. IANA Considerations
It is proposed that IANA should assign new URIs from the "IETF XML It is proposed that IANA should assign new URIs from the "IETF XML
Registry" [RFC3688] as follows: Registry" [RFC3688] as follows:
URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel
Registrant Contact: The IESG Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace. XML: N/A; the requested URI is an XML namespace.
URI: urn:ietf:params:xml:ns:yang:ietf-otn-types
Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace.
This document registers following YANG modules in the YANG Module This document registers following YANG modules in the YANG Module
Names registry [RFC7950]. Names registry [RFC7950].
name: ietf-otn-tunnel name: ietf-otn-tunnel
namespace: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel namespace: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel
prefix: otn-tunnel prefix: otn-tunnel
reference: RFC XXXX reference: RFC XXXX
name: ietf-otn-types
namespace: urn:ietf:params:xml:ns:yang:ietf-otn-types
prefix: otn-types
reference: RFC XXXX
8. Acknowledgements 8. Acknowledgements
TBD. TBD.
9. Contributors 9. Contributors
Aihua Guo Aihua Guo
Individual Individual
Email: aihuaguo.ietf@gmail.com Email: aihuaguo.ietf@gmail.com
skipping to change at page 33, line 26 skipping to change at page 34, line 27
Email: wangleiyj@chinamobile.com Email: wangleiyj@chinamobile.com
Oscar Gonzalez de Dios Oscar Gonzalez de Dios
Telefonica Telefonica
Email: oscar.gonzalezdedios@telefonica.com Email: oscar.gonzalezdedios@telefonica.com
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-ccamp-layer1-types]
Zheng, H. and I. Busi, "A YANG Data Model for Layer 1
Types", draft-ietf-ccamp-layer1-types-04 (work in
progress), December 2019.
[I-D.ietf-ccamp-otn-topo-yang] [I-D.ietf-ccamp-otn-topo-yang]
Zheng, H., Guo, A., Busi, I., Sharma, A., Liu, X., Zheng, H., Busi, I., Liu, X., Belotti, S., and O. Dios, "A
Belotti, S., Xu, Y., Wang, L., and O. Dios, "A YANG Data YANG Data Model for Optical Transport Network Topology",
Model for Optical Transport Network Topology", draft-ietf- draft-ietf-ccamp-otn-topo-yang-09 (work in progress),
ccamp-otn-topo-yang-08 (work in progress), September 2019. November 2019.
[I-D.ietf-teas-yang-te] [I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin, Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
"A YANG Data Model for Traffic Engineering Tunnels and "A YANG Data Model for Traffic Engineering Tunnels and
Interfaces", draft-ietf-teas-yang-te-21 (work in Interfaces", draft-ietf-teas-yang-te-22 (work in
progress), April 2019. progress), November 2019.
[ITU-Tg709] [ITU-Tg709]
International Telecommunication Union, "Interfaces for the International Telecommunication Union, "Interfaces for the
optical transport network", ITU-T G.709, June 2016. optical transport network", ITU-T G.709, March 2020.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
skipping to change at page 34, line 42 skipping to change at page 35, line 47
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>. <https://www.rfc-editor.org/info/rfc8446>.
10.2. Informative References 10.2. Informative References
[I-D.ietf-ccamp-transport-nbi-app-statement] [I-D.ietf-ccamp-transport-nbi-app-statement]
Busi, I., King, D., Zheng, H., and Y. Xu, "Transport Busi, I., King, D., Zheng, H., and Y. Xu, "Transport
Northbound Interface Applicability Statement", draft-ietf- Northbound Interface Applicability Statement", draft-ietf-
ccamp-transport-nbi-app-statement-08 (work in progress), ccamp-transport-nbi-app-statement-10 (work in progress),
November 2019. November 2019.
[I-D.ietf-teas-actn-yang] [I-D.ietf-teas-actn-yang]
Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O., Lee, Y., Zheng, H., Ceccarelli, D., Yoon, B., Dios, O.,
Shin, J., and S. Belotti, "Applicability of YANG models Shin, J., and S. Belotti, "Applicability of YANG models
for Abstraction and Control of Traffic Engineered for Abstraction and Control of Traffic Engineered
Networks", draft-ietf-teas-actn-yang-04 (work in Networks", draft-ietf-teas-actn-yang-05 (work in
progress), August 2019. progress), February 2020.
[RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D. [RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D.
Ceccarelli, "Framework for GMPLS and PCE Control of G.709 Ceccarelli, "Framework for GMPLS and PCE Control of G.709
Optical Transport Networks", RFC 7062, Optical Transport Networks", RFC 7062,
DOI 10.17487/RFC7062, November 2013, DOI 10.17487/RFC7062, November 2013,
<https://www.rfc-editor.org/info/rfc7062>. <https://www.rfc-editor.org/info/rfc7062>.
[RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and [RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and
J. Drake, "Traffic Engineering Extensions to OSPF for J. Drake, "Traffic Engineering Extensions to OSPF for
GMPLS Control of Evolving G.709 Optical Transport GMPLS Control of Evolving G.709 Optical Transport
skipping to change at page 35, line 25 skipping to change at page 36, line 32
<https://www.rfc-editor.org/info/rfc7138>. <https://www.rfc-editor.org/info/rfc7138>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/rfc8340>. <https://www.rfc-editor.org/info/rfc8340>.
Authors' Addresses Authors' Addresses
Haomian Zheng Haomian Zheng
Huawei Technologies Huawei Technologies
H1-1-A043S Huawei Industrial Base, Songshanhu H1, Huawei Xiliu Beipo Village, Songshan Lake
Dongguan, Guangdong 523808 Dongguan, Guangdong 523808
China China
Email: zhenghaomian@huawei.com Email: zhenghaomian@huawei.com
Italo Busi Italo Busi
Huawei Technologies Huawei Technologies
HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2 HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2
Milan, Milan 20090 Milan, Milan 20090
Italy Italy
 End of changes. 148 change blocks. 
261 lines changed or deleted 309 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/