module ietf-layer0-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-layer0-types";
prefix "layer0-types";
organization
"IETF CCAMP Working Group";
contact
"WG Web:
WG List:
Editor: Aihua Guo
Editor: Young Lee
Editor: Italo Busi
";
description
"This module defines Optical Layer 0 types. This module
provides groupings that can be applicable to Layer 0
Fixed Optical Networks (e.g., CWDM (Coarse Wavelength
Division Multiplexing) and DWDM (Dense Wavelength Division
Multiplexing)) and Flexi-grid Optical Networks.
Copyright (c) 2018 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 "2018-02-07" {
description
"Initial Version";
reference
"RFC XXXX: A YANG Data Model for WSON (Wavelength Switched
Optical Networks)";
}
typedef operational-mode {
type string;
description
"Vendor-specific mode that guarantees interoperability.";
}
typedef standard-mode {
type string;
description
"ITU-T G.698.2 standard mode that guarantees interoperability.
It must be an string with the following format:
B-DScW-ytz(v) where all these attributes are conformant
to the ITU-T recomendation";
reference "ITU-T G.698.2 (11/2018)";
}
typedef vendor-identifier {
type string;
description
"vendor identifier that uses vendor-specific mode";
reference "RFC7581";
}
typedef frequency-thz {
type decimal64 {
fraction-digits 5;
}
units THz;
description
"The DWDM frequency in THz, e.g., 193.12500";
reference
"RFC6205";
}
typedef frequency-ghz {
type decimal64 {
fraction-digits 5;
}
units GHz;
description
"The DWDM frequency in GHz, e.g., 193125.00";
reference
"RFC6205";
}
identity layer0-node-type {
description
"layer0 node type.";
reference
"RFC6163";
}
identity flex-grid-node {
base layer0-node-type;
description
"Flex Grid node";
}
identity wson-node-foadm {
base layer0-node-type;
description
"Fixed OADM (Optical Add-Drop Multiplexer) node";
}
identity wson-node-roadm {
base layer0-node-type;
description
"ROADM (Reconfigurable Optical Add-Drop Multiplexer)
or OXC (Optical Cross Connect) node";
}
identity wson-node-ila {
base layer0-node-type;
description
"ILA (In-Line Amplifier) node";
}
identity wavelength-assignment {
description
"Wavelength selection base";
}
identity unspecified-wavelength-assignment {
base wavelength-assignment;
description
"No method specified";
}
identity first-fit-wavelength-asignment {
base wavelength-assignment;
description
"All the available wavelengths are numbered,
and this WA (Wavelength Assignment) method chooses
the available wavelength with the lowest index";
}
identity random-wavelength-asignment {
base wavelength-assignment;
description
"This WA method chooses an available
wavelength randomly";
}
identity least-loaded-wavelength-asignment {
base wavelength-assignment;
description
"This WA method selects the wavelength that
has the largest residual capacity on the most loaded
link along the route (in multi-fiber networks)";
}
identity layer0-grid-type {
description
"Layer0 grid type.";
}
identity flex-grid-dwdm {
base layer0-grid-type;
description
"Flex grid";
}
identity wson-grid-dwdm {
base layer0-grid-type;
description
"DWDM grid";
}
identity wson-grid-cwdm {
base layer0-grid-type;
description
"CWDM grid";
}
identity term-type {
description
"Termination type.";
}
identity term-phys {
base term-type;
description
"Physical Layer Termination";
}
identity term-otu {
base term-type;
description
"OTU (Optical Transport Unit) Termination";
}
identity term-odu {
base term-type;
description
"ODU (Optical Data Unit) Termination";
}
identity term-opu {
base term-type;
description
"OPU (Optical Payload Unit) Termination";
}
identity term-section {
base term-type;
description
"Section Layer Termination";
}
identity layer0-bandwidth-type {
description
"Bandwidth type carried by a single wavelength channel";
}
identity bw-otu1 {
base layer0-bandwidth-type;
description
"OTU1 (2.66G)";
}
identity bw-otu1e {
base layer0-bandwidth-type;
description
"OTU1e (11.04G)";
}
identity bw-otu1f {
base layer0-bandwidth-type;
description
"OTU1f (11.27G)";
}
identity bw-otu2 {
base layer0-bandwidth-type;
description
"OTU2 (10.70G)";
}
identity bw-otu2e {
base layer0-bandwidth-type;
description
"OTU2e (11.09G)";
}
identity bw-otu2f {
base layer0-bandwidth-type;
description
"OTU2f (11.31G)";
}
identity bw-otu3 {
base layer0-bandwidth-type;
description
"OTU3 (43.01G)";
}
identity bw-otu3e1 {
base layer0-bandwidth-type;
description
"OTU3e1 (44.57G)";
}
identity bw-otu3e2 {
base layer0-bandwidth-type;
description
"OTU3e2 (44.58G)";
}
identity bw-otu4 {
base layer0-bandwidth-type;
description
"OTU4 (111.80G)";
}
identity bw-otucn {
base layer0-bandwidth-type;
description
"OTUCn (beyond 100G)";
}
identity dwdm-ch-spc-type {
description
"DWDM channel spacing type";
}
identity dwdm-100ghz {
base dwdm-ch-spc-type;
description
"100GHz channel spacing";
}
identity dwdm-50ghz {
base dwdm-ch-spc-type;
description
"50GHz channel spacing";
}
identity dwdm-25ghz {
base dwdm-ch-spc-type;
description
"25GHz channel spacing";
}
identity dwdm-12p5ghz {
base dwdm-ch-spc-type;
description
"12.5GHz channel spacing";
}
identity flex-ch-spc-type {
description
"Flex-grid channel spacing type";
}
identity flex-ch-spc-6p25ghz {
base flex-ch-spc-type;
description
"6.25GHz channel spacing";
}
identity flex-slot-width-granularity {
description
"Flex-grid slot width granularity";
}
identity flex-swg-12p5ghz {
base flex-slot-width-granularity;
description
"12.5GHz slot width granularity";
}
identity cwdm-ch-spc-type {
description
"CWDM channel spacing type";
}
identity cwdm-20nm {
base cwdm-ch-spc-type;
description
"20nm channel spacing";
}
identity fec-type {
description
"FEC (Forward Error Correction) type";
}
identity g-fec {
base fec-type;
description
"G-FEC (Generic-FEC)";
}
identity e-fec {
base fec-type;
description
"E-FEC (Enhanced-FEC)";
}
identity no-fec {
base fec-type;
description
"No FEC";
}
/* Groupings. */
grouping wson-path-bandwidth {
description "WSON (Wavelength Switched Optical Network)
path bandwidth attributes";
leaf bandwidth-type {
type identityref {
base layer0-bandwidth-type;
}
description "WSON bandwidth type";
}
}
grouping wson-link-bandwidth {
description "WSON link bandwidth attributes";
leaf-list supported-bandwidth-list {
type identityref {
base layer0-bandwidth-type;
}
description "WSON bandwidth type";
}
}
grouping wson-link-label {
description
"Generic label for WSON links";
choice grid-type {
description
"Label for DWDM or CWDM grid";
case dwdm {
leaf dwdm-n {
type int16;
description
"N is used to determine the Nominal Central Frequency.
The set of nominal central frequencies can be
built using the following expression
f = 193.1 THz + N x 0.00625 THz,
where 193.1 THz is ITU-T 'anchor frequency'
for transmission over the C band, N is a positive or
negative integer including 0.";
reference
"RFC6205";
}
}
case cwdm {
leaf cwdm-n {
type int16;
description
"N is a two's-complement integer to take either a
positive, negative, or zero value. This value is
used to compute the channel wavelength as such
in G.694.2:
Wavelength (nm) = 1471 nm + N * 20 nm";
reference
"RFC6205";
}
}
}
}
grouping wson-path-label {
description
"Generic label for WSON paths";
choice grid-type {
description
"Label for DWDM or CWDM grid";
case dwdm {
choice single-or-super-channel {
description "single or super channel";
case single {
leaf dwdm-n {
type int16;
description
"N is used to determine the Nominal Central Frequency.
The set of nominal central frequencies can be
built using the following expression
f = 193.1 THz + N x 0.00625 THz,
where 193.1 THz is ITU-T 'anchor frequency'
for transmission over the C band, N is a positive or
negative integer including 0.";
}
}
case super {
leaf-list subcarrier-dwdm-n {
type int16;
description
"List of subcarrier channels for super channel.
Each of the channels is represented by an
integer, n, a two's-complement integer to take
either a positive, negative, or zero value.
This value is used to compute the frequency as
such in G.694.1:
Frequency (THz) =
193.1 THz + n * channel spacing (THz)";
}
}
}
}
case cwdm {
leaf cwdm-n {
type int16;
description
"Represented by an integer, n, a two's-complement
integer to take either a positive, negative, or
zero value. This value is used to compute the
channel wavelength as such in G.694.2:
Wavelength (nm) = 1471 nm + n * 20 nm";
reference
"RFC6205";
}
}
}
}
grouping layer0-label-restriction {
description
"layer0 label restriction.";
leaf grid-type {
type identityref {
base layer0-grid-type;
}
description "Grid type";
}
leaf priority {
type uint8;
description "priority";
}
}
grouping wson-label-step {
description "Label step information for WSON";
choice layer0-grid-type {
description
"Grid type: DWDM, CWDM, etc.";
case dwdm {
leaf wson-dwdm {
type identityref {
base dwdm-ch-spc-type;
}
description
"Label-step is the channel-spacing (GHz), e.g.,
100, 50, 25, or 12.5 GHz for DWDM";
reference
"RFC6205";
}
}
case cwdm {
leaf wson-cwdm {
type identityref {
base cwdm-ch-spc-type;
}
description
"label-step is the channel-spacing (nm), i.e., 20 nm
for CWDM, which is the only value defined for CWDM";
reference
"RFC6205";
}
}
}
}
grouping flex-grid-node-attributes {
description "Flex-grid node attributes";
container flex-grid-node {
description "Flex-grid node attrtibutes";
leaf node-type {
type identityref {
base layer0-node-type;
}
description "Flex-grid node type";
}
}
}
grouping flex-grid-path-bandwidth {
description "Flex-grid path bandwidth attributes";
leaf bandwidth-type {
type identityref {
base layer0-bandwidth-type;
}
description "Flex-grid bandwidth type";
}
}
grouping flex-grid-link-bandwidth {
description "flex-grid link bandwidth attributes";
leaf-list supported-bandwidth-list {
type identityref {
base layer0-bandwidth-type;
}
description "Flex-grid bandwidth type";
}
}
grouping flex-grid-link-label {
description "Flex-grid link label.";
leaf flex-n {
type uint16;
description
"N is used to determine the Nominal Central Frequency.
The set of nominal central frequencies can be
built using the following expression
f = 193.1 THz + N x 0.00625 THz,
where 193.1 THz is ITU-T 'anchor frequency'
for transmission over the C band, N is a positive or
negative integer including 0.";
reference
"RFC7698";
}
}
grouping flex-grid-channel {
description "Flex-grid channel grouping.";
uses flex-grid-link-label;
leaf flex-m {
type uint16 {
range "1..max";
}
description
"M is used to determine the slot width. A slot width is
constrained to be M x SWG (that is, M x 12.5 GHz),
where M is an integer greater than or equal to 1.";
reference
"RFC7698";
}
}
grouping flex-grid-path-label {
description "Flex-grid path label.";
choice single-or-super-channel {
description "single of super channel";
case single {
uses flex-grid-channel;
}
case super {
list subcarrier-flex-n {
key flex-n;
uses flex-grid-channel;
description
"List of subcarrier channels for flex-grid
super channel.";
}
}
}
}
grouping flex-grid-label-restriction {
description
"Flex Grid-specific label restriction";
uses layer0-label-restriction;
container flex-grid {
description "flex-grid definition";
leaf nominal-central-frequency-granularity {
type identityref {
base flex-ch-spc-type;
}
default flex-ch-spc-6p25ghz;
description
"It is the spacing between allowed nominal central
frequencies. Default is 6.25 GHz";
reference
"RFC7698";
}
leaf slot-width-granularity {
type identityref {
base flex-slot-width-granularity;
}
default flex-swg-12p5ghz;
description
"Minimum space between slot widths. Default is
12.5 GHz";
reference
"RFC7698";
}
leaf min-slot-width-factor {
type uint16 {
range "1..max";
}
default 1;
description
"Minimum slot width is calculated by:
Minimum slot width (GHz) =
min-slot-width-factor * slot-width-granularity";
reference
"RFC8363";
}
leaf max-slot-width-factor {
type uint16 {
range "1..max";
}
description
"Maximum slot width is calculated by:
Maximum slot width (GHz) =
max-slot-width-factor * slot-width-granularity";
reference
"RFC8363";
}
}
}
grouping flex-grid-label-step {
description "Label step information for flex grid";
leaf flex {
type identityref {
base flex-ch-spc-type;
}
default flex-ch-spc-6p25ghz;
description
"Label-step is the nominal central frequency
granularity (GHz), e.g., 6.25 GHz";
reference
"RFC7698";
}
}
}