CCAMP Working Group                                     Y. Lee (Editor)
                                                               D. Dhody
                                                               X. Zhang
Internet Draft                                                   A. Guo                                                 D. Dhody
Intended status: Standard Track                                X. Zhang
Expires: August 27, 2018                                         A. Guo
                                                                 Huawei

                                                               V. Lopez
                                                             Telefonica

                                                                D. King
                                                        U. of Lancaster

                                                                 B. Yoon
                                                                    ETRI

                                                          Ricard Vilalta
                                                                    CTTC

Expires: May 12,

                                                      February 27, 2018                                 November 12, 2017

                A Yang Data Model for WSON Optical Networks

                     draft-ietf-ccamp-wson-yang-09.txt

                       draft-ietf-ccamp-wson-yang-10

Abstract

   This document provides a YANG data model for the routing and
   wavelength assignment (RWA) TE topology in wavelength switched
   optical networks (WSONs).

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
   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on May 12, August 27, 2018.

Copyright Notice

   Copyright (c) 2017 2018 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
   2. YANG Model (Tree Structure)....................................3
   3. IETF-WSON-Topology YANG Model..................................4
   4. IETF-TE-WSON-Types YANG Model.................................11
   5. Security Considerations.......................................13
   6. IANA Considerations...........................................13 Considerations...........................................14
   7. Acknowledgments...............................................14
   8. References....................................................15
      8.1. Normative References.....................................15
      8.2. Informative References...................................15
   9. Contributors..................................................15
   Authors' Addresses...............................................15

1. Introduction

   This document provides a YANG data model for the routing and
   wavelength assignment (RWA) Traffic Engineering (TE) topology in
   wavelength switched optical networks (WSONs). The YANG model
   described in this document is a WSON technology-specific Yang model
   based on the information model developed in [RFC7446] and the two
   encoding documents [RFC7581] and [RFC7579] that developed protocol
   independent encodings based on [RFC7446].

   This document augments the
   the generic TE topology draft [TE-TOPO].

   What is not in scope of this document is both impairment-aware WSON
   and flex-grid.

   This document defines two YANG models: ietf-wson-topology (Section
   3) and ietf-te-wson-types (Section 4).

2. YANG Model (Tree Structure)

module: ietf-wson-topology
  augment /nd:networks/nd:network/nd:network-types/tet:te-topology:
    +--rw wson-topology!
  augment /nd:networks/nd:network/nd:node/tet:te/tet:te-node-
attributes/tet:connectivity-matrices/tet:connectivity-matrix:
    +--rw wavelength-availability-range?   te-wson-types:wavelength-range-type
  augment /nd:networks/nd:network/lnk:link/tet:te/tet:te-link-attributes:
    +--rw channel-num?                 int32
    +--rw first-channel-frequency?     decimal64
    +--rw channel-spacing?             decimal64
    +--rw available-wavelength-info* [priority]
       +--rw priority                         uint8
       +--rw wavelength-availability-range?   te-wson-types:wavelength-range-
type
  augment /nd:networks/nd:network/nd:node/tet:te/tet:te-node-attributes:
    +--rw wson-node
       +--rw node-type?   identityref
  augment /nd:networks/nd:network/nd:node/tet:te/tet:tunnel-termination-point:
    +--rw available-operational-mode*   te-wson-types:operational-mode
    +--rw operational-mode?             te-wson-types:operational-mode

3. IETF-WSON-Topology YANG Model

<CODE BEGINS> file "ietf-wson-topology@2017-10-09.yang" "ietf-wson-topology@2018-02-27.yang"

module   ietf-wson-topology {
//TODO: FIXME
      //yang-version 1.1;

      namespace "urn:ietf:params:xml:ns:yang:ietf-wson-topology";

      prefix "wson";

       import ietf-network {
          prefix "nd";
       }

      import ietf-network-topology {
        prefix "lnk";
      }

      import ietf-inet-types {
      prefix "inet";
      }

      import ietf-te-topology {
      prefix "tet";
      }
      import ietf-te-wson-types { //Modified
      prefix "te-wson-types";
      }

      //NOT NEEDED
      /*import ietf-transport-types {
      prefix "tran-types";
      } */

      organization
            "IETF CCAMP Working Group";

      contact
            "Editor:   Young Lee  <leeyoung@huawei.com>";

      description
            "This module contains a collection of YANG definitions
for
            RWA WSON.

            Copyright (c) 2016 2017 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 2017-10-09 2018-02-27 {
            description
                  "version 8."; 10.";

            reference
                  "RFC XXX: A Yang Data Model for WSON Optical
Networks ";
      }

      typedef wson-topology-id {
            type inet:uri;
            description
                  "The WSON Topology ID";
      }

      grouping wson-topology-type {
            description "wson-topology type";
            container wson-topology {
                  presence "indicates a topology of wson";
                  description
                        "Container to identify wson topology type";
                  }
      }

      grouping wson-node-attributes {
            description "WSON node attributes";
            container wson-node {
                  description "WSON node attrtibutes.";
                  leaf node-type {
                        type identityref {
                        base te-wson-types:wson-node-type;
                        }
                        description "WSON node type.";
                  }
            }
      }

      grouping wson-wavelength-availability-range{
            description "wavelength availability range";

            leaf wavelength-availability-range{
                  type te-wson-types:wavelength-range-type;
                  description
                        "range that indicates if a wavelength is
                         available or not on each channel at
                         specified priority level.";
            }
      }
      grouping wson-link-attributes {
            description "WSON link attributes";
            leaf channel-num {
                 type int32;
                 description "Number of OCh channels available";
            }
            leaf first-channel-frequency {
                 type decimal64 {
                       fraction-digits 5;
                 }
                 units THz;
                 description "First channel frequency in the grid";
            }
            leaf channel-spacing {
                 type decimal64 {
                       fraction-digits 5;
                 }
                 units GHz;
                 description "This is fixed channel spacing for
WSON,
                 e.g, 12.5, 25, 50, 100, ..";
            }

            list available-wavelength-info{
                  key "priority";
                  max-elements "8";

                  description
                        "List of available wavelength channels on
this link";
                  leaf priority {
                        type uint8 {
                               range "0..7";
                        }
                        description "priority";
                  }
                  uses wson-wavelength-availability-range;
            }
      }
      grouping wson-tp-attributes {
            description "wson-tp-attributes";

            leaf client-facing {
                  type empty;
                  description
                        "if present, it means this tp is a client-
facing tp.
                         adding/dropping client signal flow.";
            }

/*
//can it be fully covered by interface-switching-capability of base
TE model?
            leaf-list supported-client-signals {
                  type identityref {
                        base tran-types:client-signal;
                  }
                  description
                        "Supported client signals at this TP";
            }
*/
      }

      grouping wson-ttp-attributes {
            description "WSON tunnel termination point (e.g.
tranponder)
            attributes";
            leaf-list available-operational-mode {
               type te-wson-types:operational-mode;
               description "List of all vendor-specific supported
               mode identifiers";
            }

            leaf operational-mode {
               type te-wson-types:operational-mode;
               description "Vendor-specific mode identifier";
            }
      }

   /* AUGMENTS */

      augment "/nd:networks/nd:network/nd:network-types"
           + "/tet:te-topology" {
               description "wson-topology augmented";
               uses wson-topology-type;
         }

         //FIXING NMDA
         augment "/nd:networks/nd:network/nd:node/tet:te"
                 +"/tet:te-node-attributes/tet:connectivity-matrices"
                 + "/tet:connectivity-matrix" {
               when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON
   connectivity
   matrix.";
               }
             description "WSON connectivity matrix config
   augmentation";
               uses wson-wavelength-availability-range;
         }

         //REMOVING
         /*
         augment "/nd:networks/nd:network/nd:node/tet:te/tet:state"
                 +"/tet:te-node-attributes/tet:connectivity-matrices"
                 + "/tet:connectivity-matrix" {
               when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson-topology" {
                     description
                           "This augment is only valid for WSON
   connectivity
   matrix.";
             }
             description "WSON connectivity matrix state augmentation";
               uses wson-wavelength-availability-range;
         }*/

         //FIXING NMDA
         augment "/nd:networks/nd:network/lnk:link/tet:te"
                     + "/tet:te-link-attributes"   {
           when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON.";
               }
               description "WSON Link augmentation.";

               uses wson-link-attributes;
         }

         //REMOVING
         /*
         augment "/nd:networks/nd:network/lnk:link/tet:te/tet:state"
                     + "/tet:te-link-attributes"   {
           when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON.";
                     }
               description "WSON Link augmentation.";

               uses wson-link-attributes;
         }*/

         //FIXING NMDA
         augment "/nd:networks/nd:network/nd:node/tet:te"
                 + "/tet:te-node-attributes" {
               when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON.";
               }
               description "WSON Node augmentation.";

               uses wson-node-attributes;
         }
         //REMOVING
         /*
         augment "/nd:networks/nd:network/nd:node/tet:te/tet:state"
                 + "/tet:te-node-attributes" {
           when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON.";
               }
               description "WSON Node augmentation.";

               uses wson-node-attributes;
         }*/

         //FIXING NMDA
         augment "/nd:networks/nd:network/nd:node/tet:te"
                 + "/tet:tunnel-termination-point" {
           when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON.";
               }
               description "WSON tunnel termination point
   augmentation.";

               uses wson-ttp-attributes;
         }

         //removing
         /*augment "/nd:networks/nd:network/nd:node/tet:te"
                 + "/tet:tunnel-termination-point/tet:state" {
           when "/nd:networks/nd:network/nd:network-types"
                     +"/tet:te-topology/wson:wson-topology" {
                     description
                           "This augment is only valid for WSON.";
               }
               description "WSON tunnel termination point
   augmentation.";

               uses wson-ttp-attributes;
         }*/
   }

<CODE ENDS>
4. IETF-TE-WSON-Types YANG Model

<CODE BEGINS> file "ietf-te-wson-types@2017-10-09.yang" "ietf-te-wson-types@2018-02-27.yang"
   module ietf-te-wson-types {
        namespace "urn:ietf:params:xml:ns:yang:ietf-te-wson-types";
        prefix "te-wson-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:aihuaguo@huawei.com>

            Editor: Young Lee
                    <mailto:leeyoung@huawei.com>";

        description
            "This module defines WSON types.";

        revision "2017-10-09" "2018-02-27" {
            description
                "Revision 0.1"; 2";
            reference "TBD";
        }

        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 recomendation";
             reference "ITU-T G.698.2 (11/2009) Section 5.3";
        }

        identity wson-node-type {
            description
                    "WSON node type.";
            reference
                    "";
        }

        identity wson-node-foadm {
            base wson-node-type;
            description
                    "Fixed OADM node.";
        }

        identity wson-node-roadm {
            base wson-node-type;
            description
                    "ROADM or OXC node.";
        }

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

       //ADDED
        typedef wavelength-range-type {
            type string {
                pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?" +
                        "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
            }
            description
                "A list of WDM channel numbers (starting at 1)
                 in ascending order. For example: 1,12-20,40,50-80";
        }

       identity wavelength-assignment {
           description "Wavelength selection base";
       }

       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 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 muli-fiber networks).";
       }

    }

<CODE ENDS>

5. Security Considerations

   TDB

   The configuration, state, and action data defined in this document
   are designed to be accessed via a management protocol with a secure
   transport layer, such as NETCONF [RFC6241].  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.

   A number of configuration data nodes defined in this document are
   writable/deletable (i.e., "config true") These data nodes may be
   considered sensitive or vulnerable in some network environments.

6. IANA Considerations

   TDB

   This document registers the following namespace URIs in the IETF XML
   registry [RFC3688]:

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

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

   --------------------------------------------------------------------
      name:         ietf-wson-topology
      namespace:    urn:ietf:params:xml:ns:yang:ietf-wson-topology
      reference:    RFC XXXX (TDB)
   --------------------------------------------------------------------
      name:         ietf-te-wson-types
      namespace:    urn:ietf:params:xml:ns:yang: ietf-te-wson-types
      reference:    RFC XXXX (TDB)
   --------------------------------------------------------------------

7. Acknowledgments

   This document was prepared using 2-Word-v2.0.template.dot.

8. References

   8.1. Normative References

   [TE-TOPO] X. Liu, et al., "YANG Data Model for TE Topologies", work
             in progress: draft-ietf-teas-yang-te-topo.

   8.2. Informative References

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

   [RFC7579]   G. Bernstein, Y. Lee, D. Li, W. Imajuku, "General
             Network Element Constraint Encoding for GMPLS Controlled
             Networks", RFC 7579, June 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.

9. Contributors

Authors' Addresses

   Young Lee (ed.)
   Huawei Technologies
   5340 Legacy Drive, Building 3
   Plano, TX 75023
   USA

   Phone: (469) 277-5838
   Email: leeyoung@huawei.com

   Dhruv Dhody
   Huawei Technologies India Pvt. Ltd,
   Near EPIP Industrial Area,  Kundalahalli Village,  Whitefield,
   Bangalore -  560 037 [H1-2A-245]
   Email: dhruv.dhody@huawei.com

   Xian Zhang
   Huawei Technologies

   Email: zhang.xian@huawei.com

   Aihua Guo
   Huawei Technologies
   Email: aihuaguo@huawei.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
   Email: byyun@etri.re.kr

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