A YANG Data Model for Layer 0 Types
draft-ietf-ccamp-layer0-types-01

The information below is for an old version of the document
Document Type Active Internet-Draft (ccamp WG)
Last updated 2019-05-27 (latest revision 2019-05-11)
Stream IETF
Intended RFC status (None)
Formats pdf htmlized bibtex
Reviews
Stream WG state WG Document
Document shepherd No shepherd assigned
IESG IESG state I-D Exists
Consensus Boilerplate Unknown
Telechat date
Responsible AD (None)
Send notices to (None)
CCAMP Working Group                                     Y. Lee (Editor)
Internet Draft                                                Futurewei
Intended status: Standard Track
Expires: November 27, 2019                                     D. Dhody
                                                                 Huawei

                                                                 A. Guo
                                                              Futurewei

                                                               V. Lopez
                                                             Telefonica

                                                                D. King
                                                        U. of Lancaster

                                                           May 27, 2019

                    A YANG Data Model for Layer 0 Types

                     draft-ietf-ccamp-layer0-types-01

Abstract

   This document defines a collection of common data types and
   groupings in YANG data modeling language.  These derived common
   types and groupings are intended to be imported by modules that
   model Layer 0 Traffic Engineering (TE) configuration and state
   capabilities such as Wavelength Switched Optical Networks (WSONs)
   and Spectrum Switched optical Networks (SSONs).

Status of this Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

Lee, et al.             Expires November 2019                  [Page 1]
Internet-Draft               Layer0 Types                      May 2019

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on November 27, 2019.

Copyright Notice

   Copyright (c) 2019 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
   (http://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
      1.1. Requirements Language.....................................3
      1.2. Terminology...............................................3
      1.3. Prefixes in Data Node Names...............................3
   2. IETF-Layer0-Types YANG Module..................................7
   3. Security Considerations.......................................23
   4. IANA Considerations...........................................24
   5. References....................................................25
      5.1. Normative References.....................................25
      5.2. Informative References...................................25
   6. Contributors..................................................27
   Authors' Addresses...............................................27

1. Introduction

   YANG [RFC6020] and [RFC7950] is a data modeling language used to
   model configuration data, state data, Remote Procedure Calls, and
   notifications for network management protocols such as NETCONF
   [RFC6241].  The YANG language supports a small set of built-in data
   types and provides mechanisms to derive other types from the built-
   in types.

Lee, et al.             Expires November 2019                  [Page 2]
Internet-Draft               Layer0 Types                      May 2019

   This document introduces a collection of common data types derived
   from the built-in YANG data types.  The derived types and groupings
   are designed to be the common types applicable for modeling Traffic
   Engineering (TE) features for Layer 0 optical networks in model(s)
   defined outside of this document. Examples of Layer 0 optical
   networks are Wavelength Switched Optical Networks (WSONs) [RFC6163]
   and Spectrum Switched optical Networks (SSONs) [RFC7698].

   [G.698.2] defines amplified multichannel Dense Wavelength Division
   Multiplexing (DWDM) applications with single channel optical
   interfaces.  The YANG data model defined in this document refers to
   the standard application mode defined in [G.698.2].

1.1. Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in  BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

1.2. Terminology

   Refer to [RFC7446] and [RFC7581] for the key terms used in this
   document.

   The terminology for describing YANG data models is found in
   [RFC7950].

1.3. Prefixes 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, as shown in Table 1.

      +-------------+-------------------------+-----------------+
      | Prefix      | YANG module             | Reference       |
      +-------------+-------------------------+-----------------+
      | layer0-type | ietf-layer0-types       | [RFCXXXX]       |
      +-------------+-------------------------+-----------------+

             Table 1: Prefixes and corresponding YANG modules

Lee, et al.             Expires November 2019                  [Page 3]
Internet-Draft               Layer0 Types                      May 2019

   Note: The RFC Editor will replace XXXX with the number assigned to
   the RFC once this draft becomes an RFC.

   YANG module "ietf-layer0-types" (defined in Section 3) references
   [RFC6163], [RFC7205], and [RFC7698].

   3.  Overview

   This document defines one YANG module for common Layer 0 TE types:
   ietf-layer0-types for WSON and SSON specific types.

   3.1.  TE Types Module Contents

   The ietf-layer0-types module contains common Layer 0 TE types that
   are to be imported by layer 0 specific technology such as WSON and
   SSON.

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

   Operational-mode:

      A type that represents operational-model type as defined in
      [G.698.2].

   Vendor-identifier:

      A type that represents vendor identifier as defined in [RFC7581].

   layer0-node-type:

      A base YANG identity for supported node type as defined in
      [RFC6163].

   wavelength-assignment:

      A base YANG identity for allocated wavelength assignment type as
      defined in [RFC6163].

   layer0-grid-type:

      A base YANG identity for the node type as defined in
      [RFC6163] & [RFC7698].

Lee, et al.             Expires November 2019                  [Page 4]
Internet-Draft               Layer0 Types                      May 2019

   term-type:

      A base YANG identity for the supported termination type as
      defined in [G.709].

   layer0-bandwidth-type:

      A base YANG identity for the layer0 bandwidth type as
      defined in [G.709].

   dwdm-ch-spc-type:

      A base YANG identity for the DWDM channel spacing type as
      defined in [RFC6205].

   cwdm-ch-spc-type:

      A base YANG identity for the CWDM channel spacing type as
      defined in [RFC6205].

   FEC-type:

      A base YANG identity for the FEC type as defined in [G.709].

   wson-path-bandwidth:

      A YANG grouping that defines the WSON path bandwidth attributes
      as defined in [RFC6163].

   wson-link-bandwidth:

      A YANG grouping that defines WSON link bandwidth attributes as
      defined in [RFC6163].

   wson-link-label:

      A YANG grouping that defines the label for WSON links as defined
      In [RFC6205].

   wson-path-label:

      A YANG groupin that defines the label for WSON paths as defined

Lee, et al.             Expires November 2019                  [Page 5]
Internet-Draft               Layer0 Types                      May 2019

      In [RFC6205].

   layer0-label-restriction:

      A YANG grouping that defines the layer 0 label restriction
      applicable for both WSON and SSON and per priority level as
      defined in [RFC3209].

   wson-label-step:

      A YANG grouping that defines label steps for WSON as defined in
      [TE-topo].

   flexi-grid-node-attributes:

      A YANG grouping that defines Flex-grid node attrtibutes as
      defined in [RFC7698].

   flexi-grid-path-bandwidth:

      A YANG grouping that defines flex-grid path bandwidth attributes
      as defined in [RFC7698].

   flexi-grid-link-bandwidth:

      A YANG grouping that defines flex-grid link bandwidth attributes
      As defined in [RFC7698].

   flexi-grid-link-label:

      A YANG grouping that defines flex-grid link label attributes as
      defined in [RFC7698].

   flexi-grid-channel:

      A YANG grouping that defines flex-grid channel as defined in
      [RFC7698].

   flexi-grid-path-label:

      A YANG grouping that defines flex-grid path label for both single
      channel and multiple carriers [RFC7698].

   flexi-grid-label-restriction:

      A YANG grouping that defines flex-grid label restrictions and per
      priority level as defined in [RFC3209].

Lee, et al.             Expires November 2019                  [Page 6]
Internet-Draft               Layer0 Types                      May 2019

   flexi-grid-label-step:

      A YANG grouping that defines flex-grid label steps as defined in
      [TE-topo].

2. IETF-Layer0-Types YANG Module

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

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

     Editor: Aihua Guo
       <mailto:aguo@futurewei.com>

     Editor: Young Lee
       <mailto:younglee.tx@gmail.com>

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

     Editor: Dieter Beller
       <mailto:Dieter.Beller@nokia.com>";

  description
    "This module defines Optical Layer 0 types. This module
     provides groupings that can be applicable to Layer 0
     Fixed Optical Networks (e.g., CWDM (Coarse Wavelength
     Division Multiplexing) and DWDM (Dense Wavelength Division
     Multiplexing)) and Flexi-grid Optical Networks.

     Copyright (c) 2018 IETF Trust and the persons identified
     as authors of 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
     (http://trustee.ietf.org/license-info).";

Lee, et al.             Expires November 2019                  [Page 7]
Internet-Draft               Layer0 Types                      May 2019

  revision "2019-05-15" {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for WSON (Wavelength Switched
       Optical Networks)";
  }

  typedef operational-mode {
    type string;
    description
      "Vendor-specific mode that guarantees interoperability.";
    reference "ITU-T G.698.2 (11/2018)";
  }

  typedef standard-mode {
    type string;
    description
      "ITU-T G.698.2 standard mode that guarantees interoperability.
       It must be an string with the following format:
       B-DScW-ytz(v) where all these attributes are conformant
       to the ITU-T recomendation";
    reference "ITU-T G.698.2 (11/2018)";
  }

  typedef vendor-identifier {
    type string;
    description
      "vendor identifier that uses vendor-specific mode";
    reference
      "RFC7581: Routing and Wavelength Assignment Information
       Encoding for Wavelength Switched Optical Networks";
  }

  typedef frequency-thz {
    type decimal64 {
      fraction-digits 5;
    }
    units THz;
    description
      "The DWDM frequency in THz, e.g., 193.12500";
    reference
      "RFC6205:Generalized Labels for Lambda-Switch-Capable (LSC)
         Label Switching Routers";
  }

  typedef frequency-ghz {
    type decimal64 {
      fraction-digits 5;

Lee, et al.             Expires November 2019                  [Page 8]
Internet-Draft               Layer0 Types                      May 2019

    }
    units GHz;
    description
      "The DWDM frequency in GHz, e.g., 193125.00";
    reference
      "RFC6205: Generalized Labels for Lambda-Switch-Capable (LSC)
         Label Switching Routers";
  }

  identity layer0-node-type {
    description
      "layer0 node type.";
    reference
      "RFC6163: Framework for GMPLS and Path Computation Element
        (PCE) Control of Wavelength Switched Optical Networks
        (WSONs)";
  }

  identity flexi-grid-node {
    base layer0-node-type;
    description
      "flexi Grid node";
  }

  identity wson-node-foadm {
    base layer0-node-type;
    description
      "Fixed OADM (Optical Add-Drop Multiplexer) node";
  }

  identity wson-node-roadm {
    base layer0-node-type;
    description
      "ROADM (Reconfigurable Optical Add-Drop Multiplexer)
       or OXC (Optical Cross Connect) node";
  }

  identity wson-node-ila {
    base layer0-node-type;
    description
      "ILA (In-Line Amplifier) node";
  }

  identity wavelength-assignment {
    description
      "Wavelength selection base";
    reference
      "RFC6163: Framework for GMPLS and Path Computation Element
         (PCE) Control of Wavelength Switched Optical Networks

Lee, et al.             Expires November 2019                  [Page 9]
Internet-Draft               Layer0 Types                      May 2019

         (WSONs)";
  }

  identity unspecified-wavelength-assignment {
    base wavelength-assignment;
    description
      "No method specified";
  }

  identity first-fit-wavelength-asignment {
    base wavelength-assignment;
    description
      "All the available wavelengths are numbered,
       and this WA (Wavelength Assignment) method chooses
       the available wavelength with the lowest index";
  }

  identity random-wavelength-asignment {
    base wavelength-assignment;
    description
      "This WA method chooses an available
       wavelength randomly";
  }

  identity least-loaded-wavelength-asignment {
    base wavelength-assignment;
    description
      "This WA method selects the wavelength that
       has the largest residual capacity on the most loaded
       link along the route (in multi-fiber networks)";
  }

  identity layer0-grid-type {
    description
      "Layer0 grid type.";
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
         of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
         Networks &
       RFC6163: Framework for GMPLS and Path Computation Element
         (PCE) Control of Wavelength Switched Optical Networks
         (WSONs)";
  }

  identity flexi-grid-dwdm {
    base layer0-grid-type;
    description
      "flexi grid";
  }

Lee, et al.             Expires November 2019                 [Page 10]
Internet-Draft               Layer0 Types                      May 2019

  identity wson-grid-dwdm {
    base layer0-grid-type;
    description
      "DWDM grid";
  }

  identity wson-grid-cwdm {
    base layer0-grid-type;
    description
      "CWDM grid";
  }

  identity term-type {
    description
      "Termination type.";
  }

  identity term-phys {
    base term-type;
    description
      "Physical Layer Termination";
    reference
   "G.709: Interfaces for the Optical Transport Network (OTN)";
  }

  identity term-otu {
    base term-type;
    description
      "OTU (Optical Transport Unit) Termination";
  }

  identity term-odu {
    base term-type;
    description
      "ODU (Optical Data Unit) Termination";
  }

  identity term-opu {
    base term-type;
    description
      "OPU (Optical Payload Unit) Termination";
  }

  identity term-section {
    base term-type;
    description
      "Section Layer Termination";
  }

Lee, et al.             Expires November 2019                 [Page 11]
Internet-Draft               Layer0 Types                      May 2019

  identity layer0-bandwidth-type {
    description
      "Bandwidth type carried by a single wavelength channel";
    reference
   "G.709: Interfaces for the Optical Transport Network (OTN)";
  }

  identity bw-otu1 {
    base layer0-bandwidth-type;
    description
      "OTU1 (2.66G)";
  }

  identity bw-otu1e {
    base layer0-bandwidth-type;
    description
      "OTU1e (11.04G)";
  }

  identity bw-otu1f {
    base layer0-bandwidth-type;
    description
      "OTU1f (11.27G)";
  }

  identity bw-otu2 {
    base layer0-bandwidth-type;
    description
      "OTU2 (10.70G)";
  }

  identity bw-otu2e {
    base layer0-bandwidth-type;
    description
      "OTU2e (11.09G)";
  }

  identity bw-otu2f {
    base layer0-bandwidth-type;
    description
      "OTU2f (11.31G)";
  }

  identity bw-otu3 {
    base layer0-bandwidth-type;
    description
      "OTU3 (43.01G)";
  }

Lee, et al.             Expires November 2019                 [Page 12]
Internet-Draft               Layer0 Types                      May 2019

  identity bw-otu3e1 {
    base layer0-bandwidth-type;
    description
      "OTU3e1 (44.57G)";
  }

  identity bw-otu3e2 {
    base layer0-bandwidth-type;
    description
      "OTU3e2 (44.58G)";
  }

  identity bw-otu4 {
    base layer0-bandwidth-type;
    description
      "OTU4 (111.80G)";
  }

  identity bw-otucn {
    base layer0-bandwidth-type;
    description
      "OTUCn (beyond 100G)";
  }

  identity dwdm-ch-spc-type {
    description
      "DWDM channel spacing type";
    reference
      "RFC6205: Generalized Labels for Lambda-Switch-Capable (LSC)
         Label Switching Routers";
  }

  identity dwdm-100ghz {
    base dwdm-ch-spc-type;
    description
      "100GHz channel spacing";
    reference
      "ITU-T Recommendation G.694.1: Spectral grids for WDM applications:
      DWDM frequency grid";
  }

  identity dwdm-50ghz {
    base dwdm-ch-spc-type;
    description
      "50GHz channel spacing";
    reference
      "ITU-T Recommendation G.694.1: Spectral grids for WDM applications:
      DWDM frequency grid";

Lee, et al.             Expires November 2019                 [Page 13]
Internet-Draft               Layer0 Types                      May 2019

  }

  identity dwdm-25ghz {
    base dwdm-ch-spc-type;
    description
      "25GHz channel spacing";
    reference
      "ITU-T Recommendation G.694.1: Spectral grids for WDM applications:
      DWDM frequency grid";
  }

  identity dwdm-12p5ghz {
    base dwdm-ch-spc-type;
    description
      "12.5GHz channel spacing";
    reference
      "ITU-T Recommendation G.694.1: Spectral grids for WDM applications:
      DWDM frequency grid";
  }

  identity  flexi-ch-spc-type {
    description
      "flexi-grid channel spacing type";
    reference
      "RFC7581: Routing and Wavelength Assignment Information
       Encoding for Wavelength Switched Optical Networks";
  }

  identity flexi-ch-spc-6p25ghz {
    base flexi-ch-spc-type;
    description
      "6.25GHz channel spacing";
  }

  identity  flexi-slot-width-granularity {
    description
      "flexi-grid slot width granularity";
    reference
      "RFC7581: Routing and Wavelength Assignment Information
       Encoding for Wavelength Switched Optical Networks";
  }

  identity flexi-swg-12p5ghz {
    base flexi-slot-width-granularity;
    description
      "12.5GHz slot width granularity";
  }

  identity cwdm-ch-spc-type {

Lee, et al.             Expires November 2019                 [Page 14]
Internet-Draft               Layer0 Types                      May 2019

    description
      "CWDM channel spacing type";
    reference
      "RFC6205: Generalized Labels for Lambda-Switch-Capable (LSC)
         Label Switching Routers";
  }

  identity cwdm-20nm {
    base cwdm-ch-spc-type;
    description
      "20nm channel spacing";
  }

  identity fec-type {
    description
      "FEC (Forward Error Correction) type";
    reference
   "G.709: Interfaces for the Optical Transport Network (OTN)";
  }

  identity g-fec {
    base fec-type;
    description
      "G-FEC (Generic-FEC)";
  }
  identity e-fec {
    base fec-type;
    description
      "E-FEC (Enhanced-FEC)";
  }
  identity no-fec {
    base fec-type;
    description
      "No FEC";
  }

  /* Groupings. */
  grouping wson-path-bandwidth {
    description "WSON (Wavelength Switched Optical Network)
                 path bandwidth attributes";
    reference
      "RFC6163";
    leaf bandwidth-type {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "WSON bandwidth type";
    }
  }

Lee, et al.             Expires November 2019                 [Page 15]
Internet-Draft               Layer0 Types                      May 2019

  grouping wson-link-bandwidth {
    description "WSON link bandwidth attributes";
    reference
      "RFC6163";
    leaf-list supported-bandwidth-list {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "WSON bandwidth type";
    }
  }

  grouping wson-link-label {
    description
      "Generic label for WSON links";
    reference
      "RFC6205";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        leaf dwdm-n {
          type int16;
          description
           "N is used to determine the Nominal Central Frequency.
             The set of nominal central frequencies can be
             built using the following expression
             f = 193.1 THz + N x 0.00625 THz,
             where 193.1 THz is ITU-T 'anchor frequency'
             for transmission over the C band, N is a positive or
             negative integer including 0.";
          reference
            "RFC6205:Generalized Labels for Lambda-Switch-Capable
                  (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf cwdm-n {
          type int16;
          description
            "N is a two's-complement integer to take either a
                     positive, negative, or zero value. This value is
                     used to compute the channel wavelength as such
                     in G.694.2:
                     Wavelength (nm) = 1471 nm + N * 20 nm";
          reference
            "RFC6205:Generalized Labels for Lambda-Switch-Capable
                   (LSC) Label Switching Routers";

Lee, et al.             Expires November 2019                 [Page 16]
Internet-Draft               Layer0 Types                      May 2019

        }
      }
    }
  }

  grouping wson-path-label {
    description
      "Generic label for WSON paths";
    reference
      "RFC6205";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        choice single-or-super-channel {
          description "single or super channel";
          case single {
            leaf dwdm-n {
              type int16;
              description
               "N is used to determine the Nominal Central Frequency.
                The set of nominal central frequencies can be
                built using the following expression
                 f = 193.1 THz + N x 0.00625 THz,
                where 193.1 THz is ITU-T 'anchor frequency'
                for transmission over the C band, N is a positive or
                negative integer including 0.";
             }
          }
          case super {
           leaf-list subcarrier-dwdm-n {
              type int16;
              description
                "List of subcarrier channels for super channel.
                         Each of the channels is represented by an
                         integer, n, a two's-complement integer to take
                         either a positive, negative, or zero value.
                         This value is used to compute the frequency as
                         such in G.694.1:
                         Frequency (THz) =
                           193.1 THz + n * channel spacing (THz)";
           }
          }
        }

      }
      case cwdm {
        leaf cwdm-n {

Lee, et al.             Expires November 2019                 [Page 17]
Internet-Draft               Layer0 Types                      May 2019

          type int16;
          description
            "Represented by an integer, n, a two's-complement
                   integer to take either a positive, negative, or
                   zero value. This value is used to compute the
                   channel wavelength as such in G.694.2:
                   Wavelength (nm) = 1471 nm + n * 20 nm";
          reference
            "RFC6205:Generalized Labels for Lambda-Switch-Capable
                   (LSC) Label Switching Routers";

        }
      }
    }
  }

  grouping layer0-label-restriction {
    description
      "layer0 label restriction.";
    reference
      "RFC3209";

    leaf grid-type {
      type identityref {
        base layer0-grid-type;
      }
      description "Grid type";
    }
    leaf priority {
      type uint8;
      description "priority";
    }
  }

  grouping wson-label-step {
    description "Label step information for WSON";
    reference
      "draft-ietf-teas-yang-te-topo-20";
    choice layer0-grid-type {
      description
        "Grid type: DWDM, CWDM, etc.";
      case dwdm {
        leaf wson-dwdm {
          type identityref {
            base dwdm-ch-spc-type;
          }
          description
            "Label-step is the channel-spacing (GHz), e.g.,
             100, 50, 25, or 12.5 GHz for DWDM";

Lee, et al.             Expires November 2019                 [Page 18]
Internet-Draft               Layer0 Types                      May 2019

          reference
            "RFC6205:Generalized Labels for Lambda-Switch-Capable
                   (LSC) Label Switching Routers";

        }
      }
      case cwdm {
        leaf wson-cwdm {
          type identityref {
            base cwdm-ch-spc-type;
          }
          description
            "label-step is the channel-spacing (nm), i.e., 20 nm
             for CWDM, which is the only value defined for CWDM";
          reference
            "RFC6205:Generalized Labels for Lambda-Switch-Capable
                   (LSC) Label Switching Routers";
        }
      }
    }
  }

  grouping flexi-grid-node-attributes {
    description "flexi-grid node attributes";
    reference
      "RFC7698";
    container flexi-grid-node {
      description "flexi-grid node attrtibutes";
      leaf node-type {
        type identityref {
          base layer0-node-type;
        }
        description "flexi-grid node type";
      }
    }
  }

  grouping flexi-grid-path-bandwidth {
    description "flexi-grid path bandwidth attributes";
    reference
      "RFC7698";
    leaf bandwidth-type {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "flexi-grid bandwidth type";
    }
  }

Lee, et al.             Expires November 2019                 [Page 19]
Internet-Draft               Layer0 Types                      May 2019

  grouping flexi-grid-link-bandwidth {
    description "flexi-grid link bandwidth attributes";
    reference
      "RFC7698";
    leaf-list supported-bandwidth-list {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "flexi-grid bandwidth type";
    }
  }

  grouping flexi-grid-link-label {
    description "flexi-grid link label.";
    reference
      "RFC7698";
    leaf flexi-n {
      type uint16;
      description
        "N is used to determine the Nominal Central Frequency.
         The set of nominal central frequencies can be
         built using the following expression
          f = 193.1 THz + N x 0.00625 THz,
         where 193.1 THz is ITU-T 'anchor frequency'
         for transmission over the C band, N is a positive or
         negative integer including 0.";
      reference
        "RFC7698: Framework and Requirements for GMPLS-Based
         Control of Flexi-Grid Dense Wavelength Division Multiplexing
         (DWDM) Networks";
    }
  }

  grouping flexi-grid-channel {
    description "flexi-grid channel grouping.";
    reference
      "RFC7698";
    uses flexi-grid-link-label;

    leaf flexi-m {
      type uint16 {
          range "1..max";
        }
      description
        "M is used to determine the slot width. A slot width is
         constrained to be M x SWG (that is, M x 12.5 GHz),
         where M is an integer greater than or equal to 1.";
      reference
        "RFC7698: Framework and Requirements for GMPLS-Based

Lee, et al.             Expires November 2019                 [Page 20]
Internet-Draft               Layer0 Types                      May 2019

          Control of Flexi-Grid Dense Wavelength Division Multiplexing
          (DWDM) Networks";
    }
  }
  grouping flexi-grid-path-label {
    description "flexi-grid path label.";
    reference
      "RFC7698";
      choice single-or-super-channel {
       description "single of super channel";
        case single {
          uses flexi-grid-channel;
       }
        case super {
         list subcarrier-flexi-n {
         key flexi-n;
         uses flexi-grid-channel;
         description
            "List of subcarrier channels for flexi-grid
             super channel.";
          }
        }
      }
  }

  grouping flexi-grid-label-restriction {
    description
      "flexi Grid-specific label restriction";
    reference
      "RFC7698 & RFC3209";
    uses layer0-label-restriction;

    container flexi-grid {
      description "flexi-grid definition";
      leaf nominal-central-frequency-granularity {
        type identityref {
          base flexi-ch-spc-type;
        }
        default flexi-ch-spc-6p25ghz;
        description
          "It is the spacing between allowed nominal central
           frequencies. Default is 6.25 GHz";
        reference
          "RFC7698: Framework and Requirements for GMPLS-Based
           Control of Flexi-Grid Dense Wavelength Division Multiplexing
           (DWDM) Networks";

      }

Lee, et al.             Expires November 2019                 [Page 21]
Internet-Draft               Layer0 Types                      May 2019

      leaf slot-width-granularity {
        type identityref {
          base flexi-slot-width-granularity;
        }
        default flexi-swg-12p5ghz;
        description
          "Minimum space between slot widths. Default is
                12.5 GHz";
        reference
          "RFC7698: Framework and Requirements for GMPLS-Based
           Control of Flexi-Grid Dense Wavelength Division Multiplexing
           (DWDM) Networks";

      }

      leaf min-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        default 1;
        description
          "Minimum slot width is calculated by:
                 Minimum slot width (GHz) =
                     min-slot-width-factor * slot-width-granularity";
        reference
          "RFC8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
           Dense Wavelength Division Multiplexing (DWDM) Networks";

      }

      leaf max-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        description
          "Maximum slot width is calculated by:
                 Maximum slot width (GHz) =
                     max-slot-width-factor * slot-width-granularity";
        reference
          "RFC8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
           Dense Wavelength Division Multiplexing (DWDM) Networks";
      }

    }
  }

  grouping flexi-grid-label-step {
    description "Label step information for flexi grid";
    reference

Lee, et al.             Expires November 2019                 [Page 22]
Internet-Draft               Layer0 Types                      May 2019

      "draft-ietf-teas-yang-te-topo-20";
    leaf flexi {
      type identityref {
        base flexi-ch-spc-type;
      }
        default flexi-ch-spc-6p25ghz;
      description
        "Label-step is the nominal central frequency
         granularity (GHz), e.g., 6.25 GHz";
      reference
        "RFC7698: Framework and Requirements for GMPLS-Based
         Control of Flexi-Grid Dense Wavelength Division Multiplexing
         (DWDM) Networks";
    }
  }
}

<CODE ENDS>

3. 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 [RFC6536] provides the means to
   restrict access for particular NETCONF users to a preconfigured
   subset of all available NETCONF protocol operations and content. The
   NETCONF Protocol over Secure Shell (SSH) [RFC6242] describes a
   method for invoking and running NETCONF within a Secure Shell (SSH)
   session as an SSH subsystem. The Network Configuration Access
   Control Model (NACM) [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 optical layer0 type
   definitions (i.e., typedef, identity and grouping statements) in
   YANG data modeling language to be imported and used by other layer 0
   specific modules.  When imported and used, the resultant schema will
   have data nodes that can be writable, or readable.  The access to

Lee, et al.             Expires November 2019                 [Page 23]
Internet-Draft               Layer0 Types                      May 2019

   such data nodes may be onsidered 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.

4. IANA Considerations

   This document registers the following namespace URIs in the IETF XML
   registry [RFC3688]. Following the format in [RFC3688], registration
   is requested to be made as follows:

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

   This document registers the following YANG module in the YANG Module
   Names registry [RFC7950] & [RFC6020]:

   --------------------------------------------------------------------
      name:         ietf-layer0-types
      namespace:    urn:ietf:params:xml:ns:yang: ietf-layer0-types
      prefix:       layer0-types
      reference:    RFC XXXX (TDB)
   --------------------------------------------------------------------

Lee, et al.             Expires November 2019                 [Page 24]
Internet-Draft               Layer0 Types                      May 2019

5. References

   5.1. Normative References

   [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
             the Network Configuration Protocol (NETCONF)", RFC 6020,
             October 2010.

   [RFC6241] R. Enns, Ed., M. Bjorklund, Ed., J. Schoenwaelder, Ed.,
             "Network Configuration Protocol (NETCONF)", RFC 6241, June
             2011.

   [RFC6242] M. Wasserman, "Using the NETCONF Protocol over Secure
             Shell (SSH)", RFC 6242, June 2011.

   [RFC6536] A. Bierman, M. Bjorklund, "Network Configuration Protocol
             (NETCONF) Access Control Model", RFC 6536, March 2012.

   [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
             RFC 7950, August 2016.

   [RFC8040] A. Bierman, M. Bjorklund, K. Watsen, "RESTCONF Protocol",
             RFC 8040, January 2017.

   [RFC8341] A. Bierman, M. Bjorklund, "Network Configuration Access
             Control Model", RFC 8341, March 2018.

   [RFC8446] E. Rescorla, "The Transport Layer Security (TLS) Protocol
             Version 1.3", RFC8446, August 2018.

   5.2. Informative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, DOI
             10.17487/RFC2119, March 1997, <https://www.rfc-
             editor.org/info/rfc2119>.

   [RFC3209] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, and
             G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels",
             RFC 3209, December 2001.

Lee, et al.             Expires November 2019                 [Page 25]
Internet-Draft               Layer0 Types                      May 2019

   [RFC3688] M. Mealling, "The IETF XML Registry", RFC 3688, January
             2004.

   [RFC6163] Y. Lee, Ed. G. Berstein, Ed., W. Imajuku, "Framework for
             GMPLS and Path Computation Element (PCE) Control of
             Wavelength Switched Optical Networks (WSONs)", RFC 6163,
             April 2011.

   [RFC6205] T. Otani, Ed., D. Li, Ed., "Generalized Labels for Lambda-
             Switch-Capable (LSC) Label Switching Routers", RFC 6205,
             March 2011.

   [RFC7205] A. Romanow, S. Botzko, M. Duckworth, R. Even, Ed.,"Use
             Cases for Telepresence Multistreams", RFC 7205, April
             2014.

   [RFC7446] Y. Lee, G. Bernstein, D. Li, W. Imajuku, "Routing and
             Wavelength Assignment Information Model for Wavelength
             Switched Optical Networks", RFC 7446, Feburary 2015.

   [RFC7581] G. Bernstein, Y. Lee, D. Li, W. Imajuku, "Routing and
             Wavelength Assignment Information Encoding for Wavelength
             Switched Optical Networks", RFC 7581, June 2015.

   [RFC7698] O. Gonzalez de Dios, Ed., R. Casellas, Ed., "Framework and
             Requirements for GMPLS-Based Control of Flexi-Grid Dense
             Wavelength Division Multiplexing (DWDM) Networks", RFC
             7698, November 2015.

   [RFC8174] B. Leiba, "Ambiguity of Uppercase vs Lowercase in RFC 2119
             Key Words", RFC 8174, May 2017.

   [RFC8363] X. Zhang, H. Zheng, R. Casellas, O. Gonzalez de Dios, D.
             Ceccarelli, "GMPLS OSPF-TE Extensions in Support of Flexi-
             Grid Dense Wavelength Division Multiplexing (DWDM)
             Networks", RFC 8363, May 2018.

   [G.698.2] "Amplified multichannel dense wavelength division
             multiplexing applications with single channel optical
             interfaces", ITU-T G.698.2, November, 2018.

   [G.709]  "Interfaces for the Optical Transport Network (OTN)", ITU-T
             G.709, June 2016.

Lee, et al.             Expires November 2019                 [Page 26]
Internet-Draft               Layer0 Types                      May 2019

   [TE-topo] Xufeng Liu, Igor Bryskin, Vishnu Pavan Beeram, Tarek Saad,
             Himanshu Shah, Oscar Gonzalez De Dios, "YANG Data Model
             for Traffic Engineering (TE) Topologies", draft-ietf-teas-
             yang-te-topo, work in progress.

6. Contributors

Authors' Addresses

   Young Lee (ed.)
   Futurewei Technologies
   5700 Tennyson Parkway, Suite 600
   Plano, TX 75024
   USA
   Email: younglee.tx@gmail.com

   Dhruv Dhody
   Huawei Technologies
   Divyashree Techno Park, Whitefield
   Bangalore, Karnataka  560066
   India
   EMail: dhruv.ietf@gmail.com

   Aihua Guo
   Futurewei Technologies
   Email: aguo@futurewei.com

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

   Daniel King
   University of Lancaster
   Email: d.king@lancaster.ac.uk

   Bin Yeong Yoon
   ETRI
   218 Gaijeongro, Yuseong-gu
   Daejeon, Korea

Lee, et al.             Expires November 2019                 [Page 27]
Internet-Draft               Layer0 Types                      May 2019

   Email: byyun@etri.re.kr

   Ricard Vilalta
   CTTC
   Email: ricard.vilalta@cttc.es

   Italo Busi
   Huawei
   Email: Italo.Busi@huawei.com

Lee, et al.             Expires November 2019                 [Page 28]