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: Young Lee
Editor: Aihua Guo ";
description
"This module defines Optical Layer 0 types.";
revision "2018-10-22" {
description
"Revision 1";
reference "TBD";
}
typedef operational-mode {
type string;
description
"Vendor-specific 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/2009) Section 5.3";
}
typedef vendor-identifier {
type string;
description
"vendor identifier that uses vendor-specific mode";
reference "TBD";
}
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 node.";
}
identity wson-node-roadm {
base layer0-node-type;
description
"ROADM or OXC 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 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 muli-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 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 dwdm-6p25ghz {
base dwdm-ch-spc-type;
description
"6.25GHz channel spacing";
}
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 type.";
}
identity g-fec {
base fec-type;
description
"G-FEC.";
}
identity e-fec {
base fec-type;
description
"E-FEC.";
}
identity no-fec {
base fec-type;
description
"No FEC.";
}
identity term-type {
description
"Termination type.";
}
identity term-phys {
base term-type;
description
"PHYS.";
}
identity term-otu {
base term-type;
description
"OTU.";
}
identity term-odu {
base term-type;
description
"ODU.";
}
identity term-opu {
base term-type;
description
"OPU.";
}
identity term-section {
base term-type;
description
"Section.";
}
/* Groupings. */
grouping wson-path-bandwidth {
description "WSON 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 channel-freq {
type frequency-thz;
description
"The DWDM fixed-grid channel frequency in THz,
e.g. 193.12500";
reference
"RFC6205";
}
}
case cwdm {
leaf channel-wavelength {
type uint32;
units nm;
description
"The CWDM wavelength in nanometer, e.g. 1511";
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 of super channel";
case single {
leaf channel-freq {
type frequency-thz;
description
"The DWDM fixed-grid channel frequency in THz,
e.g. 193.12500";
}
}
case super {
leaf-list subcarrier-channels {
type frequency-thz;
description
"List of subcarrier channels for super channel.";
}
}
}
}
case cwdm {
leaf channel-wavelength {
type uint32;
units nm;
description
"The CWDM wavelength in nanometer, e.g. 1511";
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
" WSON 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 central-frequency {
type frequency-thz;
description
"The DWDM flex-grid channel central frequency
in THz, e.g. 193.12500.";
reference
"RFC7698";
}
}
grouping flex-grid-channel {
description "Flex-grid channel grouping.";
leaf central-frequency {
type frequency-thz;
description
"Flex-grid central frequency in THz, e.g. 193.12500.";
reference
"RFC7698";
}
leaf slot-width {
type frequency-ghz;
description
"Flex-grid The DWDM slot width in GHz, e.g. 50, 100, 150.";
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-channels {
key central-frequency;
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 frequency-ghz;
default 6.25;
description
"It is the spacing between allowed nominal central
frequencies and it is set to 6.25 GHz";
reference
"RFC7698";
}
leaf slot-width-granularity {
type frequency-ghz;
default 12.5;
description
"Minimum space between slot widths";
reference
"RFC7698";
}
}
}
grouping flex-grid-label-step {
description "Label step information for flex grid";
leaf flex {
type identityref {
base dwdm-ch-spc-type;
}
description
"Label-step is the nominal central frequency granularity (GHz), e.g.,
6.25 GHz.";
reference
"RFC7698";
}
}
}