draft-ietf-ccamp-otn-tunnel-model-02.txt   draft-ietf-ccamp-otn-tunnel-model-03.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: December 21, 2018 Huawei Technologies Expires: January 3, 2019 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
June 19, 2018 July 2, 2018
OTN Tunnel YANG Model OTN Tunnel YANG Model
draft-ietf-ccamp-otn-tunnel-model-02 draft-ietf-ccamp-otn-tunnel-model-03
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 December 21, 2018. This Internet-Draft will expire on January 3, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2018 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 . . . . . . . . . . . . . . . . . . . . 12 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 21
6. OTN Types YANG Code . . . . . . . . . . . . . . . . . . . . . 30 6. OTN Types YANG Code . . . . . . . . . . . . . . . . . . . . . 48
7. Security Considerations . . . . . . . . . . . . . . . . . . . 42 7. Security Considerations . . . . . . . . . . . . . . . . . . . 60
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 60
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 42 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 60
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 42 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 60
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 61
11.1. Normative References . . . . . . . . . . . . . . . . . . 43 11.1. Normative References . . . . . . . . . . . . . . . . . . 61
11.2. Informative References . . . . . . . . . . . . . . . . . 44 11.2. Informative References . . . . . . . . . . . . . . . . . 62
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62
1. Introduction 1. Introduction
OTN transport networks can carry various types of client services. OTN transport networks can carry various types of client services.
In many cases, the client signal is carried over an OTN tunnel across In many cases, the client signal is carried over an OTN tunnel across
connected domains in a multi-domain network. These OTN services can connected domains in a multi-domain network. These OTN services can
either be transported or switched in the OTN network. If an OTN either be transported or switched in the OTN network. If an OTN
tunnel is switched, then additional parameters need to be provided to tunnel is switched, then additional parameters need to be provided to
create a Mux OTN service. create a Mux OTN service.
skipping to change at page 4, line 10 skipping to change at page 4, line 10
[RFC7138] and [RFC7139]. [RFC7138] and [RFC7139].
The OTN bandwidth information has been augmenting to various sections The OTN bandwidth information has been augmenting to various sections
of TE tunnel models, including tunnel bandwidth, primary path of TE tunnel models, including tunnel bandwidth, primary path
bandwidth and so on. The OTN label information has been augmenting bandwidth and so on. The OTN label information has been augmenting
to label hop of a group of routing objects and also LSPs. to label hop of a group of routing objects and also LSPs.
3.3. OTN Path Compute RPC 3.3. OTN Path Compute RPC
Similarly with TE tunnel, a 'compute-only' mode of OTN tunnel model Similarly with TE tunnel, a 'compute-only' mode of OTN tunnel model
is also supported by specifing a Remote Procedural Call (RPC). On is also supported for stateful path computation. Given the OTN
receiving this RPC, the provider is expected to compute the available tunnel computed, the client may query and/or subscribe on the tunnel
path subject to the constraints specified in RPC and feedback to the to be notified whenever it changes. In addition, also a stateless
client without any changing of the OTN network. Given the OTN tunnel Remote Procedural Call (RPC) is specified. On receiving this RPC,
computed, the client may query and/or subscribe on the tunnel to be the provider is expected to compute the available path subject to the
notified whenever it changes. constraints specified in RPC and feedback to the client without any
changing of the OTN network or the OTN tunnels.
4. OTN Tunnel YANG Tree 4. OTN Tunnel YANG Tree
module: ietf-otn-tunnel module: ietf-otn-tunnel
augment /te:te/te:tunnels/te:tunnel: augment /te:te/te:tunnels/te:tunnel:
+--rw payload-treatment? enumeration +--rw src-client-signal? identityref
+--rw src-client-signal? identityref +--rw dst-client-signal? identityref
+--rw src-tpn? uint16
+--rw src-tsg? identityref
+--rw src-tributary-slot-count? uint16
+--rw src-tributary-slots
| +--rw values* uint8
+--rw dst-client-signal? identityref
+--rw dst-tpn? uint16
+--rw dst-tsg? identityref
+--rw dst-tributary-slot-count? uint16
+--rw dst-tributary-slots
+--rw values* uint8
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)
skipping to change at page 5, line 25 skipping to change at page 5, line 14
+--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
/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
/te:named-path-constraint/te:path-in-segment
/te:forward/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 tsg? identityref
+--rw priority? uint8
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-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-out-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-out-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-out-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-out-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 augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:explicit-route-objects /te:p2p-primary-path/te:optimizations/te:algorithm/te:metric
/te:route-object-exclude-always/te:type/te:label /te:optimization-metric/te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /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:optimizations/te:algorithm/te:metric
/te:route-object-include-exclude/te:type/te:label /te:optimization-metric/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:optimizations/te:algorithm/te:metric /te:p2p-primary-path/te:explicit-route-objects
/te:optimization-metric/te:explicit-route-exclude-objects /te:route-object-exclude-always/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-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:explicit-route-objects
/te:optimization-metric/te:explicit-route-include-objects /te:route-object-include-exclude/te:type/te:label
/te:route-object-include-object/te:type/te:label/te:label-hop /te:label-hop/te:te-label/te:technology:
/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: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 tsg? identityref
+--rw priority? uint8
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/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-out-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-out-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-out-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-out-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:state/te:path-properties /te:p2p-primary-path/te:state/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:label-hop/te:te-label /te:state/te:type/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:state/te:lsps/te:lsp /te:p2p-primary-path/te:state/te:lsps/te:lsp
/te:lsp-record-route-subobjects/te:record-route-subobject
/te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:state/te:lsps/te:lsp
/te:path-properties/te:path-route-objects /te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:state/te:type/te:label /te:path-computed-route-object/te:state/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: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-reverse-primary-path
/te:explicit-route-objects/te:route-object-exclude-always /te:optimizations/te:algorithm/te:metric
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:optimization-metric/te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(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-reverse-primary-path
/te:explicit-route-objects/te:route-object-include-exclude /te:optimizations/te:algorithm/te:metric
/te:type/te:label/te:label-hop/te:te-label/te:technology: /te:optimization-metric/te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(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-reverse-primary-path
/te:optimizations/te:algorithm/te:metric /te:explicit-route-objects/te:route-object-exclude-always
/te:optimization-metric/te:explicit-route-exclude-objects /te:type/te:label/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-reverse-primary-path
/te:optimizations/te:algorithm/te:metric /te:explicit-route-objects/te:route-object-include-exclude
/te:optimization-metric/te:explicit-route-include-objects /te:type/te:label/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:state /te:p2p-primary-path/te:p2p-reverse-primary-path
/te:path-properties/te:path-route-objects /te:path-in-segment/te:forward/te:label-restrictions
/te:path-computed-route-object/te:state/te:type/te:label /te:label-restriction:
/te:label-hop/te:te-label/te:technology: +--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 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-out-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-out-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-out-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-out-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-out-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:state/te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:state/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:state /te:p2p-primary-path/te:p2p-reverse-primary-path
/te:lsps/te:lsp/te:path-properties/te:path-route-objects /te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects
/te:path-computed-route-object/te:state/te:type/te:label /te:record-route-subobject/te:type/te:label/te:label-hop
/te:label-hop/te:te-label/te:technology: /te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:state/te:lsps/te:lsp/te:path-properties
/te:path-route-objects/te:path-computed-route-object
/te:state/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:explicit-route-objects /te:p2p-secondary-path/te:optimizations/te:algorithm
/te:route-object-exclude-always/te:type/te:label /te:metric/te:optimization-metric
/te:explicit-route-exclude-objects
/te:route-object-exclude-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /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:optimizations/te:algorithm
/te:route-object-include-exclude/te:type/te:label /te:metric/te:optimization-metric
/te:explicit-route-include-objects
/te:route-object-include-object/te:type/te:label
/te:label-hop/te:te-label/te:technology: /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:explicit-route-objects
/te:metric/te:optimization-metric /te:route-object-exclude-always/te:type/te:label
/te:explicit-route-exclude-objects
/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:explicit-route-objects
/te:metric/te:optimization-metric /te:route-object-include-exclude/te:type/te:label
/te:explicit-route-include-objects
/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:path-in-segment/te:forward
/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 tsg? identityref
+--rw priority? uint8
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/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-out-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-out-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-out-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-out-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:state/te:path-properties /te:p2p-secondary-path/te:state/te:path-properties
/te:path-route-objects/te:path-computed-route-object/te:state /te:path-route-objects/te:path-computed-route-object
/te:state/te:type/te:label/te:label-hop/te:te-label
/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:state/te:lsps/te:lsp
/te:lsp-record-route-subobjects/te:record-route-subobject
/te:type/te:label/te:label-hop/te:te-label/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:state/te:lsps/te:lsp
/te:path-properties/te:path-route-objects /te:path-properties/te:path-route-objects
/te:path-computed-route-object/te:state/te:type/te:label /te:path-computed-route-object/te:state/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
/te:lsp-record-route-subobjects/te:record-route-subobject
/te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--ro tpn? uint16
+--ro tsg? identityref
+--ro ts-list? string
rpcs: rpcs:
+---x otn-te-tunnel-path-compute +---x otn-te-tunnel-path-compute
+---w input +---w input
| +---w request* [id] | +---w request* [id]
| +---w id uint8 | +---w id uint8
| +---w type? identityref | +---w type? identityref
| +---w source? inet:ip-address | +---w source? inet:ip-address
| +---w destination? inet:ip-address | +---w destination? inet:ip-address
| +---w src-tp-id? binary | +---w src-tp-id? binary
| +---w dst-tp-id? binary | +---w dst-tp-id? binary
| +---w switching-layer? identityref | +---w switching-layer? identityref
| +---w encoding? identityref | +---w encoding? identityref
| +---w protection-type? identityref | +---w protection-type? identityref
| +---w restoration-type? identityref | +---w restoration-type? identityref
| +---w provider-id? te-types:te-global-id | +---w provider-id? te-types:te-global-id
| +---w client-id? te-types:te-global-id | +---w client-id? te-types:te-global-id
| +---w te-topology-id? te-types:te-topology-id | +---w te-topology-id? te-types:te-topology-id
| +---w setup-priority? uint8 | +---w setup-priority? uint8
| +---w hold-priority? uint8 | +---w hold-priority? uint8
| +---w te-path-metric-type? identityref | +---w te-path-metric-type? identityref
| +---w odu-type? identityref | +---w odu-type? identityref
| +---w p2p-primary-paths | +---w p2p-primary-paths
| | +---w p2p-primary-path* [name] | | +---w p2p-primary-path* [name]
| | +---w name string | | +---w name string
| | +---w te-default-metric? uint32 | | +---w te-default-metric? uint32
| | +---w te-delay-metric? uint32 | | +---w te-delay-metric? uint32
| | +---w te-hop-metric? uint32 | | +---w te-hop-metric? uint32
| | +---w explicit-route-objects | | +---w explicit-route-objects
| | +---w explicit-route-object* [index] | | +---w explicit-route-object* [index]
| | +---w explicit-route-usage? identityref | | +---w explicit-route-usage? identityref
| | +---w index uint32 | | +---w index uint32
| | +---w (type)? | | +---w (type)?
| | +--:(numbered) | | +--:(num-unnum-hop)
| | | +---w numbered-hop | | | +---w num-unnum-hop
| | | +---w address? 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
| | +--:(unnumbered)
| | | +---w unnumbered-hop
| | | +---w node-id? te-types:te-node-id | | | +---w node-id? te-types:te-node-id
| | | +---w link-tp-id? te-types:te-tp-id | | | +---w link-tp-id? te-types:te-tp-id
| | | +---w hop-type? te-hop-type | | | +---w hop-type? te-hop-type
| | | +---w direction? te-link-direction | | | +---w direction? te-link-direction
| | +--:(as-number)
| | | +---w as-number-hop
| | | +---w as-number? binary
| | | +---w hop-type? te-hop-type
| | +--:(label) | | +--:(label)
| | +---w label-hop | | +---w label-hop
| | +---w te-label | | +---w te-label
| | +---w (technology)? | | +---w (technology)?
| | | +--:(generic) | | | +--:(generic)
| | | | +---w generic? | | | | +---w generic? rt-types:generalized-label
rt-types:generalized-label
| | | +--:(otn) | | | +--:(otn)
| | | +---w tpn? uint16 | | | +---w tpn? uint16
| | | +---w tsg? identityref | | | +---w tsg? identityref
| | | +---w ts-list? string | | | +---w ts-list? string
| | +---w direction? te-label-direction | | +---w direction? te-label-direction
| +---w p2p-secondary-paths | +---w p2p-secondary-paths
| | +---w p2p-secondary-path* [name] | | +---w p2p-secondary-path* [name]
| | +---w name string | | +---w name string
| | +---w te-default-metric? uint32 | | +---w te-default-metric? uint32
| | +---w te-delay-metric? uint32 | | +---w te-delay-metric? uint32
| | +---w te-hop-metric? uint32 | | +---w te-hop-metric? uint32
| | +---w explicit-route-objects | | +---w explicit-route-objects
| | +---w explicit-route-object* [index] | | +---w explicit-route-object* [index]
| | +---w explicit-route-usage? identityref | | +---w explicit-route-usage? identityref
| | +---w index uint32 | | +---w index uint32
| | +---w (type)? | | +---w (type)?
| | +--:(numbered) | | +--:(num-unnum-hop)
| | | +---w numbered-hop | | | +---w num-unnum-hop
| | | +---w address? 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
| | +--:(unnumbered)
| | | +---w unnumbered-hop
| | | +---w node-id? te-types:te-node-id | | | +---w node-id? te-types:te-node-id
| | | +---w link-tp-id? te-types:te-tp-id | | | +---w link-tp-id? te-types:te-tp-id
| | | +---w hop-type? te-hop-type | | | +---w hop-type? te-hop-type
| | | +---w direction? te-link-direction | | | +---w direction? te-link-direction
| | +--:(as-number)
| | | +---w as-number-hop
| | | +---w as-number? binary
| | | +---w hop-type? te-hop-type
| | +--:(label) | | +--:(label)
| | +---w label-hop | | +---w label-hop
| | +---w te-label | | +---w te-label
| | +---w (technology)? | | +---w (technology)?
| | | +--:(generic) | | | +--:(generic)
| | | | +---w generic? | | | | +---w generic? rt-types:generalized-label
rt-types:generalized-label
| | | +--:(otn) | | | +--:(otn)
| | | +---w tpn? uint16 | | | +---w tpn? uint16
| | | +---w tsg? identityref | | | +---w tsg? identityref
| | | +---w ts-list? string | | | +---w ts-list? string
| | +---w direction? | | +---w direction? te-label-direction
te-label-direction | +---w src-client-signal? identityref
| +---w payload-treatment? enumeration
| +---w src-client-signal? identityref
| +---w src-tpn? uint16
| +---w src-tsg? identityref
| +---w src-tributary-slot-count? uint16
| +---w src-tributary-slots | +---w src-tributary-slots
| | +---w values* uint8 | | +---w values* uint8
| +---w dst-client-signal? identityref | +---w dst-client-signal? identityref
| +---w dst-tpn? uint16
| +---w dst-tsg? identityref
| +---w dst-tributary-slot-count? uint16
| +---w dst-tributary-slots | +---w dst-tributary-slots
| +---w values* uint8 | +---w values* uint8
+--ro output +--ro output
+--ro return-code? enumeration +--ro return-code? enumeration
+--ro result* [id] +--ro result* [id]
+--ro id uint8 +--ro id uint8
+--ro p2p-primary-paths +--ro p2p-primary-paths
| +--ro p2p-primary-path* [name] | +--ro p2p-primary-path* [name]
| +--ro name string | +--ro name string
| +--ro te-default-metric? uint32 | +--ro te-default-metric? uint32
| +--ro te-delay-metric? uint32 | +--ro te-delay-metric? uint32
| +--ro te-hop-metric? uint32 | +--ro te-hop-metric? uint32
| +--ro explicit-route-objects | +--ro explicit-route-objects
| +--ro explicit-route-object* [index] | +--ro explicit-route-object* [index]
| +--ro explicit-route-usage? identityref | +--ro explicit-route-usage? identityref
| +--ro index uint32 | +--ro index uint32
| +--ro (type)? | +--ro (type)?
| +--:(numbered) | +--:(num-unnum-hop)
| | +--ro numbered-hop | | +--ro num-unnum-hop
| | +--ro address? 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
| +--:(unnumbered)
| | +--ro unnumbered-hop
| | +--ro node-id? te-types:te-node-id | | +--ro node-id? te-types:te-node-id
| | +--ro link-tp-id? te-types:te-tp-id | | +--ro link-tp-id? te-types:te-tp-id
| | +--ro hop-type? te-hop-type | | +--ro hop-type? te-hop-type
| | +--ro direction? te-link-direction | | +--ro direction? te-link-direction
| +--:(as-number)
| | +--ro as-number-hop
| | +--ro as-number? binary
| | +--ro hop-type? te-hop-type
| +--:(label) | +--:(label)
| +--ro label-hop | +--ro label-hop
| +--ro te-label | +--ro te-label
| +--ro (technology)? | +--ro (technology)?
| | +--:(generic) | | +--:(generic)
| | | +--ro generic? | | | +--ro generic? rt-types:generalized-label
rt-types:generalized-label
| | +--:(otn) | | +--:(otn)
| | +--ro tpn? uint16 | | +--ro tpn? uint16
| | +--ro tsg? identityref | | +--ro tsg? identityref
| | +--ro ts-list? string | | +--ro ts-list? string
| +--ro direction? te-label-direction | +--ro direction? te-label-direction
+--ro p2p-secondary-paths +--ro p2p-secondary-paths
+--ro p2p-secondary-path* [name] +--ro p2p-secondary-path* [name]
+--ro name string +--ro name string
+--ro te-default-metric? uint32 +--ro te-default-metric? uint32
+--ro te-delay-metric? uint32 +--ro te-delay-metric? uint32
+--ro te-hop-metric? uint32 +--ro te-hop-metric? uint32
+--ro explicit-route-objects +--ro explicit-route-objects
+--ro explicit-route-object* [index] +--ro explicit-route-object* [index]
+--ro explicit-route-usage? identityref +--ro explicit-route-usage? identityref
+--ro index uint32 +--ro index uint32
+--ro (type)? +--ro (type)?
+--:(numbered) +--:(num-unnum-hop)
| +--ro numbered-hop | +--ro num-unnum-hop
| +--ro address? 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
+--:(unnumbered)
| +--ro unnumbered-hop
| +--ro node-id? te-types:te-node-id | +--ro node-id? te-types:te-node-id
| +--ro link-tp-id? te-types:te-tp-id | +--ro link-tp-id? te-types:te-tp-id
| +--ro hop-type? te-hop-type | +--ro hop-type? te-hop-type
| +--ro direction? te-link-direction | +--ro direction? te-link-direction
+--:(as-number)
| +--ro as-number-hop
| +--ro as-number? binary
| +--ro hop-type? te-hop-type
+--:(label) +--:(label)
+--ro label-hop +--ro label-hop
+--ro te-label +--ro te-label
+--ro (technology)? +--ro (technology)?
| +--:(generic) | +--:(generic)
| | +--ro generic? | | +--ro generic? rt-types:generalized-label
rt-types:generalized-label
| +--:(otn) | +--:(otn)
| +--ro tpn? uint16 | +--ro tpn? uint16
| +--ro tsg? identityref | +--ro tsg? identityref
| +--ro ts-list? string | +--ro ts-list? string
+--ro direction? te-label-direction +--ro direction? te-label-direction
5. OTN Tunnel YANG Code 5. OTN Tunnel YANG Code
<CODE BEGINS>file "ietf-otn-tunnel@2018-06-07.yang" <CODE BEGINS>file "ietf-otn-tunnel@2018-06-30.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";
} }
import ietf-otn-types { import ietf-otn-types {
prefix "otn-types"; prefix "otn-types";
} }
skipping to change at page 14, line 11 skipping to change at page 22, line 44
Editor: Yunbo Li Editor: Yunbo Li
<mailto:liyunbo@chinamobile.com> <mailto:liyunbo@chinamobile.com>
Editor: Yunbin Xu Editor: Yunbin Xu
<mailto:xuyunbin@ritt.cn>"; <mailto:xuyunbin@ritt.cn>";
description description
"This module defines a model for OTN Tunnel Services."; "This module defines a model for OTN Tunnel Services.";
revision "2018-06-07" { revision "2018-07-02" {
description description
"Revision 0.5"; "Revision 0.6";
reference reference
"draft-ietf-ccamp-otn-tunnel-model-02"; "draft-ietf-ccamp-otn-tunnel-model-03";
} }
/* /*
* Groupings * Groupings
*/ */
grouping otn-tunnel-endpoint { grouping otn-tunnel-attributes {
description "Parameters for OTN tunnel"; description "Parameters for OTN tunnel";
leaf payload-treatment {
type enumeration {
enum switching {
description "Client signal is switched to another tunnel
in this domain";
}
enum transport {
description "Client signal is transparently transmitted
in this domain";
}
}
default switching;
description
"Treatment of the incoming payload. Payload can be switched
or transported.";
}
leaf src-client-signal { leaf src-client-signal {
type identityref { type identityref {
base otn-types:client-signal; base otn-types:client-signal;
} }
description description
"Client signal at the source endpoint of the tunnel"; "Client signal at the source endpoint of the tunnel";
} }
leaf src-tpn {
type uint16 {
range "0..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 src-tsg {
type identityref {
base otn-types:tributary-slot-granularity;
}
description
"Tributary slot granularity.
Applicable in case of mux services";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf src-tributary-slot-count {
type uint16;
description
"Number of tributary slots used at the source.";
}
container src-tributary-slots {
description
"A list of tributary slots used by the client service.
Applicable in case of mux services";
leaf-list values {
type uint8;
description
"Tributary tributary slot value";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
}
leaf dst-client-signal { leaf dst-client-signal {
type identityref { type identityref {
base otn-types:client-signal; base otn-types:client-signal;
} }
description description
"Client signal at the destination endpoint of the tunnel"; "Client signal at the destination endpoint of the tunnel";
} }
leaf dst-tpn {
type uint16 {
range "0..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 dst-tsg { }
type identityref {
base otn-types:tributary-slot-granularity;
}
description
"Tributary slot granularity.
Applicable in case of mux services";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf dst-tributary-slot-count {
type uint16;
description
"Number of tributary slots used at the destination.";
}
container dst-tributary-slots {
description
"A list of tributary slots used by the client service.
Applicable in case of mux services";
leaf-list values {
type uint8;
description
"Tributary slot value";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
}
}
/*
Note: Comment has been given to authors of TE Tunnel model to add
list of endpoints under config to support P2MP tunnel.
*/
/* /*
* Data nodes * Data nodes
*/ */
augment "/te:te/te:tunnels/te:tunnel" { augment "/te:te/te:tunnels/te:tunnel" {
description description
"Augment with additional parameters required for OTN service"; "Augment with additional parameters required for OTN service";
uses otn-tunnel-endpoint; uses otn-tunnel-attributes;
} }
/* /*
* 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" {
skipping to change at page 18, line 47 skipping to change at page 25, line 22
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/"
+ "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 otn-types:otn-path-label;
} }
} }
/* Augment label restrictions for the forwarding direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:forward/te:label-restrictions/"
+ "te:label-restriction" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te:forward/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 forwarding direction of path-in-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-in-segment/"
+ "te: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-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: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 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" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of named-path-constraints */
augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:path-out-segment/"
+ "te:forward/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 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 "/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-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* Augment label hop of route-exclude of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
/* Augment label hop of route-include of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-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/"
+ "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 otn-types:otn-path-label;
} }
skipping to change at page 19, line 23 skipping to change at page 29, line 11
+ "te:p2p-primary-paths/te:p2p-primary-path/" + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects/" + "te:explicit-route-objects/"
+ "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 otn-types:otn-path-label;
} }
} }
/* Augment label hop of route-exclude 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:optimizations/te:algorithm/te:metric/" + "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:label-restriction" {
+ "te:route-object-exclude-object/te:type/te:label/" description "OTN label.";
+ "te:label-hop/te:te-label/te:technology" { uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-in-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses otn-types:otn-path-label; uses otn-types:otn-link-label;
} }
} }
/* Augment label hop of route-include 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:optimizations/te:algorithm/te:metric/" + "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:label-restriction/te:label-end/"
+ "te:route-object-include-object/te:type/te:label/" + "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 otn-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 "/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" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te:forward/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 forwarding direction of path-out-segment of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:path-out-segment/te: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 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:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-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:state/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:state/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 otn-types:otn-path-label;
} }
} }
/* /* 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:record-route-subobjects/" + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/" + "te:record-route-subobject/te:type/te:label/"
+ "te:state/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 otn-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:state/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:state/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 otn-types:otn-path-label;
} }
} }
/* Augment label hop of route-exclude of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
/* Augment label hop of route-include of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-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-reverse-primary-path/"
+ "te:explicit-route-objects/" + "te:explicit-route-objects/"
+ "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 {
skipping to change at page 21, line 22 skipping to change at page 33, line 44
+ "te:explicit-route-objects/" + "te:explicit-route-objects/"
+ "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 otn-types:otn-path-label;
} }
} }
/* Augment label hop of route-exclude 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-reverse-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:label-restriction" {
+ "te:route-object-exclude-object/te:type/te:label/" description "OTN label.";
+ "te:label-hop/te:te-label/te:technology" { uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-in-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses otn-types:otn-path-label; uses otn-types:otn-link-label;
} }
} }
/* Augment label hop of route-include 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-reverse-primary-path/"
+ "te:optimizations/te:algorithm/te:metric/" + "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:label-restriction/te:label-end/"
+ "te:route-object-include-object/te:type/te:label/" + "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 otn-types:otn-link-label;
} }
} }
/* Augment label hop of label hop of path-route of reverse primary path */ /* 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: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 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" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of reverse primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:path-out-segment/te:forward/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 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/"
+ "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-end/"
+ "te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* 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-reverse-primary-path/"
+ "te:state/te:path-properties/" + "te:state/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:state/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 otn-types:otn-path-label;
} }
} }
/* /* 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-reverse-primary-path/"
+ "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/" + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/" + "te:record-route-subobject/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 otn-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-reverse-primary-path/"
+ "te:state/te:lsps/te:lsp/te:path-properties/" + "te:state/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:state/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 otn-types:otn-path-label;
} }
} }
/* Augment label hop of route-exclude of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/"
+ "te:route-object-exclude-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
/* Augment label hop of route-include of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:optimizations/te:algorithm/te:metric/"
+ "te:optimization-metric/te:explicit-route-include-objects/"
+ "te:route-object-include-object/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-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/"
+ "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 otn-types:otn-path-label;
} }
skipping to change at page 23, line 20 skipping to change at page 38, line 39
+ "te:p2p-secondary-paths/te:p2p-secondary-path/" + "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:explicit-route-objects/" + "te:explicit-route-objects/"
+ "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 otn-types:otn-path-label;
} }
} }
/* Augment label hop of route-exclude 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:optimizations/te:algorithm/te:metric/" + "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-exclude-objects/" + "te:label-restriction" {
+ "te:route-object-exclude-object/te:type/te:label/" description "OTN label.";
+ "te:label-hop/te:te-label/te:technology" { uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-in-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:label-restriction/te:label-start/"
+ "te:te-label/te:technology" {
description "OTN label."; description "OTN label.";
case otn { case otn {
uses otn-types:otn-path-label; uses otn-types:otn-link-label;
} }
} }
/* Augment label hop of route-include 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:optimizations/te:algorithm/te:metric/" + "te:path-in-segment/te:forward/te:label-restrictions/"
+ "te:optimization-metric/te:explicit-route-include-objects/" + "te:label-restriction/te:label-end/"
+ "te:route-object-include-object/te:type/te:label/" + "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 otn-types:otn-link-label;
} }
} }
/* Augment label hop of label hop of path-route of secondary path */ /* 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: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 secondary path */
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" {
description "OTN label.";
uses otn-types:otn-label-restriction;
}
/* Augment label restrictions start for the forwarding direction of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te:forward/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 forwarding direction of path-out-segment of secondary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-secondary-paths/te:p2p-secondary-path/"
+ "te:path-out-segment/te: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 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:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-link-label;
}
}
/* 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:state/te:path-properties/te:path-route-objects/"
+ "te:path-computed-route-object/te:state/te:type/te:label/" + "te:path-computed-route-object/te:state/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 otn-types:otn-path-label;
} }
} }
/* /* 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:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/" + "te:record-route-subobject/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 otn-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:state/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:state/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 otn-types:otn-path-label;
} }
} }
/* /* Augment label hop of record-route of LSP */
augment "/te:te/te:lsp-state/" augment "/te:te/te:lsps-state/"
+ "te:lsp-record-route-subobjects/te:lsp-record-route-subobject/" + "te:lsp/te:lsp-record-route-subobjects/"
+ "te:record-route-subobject/" + "te:record-route-subobject/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 otn-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.";
} }
skipping to change at page 28, line 36 skipping to change at page 46, line 13
key "name"; key "name";
description description
"List of secondary paths for this tunnel."; "List of 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;
} }
} }
uses otn-tunnel-endpoint; uses otn-tunnel-attributes;
} }
} }
output { output {
leaf return-code { leaf return-code {
type enumeration { type enumeration {
enum success { enum success {
description "success"; description "success";
} }
enum aborted { enum aborted {
description "aborted"; description "aborted";
skipping to change at page 30, line 22 skipping to change at page 48, line 4
} }
uses p2p-path-ero; uses p2p-path-ero;
} }
} }
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
6. OTN Types YANG Code 6. OTN Types YANG Code
<CODE BEGINS> file "ietf-otn-types@2018-06-07.yang" <CODE BEGINS> file "ietf-otn-types@2018-06-30.yang"
module ietf-otn-types { module 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";
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>
skipping to change at page 31, line 23 skipping to change at page 48, line 48
Editor: Yunbo Li Editor: Yunbo Li
<mailto:liyunbo@chinamobile.com> <mailto:liyunbo@chinamobile.com>
Editor: Yunbin Xu Editor: Yunbin Xu
<mailto:xuyunbin@ritt.cn>"; <mailto:xuyunbin@ritt.cn>";
description description
"This module defines OTN types."; "This module defines OTN types.";
revision "2018-06-07" { revision "2018-06-30" {
description description
"Revision 0.5"; "Revision 0.6";
reference reference
"draft-ietf-ccamp-otn-tunnel-model-02"; "draft-ietf-ccamp-otn-tunnel-model-03";
} }
identity tributary-slot-granularity { identity tributary-slot-granularity {
description description
"Tributary slot granularity"; "Tributary slot granularity";
reference reference
"G.709/Y.1331, February 2016: Interfaces for the Optical "G.709/Y.1331, February 2016: Interfaces for the Optical
Transport Network (OTN)"; Transport Network (OTN)";
} }
skipping to change at page 32, line 7 skipping to change at page 49, line 35
description description
"2.5G tributary slot granularity"; "2.5G tributary slot granularity";
} }
/* /*
identity tsg-1.25Gand2.5G { identity tsg-1.25Gand2.5G {
base tributary-slot-granularity; base tributary-slot-granularity;
description description
"Both 1.25G and 2.5G tributary slot granularity"; "Both 1.25G and 2.5G tributary slot granularity";
} }
*/ */
/*
Note: suggest to replace the term 'tributary-protocol-type' with
'odu-type', to avoid misleading.
*/
identity tributary-protocol-type { identity tributary-protocol-type {
description description
"Base identity for protocol framing used by tributary signals"; "Base identity for protocol framing used by tributary signals";
} }
/*
Note: suggest to remove all the prot-OTUx
*/
identity prot-OTU1 { identity prot-OTU1 {
base tributary-protocol-type; base tributary-protocol-type;
description description
"OTU1 protocol (2.66G)"; "OTU1 protocol (2.66G)";
} }
/* /*
identity prot-OTU1e { identity prot-OTU1e {
base tributary-protocol-type; base tributary-protocol-type;
description description
"OTU1e type (11.04G)"; "OTU1e type (11.04G)";
} }
identity prot-OTU1f { identity prot-OTU1f {
base tributary-protocol-type; base tributary-protocol-type;
description description
skipping to change at page 33, line 31 skipping to change at page 51, line 18
description description
"OTU4 type (111.80G)"; "OTU4 type (111.80G)";
} }
identity prot-OTUCn { identity prot-OTUCn {
base tributary-protocol-type; base tributary-protocol-type;
description description
"OTUCn type (beyond 100G)"; "OTUCn type (beyond 100G)";
} }
/*
Note: suggest to rename the term, remove the prefix 'prot-'.
*/
identity prot-ODU0 { identity prot-ODU0 {
base tributary-protocol-type; base tributary-protocol-type;
description description
"ODU0 protocol (1.24G)"; "ODU0 protocol (1.24G)";
} }
identity prot-ODU1 { identity prot-ODU1 {
base tributary-protocol-type; base tributary-protocol-type;
description description
"ODU1 protocol (2.49G)"; "ODU1 protocol (2.49G)";
skipping to change at page 35, line 13 skipping to change at page 53, line 4
"ODU Flex CBR protocol for transporting constant bit rate "ODU Flex CBR protocol for transporting constant bit rate
signal"; signal";
} }
identity prot-ODUFlex-gfp { identity prot-ODUFlex-gfp {
base tributary-protocol-type; base tributary-protocol-type;
description description
"ODU Flex GFP protocol for transporting stream of packets "ODU Flex GFP protocol for transporting stream of packets
using Generic Framing Procedure"; using Generic Framing Procedure";
} }
identity prot-ODUCn { identity prot-ODUCn {
base tributary-protocol-type; base tributary-protocol-type;
description description
"ODUCn protocol (beyond 100G)"; "ODUCn protocol (beyond 100G)";
} }
/*
Note: suggest to remove the types with 'prot-xGbE'.
*/
identity prot-1GbE { identity prot-1GbE {
base tributary-protocol-type; base tributary-protocol-type;
description description
"1G Ethernet protocol"; "1G Ethernet protocol";
} }
identity prot-10GbE-LAN { identity prot-10GbE-LAN {
base tributary-protocol-type; base tributary-protocol-type;
description description
"10G Ethernet LAN protocol"; "10G Ethernet LAN protocol";
} }
skipping to change at page 35, line 49 skipping to change at page 53, line 43
description description
"100G Ethernet protocol"; "100G Ethernet protocol";
} }
identity client-signal { identity client-signal {
description description
"Base identity from which specific client signals for the "Base identity from which specific client signals for the
tunnel are derived"; tunnel are derived";
} }
/*
Note: need to reconsider the prefix 'client-signal'.
Comment 1: need to understand whether for same client-signal, there
should be separate identity for transparent and non-transparent or not?
Comment 2: need to better align the term with other models, like L1CSM.
*/
identity client-signal-1GbE { identity client-signal-1GbE {
base client-signal; base client-signal;
description description
"Client signal type of 1GbE"; "Client signal type of 1GbE";
} }
identity client-signal-10GbE-LAN { identity client-signal-10GbE-LAN {
base client-signal; base client-signal;
description description
"Client signal type of 10GbE LAN"; "Client signal type of 10GbE LAN";
 End of changes. 112 change blocks. 
362 lines changed or deleted 1237 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/