draft-ietf-ccamp-otn-tunnel-model-01.txt   draft-ietf-ccamp-otn-tunnel-model-02.txt 
CCAMP Working Group H. Zheng CCAMP Working Group H. Zheng
Internet-Draft Z. Fan Internet-Draft A. Guo
Intended status: Standards Track Huawei Technologies Intended status: Standards Track I. Busi
Expires: May 3, 2018 A. Sharma Expires: December 21, 2018 Huawei Technologies
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
October 30, 2017 June 19, 2018
OTN Tunnel YANG Model OTN Tunnel YANG Model
draft-ietf-ccamp-otn-tunnel-model-01 draft-ietf-ccamp-otn-tunnel-model-02
Abstract Abstract
This document describes the YANG data model for OTN Tunnels. This document describes the YANG data model for OTN Tunnels.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 3, 2018. This Internet-Draft will expire on December 21, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2 2. Terminology and Notations . . . . . . . . . . . . . . . . . . 2
3. Model Overview . . . . . . . . . . . . . . . . . . . . . . . 3 3. OTN Tunnel Model Description . . . . . . . . . . . . . . . . 3
3.1. Mux Service in Multi-Domain OTN Network . . . . . . . . . 3 3.1. Overview of OTN Tunnel Model . . . . . . . . . . . . . . 3
3.2. Bookended and Non-BookEnded OTN Tunnel . . . . . . . . . 4 3.2. OTN-specific Parameters in Tunnel Model . . . . . . . . . 3
3.3. Network and Client side tunnel services . . . . . . . . . 4 3.3. OTN Path Compute RPC . . . . . . . . . . . . . . . . . . 4
3.4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . 4 4. OTN Tunnel YANG Tree . . . . . . . . . . . . . . . . . . . . 4
3.5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . 8 5. OTN Tunnel YANG Code . . . . . . . . . . . . . . . . . . . . 12
3.6. OTN Types YANG Code . . . . . . . . . . . . . . . . . . . 18 6. OTN Types YANG Code . . . . . . . . . . . . . . . . . . . . . 30
4. Security Considerations . . . . . . . . . . . . . . . . . . . 26 7. Security Considerations . . . . . . . . . . . . . . . . . . . 42
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 26 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 42
7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 26 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 42
8. Normative References . . . . . . . . . . . . . . . . . . . . 27 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 43
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 11.1. Normative References . . . . . . . . . . . . . . . . . . 43
11.2. Informative References . . . . . . . . . . . . . . . . . 44
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44
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.
This document provides YANG model for creating OTN tunnel. The model This document provides YANG model for creating OTN tunnel. The model
augments the TE Tunnel model, which is an abstract model to create TE augments the TE Tunnel model.
Tunnels.
2. Terminology and Notations 2. Terminology and Notations
A simplified graphical representation of the data model is used in A simplified graphical representation of the data model is used in
this document. The meaning of the symbols in the YANG data tree this document. The meaning of the symbols in the YANG data tree
presented later in this draft is defined in presented later in this draft is defined in
[I-D.ietf-netmod-yang-tree-diagrams]. They are provided below for [I-D.ietf-netmod-yang-tree-diagrams]. They are provided below for
reference. reference.
o Brackets "[" and "]" enclose list keys. o Brackets "[" and "]" enclose list keys.
o Abbreviations before data node names: "rw" means configuration o Abbreviations before data node names: "rw" means configuration
(read-write) and "ro" state data (read-only). (read-write) and "ro" state data (read-only).
o Symbols after data node names: "?" means an optional node, "!" o Symbols after data node names: "?" means an optional node, "!"
means a presence container, and "*" denotes a list and leaf-list. means a presence container, and "*" denotes a list and leaf-list.
skipping to change at page 3, line 19 skipping to change at page 3, line 22
o Symbols after data node names: "?" means an optional node, "!" o Symbols after data node names: "?" means an optional node, "!"
means a presence container, and "*" denotes a list and leaf-list. means a presence container, and "*" denotes a list and leaf-list.
o Parentheses enclose choice and case nodes, and case nodes are also o Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":"). marked with a colon (":").
o Ellipsis ("...") stands for contents of subtrees that are not o Ellipsis ("...") stands for contents of subtrees that are not
shown. shown.
3. Model Overview 3. OTN Tunnel Model Description
3.1. Mux Service in Multi-Domain OTN Network
OTN Mux Service
<--------------------------------->
XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
XX XX XX XX XX XX
XX +---+ X XX +---+ +---+ X XX +---+ XX
X |NE1+--------+-----+NE2+-----------+NE3+--------+-X---+NE4| X
X +---+ XX ^ X +---+ +---+ XX ^ XX +---+ X
XX XX | XX XX | XX XX
XXXXXXXXXXX | XXXXXXXXXXXXXXXXXXXXXXXXX | XXXXXXXXX
Domain-1 | Domain-2 | Domain-3
+ +
Same OTN Service attributes: Same OTN Service attributes:
1. Client Signal 1. Client Signal
2. Tributary Port Number 2. Tributary Port Number
3. Tributary Slot Granularity 3. Tributary Slot Granularity
4. Tributary Slots 4. Tributary Slots
Figure 1: OTN Mux Service in a multi-domain network topology
Figure 1 shows a multi-domain OTN network with three domains. In
this example, user wants to setup an end-to-end OTN service that
passes through Domain-2. In order to create an OTN mux service in
Domain-2, user will need to specify the exact details of the client
side LO-ODU on NE2 and NE3, so that these service endpoints can be
paired with the LO-ODU endpoints on NE1 and NE4, respectively.
Let's assume that ODU4 is the client side HO-ODU on NE2 and NE3, and
the client signal is ODU2. User will need to specify the OTN client
signal (ODU2 in this example), the Tributary Port Number (TPN),
Tributary Slot Granularities (TSG) and tributary slots to be used.
As shown in the figure above, these service parameters must be the
same between NE1 and NE2, and NE3 and NE4.
Once the OTN Mux service is setup in Domain-2, the incoming signal 3.1. Overview of OTN Tunnel Model
from either NE1 and/or NE4 will be switched inside Domain-2, and
delivered to NE at the other end.
3.2. Bookended and Non-BookEnded OTN Tunnel The OTN tunnel model is using TE tunnel [I-D.ietf-teas-yang-te] as a
basic model and augment to the TE tunnel with OTN-specific
parameters, including the bandwidth information and label
information. It is also worth noting that the OTN tunnel
provisioning is usually based on the OTN topology. Therefore the OTN
tunnel model is usually used together with OTN topology model
specified in [I-D.ietf-ccamp-otn-topo-yang].
OTN tunnel model provides support for both bookended and non- More scenarios and model applications can be found in
bookended OTN tunnels. [I-D.ietf-ccamp-transport-nbi-app-statement] and
[I-D.ietf-teas-actn-yang]. The current model is following the YANG
language specification as [RFC7950], and the corresponding protocol
is recommended to be Netconf protocol in [RFC6241] or RESTconf
protocol in [RFC8040].
For bookended tunnels, the same client signal is present on source 3.2. OTN-specific Parameters in Tunnel Model
and destination endpoints. For example, ODU2e bookended tunnel will
have the same ODU2e client signal at both source and destination
endpoints.
For non-bookended tunnels, different client signals are present on OTN specific parameters have been augmenting to the TE tunnel models.
source and destination endpoints. For example, the client signal can The attributes on both of the source and destination need to be
be ODU2e on the source endpoint and the handoff at the destination configured when setting up the tunnel. Typical parameters, including
can be 10GbE-LAN client signal. client signal, TPN, TSG and corresponding tributary slot information,
are required in the OTN tunnel model. These parameters are
consistent with the framework in [RFC7062], and the specification in
[RFC7138] and [RFC7139].
3.3. Network and Client side tunnel services The OTN bandwidth information has been augmenting to various sections
of TE tunnel models, including tunnel bandwidth, primary path
bandwidth and so on. The OTN label information has been augmenting
to label hop of a group of routing objects and also LSPs.
The OTN tunnel model provides support for both network to network and 3.3. OTN Path Compute RPC
client to client tunnels. For network to network tunnel, network
termination points on source and destination node represent source
and destination endpoints. For client to client tunnel, client
termination points on source and destination node represent source
and destination endpoints.
If a client to client tunnel needs to use one or more HO (or server) Similarly with TE tunnel, a 'compute-only' mode of OTN tunnel model
network to network tunnels, ERO and routing constraints, defined in is also supported by specifing a Remote Procedural Call (RPC). On
the base TE model, can be used to route the client tunnel over one or receiving this RPC, the provider is expected to compute the available
more server tunnels. path subject to the constraints specified in RPC and feedback to the
client without any changing of the OTN network. Given the OTN tunnel
computed, the client may query and/or subscribe on the tunnel to be
notified whenever it changes.
3.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 payload-treatment? enumeration
+--rw src-client-signal? identityref +--rw src-client-signal? identityref
+--rw src-tpn? uint16 +--rw src-tpn? uint16
+--rw src-tsg? identityref +--rw src-tsg? identityref
+--rw src-tributary-slot-count? uint16 +--rw src-tributary-slot-count? uint16
+--rw src-tributary-slots +--rw src-tributary-slots
| +--rw values* uint8 | +--rw values* uint8
+--rw dst-client-signal? identityref +--rw dst-client-signal? identityref
+--rw dst-tpn? uint16 +--rw dst-tpn? uint16
+--rw dst-tsg? identityref +--rw dst-tsg? identityref
+--rw dst-tributary-slot-count? uint16 +--rw dst-tributary-slot-count? uint16
+--rw dst-tributary-slots +--rw dst-tributary-slots
+--rw values* uint8 +--rw values* uint8
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:te-bandwidth/te:technology:
+--:(otn)
+--rw odu-type? identityref
augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology:
+--:(otn)
+--rw odu-type? identityref
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:te-bandwidth/te:technology:
+--:(otn)
+--rw odu-type? identityref
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:te-bandwidth/te:technology:
+--:(otn)
+--rw odu-type? identityref
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:te-bandwidth/te:technology:
+--:(otn)
+--rw odu-type? identityref
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:explicit-route-objects
/te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:globals/te:named-path-constraints
/te:named-path-constraint/te:explicit-route-objects
/te:route-object-include-exclude/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:explicit-route-objects
/te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:explicit-route-objects
/te:route-object-include-exclude/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-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)
+--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-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-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:explicit-route-objects/te:route-object-exclude-always
/te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-primary-paths
/te:p2p-primary-path/te:p2p-reverse-primary-path
/te:explicit-route-objects/te:route-object-include-exclude
/te:type/te:label/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw 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: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)
+--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)
+--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:explicit-route-objects
/te:route-object-exclude-always/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-path/te:explicit-route-objects
/te:route-object-include-exclude/te:type/te:label
/te:label-hop/te:te-label/te:technology:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
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:
+--:(otn)
+--rw tpn? uint16
+--rw tsg? identityref
+--rw ts-list? string
augment /te:te/te:tunnels/te:tunnel/te:p2p-secondary-paths
/te:p2p-secondary-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)
+--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: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)
+--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
skipping to change at page 5, line 50 skipping to change at page 9, line 27
| | +---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) | | +--:(numbered)
| | | +---w numbered-hop | | | +---w numbered-hop
| | | +---w address? te-types:te-tp-id | | | +---w address? te-types:te-tp-id
| | | +---w hop-type? te-hop-type | | | +---w hop-type? te-hop-type
| | | +---w direction? te-link-direction
| | +--:(as-number) | | +--:(as-number)
| | | +---w as-number-hop | | | +---w as-number-hop
| | | +---w as-number? binary | | | +---w as-number? binary
| | | +---w hop-type? te-hop-type | | | +---w hop-type? te-hop-type
| | +--:(unnumbered) | | +--:(unnumbered)
| | | +---w unnumbered-hop | | | +---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
| | +--:(label) | | +--:(label)
| | | +---w label-hop | | +---w label-hop
| | | +---w value? rt-types:generalized-label | | +---w te-label
| | +--:(sid) | | +---w (technology)?
| | +---w sid-hop | | | +--:(generic)
| | +---w sid? rt-types:generalized-label | | | | +---w generic?
rt-types:generalized-label
| | | +--:(otn)
| | | +---w tpn? uint16
| | | +---w tsg? identityref
| | | +---w ts-list? string
| | +---w direction? te-label-direction
| +---w p2p-secondary-paths | +---w p2p-secondary-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) | | +--:(numbered)
| | | +---w numbered-hop | | | +---w numbered-hop
| | | +---w address? te-types:te-tp-id | | | +---w address? te-types:te-tp-id
| | | +---w hop-type? te-hop-type | | | +---w hop-type? te-hop-type
| | | +---w direction? te-link-direction
| | +--:(as-number) | | +--:(as-number)
| | | +---w as-number-hop | | | +---w as-number-hop
| | | +---w as-number? binary | | | +---w as-number? binary
| | | +---w hop-type? te-hop-type | | | +---w hop-type? te-hop-type
| | +--:(unnumbered) | | +--:(unnumbered)
| | | +---w unnumbered-hop | | | +---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
| | +--:(label) | | +--:(label)
| | | +---w label-hop | | +---w label-hop
| | | +---w value? rt-types:generalized-label | | +---w te-label
| | +--:(sid) | | +---w (technology)?
| | +---w sid-hop | | | +--:(generic)
| | +---w sid? rt-types:generalized-label | | | | +---w generic?
rt-types:generalized-label
| | | +--:(otn)
| | | +---w tpn? uint16
| | | +---w tsg? identityref
| | | +---w ts-list? string
| | +---w direction?
te-label-direction
| +---w payload-treatment? enumeration | +---w payload-treatment? enumeration
| +---w src-client-signal? identityref | +---w src-client-signal? identityref
| +---w src-tpn? uint16 | +---w src-tpn? uint16
| +---w src-tsg? identityref | +---w src-tsg? identityref
| +---w src-tributary-slot-count? uint16 | +---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-tpn? uint16
| +---w dst-tsg? identityref | +---w dst-tsg? identityref
skipping to change at page 7, line 31 skipping to change at page 11, line 25
| +--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) | +--:(numbered)
| | +--ro numbered-hop | | +--ro numbered-hop
| | +--ro address? te-types:te-tp-id | | +--ro address? te-types:te-tp-id
| | +--ro hop-type? te-hop-type | | +--ro hop-type? te-hop-type
| | +--ro direction? te-link-direction
| +--:(as-number) | +--:(as-number)
| | +--ro as-number-hop | | +--ro as-number-hop
| | +--ro as-number? binary | | +--ro as-number? binary
| | +--ro hop-type? te-hop-type | | +--ro hop-type? te-hop-type
| +--:(unnumbered) | +--:(unnumbered)
| | +--ro unnumbered-hop | | +--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
| +--:(label) | +--:(label)
| | +--ro label-hop | +--ro label-hop
| | +--ro value? rt-types:generalized-label | +--ro te-label
| +--:(sid) | +--ro (technology)?
| +--ro sid-hop | | +--:(generic)
| +--ro sid? rt-types:generalized-label | | | +--ro generic?
rt-types:generalized-label
| | +--:(otn)
| | +--ro tpn? uint16
| | +--ro tsg? identityref
| | +--ro ts-list? string
| +--ro direction? te-label-direction
+--ro p2p-secondary-paths +--ro p2p-secondary-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) +--:(numbered)
| +--ro numbered-hop | +--ro numbered-hop
| +--ro address? te-types:te-tp-id | +--ro address? te-types:te-tp-id
| +--ro hop-type? te-hop-type | +--ro hop-type? te-hop-type
| +--ro direction? te-link-direction
+--:(as-number) +--:(as-number)
| +--ro as-number-hop | +--ro as-number-hop
| +--ro as-number? binary | +--ro as-number? binary
| +--ro hop-type? te-hop-type | +--ro hop-type? te-hop-type
+--:(unnumbered) +--:(unnumbered)
| +--ro unnumbered-hop | +--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
+--:(label) +--:(label)
| +--ro label-hop +--ro label-hop
| +--ro value? rt-types:generalized-label +--ro te-label
+--:(sid) +--ro (technology)?
+--ro sid-hop | +--:(generic)
+--ro sid? rt-types:generalized-label | | +--ro generic?
rt-types:generalized-label
| +--:(otn)
| +--ro tpn? uint16
| +--ro tsg? identityref
| +--ro ts-list? string
+--ro direction? te-label-direction
3.5. OTN Tunnel YANG Code 5. OTN Tunnel YANG Code
<CODE BEGINS>file "ietf-otn-tunnel@2017-10-30.yang" <CODE BEGINS>file "ietf-otn-tunnel@2018-06-07.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";
prefix "otn-tunnel";
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel"; import ietf-te {
prefix "otn-tunnel"; prefix "te";
}
import ietf-te { import ietf-otn-types {
prefix "te"; prefix "otn-types";
} }
import ietf-otn-types { import ietf-te-types {
prefix "otn-types"; prefix "te-types";
} }
import ietf-te-types {
prefix "te-types";
}
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
} }
organization organization
"IETF CCAMP Working Group"; "IETF CCAMP Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/ccamp/> "WG Web: <http://tools.ietf.org/wg/ccamp/>
WG List: <mailto:ccamp@ietf.org> WG List: <mailto:ccamp@ietf.org>
Editor: Haomian Zheng Editor: Haomian Zheng
<mailto:zhenghaomian@huawei.com> <mailto:zhenghaomian@huawei.com>
Editor: Zheyu Fan Editor: Aihua Guo
<mailto:fanzheyu2@huawei.com> <mailto:aihuaguo@huawei.com>
Editor: Anurag Sharma Editor: Italo Busi
<mailto:ansha@google.com> <mailto:italo.busi@huawei.com>
Editor: Rajan Rao Editor: Anurag Sharma
<mailto:rrao@infinera.com> <mailto:ansha@google.com>
Editor: Sergio Belotti Editor: Rajan Rao
<mailto:sergio.belotti@nokia.com> <mailto:rrao@infinera.com>
Editor: Victor Lopez Editor: Sergio Belotti
<mailto:victor.lopezalvarez@telefonica.com> <mailto:sergio.belotti@nokia.com>
Editor: Yunbo Li Editor: Victor Lopez
<mailto:liyunbo@chinamobile.com> <mailto:victor.lopezalvarez@telefonica.com>
Editor: Yunbin Xu Editor: Yunbo Li
<mailto:xuyunbin@ritt.cn>"; <mailto:liyunbo@chinamobile.com>
description Editor: Yunbin Xu
"This module defines a model for OTN Tunnel Services."; <mailto:xuyunbin@ritt.cn>";
revision "2017-10-30" { description
description "This module defines a model for OTN Tunnel Services.";
"Revision 0.4";
reference
"draft-ietf-ccamp-otn-tunnel-model-01.txt";
}
grouping otn-tunnel-endpoint {
description "Parameters for OTN tunnel";
leaf payload-treatment { revision "2018-06-07" {
type enumeration { description
enum switching { "Revision 0.5";
description "Client signal is switched to another tunnel reference
in this domain"; "draft-ietf-ccamp-otn-tunnel-model-02";
} }
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 { /*
type identityref { * Groupings
base otn-types:client-signal; */
}
description
"Client signal at the source endpoint of the tunnel";
}
leaf src-tpn { grouping otn-tunnel-endpoint {
type uint16 { description "Parameters for OTN tunnel";
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 { leaf payload-treatment {
type identityref { type enumeration {
base otn-types:tributary-slot-granularity; enum switching {
} description "Client signal is switched to another tunnel
description in this domain";
"Tributary slot granularity. }
Applicable in case of mux services"; enum transport {
reference description "Client signal is transparently transmitted
"G.709/Y.1331, February 2016: Interfaces for the in this domain";
Optical Transport Network (OTN)"; }
} }
default switching;
description
"Treatment of the incoming payload. Payload can be switched
or transported.";
}
leaf src-tributary-slot-count { leaf src-client-signal {
type uint16; type identityref {
description base otn-types:client-signal;
"Number of tributary slots used at the source."; }
} description
"Client signal at the source endpoint of the tunnel";
}
container src-tributary-slots { leaf src-tpn {
description type uint16 {
"A list of tributary slots used by the client service. range "0..4095";
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 { }
type identityref { description
base otn-types:client-signal; "Tributary Port Number. Applicable in case of mux services";
} reference
description "RFC7139: GMPLS Signaling Extensions for Control of Evolving
"Client signal at the destination endpoint of the tunnel"; G.709 Optical Transport Networks";
} }
leaf dst-tpn { leaf src-tsg {
type uint16 { type identityref {
range "0..4095"; base otn-types:tributary-slot-granularity;
} }
description description
"Tributary Port Number. Applicable in case of mux services"; "Tributary slot granularity.
reference Applicable in case of mux services";
"RFC7139: GMPLS Signaling Extensions for Control of Evolving reference
G.709 Optical Transport Networks."; "G.709/Y.1331, February 2016: Interfaces for the
} Optical Transport Network (OTN)";
}
leaf dst-tsg { leaf src-tributary-slot-count {
type identityref { type uint16;
base otn-types:tributary-slot-granularity; description
} "Number of tributary slots used at the source.";
description }
"Tributary slot granularity.
Applicable in case of mux services"; container src-tributary-slots {
reference description
"G.709/Y.1331, February 2016: Interfaces for the "A list of tributary slots used by the client service.
Optical Transport Network (OTN)"; 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-tributary-slot-count { leaf dst-client-signal {
type uint16; type identityref {
description base otn-types:client-signal;
"Number of tributary slots used at the destination."; }
} description
"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.";
}
container dst-tributary-slots { leaf dst-tsg {
description type identityref {
"A list of tributary slots used by the client service. base otn-types:tributary-slot-granularity;
Applicable in case of mux services"; }
leaf-list values { description
type uint8; "Tributary slot granularity.
description Applicable in case of mux services";
"Tributary slot value"; reference
reference "G.709/Y.1331, February 2016: Interfaces for the
"G.709/Y.1331, February 2016: Interfaces for the Optical Transport Network (OTN)";
Optical Transport Network (OTN)"; }
}
}
}
/* leaf dst-tributary-slot-count {
Note: Comment has been given to authors of TE Tunnel model to add type uint16;
list of endpoints under config to support P2MP tunnel. description
*/ "Number of tributary slots used at the destination.";
augment "/te:te/te:tunnels/te:tunnel" { }
description
"Augment with additional parameters required for OTN service";
uses otn-tunnel-endpoint;
}
grouping p2p-path-ero { container dst-tributary-slots {
description description
"TE tunnel ERO configuration grouping"; "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)";
}
}
}
leaf te-default-metric { /*
type uint32; Note: Comment has been given to authors of TE Tunnel model to add
description list of endpoints under config to support P2MP tunnel.
"Traffic engineering metric."; */
}
leaf te-delay-metric {
type uint32;
description
"Traffic engineering delay metric.";
}
leaf te-hop-metric {
type uint32;
description
"Traffic engineering hop metric.";
}
container explicit-route-objects {
description "Explicit route objects container";
list explicit-route-object {
key "index";
description
"List of explicit route objects";
leaf explicit-route-usage {
type identityref {
base te-types:route-usage-type;
}
description "An explicit-route hop action.";
}
uses te-types:explicit-route-hop_config;
}
}
}
rpc otn-te-tunnel-path-compute { /*
description "OTN TE tunnel path computation"; * Data nodes
input { */
list request {
key "id";
description "A list of path computation requests.";
leaf id { augment "/te:te/te:tunnels/te:tunnel" {
type uint8; description
description "Augment with additional parameters required for OTN service";
"Request ID."; uses otn-tunnel-endpoint;
} }
leaf type {
type identityref {
base te-types:tunnel-type;
}
description "TE tunnel type.";
}
leaf source {
type inet:ip-address;
description
"TE tunnel source address.";
}
leaf destination {
type inet:ip-address;
description
"TE tunnel destination address";
}
leaf src-tp-id {
type binary;
description
"TE tunnel source termination point identifier.";
}
leaf dst-tp-id {
type binary;
description
"TE tunnel destination termination point identifier.";
}
leaf switching-layer {
type identityref {
base te-types:switching-capabilities;
}
description
"Switching layer where the requests are computed.";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
description "LSP encoding type";
}
leaf protection-type {
type identityref {
base te-types:lsp-protection-type;
}
description "LSP protection type";
}
leaf restoration-type {
type identityref {
base te-types:lsp-restoration-type;
}
description "LSP restoration type";
}
leaf provider-id {
type te-types:te-global-id;
description
"An identifier to uniquely identify a provider.";
}
leaf client-id {
type te-types:te-global-id;
description
"An identifier to uniquely identify a client.";
}
leaf te-topology-id {
type te-types:te-topology-id;
description
"It is presumed that a datastore will contain many
topologies. To distinguish between topologies it is
vital to have UNIQUE topology identifiers.";
}
leaf setup-priority {
type uint8 {
range "0..7";
}
description
"TE LSP setup priority";
}
leaf hold-priority {
type uint8 {
range "0..7";
}
description
"TE LSP hold priority";
}
leaf te-path-metric-type {
type identityref {
base te-types:path-metric-type;
}
default te-types:path-metric-te;
description
"The tunnel path metric type.";
}
leaf odu-type { /*
type identityref{ * Augment TE bandwidth
base otn-types:tributary-protocol-type; */
}
description "Type of ODU";
}
container p2p-primary-paths {
description "Set of P2P primary paths container";
list p2p-primary-path {
key "name";
description
"List of primary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
container p2p-secondary-paths {
description "Set of P2P secondary paths container";
list p2p-secondary-path {
key "name";
description
"List of secondary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
uses otn-tunnel-endpoint;
}
}
output {
leaf return-code {
type enumeration {
enum success {
description "success";
}
enum aborted {
description "aborted";
}
enum destination-not-found {
description "destination-not-found";
}
enum invalid-argument {
description "invalid-argument";
}
enum no-memory {
description "no-memory";
}
enum no-path-found {
description "no-path-found";
}
enum other-error {
description "other-error";
}
enum some-path-not-found {
description "some-path-not-found";
}
enum source-not-found {
description "source-not-found";
} /* Augment bandwidth of named-path-constraints */
enum topology-error { augment "/te:te/te:globals/te:named-path-constraints/"
description "topology-error"; + "te:named-path-constraint/"
} + "te:te-bandwidth/te:technology" {
} description "OTN bandwidth.";
description case otn {
"Return code"; uses otn-types:otn-path-bandwidth;
} }
list result { }
key "id";
description
"A list of results for all requests.";
leaf id { /* Augment bandwdith of tunnel */
type uint8; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:te-bandwidth/te:technology" {
"Request ID"; description "OTN bandwidth.";
} case otn {
container p2p-primary-paths { uses otn-types:otn-path-bandwidth;
description "Set of P2P primary paths container"; }
list p2p-primary-path { }
key "name";
description
"List of resultant primary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
container p2p-secondary-paths {
description "Set of P2P secondary paths container";
list p2p-secondary-path {
key "name";
description
"List of resultant secondary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
}
}
}
}
<CODE ENDS>
3.6. OTN Types YANG Code /* Augment bandwidth of primary path */
augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:te-bandwidth/te:technology" {
description "OTN bandwidth.";
case otn {
uses otn-types:otn-path-bandwidth;
}
}
<CODE BEGINS> file "ietf-otn-types@2017-10-30.yang" /* Augment bandwidth 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:te-bandwidth/te:technology" {
module ietf-otn-types { description "OTN bandwidth.";
namespace "urn:ietf:params:xml:ns:yang:ietf-otn-types"; case otn {
prefix "otn-types"; uses otn-types:otn-path-bandwidth;
}
}
organization /* Augment bandwidht of secondary path */
"IETF CCAMP Working Group"; augment "/te:te/te:tunnels/te:tunnel/"
contact + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"WG Web: <http://tools.ietf.org/wg/ccamp/> + "te:te-bandwidth/te:technology" {
WG List: <mailto:ccamp@ietf.org> description "OTN bandwidth.";
case otn {
uses otn-types:otn-path-bandwidth;
}
}
Editor: Haomian Zheng /*
<mailto:zhenghaomian@huawei.com> * Augment TE label.
*/
Editor: Zheyu Fan /* Augment label hop of route-object-exclude-always of named-path-constraints */
<mailto:fanzheyu2@huawei.com> augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:explicit-route-objects/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
Editor: Anurag Sharma /* Augment label hop of route-object-include-exclude of named-path-constraints */
<mailto:ansha@google.com> augment "/te:te/te:globals/te:named-path-constraints/"
+ "te:named-path-constraint/te:explicit-route-objects/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
Editor: Rajan Rao /* Augment label hop of route-object-exclude-always of primary path */
<mailto:rrao@infinera.com> augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
Editor: Sergio Belotti /* Augment label hop of route-object-include-exclude of primary path */
<mailto:sergio.belotti@nokia.com> augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
Editor: Victor Lopez /* Augment label hop of route-exclude of primary path */
<mailto:victor.lopezalvarez@telefonica.com> 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;
}
}
Editor: Yunbo Li /* Augment label hop of route-include of primary path */
<mailto:liyunbo@chinamobile.com> 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;
}
}
Editor: Yunbin Xu /* Augment label hop of path-route of primary path */
<mailto:xuyunbin@ritt.cn>"; augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-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" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
description /*
"This module defines OTN types."; augment "/te:te/te:tunnels/te:tunnel/"
+ "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:state/te:lsps/te:lsp/te:record-route-subobjects/"
+ "te:record-route-subobject/"
+ "te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
*/
revision "2017-10-30" { /* Augment label hop of path-route of primary LSP */
description augment "/te:te/te:tunnels/te:tunnel/"
"Revision 0.4"; + "te:p2p-primary-paths/te:p2p-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" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
reference /* Augment label hop of route-object-exclude-always of reverse primary path */
"draft-ietf-ccamp-otn-tunnel-model-01.txt"; augment "/te:te/te:tunnels/te:tunnel/"
} + "te:p2p-primary-paths/te:p2p-primary-path/"
+ "te:p2p-reverse-primary-path/"
+ "te:explicit-route-objects/"
+ "te:route-object-exclude-always/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
identity tributary-slot-granularity { }
description }
"Tributary slot granularity";
reference
"G.709/Y.1331, February 2016: Interfaces for the Optical
Transport Network (OTN)";
}
identity tsg-1.25G { /* Augment label hop of route-object-include-exclude of reverse primary path */
base tributary-slot-granularity; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-primary-paths/te:p2p-primary-path/"
"1.25G tributary slot granularity"; + "te:p2p-reverse-primary-path/"
} + "te:explicit-route-objects/"
+ "te:route-object-include-exclude/"
+ "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
identity tsg-2.5G { /* Augment label hop of route-exclude of reverse primary path */
base tributary-slot-granularity; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-primary-paths/te:p2p-primary-path/"
"2.5G tributary slot granularity"; + "te:p2p-reverse-primary-path/"
} + "te:optimizations/te:algorithm/te:metric/"
/* + "te:optimization-metric/te:explicit-route-exclude-objects/"
identity tsg-1.25Gand2.5G { + "te:route-object-exclude-object/te:type/te:label/"
base tributary-slot-granularity; + "te:label-hop/te:te-label/te:technology" {
description description "OTN label.";
"Both 1.25G and 2.5G tributary slot granularity"; case otn {
} uses otn-types:otn-path-label;
*/ }
identity tributary-protocol-type { }
description
"Base identity for protocol framing used by tributary signals";
}
identity prot-OTU1 { /* Augment label hop of route-include of reverse primary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-primary-paths/te:p2p-primary-path/"
"OTU1 protocol (2.66G)"; + "te:p2p-reverse-primary-path/"
} + "te:optimizations/te:algorithm/te:metric/"
/* + "te:optimization-metric/te:explicit-route-include-objects/"
identity prot-OTU1e { + "te:route-object-include-object/te:type/te:label/"
base tributary-protocol-type; + "te:label-hop/te:te-label/te:technology" {
description description "OTN label.";
"OTU1e type (11.04G)"; case otn {
} uses otn-types:otn-path-label;
}
}
identity prot-OTU1f { /* Augment label hop of label hop of path-route of reverse primary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-primary-paths/te:p2p-primary-path/"
"OTU1f type (11.27G)"; + "te:p2p-reverse-primary-path/"
} + "te:state/te:path-properties/"
*/ + "te:path-route-objects/te:path-computed-route-object/"
identity prot-OTU2 { + "te:state/te:type/te:label/"
base tributary-protocol-type; + "te:label-hop/te:te-label/te:technology" {
description description "OTN label.";
"OTU2 type (10.70G)"; case otn {
} uses otn-types:otn-path-label;
}
}
identity prot-OTU2e { /*
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-primary-paths/te:p2p-primary-path/"
"OTU2e type (11.09G)"; + "te:p2p-reverse-primary-path/"
} + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
/* + "te:record-route-subobject/"
identity prot-OTU2f { + "te:type/te:label/"
base tributary-protocol-type; + "te:label-hop/te:te-label/te:technology" {
description description "OTN label.";
"OTU2f type (11.31G)"; case otn {
} uses otn-types:otn-path-label;
*/ }
identity prot-OTU3 { }
base tributary-protocol-type; */
description
"OTU3 type (43.01G)";
}
/*
identity prot-OTU3e1 {
base tributary-protocol-type;
description
"OTU3e1 type (44.57G)";
}
identity prot-OTU3e2 { /* Augment label hop of path-route of reverse primary LSP */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-primary-paths/te:p2p-primary-path/"
"OTU3e2 type (44.58G)"; + "te:p2p-reverse-primary-path/"
} + "te:state/te:lsps/te:lsp/te:path-properties/"
*/ + "te:path-route-objects/te:path-computed-route-object/"
identity prot-OTU4 { + "te:state/te:type/te:label/"
base tributary-protocol-type; + "te:label-hop/te:te-label/te:technology" {
description description "OTN label.";
"OTU4 type (111.80G)"; case otn {
} uses otn-types:otn-path-label;
}
}
identity prot-OTUCn { /* Augment label hop of route-object-exclude-always of secondary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"OTUCn type (beyond 100G)"; + "te:explicit-route-objects/"
} + "te:route-object-exclude-always/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
identity prot-ODU0 { /* Augment label hop of route-object-include-exclude of secondary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"ODU0 protocol (1.24G)"; + "te:explicit-route-objects/"
} + "te:route-object-include-exclude/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
identity prot-ODU1 { /* Augment label hop of route-exclude of secondary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"ODU1 protocol (2.49G)"; + "te:optimizations/te:algorithm/te:metric/"
} + "te:optimization-metric/te:explicit-route-exclude-objects/"
/* + "te:route-object-exclude-object/te:type/te:label/"
identity prot-ODU1e { + "te:label-hop/te:te-label/te:technology" {
base tributary-protocol-type; description "OTN label.";
description case otn {
"ODU1e protocol (10.35G)."; uses otn-types:otn-path-label;
} }
}
identity prot-ODU1f { /* Augment label hop of route-include of secondary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"ODU1f protocol (10.56G)."; + "te:optimizations/te:algorithm/te:metric/"
} + "te:optimization-metric/te:explicit-route-include-objects/"
*/ + "te:route-object-include-object/te:type/te:label/"
identity prot-ODU2 { + "te:label-hop/te:te-label/te:technology" {
base tributary-protocol-type; description "OTN label.";
description case otn {
"ODU2 protocol (10.03G)"; uses otn-types:otn-path-label;
} }
}
identity prot-ODU2e { /* Augment label hop of label hop of path-route of secondary path */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"ODU2e protocol (10.39G)"; + "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" {
identity prot-ODU2f {
base tributary-protocol-type;
description
"ODU2f protocol (10.60G).";
}
*/
identity prot-ODU3 {
base tributary-protocol-type;
description
"ODU3 protocol (40.31G)";
}
/*
identity prot-ODU3e1 {
base tributary-protocol-type;
description
"ODU3e1 protocol (41.77G).";
}
identity prot-ODU3e2 { description "OTN label.";
base tributary-protocol-type; case otn {
description uses otn-types:otn-path-label;
"ODU3e2 protocol (41.78G)."; }
} }
*/
identity prot-ODU4 {
base tributary-protocol-type;
description
"ODU4 protocol (104.79G)";
}
identity prot-ODUFlex-cbr { /*
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"ODU Flex CBR protocol for transporting constant bit rate + "te:state/te:lsps/te:lsp/te:lsp-record-route-subobjects/"
signal"; + "te:record-route-subobject/"
} + "te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
*/
identity prot-ODUFlex-gfp { /* Augment label hop of path-route of secondary LSP */
base tributary-protocol-type; augment "/te:te/te:tunnels/te:tunnel/"
description + "te:p2p-secondary-paths/te:p2p-secondary-path/"
"ODU Flex GFP protocol for transporting stream of packets + "te:state/te:lsps/te:lsp/te:path-properties/"
using Generic Framing Procedure"; + "te:path-route-objects/"
} + "te:path-computed-route-object/te:state/te:type/te:label/"
+ "te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
identity prot-ODUCn { /*
base tributary-protocol-type; augment "/te:te/te:lsp-state/"
description + "te:lsp-record-route-subobjects/te:lsp-record-route-subobject/"
"ODUCn protocol (beyond 100G)"; + "te:record-route-subobject/"
} + "te:type/te:label/te:label-hop/te:te-label/te:technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
*/
identity prot-1GbE { grouping p2p-path-ero {
base tributary-protocol-type; description
description "TE tunnel ERO configuration grouping";
"1G Ethernet protocol";
}
identity prot-10GbE-LAN {
base tributary-protocol-type;
description
"10G Ethernet LAN protocol";
}
identity prot-40GbE { leaf te-default-metric {
base tributary-protocol-type; type uint32;
description description
"40G Ethernet protocol"; "Traffic engineering metric.";
} }
leaf te-delay-metric {
type uint32;
description
"Traffic engineering delay metric.";
}
leaf te-hop-metric {
type uint32;
description
"Traffic engineering hop metric.";
}
container explicit-route-objects {
description "Explicit route objects container";
list explicit-route-object {
key "index";
description
"List of explicit route objects";
leaf explicit-route-usage {
type identityref {
base te-types:route-usage-type;
}
description "An explicit-route hop action.";
}
uses te-types:explicit-route-hop {
augment "type/label/label-hop/te-label/technology" {
description "OTN label.";
case otn {
uses otn-types:otn-path-label;
}
}
}
}
}
}
identity prot-100GbE { rpc otn-te-tunnel-path-compute {
base tributary-protocol-type; description "OTN TE tunnel path computation";
description input {
"100G Ethernet protocol"; list request {
} key "id";
description "A list of path computation requests.";
leaf id {
type uint8;
description
"Request ID.";
}
leaf type {
type identityref {
base te-types:tunnel-type;
}
description "TE tunnel type.";
}
leaf source {
type inet:ip-address;
description
"TE tunnel source address.";
}
leaf destination {
type inet:ip-address;
description
"TE tunnel destination address";
}
leaf src-tp-id {
type binary;
description
"TE tunnel source termination point identifier.";
}
leaf dst-tp-id {
type binary;
description
"TE tunnel destination termination point identifier.";
}
leaf switching-layer {
type identityref {
base te-types:switching-capabilities;
}
description
"Switching layer where the requests are computed.";
}
leaf encoding {
type identityref {
base te-types:lsp-encoding-types;
}
description "LSP encoding type";
}
leaf protection-type {
type identityref {
base te-types:lsp-protection-type;
}
description "LSP protection type";
}
leaf restoration-type {
type identityref {
base te-types:lsp-restoration-type;
}
description "LSP restoration type";
}
leaf provider-id {
type te-types:te-global-id;
description
"An identifier to uniquely identify a provider.";
}
leaf client-id {
type te-types:te-global-id;
description
"An identifier to uniquely identify a client.";
}
leaf te-topology-id {
type te-types:te-topology-id;
description
"It is presumed that a datastore will contain many
topologies. To distinguish between topologies it is
vital to have UNIQUE topology identifiers.";
}
leaf setup-priority {
type uint8 {
range "0..7";
}
description
"TE LSP setup priority";
}
leaf hold-priority {
type uint8 {
range "0..7";
}
description
"TE LSP hold priority";
}
leaf te-path-metric-type {
type identityref {
base te-types:path-metric-type;
}
default te-types:path-metric-te;
description
"The tunnel path metric type.";
}
leaf odu-type {
type identityref{
base otn-types:tributary-protocol-type;
}
description "Type of ODU";
}
container p2p-primary-paths {
description "Set of P2P primary paths container";
list p2p-primary-path {
key "name";
description
"List of primary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
container p2p-secondary-paths {
description "Set of P2P secondary paths container";
list p2p-secondary-path {
key "name";
description
"List of secondary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
uses otn-tunnel-endpoint;
}
}
output {
leaf return-code {
type enumeration {
enum success {
description "success";
}
enum aborted {
description "aborted";
}
enum destination-not-found {
description "destination-not-found";
}
enum invalid-argument {
description "invalid-argument";
}
enum no-memory {
description "no-memory";
}
enum no-path-found {
description "no-path-found";
}
enum other-error {
description "other-error";
}
enum some-path-not-found {
description "some-path-not-found";
}
enum source-not-found {
description "source-not-found";
}
enum topology-error {
description "topology-error";
}
}
description
"Return code";
}
list result {
key "id";
description
"A list of results for all requests.";
identity client-signal { leaf id {
description type uint8;
"Base identity from which specific client signals for the description
tunnel are derived"; "Request ID";
} }
container p2p-primary-paths {
description "Set of P2P primary paths container";
list p2p-primary-path {
key "name";
description
"List of resultant primary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
container p2p-secondary-paths {
description "Set of P2P secondary paths container";
list p2p-secondary-path {
key "name";
description
"List of resultant secondary paths for this tunnel.";
leaf name {
type string;
description "TE path name";
}
uses p2p-path-ero;
}
}
}
}
}
}
identity client-signal-1GbE { <CODE ENDS>
base client-signal;
description
"Client signal type of 1GbE";
}
identity client-signal-10GbE-LAN { 6. OTN Types YANG Code
base client-signal;
description
"Client signal type of 10GbE LAN";
}
identity client-signal-10GbE-WAN { <CODE BEGINS> file "ietf-otn-types@2018-06-07.yang"
base client-signal;
description
"Client signal type of 10GbE WAN";
}
identity client-signal-40GbE { module ietf-otn-types {
base client-signal; namespace "urn:ietf:params:xml:ns:yang:ietf-otn-types";
description prefix "otn-types";
"Client signal type of 40GbE";
}
identity client-signal-100GbE {
base client-signal;
description
"Client signal type of 100GbE";
}
identity client-signal-OC3_STM1 { organization
base client-signal; "IETF CCAMP Working Group";
description contact
"Client signal type of OC3 & STM1"; "WG Web: <http://tools.ietf.org/wg/ccamp/>
} WG List: <mailto:ccamp@ietf.org>
identity client-signal-OC12_STM4 { Editor: Haomian Zheng
base client-signal; <mailto:zhenghaomian@huawei.com>
description
"Client signal type of OC12 & STM4";
}
identity client-signal-OC48_STM16 { Editor: Aihua Guo
base client-signal; <mailto:aihuaguo@huawei.com>
description
"Client signal type of OC48 & STM16";
}
identity client-signal-OC192_STM64 { Editor: Italo Busi
base client-signal; <mailto:italo.busi@huawei.com>
description
"Client signal type of OC192 & STM64";
}
identity client-signal-OC768_STM256 { Editor: Anurag Sharma
base client-signal; <mailto:ansha@google.com>
description
"Client signal type of OC768 & STM256";
}
identity client-signal-ODU0 { Editor: Rajan Rao
base client-signal; <mailto:rrao@infinera.com>
description
"Client signal type of ODU0 (1.24G)";
}
identity client-signal-ODU1 { Editor: Sergio Belotti
base client-signal; <mailto:sergio.belotti@nokia.com>
description
"ODU1 protocol (2.49G)";
}
identity client-signal-ODU2 {
base client-signal;
description
"Client signal type of ODU2 (10.03G)";
}
identity client-signal-ODU2e { Editor: Victor Lopez
base client-signal; <mailto:victor.lopezalvarez@telefonica.com>
description
"Client signal type of ODU2e (10.39G)";
}
identity client-signal-ODU3 { Editor: Yunbo Li
base client-signal; <mailto:liyunbo@chinamobile.com>
description
"Client signal type of ODU3 (40.31G)";
}
/*
identity client-signal-ODU3e2 {
base client-signal;
description
"Client signal type of ODU3e2 (41.78G)";
}
*/
identity client-signal-ODU4 {
base client-signal;
description
"Client signal type of ODU4 (104.79G)";
}
identity client-signal-ODUflex-cbr { Editor: Yunbin Xu
base client-signal; <mailto:xuyunbin@ritt.cn>";
description
"Client signal type of ODU Flex CBR";
}
identity client-signal-ODUflex-gfp { description
base client-signal; "This module defines OTN types.";
description
"Client signal type of ODU Flex GFP";
}
identity client-signal-ODUCn { revision "2018-06-07" {
base client-signal; description
description "Revision 0.5";
"Client signal type of ODUCn (beyond 100G)"; reference
} "draft-ietf-ccamp-otn-tunnel-model-02";
identity client-signal-FC400 { }
base client-signal;
description
"Client signal type of Fibre Channel FC400";
}
identity client-signal-FC800 { identity tributary-slot-granularity {
base client-signal; description
description "Tributary slot granularity";
"Client signal type of Fibre Channel FC800"; reference
} "G.709/Y.1331, February 2016: Interfaces for the Optical
Transport Network (OTN)";
}
identity client-signal-FICON-4G { identity tsg-1.25G {
base client-signal; base tributary-slot-granularity;
description description
"Client signal type of Fibre Connection 4G"; "1.25G tributary slot granularity";
} }
identity client-signal-FICON-8G { identity tsg-2.5G {
base client-signal; base tributary-slot-granularity;
description description
"Client signal type of Fibre Connection 8G"; "2.5G tributary slot granularity";
} }
} /*
identity tsg-1.25Gand2.5G {
base tributary-slot-granularity;
description
"Both 1.25G and 2.5G tributary slot granularity";
}
*/
identity tributary-protocol-type {
description
"Base identity for protocol framing used by tributary signals";
}
<CODE ENDS> identity prot-OTU1 {
base tributary-protocol-type;
description
"OTU1 protocol (2.66G)";
}
/*
identity prot-OTU1e {
base tributary-protocol-type;
description
"OTU1e type (11.04G)";
}
4. Security Considerations identity prot-OTU1f {
base tributary-protocol-type;
description
"OTU1f type (11.27G)";
}
*/
identity prot-OTU2 {
base tributary-protocol-type;
description
"OTU2 type (10.70G)";
}
identity prot-OTU2e {
base tributary-protocol-type;
description
"OTU2e type (11.09G)";
}
/*
identity prot-OTU2f {
base tributary-protocol-type;
description
"OTU2f type (11.31G)";
}
*/
identity prot-OTU3 {
base tributary-protocol-type;
description
"OTU3 type (43.01G)";
}
/*
identity prot-OTU3e1 {
base tributary-protocol-type;
description
"OTU3e1 type (44.57G)";
}
identity prot-OTU3e2 {
base tributary-protocol-type;
description
"OTU3e2 type (44.58G)";
}
*/
identity prot-OTU4 {
base tributary-protocol-type;
description
"OTU4 type (111.80G)";
}
identity prot-OTUCn {
base tributary-protocol-type;
description
"OTUCn type (beyond 100G)";
}
identity prot-ODU0 {
base tributary-protocol-type;
description
"ODU0 protocol (1.24G)";
}
identity prot-ODU1 {
base tributary-protocol-type;
description
"ODU1 protocol (2.49G)";
}
/*
identity prot-ODU1e {
base tributary-protocol-type;
description
"ODU1e protocol (10.35G).";
}
identity prot-ODU1f {
base tributary-protocol-type;
description
"ODU1f protocol (10.56G).";
}
*/
identity prot-ODU2 {
base tributary-protocol-type;
description
"ODU2 protocol (10.03G)";
}
identity prot-ODU2e {
base tributary-protocol-type;
description
"ODU2e protocol (10.39G)";
}
/*
identity prot-ODU2f {
base tributary-protocol-type;
description
"ODU2f protocol (10.60G).";
}
*/
identity prot-ODU3 {
base tributary-protocol-type;
description
"ODU3 protocol (40.31G)";
}
/*
identity prot-ODU3e1 {
base tributary-protocol-type;
description
"ODU3e1 protocol (41.77G).";
}
identity prot-ODU3e2 {
base tributary-protocol-type;
description
"ODU3e2 protocol (41.78G).";
}
*/
identity prot-ODU4 {
base tributary-protocol-type;
description
"ODU4 protocol (104.79G)";
}
identity prot-ODUFlex-cbr {
base tributary-protocol-type;
description
"ODU Flex CBR protocol for transporting constant bit rate
signal";
}
identity prot-ODUFlex-gfp {
base tributary-protocol-type;
description
"ODU Flex GFP protocol for transporting stream of packets
using Generic Framing Procedure";
}
identity prot-ODUCn {
base tributary-protocol-type;
description
"ODUCn protocol (beyond 100G)";
}
identity prot-1GbE {
base tributary-protocol-type;
description
"1G Ethernet protocol";
}
identity prot-10GbE-LAN {
base tributary-protocol-type;
description
"10G Ethernet LAN protocol";
}
identity prot-40GbE {
base tributary-protocol-type;
description
"40G Ethernet protocol";
}
identity prot-100GbE {
base tributary-protocol-type;
description
"100G Ethernet protocol";
}
identity client-signal {
description
"Base identity from which specific client signals for the
tunnel are derived";
}
identity client-signal-1GbE {
base client-signal;
description
"Client signal type of 1GbE";
}
identity client-signal-10GbE-LAN {
base client-signal;
description
"Client signal type of 10GbE LAN";
}
identity client-signal-10GbE-WAN {
base client-signal;
description
"Client signal type of 10GbE WAN";
}
identity client-signal-40GbE {
base client-signal;
description
"Client signal type of 40GbE";
}
identity client-signal-100GbE {
base client-signal;
description
"Client signal type of 100GbE";
}
identity client-signal-OC3_STM1 {
base client-signal;
description
"Client signal type of OC3 & STM1";
}
identity client-signal-OC12_STM4 {
base client-signal;
description
"Client signal type of OC12 & STM4";
}
identity client-signal-OC48_STM16 {
base client-signal;
description
"Client signal type of OC48 & STM16";
}
identity client-signal-OC192_STM64 {
base client-signal;
description
"Client signal type of OC192 & STM64";
}
identity client-signal-OC768_STM256 {
base client-signal;
description
"Client signal type of OC768 & STM256";
}
identity client-signal-ODU0 {
base client-signal;
description
"Client signal type of ODU0 (1.24G)";
}
identity client-signal-ODU1 {
base client-signal;
description
"ODU1 protocol (2.49G)";
}
identity client-signal-ODU2 {
base client-signal;
description
"Client signal type of ODU2 (10.03G)";
}
identity client-signal-ODU2e {
base client-signal;
description
"Client signal type of ODU2e (10.39G)";
}
identity client-signal-ODU3 {
base client-signal;
description
"Client signal type of ODU3 (40.31G)";
}
/*
identity client-signal-ODU3e2 {
base client-signal;
description
"Client signal type of ODU3e2 (41.78G)";
}
*/
identity client-signal-ODU4 {
base client-signal;
description
"Client signal type of ODU4 (104.79G)";
}
identity client-signal-ODUflex-cbr {
base client-signal;
description
"Client signal type of ODU Flex CBR";
}
identity client-signal-ODUflex-gfp {
base client-signal;
description
"Client signal type of ODU Flex GFP";
}
identity client-signal-ODUCn {
base client-signal;
description
"Client signal type of ODUCn (beyond 100G)";
}
identity client-signal-FC400 {
base client-signal;
description
"Client signal type of Fibre Channel FC400";
}
identity client-signal-FC800 {
base client-signal;
description
"Client signal type of Fibre Channel FC800";
}
identity client-signal-FICON-4G {
base client-signal;
description
"Client signal type of Fibre Connection 4G";
}
identity client-signal-FICON-8G {
base client-signal;
description
"Client signal type of Fibre Connection 8G";
}
identity client-signal-OTU1 {
base client-signal;
description
"Client signal type of OTU1";
}
identity client-signal-OTU2 {
base client-signal;
description
"Client signal type of OTU2";
}
identity client-signal-OTU2e {
base client-signal;
description
"Client signal type of OTU2e";
}
identity client-signal-OTU3 {
base client-signal;
description
"Client signal type of OTU3";
}
identity client-signal-OTU4 {
base client-signal;
description
"Client signal type of OTU4";
}
identity otn-label-range-type {
description
"Base identity from which specific OTN label
range types derived";
}
identity label-range-trib-slot {
base otn-label-range-type;
description
"Defines a range of OTN tributary slots";
}
identity label-range-trib-port {
base otn-label-range-type;
description
"Defines a range of OTN tributary ports";
}
grouping otn-link-bandwidth {
list odulist {
key "odu-type";
description
"OTN bandwidth definition";
leaf odu-type {
type identityref {
base otn-types:tributary-protocol-type;
}
description "ODU type";
}
leaf number {
type uint16;
description "Number of ODUs";
}
}
}
grouping otn-path-bandwidth {
leaf odu-type {
type identityref {
base otn-types:tributary-protocol-type;
}
description "ODU type";
}
}
grouping otn-label-restriction {
leaf range-type {
type identityref {
base otn-types:otn-label-range-type;
}
}
leaf tsg {
type identityref {
base otn-types:tributary-slot-granularity;
}
description "Tributary slot granularity.";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf priority {
type uint8;
description "priority.";
}
}
grouping otn-link-label {
choice otn-label-type {
description
"OTN label type";
case tributary-port {
leaf tpn {
type uint16 {
range "1..4095";
}
description
"Tributary Port Number. Applicable in case of mux services.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
case tributary-slot {
leaf ts {
type uint16 {
range "1..4095";
}
description
"Tributary Slot Number. Applicable in case of mux services.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
}
}
grouping otn-path-label {
leaf tpn {
type uint16 {
range "1..4095";
}
description
"Tributary Port Number. Applicable in case of mux services.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
leaf tsg {
type identityref {
base otn-types:tributary-slot-granularity;
}
description "Tributary slot granularity.";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf ts-list {
type string {
pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?"
+ "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
}
description
"A list of available tributary slots ranging
between 1 and 9999.
For example 1-20,25,50-1000";
reference "RFC 7139: GMPLS Signaling Extensions for Control
of Evolving G.709 Optical Transport Networks";
}
}
}
<CODE ENDS>
7. Security Considerations
TBD. TBD.
5. IANA Considerations 8. IANA Considerations
TBD. TBD.
6. Acknowledgements 9. Acknowledgements
TBD. TBD.
7. Contributors 10. Contributors
Dieter Beller Dieter Beller
Nokia Nokia
Email: dieter.beller@nokia.com Email: dieter.beller@nokia.com
Yanlei Zheng Yanlei Zheng
China Unicom China Unicom
Email: zhengyl@dimpt.com Email: zhengyl@dimpt.com
Xian Zhang Xian Zhang
skipping to change at page 27, line 18 skipping to change at page 43, line 10
Email: zhang.xian@huawei.com Email: zhang.xian@huawei.com
Lei Wang Lei Wang
China Mobile China Mobile
Email: wangleiyj@chinamobile.com Email: wangleiyj@chinamobile.com
Oscar Gonzalez de Dios Oscar Gonzalez de Dios
Telefonica Telefonica
Email: oscar.gonzalezdedios@telefonica.com Email: oscar.gonzalezdedios@telefonica.com
8. Normative References 11. References
11.1. Normative References
[I-D.ietf-ccamp-otn-topo-yang]
zhenghaomian@huawei.com, z., Guo, A., Busi, I., Sharma,
A., Liu, X., Belotti, S., Xu, Y., Wang, L., and O. Dios,
"A YANG Data Model for Optical Transport Network
Topology", draft-ietf-ccamp-otn-topo-yang-03 (work in
progress), June 2018.
[I-D.ietf-ccamp-transport-nbi-app-statement]
Busi, I., King, D., zhenghaomian@huawei.com, z., and Y.
Xu, "Transport Northbound Interface Applicability
Statement", draft-ietf-ccamp-transport-nbi-app-
statement-01 (work in progress), March 2018.
[I-D.ietf-teas-yang-te]
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and
I. Bryskin, "A YANG Data Model for Traffic Engineering
Tunnels and Interfaces", draft-ietf-teas-yang-te-15 (work
in progress), June 2018.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>.
[RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D.,
and K. Pithewan, "GMPLS Signaling Extensions for Control
of Evolving G.709 Optical Transport Networks", RFC 7139,
DOI 10.17487/RFC7139, March 2014,
<https://www.rfc-editor.org/info/rfc7139>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>.
11.2. Informative References
[I-D.ietf-netmod-yang-tree-diagrams] [I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-02 (work in progress), ietf-netmod-yang-tree-diagrams-06 (work in progress),
October 2017. February 2018.
[I-D.ietf-teas-actn-yang]
Lee, Y., zhenghaomian@huawei.com, z., Ceccarelli, D.,
Yoon, B., and S. Belotti, "Applicability of YANG models
for Abstraction and Control of Traffic Engineered
Networks", draft-ietf-teas-actn-yang-01 (work in
progress), February 2018.
[RFC7062] Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D.
Ceccarelli, "Framework for GMPLS and PCE Control of G.709
Optical Transport Networks", RFC 7062,
DOI 10.17487/RFC7062, November 2013,
<https://www.rfc-editor.org/info/rfc7062>.
[RFC7138] Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and
J. Drake, "Traffic Engineering Extensions to OSPF for
GMPLS Control of Evolving G.709 Optical Transport
Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014,
<https://www.rfc-editor.org/info/rfc7138>.
Authors' Addresses Authors' Addresses
Haomian Zheng Haomian Zheng
Huawei Technologies Huawei Technologies
F3 R&D Center, Huawei Industrial Base, Bantian, Longgang District F3 R&D Center, Huawei Industrial Base, Bantian, Longgang District
Shenzhen, Guangdong 518129 Shenzhen, Guangdong 518129
P.R.China P.R.China
Email: zhenghaomian@huawei.com Email: zhenghaomian@huawei.com
Zheyu Fan Aihua Guo
Huawei Technologies Huawei Technologies
F3 R&D Center, Huawei Industrial Base, Bantian, Longgang District 12007 Sunrise Valley Drive, Suite 325
Shenzhen, Guangdong 518129 Reston, VA 20171
P.R.China U.S.A
Email: fanzheyu2@huawei.com Email: aihuaguo@huawei.com
Italo Busi
Huawei Technologies
HUAWEI TECHNOLOGIES ITALIA Srl Centro Direzionale Milano 2
Milan, Milan 20090
Italy
Email: Italo.Busi@huawei.com
Anurag Sharma Anurag Sharma
Google Google
1600 Amphitheatre Parkway 1600 Amphitheatre Parkway
Mountain View, CA 94043 Mountain View, CA 94043
USA USA
Email: ansha@google.com Email: ansha@google.com
Rajan Rao Rajan Rao
Infinera Infinera
169 Java Drive 169 Java Drive
Sunnyvale, CA 94089 Sunnyvale, CA 94089
USA USA
Email: rrao@infinera.com Email: rrao@infinera.com
Sergio Belotti Sergio Belotti
Nokia Nokia
 End of changes. 135 change blocks. 
890 lines changed or deleted 1721 lines changed or added

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