CCAMP Working Group H. Zheng
Internet-Draft Huawei Technologies
Intended status: Standards Track Y. Lee
Expires: May 31, 2020 SKKU
A. Guo
Futurewei
V. Lopez
Telefonica
D. King
University of Lancaster
November 28, 2019

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

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 optical Traffic Engineering (TE) configuration and state capabilities such as Wavelength Switched Optical Networks (WSONs) and Flexi-grid Dense Wavelength Division Multiplexing (DWDM) Networks.

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 May 31, 2020.

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

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. The applicability of Layer 0 types specified in this document include Wavelength Switched Optical Networks (WSONs) [RFC6163] and [ITU-Tg6982], and Flexi-grid Dense Wavelength Division Multiplexing (DWDM) Networks [RFC7698] and [ITU-Tg6941] .

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

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

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 document becomes an RFC.

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

2. Overview

This document defines YANG module for common Layer 0 types, ietf-layer0-types. This module is used for WSON and Flexi-grid DWDM networks.

2.1. Layer 0 Types Module Contents

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

Operational-mode:

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

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 grid 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:

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-label-start-end:

A YANG grouping that defines the label-start and label-end for WSON as defined in [RFC6205].

wson-label-hop:

A YANG grouping that defines the label hop for WSON as defined in [RFC6205].

layer0-label-range-info:

A YANG grouping that defines the layer 0 label range information applicable for both WSON per priority level as defined in [RFC6205]. This grouping is used in the flexi-grid DWDM by adding more flexi-grid-specific parameters.

wson-label-step:

A YANG grouping that defines label steps for WSON as defined in [I-D.ietf-teas-yang-te-types].

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-label-start-end:

A YANG grouping that defines the label-start and label-end for flexi-grid as defined in [RFC7698].

flexi-grid-channel:

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

flexi-grid-label-hop:

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

flexi-grid-label-range-info:

A YANG grouping that defines flexi-grid label range information and per priority level as defined in [RFC7698] and [RFC8363].

flexi-grid-label-step:

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

3. YANG Code for Layer0 Types

 
<CODE BEGINS>file "ietf-layer0-types@2019-11-28.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@futurewei.com>
       
     Editor: Victor Lopez
       <mailto:victor.lopezalvarez@telefonica.com>
       
     Editor: Daniel King
       <mailto:d.king@lancaster.ac.uk>";

  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).
     
     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision "2019-11-28" {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Layer 0 Types";
  }

  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 conforming
       to the ITU-T recommendation";
    reference "ITU-T G.698.2 (11/2018) Section 5.3";
  }

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

  typedef frequency-ghz {
    type decimal64 {
      fraction-digits 3;
    }
    units GHz;
    description
      "The DWDM frequency in GHz, e.g., 193112.500";
    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 = 193100.000 GHz + N x 12.500 GHz,
      where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor 
      frequency' for transmission over the C band.    ";
    reference
      "RFC6205: Generalized Labels for 
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }
  
  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 ";
    reference
      "RFC6205: Generalized Labels for 
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }
  
  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,
      f = 193100.000 GHz + N x 6.250 GHz,
      where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor 
      frequency' for transmission over the C band.    ";
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      Networks";
  }

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

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

  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";
    reference
      "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";
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      Networks";
  }

  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";
    reference
      "ITU-T G.709: Interfaces for the Optical Transport Network";
  }

  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";
    reference
      "ITU-T G.709: Interfaces for the Optical Transport Network";
  }

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

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

  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";
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      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";
  }
  
  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";
    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
      "ITU-T G.709: Interfaces for the Optical Transport Network";
  }

  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 {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "WSON bandwidth type";
    }
    reference
      "RFC6163:Framework for GMPLS and Path Computation Element 
      (PCE) Control of Wavelength Switched Optical Networks (WSONs)";
  }

  grouping wson-link-bandwidth {
    description 
      "WSON link bandwidth attributes";
    leaf-list supported-bandwidth-list {
      type identityref {
        base layer0-bandwidth-type;
      }
      description "WSON bandwidth type";
    }
    reference
      "RFC6163:Framework for GMPLS and Path Computation Element 
      (PCE) Control of Wavelength Switched Optical Networks (WSONs)";
  }

  grouping wson-label-start-end {
    description
      "The WSON label-start or label-end used to 
      specify WSON label range.";
    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";
        }
      }
    }
    reference
      "RFC6205: Generalized Labels for 
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }

  grouping wson-label-hop {
    description
      "Generic label hop information for WSON";
    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 layer0-types:dwdm-n;
              description
                "List of center frequencies for each subcarrier 
                 channels.";
              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";
        }
      }
    }
    reference
      "RFC6205: Generalized Labels for 
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }

  grouping layer0-label-range-info {
    description
      "Information for layer0 label range.";

    leaf grid-type {
      type identityref {
        base layer0-grid-type;
      }
      description "Grid type";
    }
    leaf priority {
      type uint8;
      description "Priority";
    }
    reference
      "RFC6205: Generalized Labels for 
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }

  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.000, 50.000, 25.000, or 12.500 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";
        }
      }
    }
    reference
      "RFC6205: Generalized Labels for 
      Lambda-Switch-Capable (LSC) Label Switching Routers";
  }

  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";
      }
    }
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      Networks";
  }

  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";
    }
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      Networks";
  }

  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";
    }
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      Networks";
  }

  grouping flexi-grid-label-start-end {
    description 
      "Label-start and Label-end information for Flexi-grid.";
    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) 
      Networks";
  }

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

    uses flexi-grid-label-start-end;

    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.500 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-label-hop {
    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.";
          }
        }
      }
    reference
      "RFC7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
      Networks";
  }

  grouping flexi-grid-label-range-info {
    description
      "Info of Flexi-grid-specific label range";
    uses layer0-label-range-info;

    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.250 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.500 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";
    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] 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

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.

7. Contributors

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

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., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J. and A. Bierman, "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011.
[RFC7950] Bjorklund, M., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016.
[RFC8040] Bierman, A., Bjorklund, M. and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018.
[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.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018.

8.2. Informative References

[I-D.ietf-teas-yang-te-types] Saad, T., Gandhi, R., Liu, X., Beeram, V. and I. Bryskin, "Traffic Engineering Common YANG Types", Internet-Draft draft-ietf-teas-yang-te-types-12, November 2019.
[ITU-Tg6941] International Telecommunication Union, "Spectral grids for WDM applications: DWDM frequency grid", ITU-T G.694.1, February 2012.
[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.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004.
[RFC6163] Lee, Y., Bernstein, G. 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.
[RFC6205] Otani, T. and D. Li, "Generalized Labels for Lambda-Switch-Capable (LSC) Label Switching Routers", RFC 6205, DOI 10.17487/RFC6205, March 2011.
[RFC7205] Romanow, A., Botzko, S., Duckworth, M. and R. Even, "Use Cases for Telepresence Multistreams", RFC 7205, DOI 10.17487/RFC7205, April 2014.
[RFC7446] Lee, Y., Bernstein, G., Li, D. and W. Imajuku, "Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks", RFC 7446, DOI 10.17487/RFC7446, February 2015.
[RFC7581] Bernstein, G., Lee, Y., 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.
[RFC7698] Gonzalez de Dios, O., Casellas, R., 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.
[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.

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
Aihua Guo Futurewei EMail: aihuaguo@futurewei.com
Victor Lopez Telefonica EMail: victor.lopezalvarez@telefonica.com
Daniel King University of Lancaster EMail: d.king@lancaster.ac.uk