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;
}
import ietf-layer0-types {
prefix "layer0-types";
}
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 "2020-03-09" {
description
"Revision 1.5";
reference
"";
}
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 int32;
units ".01dbm";
description "
Amplifiers and Transceivers Power in dBm";
}
typedef opt-if-och-tca-types {
type enumeration {
enum max-laser-linewdt {
description "The maximum laser linewidth";
}
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 max-pol-power-diff-tca{
description "The power difference between polarization
TCA";
}
enum max-pol-skew-diff-tca{
description "The skew between the two polarization 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 channel-output-power {
type dbm-t;
description "The output power for this interface in .01 dBm.
The setting of the output power is optional";
}
leaf channel-input-power {
type dbm-t;
config false;
description "The current channel input power of this
interface";
}
leaf total-input-power {
type dbm-t;
config false;
description "The total 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 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-central-frequency {
description "Interface Central Frequency";
leaf central-frequency {
type layer0-types:frequency-thz;
description "This parameter indicates the frequency of this
interface ";
}
}
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-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-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 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-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-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 layer0-types:frequency-thz;
config false;
description
"his parameter indicates the minimum frequency for
this template";
}
leaf max-central-frequency {
type layer0-types:frequency-thz;
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-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;
}
}
}
}