netconfcentral logo

draft-ietf-ccamp-dwdm-if-param-yang-02@2019-11-04



  module draft-ietf-ccamp-dwdm-if-param-yang-02 {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-ext-xponder-wdm-if";

    prefix ietf-ext-xponder-wdm-if;

    import ietf-interfaces {
      prefix if;
    }

    organization
      "IETF CCAMP
    Working Group";

    contact
      "WG Web:   <http://tools.ietf.org/wg/ccamp/>
     WG List:  <mailto:ccamp@ietf.org>

     Editor:   Dharini Hiremagalur
               <mailto:dharinih@juniper.net>";

    description
      "This module contains a collection of YANG definitions for
     configuring Optical interfaces.

     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 "2019-11-04" {
      description "Revision 1.4";
      reference
        "";

    }

    revision "2019-07-08" {
      description "Revision 1.3";
      reference
        "";

    }

    revision "2018-10-22" {
      description "Revision 1.2";
      reference
        "";

    }

    revision "2018-03-06" {
      description "Revision 1.1";
      reference
        "";

    }

    revision "2017-03-06" {
      description "Revision 1.0";
      reference
        "";

    }

    revision "2016-03-17" {
      description "Initial revision.";
      reference
        "";

    }


    typedef dbm-t {
      type decimal64 {
        fraction-digits 2;
        range "-50..-30 | -10..5 | 10000000";
      }
      description
        "
     Amplifier Power in dBm";
    }

    typedef opt-if-och-tca-types {
      type enumeration {
        enum "max-laser-linewdt" {
          value 0;
          description
            "The maximum laser linewidth";
        }
        enum "min-tx-power-tca" {
          value 1;
          description "The min tx power TCA";
        }
        enum "max-tx-power-tca" {
          value 2;
          description "The min tx power TCA";
        }
        enum "min-rx-power-tca" {
          value 3;
          description "The min tx power TCA";
        }
        enum "max-rx-power-tca" {
          value 4;
          description "The min tx power TCA";
        }
        enum "max-pol-power-diff-tca" {
          value 5;
          description
            "The power difference between polarization TCA";
        }
        enum "max-pol-skew-diff-tca" {
          value 6;
          description
            "The skew between the two polarization TCA";
        }
        enum "min-frequency-offset-tca" {
          value 7;
          description
            "Min Frequency offset TCA";
        }
        enum "max-frequency-offset-tca" {
          value 8;
          description
            "Max Frequency offset TCA";
        }
        enum "min-osnr-tca" {
          value 9;
          description "Min OSNR TCA";
        }
        enum "max-osnr-tca" {
          value 10;
          description "Max OSNR TCA";
        }
        enum "min-laser-temperature-tca" {
          value 11;
          description "The min tx power TCA";
        }
        enum "max-laser-temperature-tca" {
          value 12;
          description "Temperature TCA";
        }
        enum "min-fec-ber-tca" {
          value 13;
          description "Min Pre Fec BER TCA";
        }
        enum "max-fec-ber-tca" {
          value 14;
          description "Max Pre Fec BER TCA";
        }
        enum "min-q-tca" {
          value 15;
          description "Min Q TCA";
        }
        enum "max-q-tca" {
          value 16;
          description "Max Q TCA";
        }
      }
      description
        "The different types of TCA's";
    }

    grouping opt-if-och-power {
      description "Interface optical Power";
      leaf channel-output-power {
        type int32;
        units ".01dbm";
        description
          "The output power for this interface in .01 dBm.
                  The setting of the output power is optional";
      }

      leaf channel-input-power {
        type int32;
        units ".01dbm";
        config false;
        description
          "The current channel input power of this interface";
      }

      leaf total-input-power {
        type int32;
        units ".01dbm";
        config false;
        description
          "The total input power of this interface";
      }
    }  // grouping opt-if-och-power

    grouping opt-if-och-tca-thresholds {
      description "Thresholds for TCA's";
      leaf tca-type {
        type opt-if-och-tca-types;
        description
          "type of the TCA eg TX Power";
      }

      leaf min-threshold {
        type int32;
        description
          "A TCA is generated if the variable is less than
                  this value";
      }

      leaf max-threshold {
        type int32;
        description
          "A TCA is generated if the variable is more than
                  this value";
      }
    }  // grouping opt-if-och-tca-thresholds

    grouping opt-if-och-fec {
      description "FEC info";
      leaf fec-info {
        type string {
          length "1..255";
        }
        config false;
        description "FEC Type - eg GFEC";
      }

      leaf fec-bitrate {
        type string {
          length "1..255";
        }
        config false;
        description "FEC Overhead rate ";
      }

      leaf fec-gain {
        type string {
          length "1..255";
        }
        config false;
        description "FEC Overhead rate ";
      }

      leaf pre-fec-ber-mantissa-threshold {
        type uint32;
        description
          "Mantissa of the FEC BER threshold";
      }

      leaf pre-fec-ber-exponent-threshold {
        type int32;
        description
          "Exponent of the FEC BER threshold";
      }
    }  // grouping opt-if-och-fec

    grouping opt-if-och-central-frequency {
      description
        "Interface Central Frequency";
      leaf central-frequency {
        type uint32;
        description
          "This parameter indicates the frequency of this
                  interface ";
      }
    }  // grouping opt-if-och-central-frequency

    grouping opt-if-och-modulation-params {
      description
        "Optical modulation parameters for the lane";
      leaf modulation-format {
        type string {
          length "1..255";
        }
        config false;
        description
          "Modulation format for this mode";
      }

      leaf baud-rate {
        type uint32;
        description
          "Baud-rate or symbol rate";
      }

      leaf bits-per-symbol {
        type uint32;
        description
          "This parameter the bits per symbol for this mode";
      }

      leaf num-symbols-in-alphabet {
        type uint32;
        description
          "This parameter the bits per symbol for this mode";
      }

      leaf symbols-index {
        type uint32;
        description
          "This parameter is the symbol index this mode";
      }
    }  // grouping opt-if-och-modulation-params

    grouping opt-if-och-lane-param {
      description
        "Optical parameters for the lane";
      leaf number-of-lanes {
        type uint32;
        config false;
        description
          "Number of optical lanes of this interface";
      }

      leaf min-laser-temperature {
        type int32;
        units ".01C";
        config false;
        description
          "Minimum Laser Temperature of this mode for this
                  lane";
      }

      leaf max-laser-temperature {
        type int32;
        units ".01C";
        config false;
        description
          "Maximum Laser Temperature of this mode for this
                  lane";
      }

      leaf max-total-rx-optical-power {
        type dbm-t;
        config false;
        description
          "Maximum rx optical power of this mode for this
                  lane";
      }

      leaf max-chromatic-dispersion {
        type int32;
        config false;
        description
          "Maximum chromatic dispersion of this mode for this
                  lane";
      }

      leaf max-diff-group-delay {
        type int32;
        config false;
        description
          "Maximum Differential group delay of this mode for
                  this lane";
      }

      uses opt-if-och-modulation-params;
    }  // grouping opt-if-och-lane-param

    grouping opt-if-och-tca-list {
      description "List of TCA's";
      leaf number-of-tcas-supported {
        type uint32;
        description
          "Number of TCAs supported by this interface";
      }

      list mode-list {
        key "tca-type";
        description "List of the TCAs";
        uses opt-if-och-tca-thresholds;
      }  // list mode-list
    }  // grouping opt-if-och-tca-list

    grouping opt-if-och-fec-tca-thresholds {
      description
        "Pre FEC BER Thresholds for TCA's";
      leaf min-fec-ber-mantissa-threshold {
        type uint32;
        description
          "Min Mantissa of the FEC BER threshold";
      }

      leaf min-fec-ber-exponent-threshold {
        type int32;
        description
          "Min Exponent of the FEC BER threshold";
      }

      leaf max-fec-ber-mantissa-threshold {
        type uint32;
        description
          "Max Mantissa of the FEC BER threshold";
      }

      leaf max-fec-ber-exponent-threshold {
        type int32;
        description
          "Max Exponent of the FEC BER threshold";
      }
    }  // grouping opt-if-och-fec-tca-thresholds

    grouping opt-if-och-mode-params {
      description "OCh mode parameters";
      leaf mode-id {
        type string {
          length "1..255";
        }
        description
          "ID for the OCh mode template";
      }

      leaf min-osnr-margin {
        type int32;
        units "dB";
        config false;
        description
          "OSNR margin to FEC threshold";
      }

      leaf q-margin {
        type int32;
        units "dB";
        config false;
        description
          "Q-Factor margin to FEC threshold";
      }

      uses opt-if-och-central-frequency;

      uses opt-if-och-power;

      uses opt-if-och-fec-tca-thresholds;

      uses opt-if-och-tca-list;
    }  // grouping opt-if-och-mode-params

    grouping opt-if-och-statistics {
      description "OCh statistics";
      leaf cur-osnr {
        type int32;
        units "dB";
        config false;
        description
          "OSNR margin to FEC threshold";
      }

      leaf cur-q-factor {
        type int32;
        units "dB";
        config false;
        description
          "Q-Factor of the interface";
      }

      leaf uncorrected-words {
        type uint64;
        config false;
        description "Post-FEC errored words";
      }

      leaf pre-fec-ber-mantissa {
        type uint32;
        config false;
        description
          "Pre-FEC errored words mantissa";
      }

      leaf pre-fec-ber-exponent {
        type int32;
        config false;
        description
          "Pre-FEC errored words exponent";
      }
    }  // grouping opt-if-och-statistics

    grouping opt-if-och-mode {
      description "OCh mode template";
      leaf mode-id {
        type string {
          length "1..255";
        }
        config false;
        description
          "ID for the OCh mode template";
      }

      leaf application-identifier {
        type uint32;
        config false;
        description
          "This parameter indicates the application identifier
                 according to G.698.2";
      }

      leaf min-central-frequency {
        type uint32;
        config false;
        description
          "This parameter indicates the minimum frequency for
                 this template";
      }

      leaf max-central-frequency {
        type uint32;
        config false;
        description
          "This parameter indicates the minimum frequency for
                 this template";
      }

      leaf min-channel-input-power {
        type dbm-t;
        config false;
        description
          "The minimum input power of this interface";
      }

      leaf max-channel-input-power {
        type dbm-t;
        config false;
        description
          "The maximum input power of this interface";
      }

      leaf min-channel-output-power {
        type dbm-t;
        config false;
        description
          "The minimum output power of this interface";
      }

      leaf max-channel-output-power {
        type dbm-t;
        config false;
        description
          "The maximum output power of this interface";
      }

      leaf osnr-margin {
        type int32;
        units "dB";
        config false;
        description
          "OSNR margin to FEC threshold";
      }

      leaf q-margin {
        type int32;
        units "dB";
        config false;
        description
          "Q-Factor margin to FEC threshold";
      }

      uses opt-if-och-fec;

      uses opt-if-och-lane-param;
    }  // grouping opt-if-och-mode

    grouping opt-if-och-mode-list {
      description "List of Mode list group";
      leaf number-of-modes-supported {
        type uint32;
        description
          "Number of modes supported by this interface";
      }

      list mode-list {
        key "mode-id";
        description "List of the modes";
        uses opt-if-och-mode;
      }  // list mode-list
    }  // grouping opt-if-och-mode-list

    notification opt-if-och-central-frequency-change {
      description
        "A change of Central Frequency has been detected";
      leaf if-name {
        type leafref {
          path "/if:interfaces/if:interface/if:name";
        }
        description "Interface name";
      }

      container new-opt-if-och-central-frequency {
        description
          "The new Central Frequency of the interface";
        uses opt-if-och-central-frequency;
      }  // container new-opt-if-och-central-frequency
    }  // notification opt-if-och-central-frequency-change

    notification opt-if-och-mode-change {
      description
        "A change of Mode Template has been detected";
      leaf if-name {
        type leafref {
          path "/if:interfaces/if:interface/if:name";
        }
        description "Interface name";
      }

      leaf mode-id {
        type string {
          length "1..255";
        }
        description
          "ID for the OCh mode template";
      }
    }  // notification opt-if-och-mode-change

    notification opt-if-och-min-tca {
      description
        "A min output TCA notification";
      leaf if-name {
        type leafref {
          path "/if:interfaces/if:interface/if:name";
        }
        description "Interface name";
      }

      leaf tca-type {
        type opt-if-och-tca-types;
        description
          "Type of TCA for eg min tx power TCA";
      }
    }  // notification opt-if-och-min-tca

    augment /if:interfaces/if:interface {
      description
        "Parameters for an optical interface";
      container optIfOChRsSs {
        description
          "RsSs path configuration for an interface";
        container if-current-mode {
          description
            "Current mode template of the interface";
          uses opt-if-och-mode;
        }  // container if-current-mode

        container if-supported-mode {
          config false;
          description
            "Supported mode list of this interface";
          uses opt-if-och-mode-list;
        }  // container if-supported-mode

        container current-opt-if-och-mode-params {
          description
            "Current parameters of this interface";
          uses opt-if-och-mode-params;

          uses opt-if-och-statistics;
        }  // container current-opt-if-och-mode-params
      }  // container optIfOChRsSs
    }
  }  // module draft-ietf-ccamp-dwdm-if-param-yang-02