< draft-ietf-ccamp-otn-tunnel-model-06.txt   draft-ietf-ccamp-otn-tunnel-model-07.txt >
CCAMP Working Group H. Zheng CCAMP Working Group H. Zheng
Internet-Draft A. Guo Internet-Draft A. Guo
Intended status: Standards Track I. Busi Intended status: Standards Track I. Busi
Expires: August 29, 2019 Huawei Technologies Expires: January 9, 2020 Huawei Technologies
A. Sharma A. Sharma
Google Google
R. Rao R. Rao
Infinera Infinera
S. Belotti S. Belotti
Nokia Nokia
V. Lopez V. Lopez
Telefonica Telefonica
Y. Li Y. Li
China Mobile China Mobile
Y. Xu Y. Xu
CAICT CAICT
February 25, 2019 July 08, 2019
OTN Tunnel YANG Model OTN Tunnel YANG Model
draft-ietf-ccamp-otn-tunnel-model-06 draft-ietf-ccamp-otn-tunnel-model-07
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 August 29, 2019. This Internet-Draft will expire on January 9, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
skipping to change at page 2, line 24 skipping to change at page 2, line 24
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 3.3. OTN Path Compute RPC . . . . . . . . . . . . . . . . . . 4
4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4
5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 21 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 14
6. OTN Types YANG Code . . . . . . . . . . . . . . . . . . . . . 48 6. Security Considerations . . . . . . . . . . . . . . . . . . . 35
7. Security Considerations . . . . . . . . . . . . . . . . . . . 58 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 59 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 37
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 60 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 37
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 60 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 37
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.1. Normative References . . . . . . . . . . . . . . . . . . 37
11.1. Normative References . . . . . . . . . . . . . . . . . . 60 10.2. Informative References . . . . . . . . . . . . . . . . . 38
11.2. Informative References . . . . . . . . . . . . . . . . . 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62
1. Introduction 1. Introduction
OTN transport networks, specified in [ITU-T], can carry various types OTN transport networks, specified in [ITU-T], can carry various types
of client services. In many cases, the client signal is carried over of client services. In many cases, the client signal is carried over
an OTN tunnel across connected domains in a multi-domain network. an OTN tunnel across connected domains in a multi-domain network.
These OTN services can either be transported or switched in the OTN These OTN services can either be transported or switched in the OTN
network. If an OTN tunnel is switched, then additional parameters network. If an OTN tunnel is switched, then additional parameters
need to be provided to create a Mux OTN service. need to be provided to create a Mux OTN service.
skipping to change at page 4, line 28 skipping to change at page 4, line 28
to be notified whenever it changes. In addition, also a stateless to be notified whenever it changes. In addition, also a stateless
Remote Procedural Call (RPC) is specified. On receiving this RPC, Remote Procedural Call (RPC) is specified. On receiving this RPC,
the provider is expected to compute the available path subject to the the provider is expected to compute the available path subject to the
constraints specified in RPC and feedback to the client without any constraints specified in RPC and feedback to the client without any
changing of the OTN network or the OTN tunnels. 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:technology: /te:named-path-constraint/te:te-bandwidth/te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology: augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
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:technology: /te:p2p-primary-path/te:te-bandwidth/te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
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-reverse-primary-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
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:technology: /te:p2p-secondary-path/te:te-bandwidth/te:technology:
+--:(otn) +--:(otn)
+--rw odu-type? identityref +--rw odu-type? identityref
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 /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:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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:explicit-route-objects /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:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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:forward/te:label-restrictions/te:label-restriction: /te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment/te:forward
/te:label-restrictions/te:label-restriction/te:label-start
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment/te:forward
/te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction/te:label-start
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:path-out-segment/te:forward
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? identityref
+--rw tsg? identityref +--rw tsg? 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:forward /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-start /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:forward /te:named-path-constraint/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:reverse /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? identityref
+--rw tsg? identityref +--rw tsg? 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:reverse /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-start /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:reverse /te:named-path-constraint/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:algorithm/te:metric /te:p2p-primary-path/te:optimizations/te:algorithm
/te:optimization-metric/te:explicit-route-exclude-objects /te:metric/te:optimization-metric
/te:route-object-exclude-object/te:type/te:label /te:explicit-route-exclude-objects
/te:label-hop/te:te-label/te:technology: /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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:algorithm/te:metric /te:p2p-primary-path/te:optimizations/te:algorithm
/te:optimization-metric/te:explicit-route-include-objects /te:metric/te:optimization-metric
/te:route-object-include-object/te:type/te:label/te:label-hop /te:explicit-route-include-objects
/te:te-label/te:technology: /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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:explicit-route-objects /te:p2p-primary-path/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 tpn? uint16
+--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:explicit-route-objects /te:p2p-primary-path/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:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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:forward /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 tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment/te:forward
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment/te:forward
/te:label-restrictions/te:label-restriction
/te:label-end/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction
/te:label-start/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:path-out-segment/te:forward
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? identityref
+--rw tsg? identityref +--rw tsg? 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:forward /te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-start /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:forward /te:p2p-primary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:reverse /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? identityref
+--rw tsg? identityref +--rw tsg? 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:reverse /te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-start /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:reverse /te:p2p-primary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:state/te:path-properties /te:p2p-primary-path/te:computed-paths-properties
/te:path-route-objects/te:path-computed-route-object /te:computed-path-properties/te:path-properties
/te:state/te:type/te:label/te:label-hop/te:te-label /te:path-route-objects/te:path-computed-route-object
/te:technology: /te:type/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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:state/te:lsps/te:lsp /te:p2p-primary-path/te:lsps/te:lsp
/te:lsp-record-route-subobjects/te:record-route-subobject /te:lsp-record-route-information
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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:state/te:lsps/te:lsp /te:p2p-primary-path/te:lsps/te:lsp/te:path-properties
/te:path-properties/te:path-route-objects /te:path-route-objects/te:path-computed-route-object
/te:path-computed-route-object/te:state/te:type/te:label /te:type/te:label/te:label-hop/te:te-label
/te:label-hop/te:te-label/te:technology: /te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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-reverse-primary-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:explicit-route-exclude-objects /te:optimization-metric
/te:route-object-exclude-object/te:type/te:label /te:explicit-route-exclude-objects
/te:label-hop/te:te-label/te:technology: /te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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-reverse-primary-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:explicit-route-include-objects /te:optimization-metric
/te:route-object-include-object/te:type/te:label /te:explicit-route-include-objects
/te:label-hop/te:te-label/te:technology: /te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:explicit-route-objects/te:route-object-exclude-always /te:explicit-route-objects-always
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:explicit-route-objects/te:route-object-include-exclude /te:explicit-route-objects-always
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:route-object-include-exclude/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-in-segment/te:forward/te:label-restrictions /te:path-in-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-in-segment/te:forward/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-in-segment/te:forward/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-in-segment/te:reverse/te:label-restrictions
/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-in-segment/te:reverse/te:label-restrictions
/te:label-restriction/te:label-start/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-in-segment/te:reverse/te:label-restrictions
/te:label-restriction/te:label-end/te:te-label
/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-out-segment/te:forward/te:label-restrictions
/te:label-restriction:
+--rw range-type? identityref +--rw range-type? identityref
+--rw tsg? identityref +--rw tsg? 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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:forward/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 (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:forward/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 (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:reverse/te:label-restrictions /te:path-out-segment/te:label-restrictions
/te:label-restriction: /te:label-restriction:
+--rw range-type? identityref +--rw range-type? identityref
+--rw tsg? identityref +--rw tsg? 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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:reverse/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 (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:path-out-segment/te:reverse/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 (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:state/te:path-properties/te:path-route-objects /te:computed-paths-properties
/te:path-computed-route-object/te:state/te:type /te:computed-path-properties
/te:label/te:label-hop/te:te-label/te:technology: /te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects /te:lsps/te:lsp/te:lsp-record-route-information
/te:record-route-subobject/te:type/te:label/te:label-hop /te:lsp-record-route-information/te:type/te:label
/te:te-label/te:technology: /te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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-reverse-primary-path /te:p2p-primary-path/te:p2p-primary-reverse-path
/te:state/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:path-computed-route-object/te:type/te:label
/te:state/te:type/te:label/te:label-hop/te:te-label /te:label-hop/te:te-label/te:technology:
/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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:algorithm /te:p2p-secondary-path/te:optimizations/te:algorithm
/te:metric/te:optimization-metric /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 tpn? uint16
+--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:algorithm /te:p2p-secondary-path/te:optimizations/te:algorithm
/te:metric/te:optimization-metric /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 tpn? uint16
+--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:explicit-route-objects /te:p2p-secondary-path/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 tpn? uint16
+--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:explicit-route-objects /te:p2p-secondary-path/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:
+--:(otn) +--:(otn)
+--rw tpn? uint16 +--rw tpn? uint16
+--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:forward /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 tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment/te:forward
/te:label-restrictions/te:label-restriction/te:label-start
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment/te:forward
/te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref
+--rw tsg? identityref
+--rw priority? uint8
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction/te:label-start
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-in-segment/te:reverse
/te:label-restrictions/te:label-restriction/te:label-end
/te:te-label/te:technology:
+--:(otn)
+--rw (otn-label-type)?
+--:(tributary-port)
| +--rw tpn? uint16
+--:(tributary-slot)
+--rw ts? uint16
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:path-out-segment/te:forward
/te:label-restrictions/te:label-restriction:
+--rw range-type? identityref +--rw range-type? identityref
+--rw tsg? identityref +--rw tsg? 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:forward /te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-start /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:forward /te:p2p-secondary-path/te:path-in-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:reverse /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? identityref
+--rw tsg? identityref +--rw tsg? 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:reverse /te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-start /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-start/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:reverse /te:p2p-secondary-path/te:path-out-segment
/te:label-restrictions/te:label-restriction/te:label-end /te:label-restrictions/te:label-restriction
/te:te-label/te:technology: /te:label-end/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--rw (otn-label-type)? +--rw (otn-label-type)?
+--:(tributary-port) +--:(tributary-port)
| +--rw tpn? uint16 | +--rw tpn? uint16
+--:(tributary-slot) +--:(tributary-slot)
+--rw ts? uint16 +--rw ts? uint16
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:state/te:path-properties /te:p2p-secondary-path/te:computed-paths-properties
/te:path-route-objects/te:path-computed-route-object /te:computed-path-properties/te:path-properties
/te:state/te:type/te:label/te:label-hop/te:te-label /te:path-route-objects/te:path-computed-route-object
/te:technology: /te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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:state/te:lsps/te:lsp /te:p2p-secondary-path/te:lsps/te:lsp
/te:lsp-record-route-subobjects/te:record-route-subobject /te:lsp-record-route-information
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--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:state/te:lsps/te:lsp /te:p2p-secondary-path/te:lsps/te:lsp/te:path-properties
/te:path-properties/te:path-route-objects /te:path-route-objects/te:path-computed-route-object
/te:path-computed-route-object/te:state/te:type/te:label /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 tpn? uint16
+--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-subobjects/te:record-route-subobject /te:lsp-record-route-information
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:lsp-record-route-information/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn) +--:(otn)
+--ro tpn? uint16 +--ro tpn? uint16
+--ro tsg? identityref +--ro tsg? identityref
+--ro ts-list? string +--ro ts-list? string
rpcs:
+---x otn-te-tunnel-path-compute
+---w input
| +---w request* [id]
| +---w id uint8
| +---w type? identityref
| +---w source? inet:ip-address
| +---w destination? inet:ip-address
| +---w src-tp-id? binary
| +---w dst-tp-id? binary
| +---w switching-layer? identityref
| +---w encoding? identityref
| +---w protection-type? identityref
| +---w restoration-type? identityref
| +---w provider-id? te-types:te-global-id
| +---w client-id? te-types:te-global-id
| +---w te-topology-id? te-types:te-topology-id
| +---w setup-priority? uint8
| +---w hold-priority? uint8
| +---w te-path-metric-type? identityref
| +---w odu-type? identityref
| +---w p2p-primary-paths
| | +---w p2p-primary-path* [name]
| | +---w name string
| | +---w te-default-metric? uint32
| | +---w te-delay-metric? uint32
| | +---w te-hop-metric? uint32
| | +---w explicit-route-objects
| | +---w explicit-route-object* [index]
| | +---w explicit-route-usage? identityref
| | +---w index uint32
| | +---w (type)?
| | +--:(num-unnum-hop)
| | | +---w num-unnum-hop
| | | +---w node-id? te-types:te-node-id
| | | +---w link-tp-id? te-types:te-tp-id
| | | +---w hop-type? te-hop-type
| | | +---w direction? te-link-direction
| | +--:(as-number)
| | | +---w as-number-hop
| | | +---w as-number? binary
| | | +---w hop-type? te-hop-type
| | +--:(label)
| | +---w label-hop
| | +---w te-label
| | +---w (technology)?
| | | +--:(generic)
| | | | +---w generic? rt-types:generalized-label
| | | +--:(otn)
| | | +---w tpn? uint16
| | | +---w tsg? identityref
| | | +---w ts-list? string
| | +---w direction? te-label-direction
| +---w p2p-secondary-paths
| | +---w p2p-secondary-path* [name]
| | +---w name string
| | +---w te-default-metric? uint32
| | +---w te-delay-metric? uint32
| | +---w te-hop-metric? uint32
| | +---w explicit-route-objects
| | +---w explicit-route-object* [index]
| | +---w explicit-route-usage? identityref
| | +---w index uint32
| | +---w (type)?
| | +--:(num-unnum-hop)
| | | +---w num-unnum-hop
| | | +---w node-id? te-types:te-node-id
| | | +---w link-tp-id? te-types:te-tp-id
| | | +---w hop-type? te-hop-type
| | | +---w direction? te-link-direction
| | +--:(as-number)
| | | +---w as-number-hop
| | | +---w as-number? binary
| | | +---w hop-type? te-hop-type
| | +--:(label)
| | +---w label-hop
| | +---w te-label
| | +---w (technology)?
| | | +--:(generic)
| | | | +---w generic? rt-types:generalized-label
| | | +--:(otn)
| | | +---w tpn? uint16
| | | +---w tsg? identityref
| | | +---w ts-list? string
| | +---w direction? te-label-direction
| +---w src-client-signal? identityref
| +---w src-tributary-slots
| | +---w values* uint8
| +---w dst-client-signal? identityref
| +---w dst-tributary-slots
| +---w values* uint8
+--ro output
+--ro return-code? enumeration
+--ro result* [id]
+--ro id uint8
+--ro p2p-primary-paths
| +--ro p2p-primary-path* [name]
| +--ro name string
| +--ro te-default-metric? uint32
| +--ro te-delay-metric? uint32
| +--ro te-hop-metric? uint32
| +--ro explicit-route-objects
| +--ro explicit-route-object* [index]
| +--ro explicit-route-usage? identityref
| +--ro index uint32
| +--ro (type)?
| +--:(num-unnum-hop)
| | +--ro num-unnum-hop
| | +--ro node-id? te-types:te-node-id
| | +--ro link-tp-id? te-types:te-tp-id
| | +--ro hop-type? te-hop-type
| | +--ro direction? te-link-direction
| +--:(as-number)
| | +--ro as-number-hop
| | +--ro as-number? binary
| | +--ro hop-type? te-hop-type
| +--:(label)
| +--ro label-hop
| +--ro te-label
| +--ro (technology)?
| | +--:(generic)
| | | +--ro generic? rt-types:generalized-label
| | +--:(otn)
| | +--ro tpn? uint16
| | +--ro tsg? identityref
| | +--ro ts-list? string
| +--ro direction? te-label-direction
+--ro p2p-secondary-paths
+--ro p2p-secondary-path* [name]
+--ro name string
+--ro te-default-metric? uint32
+--ro te-delay-metric? uint32
+--ro te-hop-metric? uint32
+--ro explicit-route-objects
+--ro explicit-route-object* [index]
+--ro explicit-route-usage? identityref
+--ro index uint32
+--ro (type)?
+--:(num-unnum-hop)
| +--ro num-unnum-hop
| +--ro node-id? te-types:te-node-id
| +--ro link-tp-id? te-types:te-tp-id
| +--ro hop-type? te-hop-type
| +--ro direction? te-link-direction
+--:(as-number)
| +--ro as-number-hop
| +--ro as-number? binary
| +--ro hop-type? te-hop-type
+--:(label)
+--ro label-hop
+--ro te-label
+--ro (technology)?
| +--:(generic)
| | +--ro generic? rt-types:generalized-label
| +--:(otn)
| +--ro tpn? uint16
| +--ro tsg? identityref
| +--ro ts-list? string
+--ro direction? te-label-direction
5. OTN Tunnel YANG Code 5. OTN Tunnel YANG Code
<CODE BEGINS>file "ietf-otn-tunnel@2018-08-23.yang" <CODE BEGINS>file "ietf-otn-tunnel@2019-07-08.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-otn-types {
prefix "otn-types";
reference
"module ietf-otn-types in this Document";
} }
import ietf-te-types { import ietf-layer1-types {
prefix "te-types"; prefix "layer1-types";
reference reference
"I-D.ietf-teas-yang-te: A YANG Data Model for Traffic Engineering "I-D.ietf-ccamp-layer1-types: A YANG Data Model for Layer 1 Types.";
Tunnels and Interfaces";
}
import ietf-inet-types {
prefix "inet";
reference "RFC 6991: Common YANG Data 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 23, line 40 skipping to change at page 15, line 42
/* /*
* 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 otn-types:client-signal; base layer1-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 otn-types:client-signal; base layer1-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
*/ */
augment "/te:te/te:tunnels/te:tunnel" { augment "/te:te/te:tunnels/te:tunnel" {
description description
skipping to change at page 24, line 29 skipping to change at page 16, line 29
/* /*
* 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 otn-types:otn-path-bandwidth; uses layer1-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 otn-types:otn-path-bandwidth; uses layer1-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 otn-types:otn-path-bandwidth; uses layer1-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-reverse-primary-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 otn-types:otn-path-bandwidth; uses layer1-types:otn-path-bandwidth;
} }
} }
/* Augment bandwidht 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 otn-types:otn-path-bandwidth; uses layer1-types:otn-path-bandwidth;
} }
} }
/* /*
* Augment TE label. * Augment TE label.
*/ */
/* Augment label hop of route-object-exclude-always of named-path-constraints */ /* Augment label hop of route-object-exclude-always 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/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-include-exclude of named-path-constraints */ /* Augment label hop of route-object-include-exclude 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/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-in-segment of named-path-constraints */ /* Augment label restrictions for the forwarding direction 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:forward/te:label-restrictions/" + "te:label-restrictions/te:label-restriction" {
+ "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-in-segment of named-path-constraints */ /* Augment label restrictions start for the forwarding direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-in-segment of named-path-constraints */ /* Augment label restrictions end for the forwarding direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" 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:forward/te:label-restrictions/" + "te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-out-segment of named-path-constraints */ /* Augment label restrictions for the forwarding direction 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:forward/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-out-segment of named-path-constraints */ /* Augment label restrictions start for the forwarding direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
}
}
/* Augment label restrictions end for the forwarding direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the reverse direction of path-out-segment of named-path-constraints */ /* Augment label restrictions end for the forwarding direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/" 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:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* 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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-exclude-always of primary path */ /* Augment label hop of route-object-exclude-always 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:explicit-route-objects/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-include-exclude of primary path */ /* Augment label hop of route-object-include-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:explicit-route-objects/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-in-segment of primary path */ /* Augment label restrictions for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-in-segment of primary path */ /* Augment label restrictions start for the forwarding direction 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-in-segment of primary path */ /* Augment label restrictions end for the forwarding direction 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-out-segment of primary path */ /* Augment label restrictions for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-out-segment of primary path */ /* Augment label restrictions start for the forwarding direction 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-out-segment of primary path */ /* Augment label restrictions end for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* 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:state/te:path-properties/" + "te:computed-paths-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:state/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:record-route-subobject/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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:state/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:state/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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-reverse-primary-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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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-reverse-primary-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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-exclude-always of reverse primary path */ /* Augment label hop of route-object-exclude-always 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:explicit-route-objects/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-include-exclude of reverse primary path */ /* Augment label hop of route-object-include-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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:explicit-route-objects/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-in-segment of reverse primary path */ /* Augment label restrictions for the forwarding direction 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-in-segment of reverse primary path */ /* Augment label restrictions start for the forwarding direction 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-in-segment of reverse primary path */ /* Augment label restrictions end for the forwarding direction 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-out-segment of reverse primary path */ /* Augment label restrictions for the forwarding direction 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-out-segment of reverse primary path */ /* Augment label restrictions start for the forwarding direction 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-out-segment of reverse primary path */ /* Augment label restrictions end for the forwarding direction of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:path-out-segment/te:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:state/te:path-properties/" + "te:computed-paths-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:state/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:record-route-subobject/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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-reverse-primary-path/" + "te:p2p-primary-reverse-path/"
+ "te:state/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:state/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-exclude-always of secondary path */ /* Augment label hop of route-object-exclude-always 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/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label hop of route-object-include-exclude of secondary path */ /* Augment label hop of route-object-include-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:explicit-route-objects/" + "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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-in-segment of secondary path */ /* Augment label restrictions for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-in-segment of secondary path */ /* Augment label restrictions start for the forwarding direction 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-in-segment of secondary path */ /* Augment label restrictions end for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-in-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-out-segment of secondary path */ /* Augment label restrictions for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction" { + "te:label-restriction" {
description "OTN label."; description "OTN label.";
uses otn-types:otn-label-restriction; uses layer1-types:otn-label-restriction;
} }
/* Augment label restrictions start for the forwarding direction of path-out-segment of secondary path */ /* Augment label restrictions start for the forwarding direction 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:forward/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* Augment label restrictions end for the forwarding direction of path-out-segment of secondary path */ /* Augment label restrictions end for the forwarding direction 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:forward/te:label-restrictions/" + "te:path-out-segment/te:label-restrictions/"
+ "te:label-restriction/te:label-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions for the reverse direction of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the reverse direction of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:reverse/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label restrictions end for the reverse direction of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:reverse/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 otn-types:otn-link-label; uses layer1-types:otn-link-label;
} }
} }
/* 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:state/te:path-properties/te:path-route-objects/" + "te:computed-paths-properties"
+ "te:path-computed-route-object/te:state/te:type/te:label/" + "/te:computed-path-properties/"
+ "te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" { + "te:label-hop/te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" + "te:lsps/te:lsp/te:lsp-record-route-information/"
+ "te:record-route-subobject/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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:state/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:state/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/* 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-subobjects/" + "te:lsp/te:lsp-record-route-information/"
+ "te:record-route-subobject/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 otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
/*
grouping p2p-path-ero { grouping p2p-path-ero {
description description
"TE tunnel ERO configuration grouping"; "TE tunnel ERO configuration grouping";
leaf te-default-metric { leaf te-default-metric {
type uint32; type uint32;
description description
"Traffic engineering metric."; "Traffic engineering metric.";
} }
leaf te-delay-metric { leaf te-delay-metric {
type uint32; type uint32;
description description
"Traffic engineering delay metric."; "Traffic engineering delay metric.";
} }
leaf te-hop-metric { leaf te-hop-metric {
type uint32; type uint32;
description description
"Traffic engineering hop metric."; "Traffic engineering hop metric.";
} }
container explicit-route-objects { container explicit-route-objects-always {
description "Explicit route objects container"; description "Explicit route objects container";
list explicit-route-object { list route-object-include-exclude {
key "index"; key "index";
description description
"List of explicit route objects"; "List of explicit route objects";
leaf explicit-route-usage { leaf explicit-route-usage {
type identityref { type identityref {
base te-types:route-usage-type; base te-types:route-usage-type;
} }
description "An explicit-route hop action."; description "An explicit-route hop action.";
} }
uses te-types:explicit-route-hop { uses te-types:explicit-route-hop {
augment "type/label/label-hop/te-label/technology" { augment "type/label/label-hop/te-label/technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses otn-types:otn-path-label; uses layer1-types:otn-path-label;
} }
} }
} }
} }
} }
} }
*/
/*
rpc otn-te-tunnel-path-compute { rpc otn-te-tunnel-path-compute {
description "OTN TE tunnel path computation"; description "OTN TE tunnel path computation";
input { input {
list request { list request {
key "id"; key "id";
description "A list of path computation requests."; description "A list of path computation requests.";
leaf id { leaf id {
type uint8; type uint8;
description description
"Request ID."; "Request ID.";
} }
leaf type { leaf type {
type identityref { type identityref {
base te-types:tunnel-type; base te-types:te-tunnel-type;
} }
description "TE tunnel type."; description "TE tunnel type.";
} }
leaf source { leaf source {
type inet:ip-address; type inet:ip-address;
description description
"TE tunnel source address."; "TE tunnel source address.";
} }
leaf destination { leaf destination {
type inet:ip-address; type inet:ip-address;
description description
"TE tunnel destination address"; "TE tunnel destination address";
} }
leaf src-tp-id { leaf src-tp-id {
type binary; type binary;
description description
skipping to change at page 46, line 27 skipping to change at page 32, line 41
type identityref { type identityref {
base te-types:path-metric-type; base te-types:path-metric-type;
} }
default te-types:path-metric-te; default te-types:path-metric-te;
description description
"The tunnel path metric type."; "The tunnel path metric type.";
} }
leaf odu-type { leaf odu-type {
type identityref{ type identityref{
base otn-types:odu-type; base layer1-types:odu-type;
} }
description "Type of ODU"; description "Type of ODU";
} }
container p2p-primary-paths { container p2p-primary-paths {
description "Set of P2P primary paths container"; description "Set of P2P primary paths container";
list p2p-primary-path { list p2p-primary-path {
key "name"; key "name";
description description
"List of primary paths for this tunnel."; "List of primary paths for this tunnel.";
leaf name { leaf name {
skipping to change at page 48, line 37 skipping to change at page 35, line 4
list p2p-secondary-path { list p2p-secondary-path {
key "name"; key "name";
description description
"List of resultant secondary paths for this tunnel."; "List of resultant secondary paths for this tunnel.";
leaf name { leaf name {
type string; type string;
description "TE path name"; description "TE path name";
} }
uses p2p-path-ero; uses p2p-path-ero;
} }
}
}
}
}
}
<CODE ENDS>
6. OTN Types YANG Code
<CODE BEGINS> file "ietf-otn-types.yang"
module ietf-otn-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-types";
prefix "otn-types";
organization
"IETF CCAMP Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org>
Editor: Haomian Zheng
<mailto:zhenghaomian@huawei.com>
Editor: Aihua Guo
<mailto:aihuaguo@huawei.com>
Editor: Italo Busi
<mailto:italo.busi@huawei.com>
Editor: Anurag Sharma
<mailto:ansha@google.com>
Editor: Rajan Rao
<mailto:rrao@infinera.com>
Editor: Sergio Belotti
<mailto:sergio.belotti@nokia.com>
Editor: Victor Lopez
<mailto:victor.lopezalvarez@telefonica.com>
Editor: Yunbo Li
<mailto:liyunbo@chinamobile.com>
Editor: Yunbin Xu
<mailto:xuyunbin@ritt.cn>";
description
"This module defines OTN types.";
revision "2019-01-15" {
description
"Initial Revision";
reference
"RFC XXXX: OTN Tunnel YANG Model";
// RFC Ed.: replace XXXX with actual RFC number, update date
// information and remove this note
}
identity tributary-slot-granularity {
description
"Tributary slot granularity";
reference
"G.709/Y.1331, February 2016: Interfaces for the Optical
Transport Network (OTN)";
}
identity tsg-1.25G {
base tributary-slot-granularity;
description
"1.25G tributary slot granularity";
}
identity tsg-2.5G {
base tributary-slot-granularity;
description
"2.5G tributary slot granularity";
}
identity odu-type {
description
"Base identity for protocol framing used by tributary signals";
}
identity ODU0 {
base odu-type;
description
"ODU0 protocol (1.24G)";
}
identity ODU1 {
base odu-type;
description
"ODU1 protocol (2.49G)";
}
/*
identity ODU1e {
base odu-type;
description
"ODU1e protocol (10.35G).";
}
identity ODU1f {
base odu-type;
description
"ODU1f protocol (10.56G).";
}
*/
identity ODU2 {
base odu-type;
description
"ODU2 protocol (10.03G)";
}
identity ODU2e {
base odu-type;
description
"ODU2e protocol (10.39G)";
}
/*
identity ODU2f {
base odu-type;
description
"ODU2f protocol (10.60G).";
}
*/
identity ODU3 {
base odu-type;
description
"ODU3 protocol (40.31G)";
}
/*
identity ODU3e1 {
base odu-type;
description
"ODU3e1 protocol (41.77G).";
}
identity ODU3e2 {
base odu-type;
description
"ODU3e2 protocol (41.78G).";
}
*/
identity ODU4 {
base odu-type;
description
"ODU4 protocol (104.79G)";
}
identity ODUFlex-cbr {
base odu-type;
description
"ODU Flex CBR protocol for transporting constant bit rate
signal";
}
identity ODUFlex-gfp {
base odu-type;
description
"ODU Flex GFP protocol for transporting stream of packets
using Generic Framing Procedure";
}
identity ODUCn {
base odu-type;
description
"ODUCn protocol (beyond 100G)";
}
identity client-signal {
description
"Base identity from which specific client signals for the
tunnel are derived";
}
identity ETH-1Gb {
base client-signal;
description
"Client signal type of 1GbE";
}
identity ETH-10Gb-LAN {
base client-signal;
description
"Client signal type of 10GbE LAN";
}
identity ETH-10Gb-WAN {
base client-signal;
description
"Client signal type of 10GbE WAN";
}
identity ETH-40Gb {
base client-signal;
description
"Client signal type of 40GbE";
}
identity ETH-100Gb {
base client-signal;
description
"Client signal type of 100GbE";
}
identity STM-1 {
base client-signal;
description
"Client signal type of OC3 & STM-1";
}
identity STM-4 {
base client-signal;
description
"Client signal type of OC12 & STM-4";
}
identity STM-16 {
base client-signal;
description
"Client signal type of OC48 & STM-16";
}
identity STM-64 {
base client-signal;
description
"Client signal type of OC192 & STM-64";
}
identity STM-256 {
base client-signal;
description
"Client signal type of OC768 & STM-256";
}
identity FC-100 {
base client-signal;
description
"Client signal type of Fibre Channel FC-100";
}
identity FC-200 {
base client-signal;
description
"Client signal type of Fibre Channel FC-200";
}
identity FC-400 {
base client-signal;
description
"Client signal type of Fibre Channel FC-400";
}
identity FC-800 {
base client-signal;
description
"Client signal type of Fibre Channel FC-800";
}
identity FC-1200 {
base client-signal;
description
"Client signal type of Fibre Channel FC-1200";
}
identity FC-1600 {
base client-signal;
description
"Client signal type of Fibre Channel FC-1600";
}
identity FC-3200 {
base client-signal;
description
"Client signal type of Fibre Channel FC-3200";
}
identity FICON-4G {
base client-signal;
description
"Client signal type of Fibre Connection 4G";
}
identity FICON-8G {
base client-signal;
description
"Client signal type of Fibre Connection 8G";
}
identity otn-label-range-type {
description
"Base identity from which specific OTN label
range types derived";
}
identity label-range-trib-slot {
base otn-label-range-type;
description
"Defines a range of OTN tributary slots";
}
identity label-range-trib-port {
base otn-label-range-type;
description
"Defines a range of OTN tributary ports";
}
grouping otn-link-bandwidth {
description "link bandwidth attributes for OTN";
list odulist {
key "odu-type";
description
"OTN bandwidth definition";
leaf odu-type {
type identityref {
base otn-types:odu-type;
}
description "ODU type";
}
leaf number {
type uint16;
description "Number of ODUs";
}
}
}
grouping otn-path-bandwidth {
description "path bandwidth attributes for OTN";
leaf odu-type {
type identityref {
base otn-types:odu-type;
}
description "ODU type";
}
}
grouping otn-label-restriction {
description "label restriction information for OTN";
leaf range-type {
type identityref {
base otn-types:otn-label-range-type;
}
description "type for range";
}
leaf tsg {
type identityref {
base otn-types:tributary-slot-granularity;
}
description "Tributary slot granularity.";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf priority {
type uint8;
description "priority.";
}
}
/* Note: Suggest to be changed as otn-label-range;
otn-topology/tunnel also need change */
grouping otn-link-label {
description "link label information for OTN, for label-start/end";
choice otn-label-type {
description
"OTN label range type, either TPN range or TS range";
case tributary-port {
leaf tpn {
type uint16 {
range "1..4095";
}
description
"Tributary Port Number. Applicable in case of mux services.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
case tributary-slot {
leaf ts {
type uint16 {
range "1..4095";
}
description
"Tributary Slot Number. Applicable in case of mux services.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
}
}
/* Note: Suggest to be changed as otn-label;
otn-topology/tunnel also need change */
grouping otn-path-label {
description "label information for OTN, for label-hop";
leaf tpn {
type uint16 {
range "1..4095";
}
description
"Tributary Port Number. Applicable in case of mux services.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
leaf tsg {
type identityref {
base otn-types:tributary-slot-granularity;
}
description "Tributary slot granularity.";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf ts-list {
type string {
pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?"
+ "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
}
description
"A list of available tributary slots ranging
between 1 and 9999.
For example 1-20,25,50-1000";
reference "RFC 7139: GMPLS Signaling Extensions for Control
of Evolving G.709 Optical Transport Networks";
}
}
grouping otn-label-step {
description "Label step for OTN";
choice otn-label-type {
description
"OTN label range type, either TPN range or TS range";
case tributary-port {
leaf tpn-step {
type uint16 {
range "1..4095";
}
default 1;
description
"Label step which represents possible increments for
Tributary Port Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
case tributary-slot {
leaf ts {
type uint16 {
range "1..4095";
}
default 1;
description
"Label step which represents possible increments for
Tributary Slot Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
} }
} }
} }
} }*/
} }
<CODE ENDS> <CODE ENDS>
7. 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
as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC8446]. [RFC8446].
The NETCONF access control model [RFC8341] provides the means to The NETCONF access control model [RFC8341] provides the means to
skipping to change at page 59, line 35 skipping to change at page 36, line 20
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control access to these operations. These are the important to control access to these operations. These are the
operations and their sensitivity/vulnerability: operations and their sensitivity/vulnerability:
+---x otn-te-tunnel-path-compute This path compute RPC provides a +---x otn-te-tunnel-path-compute This path compute RPC provides a
mechanism to enable the client to query and/or subscribe on the mechanism to enable the client to query and/or subscribe on the
tunnel to be notified whenever it changes. Thus path computation is tunnel to be notified whenever it changes. Thus path computation is
only for the client reference, with no real deploy or resource only for the client reference, with no real deploy or resource
reservation. reservation.
8. 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 URI: urn:ietf:params:xml:ns:yang:ietf-otn-types
Registrant Contact: The IESG Registrant Contact: The IESG
skipping to change at page 60, line 15 skipping to change at page 37, line 5
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 name: ietf-otn-types
namespace: urn:ietf:params:xml:ns:yang:ietf-otn-types namespace: urn:ietf:params:xml:ns:yang:ietf-otn-types
prefix: otn-types prefix: otn-types
reference: RFC XXXX reference: RFC XXXX
9. Acknowledgements 8. Acknowledgements
TBD. TBD.
10. Contributors 9. Contributors
Dieter Beller Dieter Beller
Nokia Nokia
Email: dieter.beller@nokia.com Email: dieter.beller@nokia.com
Yanlei Zheng Yanlei Zheng
China Unicom China Unicom
Email: zhengyl@dimpt.com Email: zhengyl@dimpt.com
Xian Zhang Xian Zhang
skipping to change at page 60, line 41 skipping to change at page 37, line 31
Email: zhang.xian@huawei.com Email: zhang.xian@huawei.com
Lei Wang Lei Wang
China Mobile China Mobile
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
11. References 10. References
11.1. Normative References 10.1. Normative References
[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., Guo, A., Busi, I., Sharma, A., Liu, X.,
Belotti, S., Xu, Y., Wang, L., and O. Dios, "A YANG Data Belotti, S., Xu, Y., Wang, L., and O. Dios, "A YANG Data
Model for Optical Transport Network Topology", draft-ietf- Model for Optical Transport Network Topology", draft-ietf-
ccamp-otn-topo-yang-05 (work in progress), August 2018. ccamp-otn-topo-yang-07 (work in progress), July 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-19 (work in Interfaces", draft-ietf-teas-yang-te-21 (work in
progress), February 2019. progress), April 2019.
[ITU-T] ITU-, T., "SERIES G: TRANSMISSION SYSTEMS AND MEDIA, [ITU-T] ITU-, T., "SERIES G: TRANSMISSION SYSTEMS AND MEDIA,
DIGITAL SYSTEMS AND NETWORKS; Digital networks; Interfaces DIGITAL SYSTEMS AND NETWORKS; Digital networks; Interfaces
for the optical transport network", ITU-T Rec. G.709v5 , for the optical transport network", ITU-T Rec. G.709v5 ,
June 2016. June 2016.
[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>.
skipping to change at page 62, line 9 skipping to change at page 38, line 46
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore Architecture and R. Wilton, "Network Management Datastore Architecture
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
<https://www.rfc-editor.org/info/rfc8342>. <https://www.rfc-editor.org/info/rfc8342>.
[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>.
11.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-04 (work in progress), ccamp-transport-nbi-app-statement-05 (work in progress),
November 2018. March 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-03 (work in Networks", draft-ietf-teas-actn-yang-03 (work in
progress), February 2019. progress), February 2019.
[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
 End of changes. 204 change blocks. 
1459 lines changed or deleted 344 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/