module ietf-layer1-types {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-layer1-types";
prefix "l1-types";
organization
"IETF CCAMP Working Group";
contact
"WG Web:
WG List:
Editor: Haomian Zheng
Editor: Italo Busi
";
description
"This module defines Layer 1 types. The model fully conforms
to the Network Management Datastore Architecture (NMDA).
Copyright (c) 2020 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
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
revision "2020-03-09" {
description
"Initial Version";
reference
"RFC XXXX: A YANG Data Model for Layer 1 Types";
// RFC Editor: replace XXXX with actual RFC number, update date
// information and remove this note
}
typedef otn-tpn
{
type uint16 {
range "1..4095";
}
description
"Tributary Port Number for OTN. ";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
typedef otn-ts
{
type uint16 {
range "1..4095";
}
description
"Tributary Slot for OTN. ";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
typedef otn-label-range-type {
type enumeration {
enum trib-slot {
description
"Defines a range of OTN tributary slots. ";
}
enum trib-port {
description
"Defines a range of OTN tributary ports. ";
}
}
description
"Defines the type of OTN label range: TS or TPN. ";
}
typedef gfp-k {
type enumeration {
enum 2 {
description
"The ODU2.ts rate (1,249,177.230 kbit/s) is used
to compute the rate of an ODUflex(GFP,n,2). ";
}
enum 3 {
description
"The ODU3.ts rate (1,254,470.354 kbit/s) is used
to compute the rate of an ODUflex(GFP,n,3). ";
}
enum 4 {
description
"The ODU4.ts rate (1,301,467.133 kbit/s) is used
to compute the rate of an ODUflex(GFP,n,4). ";
}
}
description
"The ODUk.ts used to compute the rate of an ODUflex(GFP,n,k)";
reference
"Table 7-8 and L-7 of G.709";
}
typedef flexe-client-rate {
type union {
type uint16;
type enumeration {
enum "10G" {
description
"Represents a 10G FlexE Client signal (s=2)";
}
enum "40G" {
description
"Represents a 40G FlexE Client signal (s=8)";
}
}
}
description
"The FlexE Client signal rate (s x 5,156,250.000 kbit/s)
used to compute the rate of an ODUflex(IMP, s).
Valid values for s are s=2 (10G), s=4 (40G) and
s=5 x n (n x 25G).
In the first two cases an enumeration value
(either 10G or 40G) is used, while in the latter case
the value of n is used";
reference
"Table 7-2 of G.709";
}
identity tributary-slot-granularity {
description
"Tributary slot granularity";
reference
"G.709/Y.1331, February 2016: Interfaces for the Optical
Transport Network (OTN)";
}
identity tsg-1.25G {
base tributary-slot-granularity;
description
"1.25G tributary slot granularity";
}
identity tsg-2.5G {
base tributary-slot-granularity;
description
"2.5G tributary slot granularity";
}
identity tsg-5G {
base tributary-slot-granularity;
description
"5G tributary slot granularity";
}
identity odu-type {
description
"Base identity for protocol framing used by tributary signals.";
}
identity ODU0 {
base odu-type;
description
"ODU0 protocol (1.24Gb/s). ";
reference "RFC7139/ITU-T G.709";
}
identity ODU1 {
base odu-type;
description
"ODU1 protocol (2.49Gb/s).";
reference "RFC7139/ITU-T G.709";
}
identity ODU1e {
base odu-type;
description
"ODU1e protocol (10.35Gb/s).";
reference "RFC7963/ITU-T G.sup43";
}
identity ODU2 {
base odu-type;
description
"ODU2 protocol (10.03Gb/s).";
reference "RFC7139/ITU-T G.709";
}
identity ODU2e {
base odu-type;
description
"ODU2e protocol (10.39Gb/s).";
reference "RFC7139/ITU-T G.709";
}
identity ODU3 {
base odu-type;
description
"ODU3 protocol (40.31Gb/s).";
reference "RFC7139/ITU-T G.709";
}
identity ODU3e1 {
base odu-type;
description
"ODU3e1 protocol (41.77Gb/s).";
reference "RFC7963/ITU-T G.sup43";
}
identity ODU3e2 {
base odu-type;
description
"ODU3e2 protocol (41.78Gb/s).";
reference "RFC7963/ITU-T G.sup43";
}
identity ODU4 {
base odu-type;
description
"ODU4 protocol (104.79Gb/s).";
reference "RFC7139/ITU-T G.709";
}
identity ODUflex {
base odu-type;
description
"ODUflex protocol (flexibile bit rate, not resizable).
It could be used for any type of ODUflex, including
ODUflex(CBR), ODUflex(GFP), ODUflex(GFP,n,k), ODUflex(IMP,s),
ODUflex(IMP) and ODUflex(FlexE-aware).";
reference "RFC7139/ITU-T G.709";
}
identity ODUflex-resizable {
base odu-type;
description
"ODUflex protocol (flexibile bit rate, resizable).
It could be used only for ODUflex(GFP,n,k).";
reference "RFC7139/ITU-T G.709 and ITU-T G.7044";
}
identity client-signal {
description
"Base identity from which specific client signals for the
tunnel are derived";
}
identity ETH-1Gb {
base client-signal;
description
"Client signal type of 1GbE";
reference "RFC7139/ITU-T G.709";
}
identity ETH-10Gb-LAN {
base client-signal;
description
"Client signal type of ETH-10Gb-LAN (10.3 Gb/s)";
reference "RFC7139/ITU-T G.709/IEEE 802.3 Clause 49";
}
identity ETH-10Gb-WAN {
base client-signal;
description
"Client signal type of ETH-10Gb-WAN (9.95 Gb/s)";
reference "RFC7139/ITU-T G.709/IEEE 802.3 Clause 50";
}
identity ETH-40Gb {
base client-signal;
description
"Client signal type of 40GbE";
reference "RFC7139/ITU-T G.709";
}
identity ETH-100Gb {
base client-signal;
description
"Client signal type of 100GbE";
reference "RFC7139/ITU-T G.709";
}
identity STM-1 {
base client-signal;
description
"Client signal type of STM-1";
reference "RFC7139/ITU-T G.709";
}
identity STM-4 {
base client-signal;
description
"Client signal type of STM-4";
reference "RFC7139/ITU-T G.709";
}
identity STM-16 {
base client-signal;
description
"Client signal type of STM-16";
reference "RFC7139/ITU-T G.709";
}
identity STM-64 {
base client-signal;
description
"Client signal type of STM-64";
reference "RFC7139/ITU-T G.709";
}
identity STM-256 {
base client-signal;
description
"Client signal type of STM-256";
reference "RFC7139/ITU-T G.709";
}
identity OC-3 {
base client-signal;
description
"Client signal type of OC3";
reference "Telcordia GR-253-CORE";
}
identity OC-12 {
base client-signal;
description
"Client signal type of OC12";
reference "Telcordia GR-253-CORE";
}
identity OC-48 {
base client-signal;
description
"Client signal type of OC48";
reference "Telcordia GR-253-CORE";
}
identity OC-192 {
base client-signal;
description
"Client signal type of OC192";
reference "Telcordia GR-253-CORE";
}
identity OC-768 {
base client-signal;
description
"Client signal type of OC768";
reference "Telcordia GR-253-CORE";
}
identity FC-100 {
base client-signal;
description
"Client signal type of Fibre Channel FC-100";
reference "RFC4328/RFC7139";
}
identity FC-200 {
base client-signal;
description
"Client signal type of Fibre Channel FC-200";
reference "RFC4328/RFC7139";
}
identity FC-400 {
base client-signal;
description
"Client signal type of Fibre Channel FC-400";
reference "RFC4328/RFC7139";
}
identity FC-800 {
base client-signal;
description
"Client signal type of Fibre Channel FC-800";
reference "RFC4328/RFC7139";
}
identity FC-1200 {
base client-signal;
description
"Client signal type of Fibre Channel FC-1200";
reference "RFC4328/RFC7139";
}
identity FC-1600 {
base client-signal;
description
"Client signal type of Fibre Channel FC-1600";
reference "RFC4328/RFC7139";
}
identity FC-3200 {
base client-signal;
description
"Client signal type of Fibre Channel FC-3200";
reference "RFC4328/RFC7139";
}
identity FICON-4G {
base client-signal;
description
"Client signal type of Fibre Connection 4G";
reference "RFC4328/RFC7139";
}
identity FICON-8G {
base client-signal;
description
"Client signal type of Fibre Connection 8G";
reference "RFC4328/RFC7139";
}
identity coding-func {
description
"Base identity from which coding function is derived.";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ETH-1000X {
base "coding-func";
description
"PCS clause 36 coding function that corresponds to
1000BASE-X";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ETH-10GW {
base "coding-func";
description
"PCS clause 49 and WIS clause 50 coding func that
corresponds to 10GBASE-W (WAN PHY)";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ETH-10GR {
base "coding-func";
description
"PCS clause 49 coding function that corresponds to
10GBASE-R (LAN PHY)";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ETH-40GR {
base "coding-func";
description
"PCS clause 82 coding function that corresponds to
40GBASE-R";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ETH-100GR {
base "coding-func";
description
"PCS clause 82 coding function that corresponds to
100GBASE-R";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity optical-interface-func {
description
"base identity from which optical-interface-function is
derived.";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity SX-PMD-1000 {
base "optical-interface-func";
description
"SX-PMD-clause-38 Optical Interface function for
1000BASE-X PCS-36";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity LX-PMD-1000 {
base "optical-interface-func";
description
"LX-PMD-clause-38 Optical Interface function for
1000BASE-X PCS-36";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity LX10-PMD-1000 {
base "optical-interface-func";
description
"LX10-PMD-clause-59 Optical Interface function for
1000BASE-X PCS-36";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity BX10-PMD-1000 {
base "optical-interface-func";
description
"BX10-PMD-clause-59 Optical Interface function for
1000BASE-X PCS-36";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity LW-PMD-10G {
base "optical-interface-func";
description
"LW-PMD-clause-52 Optical Interface function for
10GBASE-W PCS-49-WIS-50";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity EW-PMD-10G {
base "optical-interface-func";
description
"EW-PMD-clause-52 Optical Interface function for
10GBASE-W PCS-49-WIS-50";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity LR-PMD-10G {
base "optical-interface-func";
description
"LR-PMD-clause-52 Optical Interface function for
10GBASE-R PCS-49";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ER-PMD-10G {
base "optical-interface-func";
description
"ER-PMD-clause-52 Optical Interface function for
10GBASE-R PCS-49";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity LR4-PMD-40G {
base "optical-interface-func";
description
"LR4-PMD-clause-87 Optical Interface function for
40GBASE-R PCS-82";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ER4-PMD-40G {
base "optical-interface-func";
description
"ER4-PMD-clause-87 Optical Interface function for
40GBASE-R PCS-82";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity FR-PMD-40G {
base "optical-interface-func";
description
"FR-PMD-clause-89 Optical Interface function for
40GBASE-R PCS-82";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity LR4-PMD-100G {
base "optical-interface-func";
description
"LR4-PMD-clause-88 Optical Interface function for
100GBASE-R PCS-82";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity ER4-PMD-100G {
base "optical-interface-func";
description
"ER4-PMD-clause-88 Optical Interface function for
100GBASE-R PCS-82";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity service-performance-metric {
description
"Base identity of service-specific performance metric";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity one-way-delay {
base "service-performance-metric";
description "one way delay.";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity one-way-errored-second {
base "service-performance-metric";
description "one way errored second";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity one-way-severely-errored-second {
base "service-performance-metric";
description "one way severely errored second";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity one-way-unavailable-second {
base "service-performance-metric";
description "one way unavailable second";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
identity one-way-availability {
base "service-performance-metric";
description "one way availability";
reference "MEF63: Subscriber Layer 1 Service Attributes";
}
grouping otn-link-bandwidth {
description "link bandwidth attributes for OTN";
list odulist {
key "odu-type";
description
"OTN bandwidth definition";
leaf odu-type {
type identityref {
base l1-types:odu-type;
}
description "ODU type";
}
leaf number {
type uint16;
description "Number of ODUs";
}
}
}
grouping otn-path-bandwidth {
description
"path bandwidth attributes for OTN";
leaf odu-type {
type identityref {
base l1-types:odu-type;
}
description "ODU type";
}
choice oduflex-type {
when "odu-type = 'ODUflex' or 'ODUflex-resizable'" {
description
"applicable when odu-type is ODUflex or ODUflex-resizable";
}
description
"Types of ODUflex used to compute the ODUflex
nominal bit rate.";
reference
"Table 7-2 of G.709";
case generic {
leaf nominal-bit-rate {
type uint64;
units "bps";
mandatory true;
description
"Nominal ODUflex bit rate.";
}
}
case cbr {
leaf client-type {
type identityref {
base l1-types:client-signal;
}
mandatory true;
description
"The CBR client signal for an ODUflex(CBR).";
}
}
case gfp-n-k {
leaf gfp-n {
type uint8 {
range "1..80";
}
mandatory true;
description
"The value of n for an ODUflex(GFP,n,k).";
reference
"Tables 7-8 and L-7 of G.709";
}
leaf gfp-k {
type l1-types:gfp-k;
description
"The value of k for an ODUflex(GFP,n,k).
If omitted, it is calculated from the value of gfp-n
as described in Table 7-8 of G.709";
reference
"Tables 7-8 and L-7 of G.709";
}
}
case flexe-client {
leaf flexe-client {
type l1-types:flexe-client-rate;
mandatory true;
description
"The rate of the FlexE-client for an ODUflex(IMP,s).";
}
}
case flexe-aware {
leaf flexe-aware-n {
type uint16;
mandatory true;
description
"The rate of FlexE-aware client signal
for ODUflex(FlexE-aware)";
}
}
case packet {
leaf opuflex-payload-rate {
type uint64;
units "Kbps";
mandatory true;
description
"Either the GFP-F encapsulated packet client nominal
bit rate for an ODUflex(GFP) or the 64b/66b encoded
packet client nominal bit rate for an ODUflex(IMP).";
}
}
}
}
grouping otn-label-range-info {
description
"label range information for OTN, is dependent on the
range-type, must be used together with the following
groupings: otn-label-start-end and otn-label-step. ";
leaf range-type {
type l1-types:otn-label-range-type;
description "The type of range (e.g., TPN or TS)
to which the label range applies";
}
leaf tsg {
type identityref {
base l1-types:tributary-slot-granularity;
}
description
"Tributary slot granularity (TSG) to which the label range
applies.
This leaf shall be present when the range-type is TS;
This leaf can be omitted when mapping an ODUk over an OTUk
Link. In this case the range-type is tpn, with only one entry
(ODUk), and the tpn range has only one value (1). ";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf-list odu-type-list {
type identityref {
base odu-type;
}
description
"List of ODU types to which the label range applies.
An Empty odu-type-list means that the label range
applies to all the supported ODU types.";
}
leaf priority {
type uint8;
description
"Priority in Interface Switching Capability
Descriptor (ISCD).";
reference "RFC4203.";
}
}
grouping otn-label-start-end {
description
"The OTN label-start or label-end used to specify an OTN label
range. this grouping is dependent on the range-type,
must be used together with the following groupings:
otn-label-range-info and otn-label-step. ";
choice range-type {
description
"OTN label range type, either TPN range or TS range";
case trib-port {
leaf otn-tpn {
when "../../../range-type = 'trib-port'" {
description
"valid only when range-type represented by trib-port";
}
type l1-types:otn-tpn;
description
"Tributary Port Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
case trib-slot {
leaf otn-ts {
when "../../../range-type = 'trib-slot'" {
description
"valid only when range-type represented by trib-slot";
}
type l1-types:otn-ts;
description
"Tributary Slot Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
}
}
grouping otn-label-hop {
description "OTN Label. ";
reference "RFC7139, section 6. ";
leaf otn-tpn {
type l1-types:otn-tpn;
description
"Tributary Port Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
leaf tsg {
type identityref {
base l1-types:tributary-slot-granularity;
}
description "Tributary slot granularity.";
reference
"G.709/Y.1331, February 2016: Interfaces for the
Optical Transport Network (OTN)";
}
leaf ts-list {
type string {
pattern "([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?"
+ "(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)";
}
description
"A list of available tributary slots ranging
between 1 and 4095. If multiple values or
ranges are given, they all MUST be disjoint
and MUST be in ascending order.
For example 1-20,25,50-1000. ";
reference
"RFC 7139: GMPLS Signaling Extensions for Control
of Evolving G.709 Optical Transport Networks";
}
}
grouping otn-label-step {
description
"Label step for OTN, is dependent on the range-type,
must be used together with the following groupings:
otn-label-range-info and otn-label-start-end. ";
choice range-type {
description
"OTN label range type, either TPN range or TS range";
case trib-port {
leaf otn-tpn {
when "../../../range-type = 'trib-port'" {
description
"valid only when range-type represented by trib-port";
}
type l1-types:otn-tpn;
description
"Label step which represents possible increments for
Tributary Port Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of
Evolving G.709 Optical Transport Networks.";
}
}
case trib-slot {
leaf otn-ts {
when "../../../range-type = 'trib-slot'" {
description
"valid only when range-type represented by trib-slot";
}
type l1-types:otn-ts;
description
"Label step which represents possible increments for
Tributary Slot Number.";
reference
"RFC7139: GMPLS Signaling Extensions for Control of Evolving
G.709 Optical Transport Networks.";
}
}
}
}
}