CCAMP Working Group                                             H. Zheng
Internet-Draft                                                   I. Busi
Intended status: Standards Track                     Huawei Technologies
Expires: June 7, September 10, 2020                                March 9, 2020                                   December 5, 2019

                  A YANG Data Model for Layer 1 Types
                    draft-ietf-ccamp-layer1-types-04
                    draft-ietf-ccamp-layer1-types-05

Abstract

   This document defines a collection of common data types and groupings
   in YANG data modeling language for layer 1 networks.  These derived
   common types and groupings are intended to be imported by modules
   that specifies the OTN networks, including the topology, tunnel,
   client signal adaptation and service.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on June 7, September 10, 2020.

Copyright Notice

   Copyright (c) 2019 2020 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology and Notations . . . . . . . . . . . . . . . . . .   2   3
   3.  Prefix in Data Node Names . . . . . . . . . . . . . . . . . .   3
   4.  Layer 1 Types Overview  . . . . . . . . . . . . . . . . . . .   3
     4.1.  Relationship with other Modules . . . . . . . . . . . . .   3
     4.2.  Content in Layer 1 Type Module  . . . . . . . . . . . . .   3
     4.3.  Usage of groupings in Layer1-types  OTN Label and Label Range . . . . . . . . . . . . . . . .   5
     4.4.  ODUflex . . . . . . . . . . . . . . . . . . . . . . . . .   6
       4.4.1.  Resizable ODUflex . . . . . . . . . . . . . . . . . .   8
   5.  YANG Code for Layer1 Types  . . . . . . . . . . . . . . . . .   6   9
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  20  27
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  21  28
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  21  28
   9.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  21  28
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  22  30
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  22  30
     10.2.  Informative References . . . . . . . . . . . . . . . . .  24  31
   Appendix A.  Examples of OTN Label Ranges . . . . . . . . . . . .  32
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  25  38

1.  Introduction

   This document introduces a collection of common data types which
   would be used in Layer 1 networks.  The derived types and groupings
   are designed to be the common types applicable for modeling Traffic
   Engineering (TE) features for Layer 1 networks.

   Typical Layer 1 network, the Optical Transport Networking, was
   specified in [RFC7062].  Corresponding routing and signaling protocol
   have been specified in [RFC7138] and [RFC7139].  The types and
   groupings defined in this document is consistent to these document,
   and will be imported in other Layer 1 data models, including but not
   restrictive to, [I-D.ietf-ccamp-otn-topo-yang],
   [I-D.ietf-ccamp-otn-tunnel-model]
   [I-D.ietf-ccamp-otn-tunnel-model],
   [I-D.ietf-ccamp-client-signal-yang] and [I-D.ietf-ccamp-l1csm-yang].

   The data model in this draft has only types defined including
   groupings, typedef and identities.  There is no need to include
   configuration and state data according to the new Network Management
   Datastore Architecture [RFC8342].  The content in this draft is in
   consistent with other specifications, including [MEF63] for Layer 1
   service attributes, [ITU-Tg709] and [ITU-Tgsup43] for OTN data plane
   definitions.

2.  Terminology and Notations

   Refer to [RFC7062] for the key terms used in this document, and the
   terminology for describing YANG data models can be found in
   [RFC7950].

3.  Prefix in Data Node Names

   In this document, names of data nodes and other data model objects
   are prefixed using the standard prefix associated with the
   corresponding YANG imported modules.

      +-------------+---------------------------+----------------------+
      | Prefix      | YANG module               | Reference            |
      +-------------+---------------------------+----------------------+
      | layer1-types| l1-types    | ietf-layer1-types         | This Document        |
      +-------------+---------------------------+----------------------+

4.  Layer 1 Types Overview

4.1.  Relationship with other Modules

   This document defines one YANG module for common Layer 1 types.  The
   objective is to specifies common Layer 1 TE types that can be
   imported by layer 1 specific technology, for example OTN, in its
   technology-specific modules such as topology and tunnels.  It is
   worth noting that the generic traffic-engineering (TE) types module
   is specified in [I-D.ietf-teas-yang-te-types] as ietf-te-types, and
   both the module ietf-te-types and ietf-layer1-types are needed to be
   imported when the OTN is configured.  Generic attributes such as te-
   bandwidth and te-label, are indicated in ietf-te-types in
   [I-D.ietf-teas-yang-te-types], while the OTN-specific attributes,
   such as odu-type, are indicated in ietf-layer1-types in this
   document.

4.2.  Content in Layer 1 Type Module

   The module ietf-layer1-types contains the following YANG reusable
   types and groupings:

   tributary-slot-granularity:

   This is to define the granularity of the server layer ODU Link (HO
   ODUk or ODUCn) supporting a client layer ODU LSP (LO ODUj or ODUk,
   respectively).  Three granularities, 1.25G/2.5G/5G, have been
   specified.

   odu-type:

   This is to specify the type of ODUk LSP, including the types
   specified in [RFC7139] and [RFC7963].

   client-signal:

   This is to specify the client signal types of OTN networks.  The
   initial input was the G-PID specified in [RFC7139].  Identities about
   a few categories of client signal types, including ETH, STM-n, OC
   [Telcordia] and Fiber Channel have been specified.

   otn-label-range-type:

   The label range type of OTN has two different representations,
   tributary slots (TS) and tributary port number (TPN), according to
   [RFC7139].  Respective representation is specified under this same
   base type.

   otn-link-bandwidth:

   This grouping defines the link bandwidth information and could be
   used in OTN topology model for bandwidth representation.  All the
   bandwidth related sections in generic module,
   [I-D.ietf-teas-yang-te-types], need to be augmented with this
   grouping for the usage of Layer 1.

   otn-path-bandwidth:

   This grouping defines the path bandwidth information and could be
   used in OTN topology model for bandwidth representation.  All the
   bandwidth related sections in generic module,
   [I-D.ietf-teas-yang-te-types], need to be augmented with this
   grouping for the usage of Layer 1.  This grouping is also applicable
   to set up the OTN tunnel.

   otn-label-range-info and otn-label-step:

   These groupings are used for the augmentation of OTN label in a
   specific way.

   otn-label-start-end and otn-label-hop:

   These groupings are used for the augmentation of label for OTN link
   and path respectively.

   optical-interface-func:

   The optical interface function is specified in [MEF63].  This
   grouping describes the functionality which encodes bits for
   transmission and the corresponding decode upon reception.

   service-performance-metric:

   The service performance metric is a quantitative characterization of
   Layer 1 characteristic information delivery quality experienced by
   the Layer 1 subscriber.

4.3.  Usage of groupings in Layer1-types  OTN Label and Label Range

   As described in [RFC7139], the OTN label usually represents the
   Tributary Port Number (TPN) and the related set of Tributary Slots
   (TS) assigned to a client layer ODU LSP (LO ODUj or ODUk) on a given
   server layer ODU (HO-ODU or ODUCn, respectively) Link (e.g., ODU2 LSP
   over ODU3 Link).  Some special OTN label values are also defined for
   an ODUk LSP being setup over an OTUk Link.

   The same OTN label shall be assigned to the same ODUk LSP at the two
   ends of an OTN Link.

   As described in [RFC7139], TPN can be a number from 1 to 4095 and TS
   are numbered from 1 to 4095, although the actual maximum values
   depend on the type of server layer ODU.  For example, a server layer
   ODU4 provides 80 time slots (numbered from 1 to 80) and the TPN
   values can be any number from 1 to 80.

   The OTN Label Range represents the values for the TPN and TS that are
   available for ODUk LSPs to be setup over a given OTN Link.

   The OTN Label Range is defined by the label-restriction list, defined
   in [I-D.ietf-teas-yang-te-types], which, for OTN, should be augmented
   using the otn-label-range-info grouping.

   Each entry in the label-restriction list represents either the range
   of the available TPN values or the range of the available TS values:
   the range-type attribute in the otn-label-range-info grouping defines
   the type of range for each entry of the list.

   Each entry of the label-restriction list, as defined in
   [I-D.ietf-teas-yang-te-types], defines a label-start, a label-end, a
   label-step and a range-bitmap.  The label-start and label-end
   definitions for OTN should be augmented using the otn-label-start-end
   grouping.  The label-step definition for OTN should be augmented
   using the otn-label-step grouping.  It is expected that the otn-
   label-step will always be equal to its default value (i.e., 1). 1), which
   is defined in [I-D.ietf-teas-yang-te-types].

   As described in [RFC7139], in some cases, the TPN assignment rules is
   flexible (e.g., ODU4 Link) while in other cases the TPN assignment
   rules are fixed (e.g., ODU1 Link).  In the former case, both TPN and
   TS ranges are reported, while in the latter case, the TPN range is
   not reported to indicate that the TPN shall be set equal to the TS
   number assigned to the ODUk LSP.

   As described in [RFC7139], in some cases, the TPN assignment rules
   depends on the TS Granularity (e.g., ODU2 or ODU3 Links).  Different
   entries in the label-restriction list will report different TPN
   ranges for each TS granularity supported by the link, as indicated by
   the tsg attribute in the otn-label-range-info grouping.

   As described in [RFC7139], in some cases, the TPN ranges are
   different for different types of ODUk LSPs.  For example, on an ODU2
   Link with 1,25G TS granularity, there is TPN range 1-4 for ODU1 and
   another TPN range 1-8 in common for ODU0 and ODUflex.  Different
   entries in the label-restriction list will report different TPN
   ranges for different set of ODUk types, as indicated by the odu-type-
   list in the otn-label-range-info grouping.

5.  YANG Code for Layer1 Types

<CODE BEGINS>file "ietf-layer1-types@2019-12-05.yang"
module ietf-layer1-types {
  namespace "urn:ietf:params:xml:ns:yang:ietf-layer1-types";
  prefix "layer1-types";

  organization
    "IETF CCAMP Working Group";
  contact
    "WG Web: <http://tools.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Italo Busi
       <mailto:Italo.Busi@huawei.com>";

  description
    "This module defines Layer 1 types. The model fully conforms
     to the Network Management Datastore Architecture (NMDA).

     Copyright (c) 2019 IETF Trust and the persons
     identified as authors

   Appendix A provides some examples of how the code.  All rights reserved.

     Redistribution TPN and use TS label ranges
   described in source and binary forms, with or
     without modification, is permitted pursuant to, Table 3 and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c Table 4 of [RFC7139] can be represented in
   YANG using the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).
     This version of groupings defined in this YANG module document.

4.4.  ODUflex

   ODUflex is part a type of RFC XXXX; see ODU which has a flexible bit rate which should
   be configured when setting up an ODUflex LSP.

   [ITU-Tg709], defines six types of ODUflex: ODUflex(CBR),
   ODUflex(GFP), ODUflex(GFP,n,k), ODUflex(IMP), ODUflex(IMP,s) and
   ODUflex(FlexE-aware).

   The main difference between these types of ODUflex is the RFC itself for full legal notices.";

  revision "2019-12-05" {
    description
      "Initial Version";
    reference
      "RFC XXXX: formula
   used to calculate the nominal bit rate of the ODUflex, as described
   in Table 7-2 of [ITU-Tg709].  A YANG Data Model choice has been defined to describe
   these cases:

          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        uint64
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  l1-types:gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client
             |          l1-types:flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    uint64

   The (generic) case has been added to allow defining the ODUflex
   nominal bit rate independently from the type of ODUflex.  This could
   be useful for Layer 1 Types";
    // RFC Ed.: replace XXXX with actual RFC number, update date
    // information forward compatibility in the transit domain/nodes where
   the setup of ODUflex LSPs does not depend from the ODUflex type.

   In order to simplify interoperability it is recommended to use
   (generic) case only when needed and remove this note
  }

  identity tributary-slot-granularity {
    description
      "Tributary slot granularity";
    reference
      "G.709/Y.1331, February 2016: Interfaces for to use the Optical
       Transport Network (OTN)";
  }

  identity tsg-1.25G {
    base tributary-slot-granularity;
    description
      "1.25G tributary slot granularity";
  }

  identity tsg-2.5G {
    base tributary-slot-granularity;
    description
      "2.5G tributary slot granularity";
  }

  identity tsg-5G {
    base tributary-slot-granularity;
    description
      "5G tributary slot granularity";
  }

  identity odu-type {
    description
      "Base identity for protocol framing used by tributary signals.";
  }

  identity ODU0 {
    base odu-type;
    description
      "ODU0 protocol (1.24G), RFC7139/ITU-T G.709, which ODUflex specific type
   case whenever possible.

   The (cbr) case is
      categorized as standards track .";
  }

  identity ODU1 {
    base odu-type;
    description
      "ODU1 protocol (2.49G), RFC7139/ITU-T G.709, used for Constant Bit Rate (CBR) client signals.
   The client-type indicates which is
      categorized as standards track .";
  }

  identity ODU1e {
    base odu-type;
    description
      "ODU1e protocol (10.35G), RFC7963/ITU-T G.sup43, the CBR client signal carried by
   the ODUflex and, implicitly, also the client signal bit rate which is
      categorized
   used to calculate the ODUflex(CBR) nominal bit rate as informational.";
  }

  identity ODU2 {
    base odu-type;
    description
      "ODU2 protocol (10.03G), RFC7139/ITU-T G.709, which is
      categorized as standards track .";
  }

  identity ODU2e {
    base odu-type;
    description
      "ODU2e protocol (10.39G), RFC7139/ITU-T G.709, which described in
   Table 7-2 of [ITU-Tg709].

   The (gfp-n-k) case is
      categorized as standards track .";
  }

  identity ODU3 {
    base odu-type;
    description
      "ODU3 protocol (40.31G), RFC7139/ITU-T G.709, which used for GFP-F mapped client signals based on
   ODUk.ts and n 1.25G tributary slots.  The gfp-k defines the nominal
   bit-rate of the ODUk.ts which, together with the value of gfp-n, is
      categorized
   used to calculated the ODUflex(GFP,n,k) nominal bit rate as standards track .";
  }

  identity ODU3e1 {
    base odu-type;
    description
      "ODU3e1 protocol (41.77G), RFC7963/ITU-T G.sup43, which is
      categorized described
   in Table 7-8 and Table L-7 of [ITU-Tg709] . With few exceptions,
   shown in Table L-7 of [ITU-Tg709], the nominal bit-rate of the
   ODUk.ts could be inferred from the value of n, as informational.";
  }

  identity ODU3e2 {
    base odu-type;
    description
      "ODU3e2 protocol (41.78G), RFC7963/ITU-T G.sup43, which shown in Table 7-8
   of [ITU-Tg709] and therefore the gfp-k is
      categorized as informational.";
  }

  identity ODU4 {
    base odu-type;
    description
      "ODU4 protocol (104.79G), RFC7139/ITU-T G.709, which optional.

   The (flexe-client) case is
      categorized as standards track .";
  }

  identity ODUFlex-cbr {
    base odu-type;
    description
      "ODU Flex CBR protocol used for transporting constant IMP mapped FlexE Client signals,
   The flexe-client represents the type of FlexE Client carried by the
   ODUflex which implicitly defines the value of s used to calculate the
   ODUflex(s) nominal bit rate
       signal";
  }

  identity ODUFlex-gfp {
    base odu-type;
    description
      "ODU Flex GFP protocol for transporting stream as described in Table 7-2 of packets
       using Generic Framing Procedure";
  }

  identity client-signal {
    description
      "Base identity from which specific client signals [ITU-Tg709].
   The '10G' and '40G' enumeration values are used for 10G and 40G FlexE
   Clients to implicitly define the
       tunnel are derived";
  }

  identity ETH-1Gb {
    base client-signal;
    description
      "Client signal type of 1GbE";
  }

  identity ETH-10Gb-LAN {
    base client-signal;
    description
      "Client signal type values of 10GbE LAN";
  }

  identity ETH-10Gb-WAN {
    base client-signal;
    description
      "Client signal type s=2 and s=8.  For the n x
   25G FlexE Clients the value of 10GbE WAN";
  }

  identity ETH-40Gb {
    base client-signal;
    description
      "Client signal type n is used to defines the value of 40GbE";

  }

  identity ETH-100Gb {
    base client-signal;
    description
      "Client signal type s=5
   x n.

   The (flexe-aware) case is used for FlexE-aware client signals.  The
   flexe-aware-n represents the value n (n = n1 + n2 + ... + np) which
   is used to calculate the ODUflex(FlexE-aware) nominal bit rate as
   described in Table 7-2 of 100GbE";
  }

  identity STM-1 {
    base client-signal;
    description
      "Client signal type [ITU-Tg709].

   When (packet) case is used for both the GFP-F mapped client signals
   and the IMP mapped client signals.  The opuflex-payload-rate is
   either the GFP-F encapsulated packet client nominal bit rate or the
   64b/66b encoded packet client nominal bit rate.  The calculation of STM-1";
  }

  identity STM-4 {
    base client-signal;
    description
      "Client signal type
   ODUflex(GFP) nominal bit rate is defined in section 12.2.5 of STM-4";
  }

  identity STM-16 {
    base client-signal;
    description
      "Client signal type
   [ITU-Tg709], and the calculation of STM-16";
  }

  identity STM-64 {
    base client-signal;
    description
      "Client signal type ODUflex(IMP) nominal bit rate is
   defined in section 12.2.6 of STM-64";
  }

  identity STM-256 {
    base client-signal;
    description
      "Client signal type [ITU-Tg709].  The same formula is used
   in both cases.

   Section 5.1 and 5.2 of STM-256";
  }
  identity OC-3 {
    base client-signal;
    description
      "Client signal type [RFC7139] defines two rules to compute the
   number of OC3";
  }

  identity OC-12 {
    base client-signal;
    description
      "Client signal type tributary slots to be allocated to ODUflex(CBR) and
   ODUflex(GFP) LSPs when carried over an HO-ODUk link.  According to
   section 19.6 of OC12";
  }
  identity OC-48 {
    base client-signal;
    description
      "Client signal type [ITU-Tg709], the rules in section 5.2 applies only to
   ODUflex(GFP,n,k) while the rules defined in section 5.1 applies to
   any other ODUflex type, including but not being limited to
   ODUflex(CBR).  Section 20.5 of OC48";
  }

  identity OC-192 {
    base client-signal;
    description
      "Client signal [ITU-Tg709] defines the rules to
   compute the number of tributary slots to be allocated to ODUflex LSPs
   when carried over an ODUCn link.

   Following the [ITU-Tg709] definitions, the rules defined for
   ODUflex(GFP,n,k) are used only when the (gfp-n-k) case is used.  In
   all the other cases, including the (generic) case, the rules defined
   any other ODUflex type are used.

   The number of OC192";
  }

  identity OC-768 {
    base client-signal;
    description
      "Client signal type of OC768";
  }

  identity FC-100 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-100";
  }

  identity FC-200 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-200";
  }

  identity FC-400 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-400";
  }

  identity FC-800 {
    base client-signal;
    description
      "Client signal type available ODUs, defined for each ODUk type, including
   ODUflex, together with the number of Fibre Channel FC-800";
  }

  identity FC-1200 {
    base client-signal;
    description
      "Client signal type available time-slots, reported
   as part of Fibre Channel FC-1200";
  }
  identity FC-1600 {
    base client-signal;
    description
      "Client signal the OTN label range, provides sufficient information to
   infer the OTN link bandwidth availability for ODUflex LSPs.  This
   information is independent from the ODUflex type.

4.4.1.  Resizable ODUflex

   Resizable ODUflex is a special type of Fibre Channel FC-1600";
  }

  identity FC-3200 {
    base client-signal;
    description
      "Client signal type ODUflex that supports the
   procedures defined in [ITU-Tg7044] for hitless resizing of Fibre Channel FC-3200";
  }

  identity FICON-4G {
    base client-signal;
    description
      "Client signal the
   ODUflex nominal bit rate.

   Two odu-type identities have been defined for ODUflex:

   o  The ODUflex identity, which is used with any type of Fibre Connection 4G";
  }

  identity FICON-8G {
    base client-signal;
    description
      "Client signal type non-resizable
      ODUflex, as defined in Table 7-2 of Fibre Connection 8G";
  }

  identity otn-label-range-type {
    description
      "Base identity from [ITU-Tg709].

   o  The ODUflex-resizable identity, which specific used only with resizable
      ODUflex(GFP,n,k).

   These two identities are used to identify whether an ODUflex(GFP,n,k)
   LSP shall or not support the [ITU-Tg7044] hitless resizing procedures
   as well as whether an OTN label
           range types derived";
  }

  identity label-range-trib-slot {
    base otn-label-range-type;
    description
      "Defines a range link supports only the setup of OTN tributary slots";
  }

  identity label-range-trib-port {
    base otn-label-range-type;
    description
      "Defines non-
   resizable ODUflex LSPs or also the setup of resizable
   ODUflex(GFP,n,k) LSP but with different capabilities (e.g., a range lower
   number of OTN tributary ports";
  }

  grouping otn-link-bandwidth {
    description "link bandwidth attributes LSPs).

5.  YANG Code for OTN";
    list odulist {
      key "odu-type";
      description
        "OTN bandwidth definition";

      leaf odu-type {
        type identityref {
          base layer1-types:odu-type;
        }
        description "ODU type";
      }
      leaf number Layer1 Types

<CODE BEGINS>file "ietf-layer1-types@2020-03-09.yang"
module ietf-layer1-types {
        type uint16;
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-layer1-types";
  prefix "l1-types";

  organization
    "IETF CCAMP Working Group";
  contact
    "WG Web: <http://tools.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Italo Busi
             <mailto:Italo.Busi@huawei.com>";

  description "Number
    "This module defines Layer 1 types. The model fully conforms
     to the Network Management Datastore Architecture (NMDA).

     Copyright (c) 2020 IETF Trust and the persons
     identified as authors of ODUs";
      }
    }
  }

  grouping otn-path-bandwidth {
    description
      "path bandwidth attributes the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).
     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for OTN";
    leaf odu-type {
      type identityref {
        base layer1-types:odu-type;
      }
      description "ODU type";
    }
  }

  grouping otn-label-range-info full legal notices.";

  revision "2020-03-09" {
    description "label range information
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for OTN";
    leaf range-type Layer 1 Types";
    // RFC Editor: replace XXXX with actual RFC number, update date
    // information and remove this note
  }

  typedef otn-tpn
    {
      type identityref uint16 {
        base layer1-types:otn-label-range-type;
        range "1..4095";
      }
      description "type
        "Tributary Port Number for range"; OTN. ";
      reference
        "RFC7139: GMPLS Signaling Extensions for Control of Evolving
             G.709 Optical Transport Networks.";
    }
    leaf tsg

  typedef otn-ts
    {
      type identityref uint16 {
        base layer1-types:tributary-slot-granularity;
        range "1..4095";
      }
      description
        "Tributary slot granularity."; Slot for OTN. ";
      reference
        "G.709/Y.1331, February 2016: Interfaces
        "RFC7139: GMPLS Signaling Extensions for the Control of Evolving
             G.709 Optical Transport Network (OTN)"; Networks.";
    }
    leaf-list odu-type-list

  typedef otn-label-range-type {
    type identityref enumeration {
      enum trib-slot {
        base odu-type;
      }
        description
        "List
          "Defines a range of ODU types to which the label OTN tributary slots. ";
      }
      enum trib-port {
        description
          "Defines a range applies.

        Empty odu-type-list means all of OTN tributary ports. ";
      }
    }
    description
      "Defines the ODU types are applicable
        per type of OTN label range. range: TS or TPN. ";
  }
    leaf priority

  typedef gfp-k {
    type uint8; enumeration {
      enum 2 {
        description "priority.";
    }
          "The ODU2.ts rate (1,249,177.230 kbit/s) is used
           to compute the rate of an ODUflex(GFP,n,2). ";
      }

  grouping otn-label-start-end
      enum 3 {
        description
          "The OTN label-start or label-end ODU3.ts rate (1,254,470.354 kbit/s) is used
           to specify compute the rate of an OTN label
      range.";
    choice otn-label-type ODUflex(GFP,n,3). ";
      }
      enum 4 {
        description
        "OTN label range type, either TPN range or TS range";
      case tributary-port {
        leaf tpn {
          type uint16 {
            range "1..4095";
          "The ODU4.ts rate (1,301,467.133 kbit/s) is used
           to compute the rate of an ODUflex(GFP,n,4). ";
      }
    }
    description
            "Tributary Port Number applicable in case
      "The ODUk.ts used to compute the rate of mux services."; an ODUflex(GFP,n,k)";
    reference
            "RFC7139: GMPLS Signaling Extensions for Control
      "Table 7-8 and L-7 of Evolving
             G.709 Optical Transport Networks.";
        } G.709";
  }
      case tributary-slot

  typedef flexe-client-rate {
        leaf ts
    type union {
      type uint16 uint16;
      type enumeration {
        enum "10G" {
            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.";
            "Represents a 10G FlexE Client signal (s=2)";
        }
        enum "40G" {
          description
            "Represents a 40G FlexE Client signal (s=8)";
        }
      }
    }

  grouping otn-label-hop {
    description "label information for OTN,
      "The FlexE Client signal rate (s x 5,156,250.000 kbit/s)
       used to compute the rate of an ODUflex(IMP, s).
       Valid values for label-hop";
    leaf tpn {
      type uint16 {
        range "1..4095";

      }
      description
        "Tributary Port Number applicable s are s=2 (10G), s=4 (40G) and
       s=5 x n (n x 25G).
       In the first two cases an enumeration value
       (either 10G or 40G) is used, while in the latter case
       the value of mux services."; n is used";
    reference
        "RFC7139: GMPLS Signaling Extensions for Control
      "Table 7-2 of Evolving
         G.709 Optical Transport Networks."; G.709";
    }
    leaf tsg {
      type identityref

  identity tributary-slot-granularity {
        base layer1-types:tributary-slot-granularity;
      }
    description
      "Tributary slot granularity."; granularity";
    reference
      "G.709/Y.1331, February 2016: Interfaces for the Optical
       Transport Network (OTN)";
  }
    leaf ts-list {
      type string

  identity tsg-1.25G {
          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})?)*)";
        }
    base tributary-slot-granularity;
    description
          "A list of available
      "1.25G tributary slots ranging
           between 1 and 4095.
           For example 1-20,25,50-1000";
        reference "RFC 7139: GMPLS Signaling Extensions for Control
                   of Evolving G.709 Optical Transport Networks";
    } slot granularity";
  }

  grouping otn-label-step {
    description "Label step for OTN";
    choice otn-label-type

  identity tsg-2.5G {
    base tributary-slot-granularity;
    description
        "OTN label range type, either TPN range or TS range";
      case tributary-port {
        leaf tpn {
          type uint16 {
            range "1..4095";
      "2.5G tributary slot granularity";
  }
          default 1;

  identity tsg-5G {
    base tributary-slot-granularity;
    description
            "Label step which represents possible increments for
             Tributary Port Number.";
          reference
            "RFC7139: GMPLS Signaling Extensions for Control of Evolving
             G.709 Optical Transport Networks.";
        }
      "5G tributary slot granularity";
  }
      case tributary-slot {
        leaf ts {
          type uint16

  identity odu-type {
            range "1..4095";
          }
          default 1;
    description
            "Label step which represents possible increments for
             Tributary Slot Number.";
          reference
            "RFC7139: GMPLS Signaling Extensions
      "Base identity for Control of Evolving
             G.709 Optical Transport Networks.";
        }
      }
    } protocol framing used by tributary signals.";
  }

  identity coding-func ODU0 {
    base odu-type;
    description
      "base identity from which coding func is derived.";
      "ODU0 protocol (1.24Gb/s). ";
    reference "RFC7139/ITU-T G.709";
  }

  identity ETH-1000X-PCS-36 ODU1 {
    base "coding-func"; odu-type;
    description
            "PCS clause 36 coding function that corresponds to
             1000BASE-X";
      "ODU1 protocol (2.49Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity ETH-10GW-PCS-49-WIS-50 ODU1e {
    base "coding-func"; odu-type;
    description
            "PCS clause 49 and WIS clause 50 coding func that
             corresponds to 10GBASE-W (WAN PHY)";
      "ODU1e protocol (10.35Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7963/ITU-T G.sup43";
  }

  identity ETH-10GR-PCS-49 ODU2 {
    base "coding-func"; odu-type;
    description
            "PCS clause 49 coding function that corresponds to
             10GBASE-R (LAN PHY)";
      "ODU2 protocol (10.03Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity ETH-40GR-PCS-82 ODU2e {
    base "coding-func"; odu-type;
    description
            "PCS clause 82 coding function that corresponds to
             40GBASE-R";
      "ODU2e protocol (10.39Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity ETH-100GR-PCS-82 ODU3 {
    base "coding-func"; odu-type;
    description
            "PCS clause 82 coding function that corresponds to
             100GBASE-R";
      "ODU3 protocol (40.31Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity optical-interface-func ODU3e1 {
    base odu-type;
    description
        "base identity from which optical-interface-function is
         derived.";
      "ODU3e1 protocol (41.77Gb/s).";
    reference "RFC7963/ITU-T G.sup43";
  }

  identity SX-PMD-clause-38 ODU3e2 {
    base "optical-interface-func"; odu-type;
    description
            "SX-PMD-clause-38 Optical Interface function for
            1000BASE-X PCS-36";
      "ODU3e2 protocol (41.78Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7963/ITU-T G.sup43";
  }

  identity LX-PMD-clause-38 ODU4 {
    base "optical-interface-func"; odu-type;
    description
            "LX-PMD-clause-38 Optical Interface function for
            1000BASE-X PCS-36";
      "ODU4 protocol (104.79Gb/s).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity LX10-PMD-clause-59 ODUflex {
    base "optical-interface-func"; odu-type;
    description
            "LX10-PMD-clause-59 Optical Interface function
      "ODUflex protocol (flexibile bit rate, not resizable).
       It could be used for
            1000BASE-X PCS-36"; any type of ODUflex, including
       ODUflex(CBR), ODUflex(GFP), ODUflex(GFP,n,k), ODUflex(IMP,s),
       ODUflex(IMP) and ODUflex(FlexE-aware).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity BX10-PMD-clause-59 ODUflex-resizable {
    base "optical-interface-func"; odu-type;
    description
            "BX10-PMD-clause-59 Optical Interface function
      "ODUflex protocol (flexibile bit rate, resizable).
       It could be used only for
            1000BASE-X PCS-36"; ODUflex(GFP,n,k).";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709 and ITU-T G.7044";
  }

  identity LW-PMD-clause-52 client-signal {
         base "optical-interface-func";
    description
            "LW-PMD-clause-52 Optical Interface function
      "Base identity from which specific client signals for
            10GBASE-W PCS-49-WIS-50";
         reference "MEF63: Subscriber Layer 1 Service Attributes"; the
       tunnel are derived";
  }

  identity EW-PMD-clause-52 ETH-1Gb {
    base "optical-interface-func"; client-signal;
    description
            "EW-PMD-clause-52 Optical Interface function for
            10GBASE-W PCS-49-WIS-50";
      "Client signal type of 1GbE";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity LR-PMD-clause-52 ETH-10Gb-LAN {
    base "optical-interface-func"; client-signal;
    description
            "LR-PMD-clause-52 Optical Interface function for
            10GBASE-R PCS-49";
      "Client signal type of ETH-10Gb-LAN (10.3 Gb/s)";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709/IEEE 802.3 Clause 49";
  }

  identity ER-PMD-clause-52 ETH-10Gb-WAN {
    base "optical-interface-func"; client-signal;
    description
            "ER-PMD-clause-52 Optical Interface function for
            10GBASE-R PCS-49";
      "Client signal type of ETH-10Gb-WAN (9.95 Gb/s)";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709/IEEE 802.3 Clause 50";
  }

  identity LR4-PMD-clause-87 ETH-40Gb {
    base "optical-interface-func"; client-signal;
    description
            "LR4-PMD-clause-87 Optical Interface function for
            40GBASE-R PCS-82";
      "Client signal type of 40GbE";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";

  }

  identity ER4-PMD-clause-87 ETH-100Gb {
    base "optical-interface-func"; client-signal;
    description
            "ER4-PMD-clause-87 Optical Interface function for
            40GBASE-R PCS-82";
      "Client signal type of 100GbE";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity FR-PMD-clause-89 STM-1 {
    base "optical-interface-func"; client-signal;
    description
            "FR-PMD-clause-89 Optical Interface function for
            40GBASE-R PCS-82";
      "Client signal type of STM-1";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity LR4-PMD-clause-88 STM-4 {
    base "optical-interface-func"; client-signal;
    description
            "LR4-PMD-clause-88 Optical Interface function for
            100GBASE-R PCS-82";
      "Client signal type of STM-4";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity ER4-PMD-clause-88 STM-16 {
    base "optical-interface-func"; client-signal;
    description
            "ER4-PMD-clause-88 Optical Interface function for
            100GBASE-R PCS-82";
      "Client signal type of STM-16";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }

  identity service-performance-metric STM-64 {
    base client-signal;
    description
        "list
      "Client signal type of service-specific performance metric"; STM-64";
    reference "RFC7139/ITU-T G.709";
  }

  identity One-way-Delay STM-256 {
    base "service-performance-metric"; client-signal;
    description "one-way-delay";
      "Client signal type of STM-256";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "RFC7139/ITU-T G.709";
  }
  identity One-way-Errored-Second OC-3 {
    base "service-performance-metric"; client-signal;
    description "one-way-errored-second";
      "Client signal type of OC3";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "Telcordia GR-253-CORE";

  }

  identity One-way-Severely-Errored-Second OC-12 {
    base "service-performance-metric"; client-signal;
    description "one-way-severely-errored-second";
      "Client signal type of OC12";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "Telcordia GR-253-CORE";
  }

  identity One-way-Unavailable-Second OC-48 {
    base "service-performance-metric"; client-signal;
    description "one-way-unavailable-second";
      "Client signal type of OC48";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "Telcordia GR-253-CORE";
  }

  identity One-way-Availability OC-192 {
    base "service-performance-metric"; client-signal;
    description "one-way-availability";
      "Client signal type of OC192";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "Telcordia GR-253-CORE";
  }

  identity network-performance-metric OC-768 {
    base client-signal;
    description "list
      "Client signal type of network-specific performance metric"; OC768";
    reference "MEF63: Subscriber Layer 1 Service Attributes"; "Telcordia GR-253-CORE";
  }

  identity FC-100 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-100";
    reference "RFC4328/RFC7139";
  }
<CODE ENDS>

6.  Security Considerations

   The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF [RFC6241] or RESTCONF [RFC8040].  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   [RFC8446].

   The NETCONF access control model [RFC8341] provides the means to
   restrict access for particular NETCONF or RESTCONF users to a
   preconfigured subset

  identity FC-200 {
    base client-signal;
    description
      "Client signal type of all available NETCONF or RESTCONF protocol
   operations and content.

   The YANG module in this document defines layer 1 Fibre Channel FC-200";
    reference "RFC4328/RFC7139";
  }

  identity FC-400 {
    base client-signal;
    description
      "Client signal type definitions
   (i.e., typedef, of Fibre Channel FC-400";

    reference "RFC4328/RFC7139";
  }

  identity and grouping statements) in YANG data
   modeling language FC-800 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-800";
    reference "RFC4328/RFC7139";
  }

  identity FC-1200 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-1200";
    reference "RFC4328/RFC7139";
  }

  identity FC-1600 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-1600";
    reference "RFC4328/RFC7139";
  }

  identity FC-3200 {
    base client-signal;
    description
      "Client signal type of Fibre Channel FC-3200";
    reference "RFC4328/RFC7139";
  }

  identity FICON-4G {
    base client-signal;
    description
      "Client signal type of Fibre Connection 4G";
    reference "RFC4328/RFC7139";
  }

  identity FICON-8G {
    base client-signal;
    description
      "Client signal type of Fibre Connection 8G";
    reference "RFC4328/RFC7139";
  }

  identity coding-func {
    description
      "Base identity from which coding function is derived.";

    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity ETH-1000X {
    base "coding-func";
    description
      "PCS clause 36 coding function that corresponds to be imported and used by other layer
       1000BASE-X";
    reference "MEF63: Subscriber Layer 1
   technology-specific modules.  When imported Service Attributes";
  }

  identity ETH-10GW {
    base "coding-func";
    description
      "PCS clause 49 and used, the resultant
   schema will have data nodes WIS clause 50 coding func that can be writable, or readable.  The
   access
       corresponds to such data nodes may be onsidered sensitive or vulnerable in
   some network environments.  Write operations (e.g., edit-config) 10GBASE-W (WAN PHY)";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity ETH-10GR {
    base "coding-func";
    description
      "PCS clause 49 coding function that corresponds to
   these data nodes without proper protection can have a negative effect
   on network operations.

   The security considerations spelled out in the YANG 1.1 specification
   [RFC7950] apply for this document as well.

7.  IANA Considerations

   It is proposed
       10GBASE-R (LAN PHY)";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity ETH-40GR {
    base "coding-func";
    description
      "PCS clause 82 coding function that IANA should assign new URIs corresponds to
       40GBASE-R";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity ETH-100GR {
    base "coding-func";
    description
      "PCS clause 82 coding function that corresponds to
       100GBASE-R";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity optical-interface-func {
    description
      "base identity from the "IETF XML
   Registry" [RFC3688] as follows:

         URI: urn:ietf:params:xml:ns:yang:ietf-layer1-types
         Registrant Contact: The IESG
         XML: N/A; the requested URI which optical-interface-function is an XML namespace.

   This document registers following YANG modules in the YANG Module
   Names registry [RFC7950].

      name:         ietf-layer1-types
      namespace:    urn:ietf:params:xml:ns:yang:ietf-otn-types
      prefix:       layer1-types
      reference:    RFC XXXX

8.  Acknowledgements

   The authors and the working group give their sincere thanks
       derived.";
    reference "MEF63: Subscriber Layer 1 Service Attributes";

  }

  identity SX-PMD-1000 {
    base "optical-interface-func";
    description
      "SX-PMD-clause-38 Optical Interface function for
   Robert Wilton
      1000BASE-X PCS-36";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity LX-PMD-1000 {
    base "optical-interface-func";
    description
      "LX-PMD-clause-38 Optical Interface function for the YANG doctor review, and Tom Petch
       1000BASE-X PCS-36";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity LX10-PMD-1000 {
    base "optical-interface-func";
    description
      "LX10-PMD-clause-59 Optical Interface function for his
   comments during the model
       1000BASE-X PCS-36";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity BX10-PMD-1000 {
    base "optical-interface-func";
    description
      "BX10-PMD-clause-59 Optical Interface function for
       1000BASE-X PCS-36";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity LW-PMD-10G {
    base "optical-interface-func";
    description
      "LW-PMD-clause-52 Optical Interface function for
       10GBASE-W PCS-49-WIS-50";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity EW-PMD-10G {
    base "optical-interface-func";
    description
      "EW-PMD-clause-52 Optical Interface function for
       10GBASE-W PCS-49-WIS-50";
    reference "MEF63: Subscriber Layer 1 Service Attributes";

  }

  identity LR-PMD-10G {
    base "optical-interface-func";
    description
      "LR-PMD-clause-52 Optical Interface function for
       10GBASE-R PCS-49";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity ER-PMD-10G {
    base "optical-interface-func";
    description
      "ER-PMD-clause-52 Optical Interface function for
       10GBASE-R PCS-49";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity LR4-PMD-40G {
    base "optical-interface-func";
    description
      "LR4-PMD-clause-87 Optical Interface function for
       40GBASE-R PCS-82";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity ER4-PMD-40G {
    base "optical-interface-func";
    description
      "ER4-PMD-clause-87 Optical Interface function for
       40GBASE-R PCS-82";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity FR-PMD-40G {
    base "optical-interface-func";
    description
      "FR-PMD-clause-89 Optical Interface function for
       40GBASE-R PCS-82";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity LR4-PMD-100G {
    base "optical-interface-func";
    description
      "LR4-PMD-clause-88 Optical Interface function for
       100GBASE-R PCS-82";
    reference "MEF63: Subscriber Layer 1 Service Attributes";

  }

  identity ER4-PMD-100G {
    base "optical-interface-func";
    description
      "ER4-PMD-clause-88 Optical Interface function for
       100GBASE-R PCS-82";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity service-performance-metric {
    description
      "Base identity of service-specific performance metric";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity one-way-delay {
    base "service-performance-metric";
    description "one way delay.";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity one-way-errored-second {
    base "service-performance-metric";
    description "one way errored second";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity one-way-severely-errored-second {
    base "service-performance-metric";
    description "one way severely errored second";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity one-way-unavailable-second {
    base "service-performance-metric";
    description "one way unavailable second";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  identity one-way-availability {
    base "service-performance-metric";
    description "one way availability";
    reference "MEF63: Subscriber Layer 1 Service Attributes";
  }

  grouping otn-link-bandwidth {
    description "link bandwidth attributes for OTN";
    list odulist {
      key "odu-type";
      description
        "OTN bandwidth definition";
      leaf odu-type {
        type identityref {
          base l1-types:odu-type;
        }
        description "ODU type";
      }
      leaf number {
        type uint16;
        description "Number of ODUs";
      }
    }
  }

  grouping otn-path-bandwidth {
    description
      "path bandwidth attributes for OTN";
    leaf odu-type {
      type identityref {
        base l1-types:odu-type;
      }
      description "ODU type";
    }
    choice oduflex-type {
      when "odu-type = 'ODUflex' or 'ODUflex-resizable'" {
        description
          "applicable when odu-type is ODUflex or ODUflex-resizable";
      }
        description
          "Types of ODUflex used to compute the ODUflex
           nominal bit rate.";
        reference
          "Table 7-2 of G.709";
        case generic {
          leaf nominal-bit-rate {
            type uint64;
            units "bps";
            mandatory true;
            description
              "Nominal ODUflex bit rate.";
          }
        }
        case cbr {
          leaf client-type {
            type identityref {
              base l1-types:client-signal;
            }
            mandatory true;
            description
              "The CBR client signal for an ODUflex(CBR).";
          }
        }
        case gfp-n-k {
          leaf gfp-n {
            type uint8 {
              range "1..80";
            }
            mandatory true;
            description
              "The value of n for an ODUflex(GFP,n,k).";
            reference
              "Tables 7-8 and L-7 of G.709";
          }
          leaf gfp-k {
            type l1-types:gfp-k;
            description
              "The value of k for an ODUflex(GFP,n,k).
               If omitted, it is calculated from the value of gfp-n
               as described in Table 7-8 of G.709";
            reference
              "Tables 7-8 and L-7 of G.709";
          }
        }
        case flexe-client {
          leaf flexe-client {
            type l1-types:flexe-client-rate;
            mandatory true;
            description
              "The rate of the FlexE-client for an ODUflex(IMP,s).";
          }
        }
        case flexe-aware {
          leaf flexe-aware-n {
            type uint16;
            mandatory true;
            description
              "The rate of FlexE-aware client signal
               for ODUflex(FlexE-aware)";
          }
        }
        case packet {
          leaf opuflex-payload-rate {
            type uint64;
            units "Kbps";
            mandatory true;
            description
              "Either the GFP-F encapsulated packet client nominal
               bit rate for an ODUflex(GFP) or the 64b/66b encoded
               packet client nominal bit rate for an ODUflex(IMP).";
          }
        }
      }
  }

  grouping otn-label-range-info {
    description
      "label range information for OTN, is dependent on the
      range-type, must be used together with the following
      groupings: otn-label-start-end and otn-label-step. ";
    leaf range-type {
      type l1-types:otn-label-range-type;
      description "The type of range (e.g., TPN or TS)
         to which the label range applies";
    }
    leaf tsg {
      type identityref {
        base l1-types:tributary-slot-granularity;
      }
      description
        "Tributary slot granularity (TSG) to which the label range
        applies.
        This leaf shall be present when the range-type is TS;
        This leaf can be omitted when mapping an ODUk over an OTUk
        Link. In this case the range-type is tpn, with only one entry
        (ODUk), and the tpn range has only one value (1). ";
      reference
        "G.709/Y.1331, February 2016: Interfaces for the
         Optical Transport Network (OTN)";
    }
    leaf-list odu-type-list {
      type identityref {
        base odu-type;
      }
      description
        "List of ODU types to which the label range applies.
         An Empty odu-type-list means that the label range
         applies to all the supported ODU types.";
    }
    leaf priority {
      type uint8;
      description
        "Priority in Interface Switching Capability
        Descriptor (ISCD).";
      reference "RFC4203.";
    }
  }

  grouping otn-label-start-end {
    description
      "The OTN label-start or label-end used to specify an OTN label
      range. this grouping is dependent on the range-type,
      must be used together with the following groupings:
      otn-label-range-info and otn-label-step. ";
    choice range-type {
      description
        "OTN label range type, either TPN range or TS range";
      case trib-port {
        leaf otn-tpn {
          when "../../../range-type = 'trib-port'" {
            description
              "valid only when range-type represented by trib-port";
          }
          type l1-types:otn-tpn;
          description
            "Tributary Port Number.";
          reference
            "RFC7139: GMPLS Signaling Extensions for Control of Evolving
             G.709 Optical Transport Networks.";
        }
      }
      case trib-slot {
        leaf otn-ts {
          when "../../../range-type = 'trib-slot'" {
            description
              "valid only when range-type represented by trib-slot";
          }
          type l1-types:otn-ts;
          description
            "Tributary Slot Number.";
          reference
            "RFC7139: GMPLS Signaling Extensions for Control of Evolving
             G.709 Optical Transport Networks.";
        }
      }
    }
  }

  grouping otn-label-hop {
    description "OTN Label. ";
    reference "RFC7139, section 6. ";
    leaf otn-tpn {
      type l1-types:otn-tpn;
      description
        "Tributary Port Number.";
      reference
        "RFC7139: GMPLS Signaling Extensions for Control of Evolving
         G.709 Optical Transport Networks.";
    }
    leaf tsg {
      type identityref {
        base l1-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 4095. If multiple values or
           ranges are given, they all MUST be disjoint
           and MUST be in ascending order.
           For example 1-20,25,50-1000. ";
        reference
          "RFC 7139: GMPLS Signaling Extensions for Control
           of Evolving G.709 Optical Transport Networks";
    }
  }

  grouping otn-label-step {
    description
      "Label step for OTN, is dependent on the range-type,
      must be used together with the following groupings:
      otn-label-range-info and otn-label-start-end. ";
    choice range-type {
      description
        "OTN label range type, either TPN range or TS range";
      case trib-port {
        leaf otn-tpn {
          when "../../../range-type = 'trib-port'" {
            description
              "valid only when range-type represented by trib-port";

          }
          type l1-types:otn-tpn;
          description
            "Label step which represents possible increments for
             Tributary Port Number.";
          reference
            "RFC7139: GMPLS Signaling Extensions for Control of
             Evolving G.709 Optical Transport Networks.";
        }
      }
      case trib-slot {
        leaf otn-ts {
          when "../../../range-type = 'trib-slot'" {
            description
              "valid only when range-type represented by trib-slot";
          }
          type l1-types:otn-ts;
          description
            "Label step which represents possible increments for
             Tributary Slot Number.";
          reference
            "RFC7139: GMPLS Signaling Extensions for Control of Evolving
             G.709 Optical Transport Networks.";
        }
      }
    }
  }

}

<CODE ENDS>

6.  Security Considerations

   The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF [RFC6241] or RESTCONF [RFC8040].  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   [RFC8446].

   The NETCONF access control model [RFC8341] provides the means to
   restrict access for particular NETCONF or RESTCONF users to a
   preconfigured subset of all available NETCONF or RESTCONF protocol
   operations and content.

   The YANG module in this document defines layer 1 type definitions
   (i.e., typedef, identity and grouping statements) in YANG data
   modeling language to be imported and used by other layer 1
   technology-specific modules.  When imported and used, the resultant
   schema will have data nodes that can be writable, or readable.  The
   access to such data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   to these data nodes without proper protection can have a negative
   effect on network operations.

   The security considerations spelled out in the YANG 1.1 specification
   [RFC7950] apply for this document as well.

7.  IANA Considerations

   It is proposed that IANA should assign new URIs from the "IETF XML
   Registry" [RFC3688] as follows:

         URI: urn:ietf:params:xml:ns:yang:ietf-layer1-types
         Registrant Contact: The IESG
         XML: N/A; the requested URI is an XML namespace.

   This document registers following YANG modules in the YANG Module
   Names registry [RFC7950].

      name:         ietf-layer1-types
      namespace:    urn:ietf:params:xml:ns:yang:ietf-otn-types
      prefix:       l1-types
      reference:    RFC XXXX

8.  Acknowledgements

   The authors and the working group give their sincere thanks for
   Robert Wilton for the YANG doctor review, and Tom Petch for his
   comments during the model and document development.

9.  Contributors

   Dieter Beller
   Nokia
   Email: dieter.beller@nokia.com

   Sergio Belotti
   Nokia
   Email: sergio.belotti@nokia.com

   Yanlei Zheng
   China Unicom
   Email: zhengyanlei@chinaunicom.cn

   Aihua Guo
   Futurewei Technologies
   Email: aihuaguo@futurewei.com

   Young Lee
   Samsung
   Email: younglee.tx@gmail.com

   Lei Wang
   China Mobile
   Email: wangleiyj@chinamobile.com

   Oscar Gonzalez de Dios
   Telefonica
   Email: oscar.gonzalezdedios@telefonica.com

   Xufeng Liu
   Volta Networks
   Email: xufeng.liu.ietf@gmail.com

   Yunbin Xu
   CAICT
   Email: xuyunbin@caict.ac.cn

   Anurag Sharma
   Google
   Email: ansha@google.com

   Rajan Rao
   Infinera
   Email: rrao@infinera.com

   Victor Lopez
   Telefonica
   Email: victor.lopezalvarez@telefonica.com

   Yunbo Li
   China Mobile
   Email: liyunbo@chinamobile.com

10.  References

10.1.  Normative References

   [I-D.ietf-teas-yang-te-types]
              Saad, T., Gandhi, R., Liu, X., Beeram, V., and I. Bryskin,
              "Traffic Engineering Common YANG Types", draft-ietf-teas-
              yang-te-types-13 (work in progress), November 2019.

   [ITU-Tg7044]
              International Telecommunication Union, "Hitless adjustment
              of ODUflex(GFP)", ITU-T G.7044, October 2011.

   [ITU-Tg709]
              International Telecommunication Union, "Interfaces for the
              optical transport network", ITU-T G.709, March 2020.

   [ITU-Tgsup43]
              International Telecommunication Union, "Transport of IEEE
              10GBASE-R in optical transport networks (OTN)",
              ITU-T G.sup43, February 2011.

   [MEF63]    Metro Ethernet Forum, "Subscriber Layer1 Service
              Attributes Technical Specification", MEF 63, August 2018.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [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>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/info/rfc6242>.

   [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>.

   [RFC7963]  Ali, Z., Bonfanti, A., Hartley, M., and document development.

9.  Contributors

   Dieter Beller
   Nokia
   Email: dieter.beller@nokia.com

   Sergio Belotti
   Nokia
   Email: sergio.belotti@nokia.com

   Yanlei Zheng
   China Unicom
   Email: zhengyanlei@chinaunicom.cn
   Aihua Guo
   Futurewei Technologies
   Email: aihuaguo@futurewei.com

   Young Lee
   Sung Kyun Kwan University
   Email: younglee.tx@gmail.com

   Lei Wang
   China Mobile
   Email: wangleiyj@chinamobile.com

   Oscar Gonzalez de Dios
   Telefonica
   Email: oscar.gonzalezdedios@telefonica.com

   Xufeng Liu
   Volta F. Zhang, "RSVP-TE
              Extension for Additional Signal Types in G.709 Optical
              Transport Networks
   Email: xufeng.liu.ietf@gmail.com

   Yunbin Xu
   CAICT
   Email: xuyunbin@caict.ac.cn

   Anurag Sharma
   Google
   Email: ansha@google.com

   Rajan Rao
   Infinera
   Email: rrao@infinera.com

   Victor Lopez
   Telefonica
   Email: victor.lopezalvarez@telefonica.com

   Yunbo Li
   China Mobile
   Email: liyunbo@chinamobile.com

10.  References

10.1.  Normative (OTNs)", RFC 7963,
              DOI 10.17487/RFC7963, August 2016,
              <https://www.rfc-editor.org/info/rfc7963>.

   [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>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

   [Telcordia]
              Telcordia, "Synchronous Optical Network Transport Systems:
              Common Generic Criteria, Issue 5", Telcordia GR-253-CORE,
              October 2009.

10.2.  Informative References

   [I-D.ietf-teas-yang-te-types]
              Saad, T., Gandhi, R.,

   [I-D.ietf-ccamp-client-signal-yang]
              Zheng, H., Guo, A., Busi, I., Snitser, A., Lazzeri, F.,
              Xu, Y., Zhao, Y., Liu, X., and G. Fioccola, "A YANG Data
              Model for Transport Network Client Signals", draft-ietf-
              ccamp-client-signal-yang-01 (work in progress), November
              2019.

   [I-D.ietf-ccamp-l1csm-yang]
              Lee, Y., Lee, K., Zheng, H., Dhody, D., Dios, O., and D.
              Ceccarelli, "A YANG Data Model for L1 Connectivity Service
              Model (L1CSM)", draft-ietf-ccamp-l1csm-yang-10 (work in
              progress), September 2019.

   [I-D.ietf-ccamp-otn-topo-yang]
              Zheng, H., Busi, I., Liu, X., Beeram, Belotti, S., and O. Dios, "A
              YANG Data Model for Optical Transport Network Topology",
              draft-ietf-ccamp-otn-topo-yang-09 (work in progress),
              November 2019.

   [I-D.ietf-ccamp-otn-tunnel-model]
              Zheng, H., Busi, I., Belotti, S., Lopezalvarez, V., and I. Bryskin,
              "Traffic Engineering Common YANG Types", draft-ietf-teas-
              yang-te-types-13 (work in progress), November 2019.

   [ITU-Tg709]
              International Telecommunication Union, "Interfaces Y.
              Xu, "OTN Tunnel YANG Model", draft-ietf-ccamp-otn-tunnel-
              model-09 (work in progress), November 2019.

   [I-D.ietf-ccamp-transport-nbi-app-statement]
              Busi, I., King, D., Zheng, H., and Y. Xu, "Transport
              Northbound Interface Applicability Statement", draft-ietf-
              ccamp-transport-nbi-app-statement-10 (work in progress),
              November 2019.

   [I-D.ietf-netmod-artwork-folding]
              Watsen, K., Auerswald, E., Farrel, A., and Q. WU,
              "Handling Long Lines in Inclusions in Internet-Drafts and
              RFCs", draft-ietf-netmod-artwork-folding-12 (work in
              progress), January 2020.

   [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>.

Appendix A.  Examples of OTN Label Ranges

   This appendix provides some examples of how the TPN and TS label
   ranges described in Table 3 and Table 4 of [RFC7139] can be
   represented in YANG using the groupings defined in this document.

   It also considers the OTUk links in addition to HO-ODUk links.

   The JSON code examples provided in this appendix provides some
   embedded comments following the conventions in section 3.2 of [I-
   D.ietf-ccamp-transport-nbi-app-statement] and have been folded using
   the tool in [I-D.ietf-netmod-artwork-folding].

   ========== NOTE: '\\' line wrapping per BCP XXX (RFC XXXX) ==========

   {
     "examples of label-restrictions for different OTN Links": [
       {
         "// ": "HO-ODU1 or OTU1 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "// ___NOT-PRESENT___ tsg": "",
               "odu-type-list": "[ ODU1 ]",
               "// ___DEFAULT___ priority": 7,
               "// tpn-range": 1,
               "// ___ COMMENT ___": "Since no TS range and no TSG are \
   \reported for ODU1, the link is an OTU1 Link. TS allocation is not n\
   \eeded and TPN shall be set to '1' for mapping ODU1 over OTU1. This \
   \entry is not present if the OTN Link is an HO-ODU1 Link."
             },
             {
               "index ": 2,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODU0 ]",
               "// ts-range": "1-2",
               "// ___ COMMENT ___": "Since no TPN range is reportd for\
   \ ODU0 with 1.25G TSG, the TPN allocation rule is fixed (TPN = TS#) \
   \for mapping LO-ODU0 over HO-ODU1 with 1.25G TSG. See Table 4 of [RF\
   \C7139]."
             }
           ]
         }
       },
       {
         "// ": "HO-ODU2 or OTU2 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "// ___NOT-PRESENT___ tsg": "",
               "odu-type-list": "[ ODU2 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": 1,
               "// ___ COMMENT ___": "Since no TS range and no TSG are \
   \reported for ODU2, the
              optical transport network", ITU-T G.709, June 2016.

   [ITU-Tgsup43]
              International Telecommunication Union, "Transport link is an OTU2 Link. TS allocation is not n\
   \eeded and TPN shall be set to '1' for mapping ODU2 over OTU2. This \
   \entry is not present if the OTN Link is an HO-ODU2 Link."
             },
             {
               "index ": 2,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU1\
   \ ]",
               "// ___ DEFAULT ___ priority": 7,
               "// ts-range": "1-8"
             },
             {
               "index ": 3,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-1.25G ",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-8",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for ODUflex and ODU0 with 1.25G TSG, the TPN assignment rule is fle\
   \xible within a common range for mapping LO-ODUflex and LO-ODU0 over\
   \ HO-ODU2 with 1.25G TSG. See Table 4 of IEEE
              10GBASE-R in optical transport networks (OTN)",
              ITU-T G.sup43, February 2011.

   [MEF63]    Metro Ethernet Forum, "Subscriber Layer1 Service
              Attributes Technical Specification", MEF 63, August 2018.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC7139]."
             },
             {
               "index ": 4,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODU1 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-4",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for ODU1 with 1.25G TSG, the TPN assignment rule is flexible within\
   \ a common range for mapping LO-ODU1 over HO-ODU2 with 1.25G TSG. Se\
   \e Table 4 of [RFC7139]."
             },
             {
               "index ": 5,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-2.5G",
               "odu-type-list": "[ ODU1 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// ts-range": "1-4",
               "// ___ COMMENT ___": "Since no TPN range is reported fo\
   \r ODU1 with 2.5G TSG, the TPN allocation rule is fixed (TPN = TS#) \
   \for mapping LO-ODU1 over HO-ODU2 with 2.5G TSG. See Table 3 of [RFC\
   \7139]."
             }
           ]
         }
       },
       {
         "// ": "HO-ODU3 or OTU3 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "// ___NOT-PRESENT___ tsg": "",
               "odu-type-list": "[ ODU3 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": 1,
               "// ___ COMMENT ___": "Since no TS range and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC6242]  Wasserman, M., "Using no TSG are \
   \reported for ODU3, the link is an OTU3 Link. TS allocation is not n\
   \eeded and TPN shall be set to '1' for mapping ODU3 over OTU3. This \
   \entry is not present if the OTN Link is an HO-ODU3 Link."
             },
             {
               "index ": 2,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU1\
   \, ODU2, ODU2e ]",
               "// ___ DEFAULT ___ priority": 7,
               "// ts-range": "1-32"
             },
             {
               "index ": 3,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU2\
   \e ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-32",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for ODUflex, ODU0 and ODU2e with 1.25G TSG, the NETCONF Protocol TPN assignment rule\
   \ is flexible within a common range for mapping LO-ODUflex, LO-ODU0 \
   \and LO-ODU2e over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/info/rfc6242>.

   [RFC7139]  Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D.,
              and K. Pithewan, "GMPLS Signaling Extensions HO-ODU3 with 1.25G TSG. See Table 4 of [RFC7139]."
             },
             {
               "index ": 4,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODU1 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-16",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for ODU1 with 1.25G TSG, the TPN assignment rule is flexible within\
   \ a common range for Control mapping LO-ODU1 over HO-ODU3 with 1.25G TSG. Se\
   \e Table 4 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>.

   [RFC7963]  Ali, Z., Bonfanti, A., Hartley, M., and F. Zhang, "RSVP-TE
              Extension [RFC7139]."
             },
             {
               "index ": 5,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODU2 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-4",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for ODU2 with 1.25G TSG, the TPN assignment rule is flexible within\
   \ a common range for Additional Signal Types in G.709 Optical
              Transport Networks (OTNs)", RFC 7963,
              DOI 10.17487/RFC7963, August 2016,
              <https://www.rfc-editor.org/info/rfc7963>.

   [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>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

10.2.  Informative References

   [I-D.ietf-ccamp-l1csm-yang]
              Lee, Y., Lee, K., Zheng, H., Dhody, D., Dios, O., and D.
              Ceccarelli, "A YANG Data Model mapping LO-ODU2 over HO-ODU3 with 1.25G TSG. Se\
   \e Table 4 of [RFC7139]."
             },
             {
               "index ": 6,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-2.5G",
               "odu-type-list": "[ ODU1, ODU2 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// ts-range": "1-16"
             },
             {
               "index ": 7,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-2.5G ",
               "odu-type-list": "[ ODU2 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-4",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for ODU2 with 2.5G TSG, the TPN assignment rule is flexible within \
   \a common range for L1 Connectivity Service
              Model (L1CSM)", draft-ietf-ccamp-l1csm-yang-10 (work in
              progress), September 2019.

   [I-D.ietf-ccamp-otn-topo-yang]
              Zheng, H., Busi, I., Liu, X., Belotti, S., and O. Dios, "A
              YANG Data Model mapping LO-ODU2 over HO-ODU3. Since no TPN range\
   \ is reported for Optical Transport Network Topology",
              draft-ietf-ccamp-otn-topo-yang-09 (work in progress),
              November 2019.

   [I-D.ietf-ccamp-otn-tunnel-model]
              Zheng, H., Busi, I., Belotti, S., Lopezalvarez, V., and Y.
              Xu, "OTN Tunnel YANG Model", draft-ietf-ccamp-otn-tunnel-
              model-09 (work in progress), November 2019.

   [RFC7062]  Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D.
              Ceccarelli, "Framework ODU1 with 2.5G TSG, the TPN allocation rule is fix\
   \ed (TPN = TS#) for GMPLS and PCE Control mapping LO-ODU1 over HO-ODU3 with 2.5G TSG. See \
   \Table 3 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., [RFC7139]."
             }
           ]
         }
       },
       {
         "// ": "HO-ODU4 or OTU4 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "// ___NOT-PRESENT___ tsg": "",
               "odu-type-list": "[ ODU4 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": 1,
               "// ___ COMMENT ___": "Since no TS range and
              J. Drake, "Traffic Engineering Extensions no TSG are \
   \reported for ODU4, the link is an OTU4 Link. TS allocation is not n\
   \eeded and TPN shall be set to OSPF '1' for
              GMPLS Control mapping ODU4 over OTU4. This \
   \entry is not present if the OTN Link is an HO-ODU4 Link."
             },
             {
               "index ": 2,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU1\
   \, ODU2, ODU2e, ODU3 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// ts-range": "1-80"
             },
             {
               "index ": 3,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-1.25G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU1\
   \, ODU2, ODU2e, ODU3 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-80",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for any LO-ODUj with 1.25G TSG, the TPN assignment rule is flexible\
   \ within a common range for mapping any LO-ODUj over HO-ODU4 with 1.\
   \25G TSG. See Table 4 of Evolving G.709 Optical Transport
              Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014,
              <https://www.rfc-editor.org/info/rfc7138>. [RFC7139]."
             }

           ]
         }
       },
       {
         "// ": "ODUC1 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-slot",
               "tsg": "tsg-5G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU1\
   \, ODU2, ODU2e, ODU3, ODU4 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// ts-range": "1-20",
               "// ___ COMMENT ___": "Since the TS range is specified f\
   \or any ODUk, the OTN Link is an ODUCn Link."
             },
             {
               "index ": 2,
               "// ___DEFAULT___ restriction": "inclusive",
               "range-type": "label-range-trib-port",
               "tsg": "tsg-5G",
               "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, ODU1\
   \, ODU2, ODU2e, ODU3, ODU4 ]",
               "// ___ DEFAULT ___ priority": 7,
               "// tpn-range": "1-10",
               "// ___ COMMENT ___": "Since this TPN range is reported \
   \for any ODUk with 5G TSG, the TPN assignment rule is flexible withi\
   \n a common range for mapping any ODUk over ODUCn with 5G TSG."
             }
           ]
         }
       }
     ]
   }

Authors' Addresses
   Haomian Zheng
   Huawei Technologies
   H1-1-A043S
   H1, Huawei Industrial Base, Songshanhu
   Dongguan, Guangdong  523808
   China

   Email: zhenghaomian@huawei.com

   Italo Busi
   Huawei Technologies
   Milan
   Italy

   Email: Italo.Busi@huawei.com