netconfcentral logo

ietf-wson-topology@2017-10-09



  module ietf-wson-topology {

    yang-version 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 {
      prefix te-wson-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 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" {
      description "version 8.";
      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";
      }  // container wson-topology
    }  // grouping 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.";
        }
      }  // container wson-node
    }  // grouping wson-node-attributes

    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-wavelength-availability-range

    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;
      }  // list available-wavelength-info
    }  // grouping wson-link-attributes

    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.";
      }
    }  // grouping wson-tp-attributes

    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";
      }
    }  // grouping wson-ttp-attributes

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

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

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

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

    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;
    }
  }  // module ietf-wson-topology