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

Document Type Active Internet-Draft (ccamp WG)
Last updated 2019-10-17
Stream IETF
Intended RFC status (None)
Formats plain text xml pdf htmlized bibtex
Yang Validation 0 errors, 1 warnings.
Reviews
Additional URLs
- Yang catalog entry for ietf-layer0-types@2019-10-18.yang
- Yang impact analysis for draft-ietf-ccamp-layer0-types
- Mailing list discussion
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                                             H. Zheng
Internet-Draft                                       Huawei Technologies
Intended status: Standards Track                                  Y. Lee
Expires: April 20, 2020                                             SKKU
                                                                  A. Guo
                                                              Individual
                                                                V. Lopez
                                                              Telefonica
                                                                 D. King
                                                 University of Lancaster
                                                        October 18, 2019

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

Abstract

   This document defines a collection of common data types and groupings
   in the 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).  The applicability of this document is
   mainly for TE, but not limited to.

   The YANG data model in this document conforms to the Network
   Management Datastore Architecture defined in RFC8342.

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 April 20, 2020.

Zheng, et al.            Expires April 20, 2020                 [Page 1]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 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
   (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
     1.1.  Terminology and Notations . . . . . . . . . . . . . . . .   3
     1.2.  Prefix in Data Node Names . . . . . . . . . . . . . . . .   3
   2.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     2.1.  TE Types Module Contents  . . . . . . . . . . . . . . . .   3
   3.  YANG Code for Layer0 Types  . . . . . . . . . . . . . . . . .   6
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .  21
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  22
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  22
   7.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  22
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  23
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  23
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  24
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  25

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.

   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 as well as non-TE features (e.g., physical
   network configuration aspect) for Layer 0 optical networks in
   model(s) defined outside of this document.  Examples of Layer 0

Zheng, et al.            Expires April 20, 2020                 [Page 2]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   optical networks are Wavelength Switched Optical Networks (WSONs)
   [RFC6163] and Spectrum Switched optical Networks (SSONs) [RFC7698].

   [ITU-Tg6982] 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 [ITU-Tg6982] .

1.1.  Terminology and Notations

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

1.2.  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            |
      +-------------+---------------------------+----------------------+
      | layer0-types| ietf-layer0-types         | [RFCXXXX]            |
      +-------------+---------------------------+----------------------+

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

2.  Overview

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

2.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:

Zheng, et al.            Expires April 20, 2020                 [Page 3]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   Operational-mode:

   A type that represents operational-model type as defined in
   [ITU-Tg6982].

   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] and
   [RFC7698].

   term-type:

   A base YANG identity for the supported termination type as defined in
   [ITU-Tg709].

   layer0-bandwidth-type:

   A base YANG identity for the layer0 bandwidth type as defined in
   [ITU-Tg709].

   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 [ITU-Tg709].

   wson-path-bandwidth:

Zheng, et al.            Expires April 20, 2020                 [Page 4]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   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 grouping that defines the label for WSON paths as defined 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
   [I-D.ietf-teas-yang-te-topo].

   flexi-grid-node-attributes:

   A YANG grouping that defines flexi-grid node attributes as defined in
   [RFC7698].

   flexi-grid-path-bandwidth:

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

   flexi-grid-link-bandwidth:

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

   flexi-grid-link-label:

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

Zheng, et al.            Expires April 20, 2020                 [Page 5]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   flexi-grid-channel:

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

   flexi-grid-path-label:

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

   flexi-grid-label-restriction:

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

   flexi-grid-label-step:

   A YANG grouping that defines flexi-grid label steps as defined in
   [I-D.ietf-teas-yang-te-topo].

3.  YANG Code for Layer0 Types

<CODE BEGINS>file "ietf-layer0-types@2019-10-18.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: Haomian Zheng
       <mailto:zhenghaomian@huawei.com>

     Editor: Young Lee
       <mailto:younglee.tx@gmail.com>
         
         Editor: Aihua Guo
       <mailto:aihuaguo.ietf@gmail.com>

     Editor: Victor Lopez
       <mailto:victor.lopezalvarez@telefonica.com>

     Editor: Daniel King
       <mailto:d.king@lancaster.ac.uk>";

Zheng, et al.            Expires April 20, 2020                 [Page 6]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

  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) 2019 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).";

  revision "2019-10-18" {
    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.
       It must be an string with the following format:
       B-DScW-ytz(v) where all these attributes are conformant
       to the ITU-T recommendation";
    reference "ITU-T G.698.2 (11/2009) Section 5.3";
  }

  typedef vendor-identifier {
    type string;
    description
      "vendor identifier that uses vendor-specific mode";
    reference "TBD";
  }

  typedef frequency-thz {
    type decimal64 {
      fraction-digits 3;
    }
    units THz;
    description

Zheng, et al.            Expires April 20, 2020                 [Page 7]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

      "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 1;
    }
    units GHz;
    description
      "The DWDM frequency in GHz, e.g., 193125.00";
    reference
      "RFC6205: Generalized Labels for
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }

  typedef dwdm-n
  {
    type int16;
    description
      "The given value 'N' is used to determine the nominal
          central frequency.

          The nominal central frequency, 'f' is defined by,
                f = 193.125 THz + N x 0.00625 THz,
          where 193.125 THz is the ITU-T 'anchor frequency' for
          transmission over the C band. ";
  }

  typedef cwdm-n
  {
    type int16;
    description
      "The given value 'N' is used to compute the channel
          wavelength as per the formula:
                Wavelength (nm) = 1471 + N x 20 ";
  }

  typedef flexi-n
  {
    type int16;
    description
      "The given value 'N' is used to determine the nominal
          central frequency.

          The nominal central frequency, 'f' is defined by,

Zheng, et al.            Expires April 20, 2020                 [Page 8]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

                f = 193.125 THz + N x 0.00625 THz,
          where 193.125 THz is the ITU-T 'anchor frequency' for
          transmission over the C band. ";
  }

  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";
  }

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

Zheng, et al.            Expires April 20, 2020                 [Page 9]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

  identity first-fit-wavelength-assignment {
    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-assignment {
    base wavelength-assignment;
    description
      "This WA method chooses an available
       wavelength randomly";
  }

  identity least-loaded-wavelength-assignment {
    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
      "Layer 0 grid type";
  }

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

  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

Zheng, et al.            Expires April 20, 2020                [Page 10]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

      "Termination type";
  }

  identity term-phys {
    base term-type;
    description
      "Physical layer termination";
  }

  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";
  }

  identity layer0-bandwidth-type {
    description
      "Bandwidth type carried by a single wavelength channel";
  }

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

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

Zheng, et al.            Expires April 20, 2020                [Page 11]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

  }

  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)";
  }

  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)";

Zheng, et al.            Expires April 20, 2020                [Page 12]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

  }

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

  identity dwdm-ch-spc-type {
    description
      "DWDM channel spacing type";
  }

  identity dwdm-100ghz {
    base dwdm-ch-spc-type;
    description
      "100GHz channel spacing";
  }

  identity dwdm-50ghz {
    base dwdm-ch-spc-type;
    description
      "50GHz channel spacing";
  }

  identity dwdm-25ghz {
    base dwdm-ch-spc-type;
    description
      "25GHz channel spacing";
  }

  identity dwdm-12p5ghz {
    base dwdm-ch-spc-type;
    description
      "12.5GHz channel spacing";
  }

  identity flexi-ch-spc-type {
    description
      "Flexi-grid channel spacing type";
  }

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

Zheng, et al.            Expires April 20, 2020                [Page 13]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

  identity flexi-slot-width-granularity {
    description
      "Flexi-grid slot width granularity";
  }

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

  identity cwdm-ch-spc-type {
    description
      "CWDM channel spacing type";
  }

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

  identity fec-type {
    description
      "FEC (Forward Error Correction) type";
  }

  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";
    leaf bandwidth-type {

Zheng, et al.            Expires April 20, 2020                [Page 14]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

      type identityref {
        base layer0-bandwidth-type;
      }
      description "WSON bandwidth type";
    }
  }

  grouping wson-link-bandwidth {
    description "WSON link bandwidth attributes";
    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";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        leaf dwdm-n {
          type layer0-types:dwdm-n;
          description
           "The central frequency of DWDM. ";
          reference
            "RFC6205: Generalized Labels for
             Lambda-Switch-Capable (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf cwdm-n {
          type layer0-types:cwdm-n;
          description
            "Channel wavelength computing input. ";
          reference
            "RFC6205: Generalized Labels for
             ambda-Switch-Capable (LSC) Label Switching Routers";
        }
      }
    }
  }

  grouping wson-path-label {
    description

Zheng, et al.            Expires April 20, 2020                [Page 15]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

      "Generic label for WSON paths";
    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 layer0-types:dwdm-n;
              description
               "The central frequency of DWDM. ";
             }
          }
          case super {
           leaf-list subcarrier-dwdm-n {
              type int16;
              description
                "List of subcarrier channels for the super channel.

                The given value 'N' for each subcarrier channel
                is used to determine the nominal
                central frequency.

                The nominal central frequency, 'f', is defined by,
                f = 193.1 THz + N x 'channel spacing (THz)',
                where 193.1 THz is the ITU-T 'anchor frequency' for
                transmission over the C band,
                N is a positive or negative integer including 0";
                reference
                  "ITU-T Recommendation G.694.1: Spectral girds for
                   WDM applications: DWDM frequency grid";

           }
          }
        }

      }
      case cwdm {
        leaf cwdm-n {
          type layer0-types:cwdm-n;
          description
            "Channel wavelength computing input. ";
          reference
            "RFC6205: Generalized Labels for
             Lambda-Switch-Capable (LSC) Label Switching Routers";
        }
      }

Zheng, et al.            Expires April 20, 2020                [Page 16]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

    }
  }

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

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

Zheng, et al.            Expires April 20, 2020                [Page 17]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

        }
      }
    }
  }

  grouping flexi-grid-node-attributes {
    description "Flexi-grid node attributes";

    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";
    leaf bandwidth-type {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "Flexi-grid bandwidth type";
    }
  }

  grouping flexi-grid-link-bandwidth {
    description "flexi-grid link bandwidth attributes";
    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.";
    leaf flexi-n {
      type int16;
      description
        "The central frequency in Flexi-grid.";
      reference
        "RFC7698: Framework and Requirements for GMPLS-Based Control
        of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)

Zheng, et al.            Expires April 20, 2020                [Page 18]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

                Networks";
    }
  }

  grouping flexi-grid-channel {
    description "Flexi-grid channel grouping.";

    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 a positive integer.";
      reference
        "RFC7698: Framework and Requirements for GMPLS-Based Control
        of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
                Networks";
    }
  }
  grouping flexi-grid-path-label {
    description "Flexi-grid path label.";
      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";
    uses layer0-label-restriction;

    container flexi-grid {

Zheng, et al.            Expires April 20, 2020                [Page 19]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

      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";
      }

      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

Zheng, et al.            Expires April 20, 2020                [Page 20]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

          "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";
    leaf flex {
      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>

4.  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 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 NETCONF access control model [RFC8341]

Zheng, et al.            Expires April 20, 2020                [Page 21]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

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

5.  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-layer0-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-layer0-types
      namespace:    urn:ietf:params:xml:ns:yang:ietf-layer0-types
      prefix:       layer0-types
      reference:    RFC XXXX(TBD)

6.  Acknowledgements

   TBD.

7.  Contributors

   Dhruv Dhody
   Huawei
   Email: dhruv.ietf@gmail.com

Zheng, et al.            Expires April 20, 2020                [Page 22]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   Bin Yeong Yoon
   ETRI
   Email: byyun@etri.re.kr

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

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

8.  References

8.1.  Normative References

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://www.rfc-editor.org/info/rfc6020>.

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

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

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

Zheng, et al.            Expires April 20, 2020                [Page 23]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

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

8.2.  Informative References

   [I-D.ietf-teas-yang-te-topo]
              Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and
              O. Dios, "YANG Data Model for Traffic Engineering (TE)
              Topologies", draft-ietf-teas-yang-te-topo-22 (work in
              progress), June 2019.

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

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

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
              <https://www.rfc-editor.org/info/rfc3209>.

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

   [RFC6163]  Lee, Y., Ed., Bernstein, G., Ed., and W. Imajuku,
              "Framework for GMPLS and Path Computation Element (PCE)
              Control of Wavelength Switched Optical Networks (WSONs)",
              RFC 6163, DOI 10.17487/RFC6163, April 2011,
              <https://www.rfc-editor.org/info/rfc6163>.

   [RFC6205]  Otani, T., Ed. and D. Li, Ed., "Generalized Labels for
              Lambda-Switch-Capable (LSC) Label Switching Routers",
              RFC 6205, DOI 10.17487/RFC6205, March 2011,
              <https://www.rfc-editor.org/info/rfc6205>.

   [RFC7205]  Romanow, A., Botzko, S., Duckworth, M., and R. Even, Ed.,
              "Use Cases for Telepresence Multistreams", RFC 7205,
              DOI 10.17487/RFC7205, April 2014,
              <https://www.rfc-editor.org/info/rfc7205>.

Zheng, et al.            Expires April 20, 2020                [Page 24]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   [RFC7446]  Lee, Y., Ed., Bernstein, G., Ed., Li, D., and W. Imajuku,
              "Routing and Wavelength Assignment Information Model for
              Wavelength Switched Optical Networks", RFC 7446,
              DOI 10.17487/RFC7446, February 2015,
              <https://www.rfc-editor.org/info/rfc7446>.

   [RFC7581]  Bernstein, G., Ed., Lee, Y., Ed., Li, D., Imajuku, W., and
              J. Han, "Routing and Wavelength Assignment Information
              Encoding for Wavelength Switched Optical Networks",
              RFC 7581, DOI 10.17487/RFC7581, June 2015,
              <https://www.rfc-editor.org/info/rfc7581>.

   [RFC7698]  Gonzalez de Dios, O., Ed., Casellas, R., Ed., Zhang, F.,
              Fu, X., Ceccarelli, D., and I. Hussain, "Framework and
              Requirements for GMPLS-Based Control of Flexi-Grid Dense
              Wavelength Division Multiplexing (DWDM) Networks",
              RFC 7698, DOI 10.17487/RFC7698, November 2015,
              <https://www.rfc-editor.org/info/rfc7698>.

   [RFC8363]  Zhang, X., Zheng, H., Casellas, R., Gonzalez de Dios, O.,
              and D. Ceccarelli, "GMPLS OSPF-TE Extensions in Support of
              Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
              Networks", RFC 8363, DOI 10.17487/RFC8363, May 2018,
              <https://www.rfc-editor.org/info/rfc8363>.

Authors' Addresses

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

   Email: zhenghaomian@huawei.com

   Young Lee
   SKKU
   Sung Kyun Kwan University
   Seoul
   South Korea

   Email: younglee.tx@gmail.com

Zheng, et al.            Expires April 20, 2020                [Page 25]
Internet-Draft     A YANG Data Model for Layer 0 Types      October 2019

   Aihua Guo
   Individual

   Email: aihuaguo.ietf@gmail.com

   Victor Lopez
   Telefonica

   Email: victor.lopezalvarez@telefonica.com

   Daniel King
   University of Lancaster

   Email: d.king@lancaster.ac.uk

Zheng, et al.            Expires April 20, 2020                [Page 26]