module ietf-ext-xponder-wdm-if { 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: WG List: Editor: Dharini Hiremagalur "; 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 "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 min-tx-power-tca { description " The min tx power tca"; } enum max-tx-power-tca { description " The min tx power tca"; } enum min-rx-power-tca{ description " The min tx power tca"; } enum max-rx-power-tca{ description " The min tx power tca"; } enum min-frequency-offset-tca{ description " Min Frequency offset tca"; } enum max-frequency-offset-tca{ description " Max Frequency offset tca"; } enum min-osnr-tca{ description " Min OSNR tca"; } enum max-osnr-tca{ description " Max OSNR tca"; } enum min-laser-temperature-tca{ description " The min tx power tca"; } enum max-laser-temperature-tca{ description " Temperature tca"; } enum min-fec-ber-tca{ description " Min Pre Fec BER tca"; } enum max-fec-ber-tca{ description " Max Pre Fec BER tca"; } enum min-q-tca{ description "Min Q tca"; } enum max-q-tca { description "Max Q tca"; } } description " The different types of TCA's"; } grouping opt-if-och-power { description "Interface optical Power"; leaf 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 input-power { type int32; units ".01dbm"; config false; description "The current input power of this interface"; } } 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-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 fec-ber-mantissa-threshold { type uint32; description " Mantissa of the FEC BER threshold"; } leaf fec-ber-exponent-threshold { type int32; description " Exponent of the FEC BER threshold"; } } 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-constellation { description "Optical constellation parameters"; leaf i-center { type int32; units ".0001"; config false; description "The In-phase coordinate of the selected constellation symbol for this mode"; } leaf q-center { type int32; units ".0001"; config false; description "The Quadrature coordinate of the selected constellation symbol for this mode"; } leaf i-noise-variance { type int32; units ".001"; config false; description "The Variance of the in-phase noise component for this mode"; } leaf q-noise-variance { type int32; units ".001"; config false; description "The Variance of the quadrature noise component for this mode"; } leaf a-noise-variance { type int32; units ".001"; config false; description "The Variance of the radial noise component for this mode"; } leaf p-noise-variance { type int32; units ".001"; config false; description "The Variance of the phase noise component for this mode"; } } 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 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."; } uses opt-if-och-constellation; } 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 interface"; } leaf max-laser-temperature { type int32; units ".01C"; config false; description "Maximum Laser Temperature of this mode for this interface"; } leaf min-rx-optical-power { type dbm-t; config false; description "Minimum rx optical power of this mode for this interface"; } leaf max-rx-optical-power { type dbm-t; config false; description "Maximum rx optical power of this mode for this interface"; } leaf min-chromatic-dispersion { type int32; config false; description "Minimum chromatic dispersion of this mode for this interface"; } leaf max-chromatic-dispersion { type int32; config false; description "Maximum chromatic dispersion of this mode for this interface"; } leaf min-diff-group-delay { type int32; config false; description "Minimum Differential group delay of this mode for this interface"; } leaf max-diff-group-delay { type int32; config false; description "Maximum Differential group delay of this mode for this interface"; } uses opt-if-och-modulation-params; } 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; } } 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-mode-params { description "OCh mode parameters."; leaf mode-id { type string { length "1..255"; } description "Id for the OCh mode template"; } 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-central-frequency; uses opt-if-och-power; uses opt-if-och-fec-tca-thresholds; uses opt-if-och-tca-list; } 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 fec-ber-mantissa { type uint32; config false; description " Pre fec FEC errored words mantissa"; } leaf fec-ber-exponent { type int32; config false; description " Pre fec FEC errored words exponent"; } } 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 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-input-power { type dbm-t; config false; description "The minimum input power of this interface"; } leaf max-input-power { type dbm-t; config false; description "The maximum input power of this interface"; } leaf min-output-power { type dbm-t; config false; description "The minimum output power of this interface"; } leaf max-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-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; } } 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; } } 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-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"; } } 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-supported-mode { config false; description "Supported mode list of this interface"; uses opt-if-och-mode-list; } container current-opt-if-och-mode-params { description "Current parameters of this interface"; uses opt-if-och-mode-params; uses opt-if-och-statistics; } } } }