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