Skip to main content

Common YANG Data Types for Layer 1 Networks
draft-ietf-ccamp-layer1-types-18

Document Type Active Internet-Draft (ccamp WG)
Authors Haomian Zheng , Italo Busi
Last updated 2024-02-26 (Latest revision 2024-02-23)
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Yang Validation 0 errors, 0 warnings
Reviews
Additional resources Yang catalog entry for ietf-layer1-types@2020-10-27.yang
Yang impact analysis for draft-ietf-ccamp-layer1-types
Mailing list discussion
Stream WG state Submitted to IESG for Publication
Associated WG milestone
Jul 2022
Submit YANG model of Layer 1 Types to IESG for review
Document shepherd Daniel King
Shepherd write-up Show Last changed 2023-03-06
IESG IESG state RFC Ed Queue
Action Holders
(None)
Consensus boilerplate Yes
Telechat date (None)
Responsible AD Roman Danyliw
Send notices to dceccare@cisco.com, daniel@olddog.co.uk
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
IANA expert review state Expert Reviews OK
RFC Editor RFC Editor state MISSREF
Details
draft-ietf-ccamp-layer1-types-18
CCAMP Working Group                                             H. Zheng
Internet-Draft                                                   I. Busi
Intended status: Standards Track                     Huawei Technologies
Expires: 26 August 2024                                 23 February 2024

              Common YANG Data Types for Layer 1 Networks
                    draft-ietf-ccamp-layer1-types-18

Abstract

   This document defines a collection of common common data types,
   identities, and groupings in the YANG data modeling language.  These
   derived common common data types, identities, and groupings are
   intended to be imported by modules that model Layer 1 configuration
   and state capabilities.  The Layer 1 types are representative of
   Layer 1 client signals applicable to transport networks, such as
   Optical Transport Networks (OTN).  The Optical Transport Network
   (OTN) data structures are included in this document as Layer 1 types.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 26 August 2024.

Zheng & Busi             Expires 26 August 2024                 [Page 1]
Internet-Draft            L1 Common YANG Types             February 2024

Copyright Notice

   Copyright (c) 2024 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology and Notations . . . . . . . . . . . . . . . . . .   3
   3.  Prefix in Data Node Names . . . . . . . . . . . . . . . . . .   4
   4.  Layer 1 Types Overview  . . . . . . . . . . . . . . . . . . .   4
     4.1.  Relationship with other Modules . . . . . . . . . . . . .   4
     4.2.  Content in Layer 1 Type Module  . . . . . . . . . . . . .   5
     4.3.  OTN Label and Label Range . . . . . . . . . . . . . . . .   7
     4.4.  ODUflex . . . . . . . . . . . . . . . . . . . . . . . . .   8
       4.4.1.  Resizable ODUflex . . . . . . . . . . . . . . . . . .  11
   5.  YANG Tree for Layer1 Types  . . . . . . . . . . . . . . . . .  12
   6.  YANG Code for Layer1 Types  . . . . . . . . . . . . . . . . .  13
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  41
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  42
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  43
   10. Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  43
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  43
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  43
     11.2.  Informative References . . . . . . . . . . . . . . . . .  46
   Appendix A.  Examples of OTN Label Ranges . . . . . . . . . . . .  48
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  54

1.  Introduction

   This document specifies common data types, groupings, and identities
   for use in YANG [RFC7950] data models of Layer 1 networks.  The
   derived types and groupings apply to Traffic Engineered (TE) Layer 1
   networks.

   The Layer 1 (L1) Optical Transport Network (OTN) is specified in
   [RFC7062].  The corresponding routing and signaling protocols are
   specified in [RFC7138] and [RFC7139].  The types and groupings
   defined in this document are consistent with those documents, and can

Zheng & Busi             Expires 26 August 2024                 [Page 2]
Internet-Draft            L1 Common YANG Types             February 2024

   be imported into other Layer 1 data models, including but not limited
   to, [I-D.ietf-ccamp-otn-topo-yang],
   [I-D.ietf-ccamp-otn-tunnel-model],
   [I-D.ietf-ccamp-client-signal-yang] and [I-D.ietf-ccamp-l1csm-yang].

   The document is consistent with other specifications, including
   [MEF63] for Layer 1 service attributes, [ITU-T_G.709] and
   [ITU-T_G.Sup43] for OTN data plane definitions.

   The YANG data model in this document only defines groupings, typedef,
   and identities.  It does not define any configuration or state data,
   as specified in the Network Management Datastore Architecture defined
   in [RFC8342].

2.  Terminology and Notations

   Specific terms used within this document are as follows:

   OTN:  Optical Transport Network.

   ODU:  Optical Data Unit.  An ODU has the frame structure and
      overhead, as defined in Figure 12-1 of [ITU-T_G709].  ODUs can be
      formed in two ways: a) by encapsulating a single non-OTN client,
      such as SONET/SDH (Synchronous Optical Network / Synchronous
      Digital Hierarchy) or Ethernet, or b) by multiplexing lower-rate
      ODUs.  In general, the ODU layer represents the path layer in OTN.
      The only exception is the ODUCn signal (defined below), which is
      defined to be a section-layer signal.  In the classification based
      on bitrates of the ODU signals, ODUs are of two types: fixed rate
      and flexible rate.  Flexible-rate ODUs, called "ODUflex", have a
      rate that is 239/238 times the bitrate of the client signal they
      encapsulate.

   ODUCn:  Optical Data Unit-C.  This signal has a bandwidth of
      approximately 100 Gbit/s and is of a slightly higher bitrate than
      the fixed rate ODU4 signal.  This signal has the format defined in
      Figure 12-1 of [ITU-T_G.709].  This signal represents the building
      block for constructing a higher-rate signal called "ODUCn".

   ODUk:  Optical Data Unit-k, where k is one of {0, 1, 2, 2e, 3, 4}.
      The term "ODUk" refers to an ODU whose bitrate is fully specified
      by the index k.  The bitrates of the ODUk signal for k = {0, 1, 2,
      2e, 3, 4} are approximately 1.25 Gbit/s, 2.5 Gbit/s, 10 Gbit/s,
      10.3 Gbit/s, 40 Gbit/s, and 100 Gbit/s, respectively.

   LO ODU:  Lower Order ODU.  The LO ODUj (j can be 0, 1, 2, 2e, 3, 4,

Zheng & Busi             Expires 26 August 2024                 [Page 3]
Internet-Draft            L1 Common YANG Types             February 2024

      or flex) represents the container transporting a client of the OTN
      that is either directly mapped into an OTUk (k = j) or multiplexed
      into a server HO ODUk (k > j) container.

   HO ODU:  Higher Order ODU.  The HO ODUk (k can be 1, 2, 2e, 3, or 4)
      represents the entity transporting a multiplex of LO ODUj
      tributary signals in its OPUk area.

   The reader may also refer to [RFC7062] and [RFC9376] for other key
   terms used in this document.  The terminology for describing YANG
   data models can be found in [RFC7950].

3.  Prefix in Data Node Names

   In this document, the names of data nodes and other data model
   objects are prefixed using the standard prefix associated with the
   corresponding YANG imported modules, as shown in Table 1.

      +-------------+---------------------------+----------------------+
      | Prefix      | YANG module               | Reference            |
      +-------------+---------------------------+----------------------+
      | rt-types    | ietf-routing-types        | [RFC8294]            |
      +-------------+---------------------------+----------------------+
      | l1-types    | ietf-layer1-types         | RFC XXXX             |
      +-------------+---------------------------+----------------------+
             Table 1: Prefixes and Corresponding YANG Modules

   RFC Editor Note: Please replace XXXX with the number assigned to the
   RFC once this draft becomes an RFC.

4.  Layer 1 Types Overview

4.1.  Relationship with other Modules

   This document defines one YANG module for common Layer 1 types.  The
   aim is to specify common Layer 1 TE types (i.e., typedef, identity,
   grouping) that can be imported by layer 1 specific technology, for
   example, layer 1 OTN, in its technology-specific modules, such as
   topology and tunnels.  It is worth noting that the generic traffic-
   engineering (TE) types module is specified as ietf-te-types in
   [I-D.ietf-teas-rfc8776-update], and both YANG modules, ietf-te-types
   and ietf-layer1-types, will need importing when the OTN is
   configured.  Generic attributes such as te-bandwidth and te-label,
   which are specified as ietf-te-types in
   [I-D.ietf-teas-rfc8776-update], need to be augmented with the OTN-

Zheng & Busi             Expires 26 August 2024                 [Page 4]
Internet-Draft            L1 Common YANG Types             February 2024

   specific attributes, such as odu-type, which are specified as ietf-
   layer1-types in this document, when OTN is configured.

4.2.  Content in Layer 1 Type Module

   The module ietf-layer1-types contains the following YANG reusable
   types and groupings:

   tributary-slot-granularity:

      This specifies the granularity levels for tributary slots utilized
      by the server layer Optical Data Unit (ODU).  Specifically, it
      addresses how ODU links, including both Higher Order Optical Data
      Unit-k (HO ODUk) and Optical Data Unit-Cn (ODUCn), accommodate
      client layer ODUs within Label Switched Paths (LSPs).  These
      client layer ODUs could be Lower Order Optical Data Unit-j (LO
      ODUj) or ODUk, respectively.  The specified granularity levels for
      these configurations are 1.25G, 2.5G, and 5G.

   odu-type:

      This specifies the type of ODUk LSP, including the types specified
      in [ITU-T_G.709] and [RFC7139].

      Since, as described in [RFC7963], [ITU-T_G.Sup43] does not
      guarantee interoperability in the data plane for these containers,
      the type of ODUk LSPs defined in [ITU-T_G.Sup43] and [RFC7963] can
      be defined in vendor-specific YANG modules using the odu-type
      identity, defined in this document, as the base.

   client-signal:

      This specifies the common Layer 1 client signal types, including
      ETH [IEEE_802.3], STM-n [ITU-T_G.707], OC [ANSI_T1.105] and Fiber
      Channel [ANSI_INCITS_230].  The input was based on the G-PID types
      specified in [RFC7139].

   otn-label-range-type:

      The label range type of OTN is represented in one of two ways,
      tributary slots (TS) and tributary port number (TPN), as specified
      in [RFC7139].  Two representations are enumerated in the otn-
      label-range-type.

   otn-link-bandwidth:

Zheng & Busi             Expires 26 August 2024                 [Page 5]
Internet-Draft            L1 Common YANG Types             February 2024

      This grouping defines the link bandwidth information, usually as
      the number of ODUs that can be supported by the link for each ODU
      type: for example an OTN link with 100G bandwidth can support
      either 1xODU4, 10xODU2 or 80xODU0.

      It is also used to represent the ODUflex resources available on a
      link, as described in Section 4.4.

      This grouping could be used in the OTN topology model for link
      bandwidth representation.  In general, all the bandwidth-related
      sections, which are defined in a generic module, e.g., using the
      groupings defined in [I-D.ietf-teas-rfc8776-update], need to be
      augmented with this grouping when used to represent the bandwidth
      of an OTN link.

   otn-path-bandwidth:

      This grouping defines the path bandwidth information, usually as
      the type of ODU (e.g., ODU0, ODU2, ODU4) being set up along the
      path.

      In the case of ODUflex paths, more information about the bandwidth
      of the ODUflex needs to be provided, as described in Section 4.4.

      This grouping could be used in the OTN topology model for path
      bandwidth representation as well as when setting up the OTN
      tunnel.  In general, all the bandwidth-related sections, which are
      defined in a generic module, e.g., using the groupings defined in
      [I-D.ietf-teas-rfc8776-update], need to be augmented with this
      grouping when used to represent the bandwidth of an OTN tunnel or
      path.

   otn-label-range-info:

      This grouping is used to augment the label-restriction list,
      defined in [I-D.ietf-teas-rfc8776-update], with OTN technology-
      specific attributes, as defined in Section 4.3.

   otn-label-start-end:

      This grouping is used to augment the label-start and label-end
      containers within the label-restriction list, defined in
      [I-D.ietf-teas-rfc8776-update], with OTN technology-specific
      attributes, as defined in Section 4.3.

   otn-label-step:

Zheng & Busi             Expires 26 August 2024                 [Page 6]
Internet-Draft            L1 Common YANG Types             February 2024

      This grouping is used to augment the label-step container within
      the label-restriction list, defined in
      [I-D.ietf-teas-rfc8776-update], with OTN technology-specific
      attributes, as defined in Section 4.3.

   otn-label-hop:

      This grouping is used to augment the label-hop container, defined
      in [I-D.ietf-teas-rfc8776-update], with OTN technology-specific
      attributes, as defined in Section 4.3.

   optical-interface-func:

      The optical interface function is specified in [MEF63].
      Identities that describe the functionality are specified to encode
      bits for transmission and to decode bits upon reception.

4.3.  OTN Label and Label Range

   As described in [RFC7139], the OTN label usually represents the
   Tributary Port Number (TPN) and the related set of Tributary Slots
   (TS) assigned to a client layer ODU LSP (LO ODUj or ODUk) on a given
   server layer ODU (HO-ODU or ODUCn, respectively) Link (e.g., ODU2 LSP
   over ODU3 Link).  Some special OTN label values are also defined for
   an ODUk LSP being set up over an OTUk Link.

   The same OTN label MUST be assigned to the same ODUk LSP at the two
   ends of an OTN Link.

   As described in [RFC7139], TPN can be a number from 1 to 4095 and TS
   are numbered from 1 to 4095, although the actual maximum values
   depend on the type of server layer ODU.  For example, a server layer
   ODU4 provides 80 tributary slots (numbered from 1 to 80), and the TPN
   values can be any number from 1 to 80.

   The OTN Label Range specifies the available values for the Tributary
   Port Number (TPN) and Tributary Slots (TS) for setting up ODUk Label
   Switched Paths (LSPs) over an OTN Link, with priorities as defined in
   [RFC4203].  This range is established according to the guidelines in
   [RFC7139].

   The OTN Label Range is defined by the label-restriction list, defined
   in [I-D.ietf-teas-rfc8776-update], which, for OTN, SHOULD be
   augmented using the otn-label-range-info grouping.

Zheng & Busi             Expires 26 August 2024                 [Page 7]
Internet-Draft            L1 Common YANG Types             February 2024

   Each entry in the label-restriction list represents either the range
   of the available TPN values or the range of the available TS values:
   the range-type attribute in the otn-label-range-info grouping defines
   the type of range for each list entry.

   Each entry of the label-restriction list, as defined in
   [I-D.ietf-teas-rfc8776-update], defines a label-start, a label-end, a
   label-step, and a range-bitmap.  The label-start and label-end
   definitions for OTN SHOULD be augmented using the otn-label-start-end
   grouping.  The label-step definition for OTN SHOULD be augmented
   using the otn-label-step grouping.  It is expected that the otn-
   label-step will always be equal to its default value (i.e., 1), which
   is defined in [I-D.ietf-teas-rfc8776-update].

   As described in [RFC7139], in some cases, the TPN assignment rules
   are flexible (e.g., ODU4 Link) while in other cases the TPN
   assignment rules are fixed (e.g., ODU1 Link).  In the former case,
   both TPN and TS ranges are reported, while in the latter case, the
   TPN range is not reported which indicates that the TPN SHALL be set
   equal to the TS number assigned to the ODUk LSP.

   As described in [RFC7139], in some cases, the TPN assignment rules
   depend on the TS Granularity (e.g., ODU2 or ODU3 Links).  Different
   entries in the label-restriction list will report different TPN
   ranges for each TS granularity supported by the link, as indicated by
   the tsg attribute in the otn-label-range-info grouping.

   As described in [RFC7139], in some cases the TPN ranges are different
   for different types of ODUk LSPs.  For example, on an ODU2 Link with
   1.25G TS granularity, the TPN range is 1-4 for ODU1 but 1-8 for ODU0
   and ODUflex.  Therefore, different entries in the label-restriction
   list will report different TPN ranges for a different set of ODUk
   types, as indicated by the odu-type-list in the otn-label-range-info
   grouping.

   Appendix A provides some examples of how the TPN and TS label ranges
   described in Table 3 and Table 4 of [RFC7139] can be represented in
   YANG using the groupings defined in this document.

4.4.  ODUflex

   ODUflex is a type of ODU with a flexible bit rate which is configured
   when setting up an ODUflex LSP.

   [ITU-T_G.709] defines six types of ODUflex: ODUflex(CBR),
   ODUflex(GFP), ODUflex(GFP,n,k), ODUflex(IMP), ODUflex(IMP,s), and
   ODUflex(FlexE-aware).

Zheng & Busi             Expires 26 August 2024                 [Page 8]
Internet-Draft            L1 Common YANG Types             February 2024

   The main difference between these types of ODUflex is the formula
   used to calculate the nominal bit rate of the ODUflex, as described
   in Table 7-2 of [ITU-T_G.709].  A YANG choice has been defined to
   describe these cases:

          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  l1-types:gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client
             |          l1-types:flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union

   The OPUflex payload rate can be expressed either in a floating point
   notation or a scientific notation, as defined in [IEEE_754] and
   [ISO_IEC_9899_1999].

   The 'generic' case has been added to allow the ODUflex nominal bit
   rate to be defined independently of the type of ODUflex.  This could
   be useful for forward compatibility in the transit domain/nodes where
   the set up of ODUflex LSPs does not depend on the ODUflex type.

   In order to simplify interoperability the 'generic' case SHOULD be
   used only when needed; the ODUflex type-specific case SHOULD be used
   whenever possible.

   The 'cbr' case is used for Constant Bit Rate (CBR) client signals.
   The client-type indicates which CBR client signal is carried by the
   ODUflex and, implicitly, the client signal bit rate, which is then
   used to calculate the ODUflex(CBR) nominal bit rate as described in
   Table 7-2 of [ITU-T_G.709].

Zheng & Busi             Expires 26 August 2024                 [Page 9]
Internet-Draft            L1 Common YANG Types             February 2024

   The 'gfp-n-k' case is used for GFP-F mapped client signals based on
   ODUk.ts and 'n' 1.25G tributary slots. 'gfp-k' defines the nominal
   bit-rate of the ODUk.ts which, together with the value of 'gfp-n', is
   used to calculate the ODUflex(GFP,n,k) nominal bit rate as described
   in Table 7-8 and Table L-7 of [ITU-T_G.709] . With a few exceptions,
   shown in Table L-7 of [ITU-T_G.709], the nominal bit-rate of the
   ODUk.ts could be inferred from the value of 'n', as shown in
   Table 7-8 of [ITU-T_G.709] and therefore the 'gfp-k' is optional.

   The 'flexe-client' case is used for Idle Mapping Procedure (IMP)
   mapped FlexE client signals, The 'flexe-client' represents the type
   of FlexE client carried by the ODUflex which implicitly defines the
   value of 's' used to calculate the ODUflex(s) nominal bit rate as
   described in Table 7-2 of [ITU-T_G.709].  The '10G' and '40G'
   enumeration values are used for 10G and 40G FlexE clients to
   implicitly define the values of s=2 and s=8.  For the 'n x 25G' FlexE
   Clients the value of 'n' is used to define the value of s=5 x n.

   The 'flexe-aware' case is used for FlexE-aware client signals.  The
   flexe-aware-n represents the value n (n = n1 + n2 + ... + np) which
   is used to calculate the ODUflex(FlexE-aware) nominal bit rate as
   described in Table 7-2 of [ITU-T_G.709].

   The 'packet' case is used for both the GFP-F mapped client signals
   and the IMP mapped client signals.  The opuflex-payload-rate is
   either the GFP-F encapsulated-packet client nominal bit rate or the
   64b/66b encoded-packet client nominal bit rate.  The calculation of
   ODUflex(GFP) nominal bit rate is defined in Section 12.2.5 of
   [ITU-T_G.709], and the calculation of ODUflex(IMP) nominal bit rate
   is defined in Section 12.2.6 of [ITU-T_G.709].  The same formula is
   used in both cases.

   Sections 5.1 and 5.2 of [RFC7139] defines two rules to compute the
   number of tributary slots to be allocated to ODUflex(CBR) and
   ODUflex(GFP) LSPs when carried over a HO-ODUk link.  According to
   Section 19.6 of [ITU-T_G.709], the rules in Section 5.2 apply only to
   ODUflex(GFP,n,k) while the rules defined in Section 5.1 apply to any
   other ODUflex type, including, but not limited, to ODUflex(CBR).
   Section 20.5 of [ITU-T_G.709] defines the rules for computing the
   number of tributary slots to be allocated to ODUflex LSPs when
   carried over an ODUCn link.

   In order to compute the number of tributary slots required to set up
   an ODUflex LSP, or ODUflex LSPs, the type of Optical channel Data
   Tributary Unit (ODTU) is reported for the OTN Links or the OTN LTPs
   (Link Termination Points).

Zheng & Busi             Expires 26 August 2024                [Page 10]
Internet-Draft            L1 Common YANG Types             February 2024

   Following the [ITU-T_G.709] definitions, the rules defined for
   ODUflex(GFP,n,k) are used only when the 'gfp-n-k' case is used.  In
   all the other cases, including the (generic) case, the rules defined
   for any other ODUflex type are used.

   The number of available ODUs, defined for each ODUk type, including
   ODUflex, does not provide sufficient information to infer the OTN
   link bandwidth availability for ODUflex LSPs.

   The OTN link bandwidth definitions for ODUflex LSPs also depend on
   the number of tributary slots (TS) and on the type of ODTU used to
   compute the number of TS required to set up an ODUflex LSP, according
   to the rules defined in Section 19.6 and Section 20.5 of
   [ITU-T_G.709], as described above.

   Similarly, bandwidth constraints for ODUflex LSPs of the OTN
   connectivity matrix and of the OTN local link connectivity entries
   depend also on the number of tributary slots (TS) and on the type of
   ODTU used to compute the number of TS required to set up an ODUflex
   LSP along the underlay path, according to the rules defined in
   Section 19.6 and Section 20.5 of [ITU-T_G.709], as described above.
   For example, with reference to Figure 1 of [RFC7139], the
   connectivity matrix entry or the local link connectivity entry
   corresponding to the A-C underlay path, would report 2 Tributary
   Slots (TS) with ODTU4.ts ODTU type.

4.4.1.  Resizable ODUflex

   Resizable ODUflex is a special type of ODUflex that supports the
   procedures defined in [ITU-T_G.7044] for hitless resizing of the
   ODUflex nominal bit rate.

   Two odu-type identities have been defined for ODUflex:

   *  The ODUflex identity, which is used with any type of non-resizable
      ODUflex, as defined in Table 7-2 of [ITU-T_G.709].

   *  The ODUflex-resizable identity, which is used only with resizable
      ODUflex(GFP,n,k).

   These two identities are used to identify whether an ODUflex(GFP,n,k)
   LSP does or does not support the [ITU-T_G.7044] hitless resizing
   procedures.  They also identify whether an OTN link only supports the
   set up of non-resizable ODUflex LSPs or also supports the set up of
   resizable ODUflex(GFP,n,k) LSP but with different capabilities (e.g.,
   a lower number of LSPs).

Zheng & Busi             Expires 26 August 2024                [Page 11]
Internet-Draft            L1 Common YANG Types             February 2024

5.  YANG Tree for Layer1 Types

   module: ietf-layer1-types

     grouping otn-link-bandwidth:
       +-- otn-bandwidth
          +-- odulist* [odu-type]
             +-- odu-type?    identityref
             +-- number?      uint16
             +-- ts-number?   uint16
     grouping otn-path-bandwidth:
       +-- otn-bandwidth
          +-- odu-type?                     identityref
          +-- (oduflex-type)?
             +--:(generic)
             |  +-- nominal-bit-rate        union
             +--:(cbr)
             |  +-- client-type             identityref
             +--:(gfp-n-k)
             |  +-- gfp-n                   uint8
             |  +-- gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +-- flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +-- flexe-aware-n           uint16
             +--:(packet)
                +-- opuflex-payload-rate    union
     grouping otn-max-path-bandwidth:
       +-- otn-bandwidth
          +-- odu-type?        identityref
          +-- max-ts-number?   uint16
     grouping otn-label-range-info:
       +-- otn-label-range
          +-- range-type?      otn-label-range-type
          +-- tsg?             identityref
          +-- odu-type-list*   identityref
          +-- priority?        uint8
     grouping otn-label-start-end:
       +-- otn-label
          +-- tpn?   otn-tpn
          +-- ts?    otn-ts
     grouping otn-label-hop:
       +-- otn-label
          +-- tpn?       otn-tpn
          +-- tsg?       identityref
          +-- ts-list?   string
     grouping otn-label-step:
       +-- otn-label-step

Zheng & Busi             Expires 26 August 2024                [Page 12]
Internet-Draft            L1 Common YANG Types             February 2024

          +-- tpn?   otn-tpn
          +-- ts?    otn-ts

6.  YANG Code for Layer1 Types

   <CODE BEGINS>
   file "ietf-layer1-types@2024-02-22.yang"
   module ietf-layer1-types {
     yang-version 1.1;
     namespace "urn:ietf:params:xml:ns:yang:ietf-layer1-types";
     prefix "l1-types";

     import ietf-routing-types {
       prefix rt-types;
       reference
         "RFC 8294: Common YANG Data Types for the Routing Area";
     }

     organization
       "IETF CCAMP Working Group";
     contact
       "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
        WG List: <mailto:ccamp@ietf.org>

        Editor: Haomian Zheng
                <mailto:zhenghaomian@huawei.com>

        Editor: Italo Busi
                <mailto:Italo.Busi@huawei.com>";

     description
       "This module defines Layer 1 YANG types. The model fully conforms
        to the Network Management Datastore Architecture (NMDA).

        Copyright (c) 2024 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 Revised 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.

Zheng & Busi             Expires 26 August 2024                [Page 13]
Internet-Draft            L1 Common YANG Types             February 2024

       The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
       NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
       'MAY', and 'OPTIONAL' in this document are to be interpreted as
       described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
       they appear in all capitals, as shown here.";

     revision "2024-02-22" {
       description
         "Initial Version";
       reference
         "RFC XXXX: A YANG Data Model for Layer 1 Types";
       // RFC Editor: replace RFC XXXX with actual RFC number,
       // update date information and remove this note.
     }

     /*
      * Identities
      */

     identity tributary-slot-granularity {
       description
         "Tributary Slot Granularity (TSG).";
       reference
         "ITU-T G.709 v6.0 (06/2020): 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 from which specific Optical Data Unit (ODU)

Zheng & Busi             Expires 26 August 2024                [Page 14]
Internet-Draft            L1 Common YANG Types             February 2024

         type is derived.";
       reference
         "RFC7139: GMPLS Signaling Extensions for Control of Evolving
          G.709 Optical Transport Networks

          ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
          Transport Network (OTN)";
     }

       identity ODU0 {
         base odu-type;
         description
           "ODU0 type (1.24Gb/s).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ODU1 {
         base odu-type;
         description
           "ODU1 type (2.49Gb/s).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ODU2 {
         base odu-type;
         description
           "ODU2 type (10.03Gb/s).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ODU2e {
         base odu-type;
         description

Zheng & Busi             Expires 26 August 2024                [Page 15]
Internet-Draft            L1 Common YANG Types             February 2024

           "ODU2e type (10.39Gb/s).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ODU3 {
         base odu-type;
         description
           "ODU3 type (40.31Gb/s).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ODU4 {
         base odu-type;
         description
           "ODU4 type (104.79Gb/s).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ODUflex {
         base odu-type;
         description
           "ODUflex type (flexible 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: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

Zheng & Busi             Expires 26 August 2024                [Page 16]
Internet-Draft            L1 Common YANG Types             February 2024

       identity ODUflex-resizable {
         base odu-type;
         description
           "ODUflex protocol (flexible bit rate, resizable).

           It could be used only for ODUflex(GFP,n,k).";
         reference
           "RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

     identity protocol {
       description
         "Base identity from which specific protocol is derived.";
       reference
         "MEF63: Subscriber Layer 1 Service Attributes";
     }

       identity Ethernet {
         base protocol;
         description
           "Ethernet protocol.";
         reference
           "MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity Fibre-Channel {
         base protocol;
         description
           "Fibre-Channel (FC) protocol.";
         reference
           "MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity SDH {
         base protocol;
         description
           "SDH protocol.";
         reference
           "MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity SONET {
         base protocol;
         description

Zheng & Busi             Expires 26 August 2024                [Page 17]
Internet-Draft            L1 Common YANG Types             February 2024

           "SONET protocol.";
         reference
           "MEF63: Subscriber Layer 1 Service Attributes";
       }

     identity client-signal {
       description
         "Base identity from which specific Constant Bit Rate (CBR)
         client signal is derived";
     }

     identity coding-func {
       description
         "Base identity from which specific coding function
          is derived.";
       reference
         "MEF63: Subscriber Layer 1 Service Attributes";
     }

       identity ETH-1Gb {
         base client-signal;
         description
           "Client signal type of 1GbE.";
         reference
           "IEEE 802.3-2018, Clause 36: IEEE Standard for Ethernet

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ETH-10Gb-LAN {
         base client-signal;
         description
           "Client signal type of ETH-10Gb-LAN (10.3 Gb/s).";
         reference
           "IEEE 802.3-2018, Clause 49: IEEE Standard for Ethernet

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ETH-10Gb-WAN {

Zheng & Busi             Expires 26 August 2024                [Page 18]
Internet-Draft            L1 Common YANG Types             February 2024

         base client-signal;
         description
           "Client signal type of ETH-10Gb-WAN (9.95 Gb/s).";
         reference
           "IEEE 802.3-2018, Clause 50: IEEE Standard for Ethernet

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ETH-40Gb {
         base client-signal;
         description
           "Client signal type of 40GbE.";
         reference
           "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity ETH-100Gb {
         base client-signal;
         description
           "Client signal type of 100GbE.";
         reference
           "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)";
       }

       identity STM-1 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of STM-1;
           STM-1 G.707 (N=1) coding function.";
         reference

Zheng & Busi             Expires 26 August 2024                [Page 19]
Internet-Draft            L1 Common YANG Types             February 2024

           "ITU-T G.707 v7.0 (01/2007): Network node interface for the
           synchronous digital hierarchy (SDH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity STM-4 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of STM-4;
           STM-4 G.707 (N=4) coding function.";
         reference
           "ITU-T G.707 v7.0 (01/2007): Network node interface for the
           synchronous digital hierarchy (SDH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity STM-16 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of STM-16;
           STM-16 G.707 (N=16) coding function.";
         reference
           "ITU-T G.707 v7.0 (01/2007): Network node interface for the
           synchronous digital hierarchy (SDH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";

Zheng & Busi             Expires 26 August 2024                [Page 20]
Internet-Draft            L1 Common YANG Types             February 2024

       }

       identity STM-64 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of STM-64;
           STM-64 G.707 (N=64) coding function.";
         reference
           "ITU-T G.707 v7.0 (01/2007): Network node interface for the
           synchronous digital hierarchy (SDH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity STM-256 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of STM-256;
           STM-256 G.707 (N=256) coding function.";
         reference
           "ITU-T G.707 v7.0 (01/2007): Network node interface for the
           synchronous digital hierarchy (SDH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity OC-3 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of OC3;
           OC-3 GR-253-CORE (N=3) coding function.";
         reference
           "ANSI T1.105-2001: Synchronous Optical Network (SONET)

Zheng & Busi             Expires 26 August 2024                [Page 21]
Internet-Draft            L1 Common YANG Types             February 2024

           Basic Description including Multiplex Structure, Rates,
           and Formats

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity OC-12 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of OC12;
           OC-12 GR-253-CORE (N=12) coding function.";
         reference
           "ANSI T1.105-2001: Synchronous Optical Network (SONET)
           Basic Description including Multiplex Structure, Rates,
           and Formats

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity OC-48 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of OC48;
           OC-48 GR-253-CORE (N=48) coding function.";
         reference
           "ANSI T1.105-2001: Synchronous Optical Network (SONET)
           Basic Description including Multiplex Structure, Rates,
           and Formats

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity OC-192 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of OC192;
           OC-192 GR-253-CORE (N=192) coding function.";
         reference
           "ANSI T1.105-2001: Synchronous Optical Network (SONET)
           Basic Description including Multiplex Structure, Rates,
           and Formats

           MEF63: Subscriber Layer 1 Service Attributes";
       }

Zheng & Busi             Expires 26 August 2024                [Page 22]
Internet-Draft            L1 Common YANG Types             February 2024

       identity OC-768 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of OC768;
           OC-768 GR-253-CORE (N=768) coding function.";
         reference
           "ANSI T1.105-2001: Synchronous Optical Network (SONET)
           Basic Description including Multiplex Structure, Rates,
           and Formats

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-100 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-100;
           FC-100 FC-FS-2 (1.0625 Gb/s) coding function.";
         reference
           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-200 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-200;
           FC-200 FC-FS-2 (2.125 Gb/s) coding function.";
         reference
           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

Zheng & Busi             Expires 26 August 2024                [Page 23]
Internet-Draft            L1 Common YANG Types             February 2024

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-400 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-400;
           FC-400 FC-FS-2 (4.250 Gb/s) coding function.";
         reference
           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-800 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-800;
           FC-800 FC-FS-2 (8.500 Gb/s) coding function.";
         reference
           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-1200 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-1200;
           FC-1200 FC-10GFC (10.51875 Gb/s) coding function.";
         reference

Zheng & Busi             Expires 26 August 2024                [Page 24]
Internet-Draft            L1 Common YANG Types             February 2024

           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-1600 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-1600;
           FC-1600 FC-FS-3 (14.025 Gb/s) coding function.";
         reference
           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity FC-3200 {
         base client-signal;
         base coding-func;
         description
           "Client signal type of Fibre Channel FC-3200;
           FC-3200 FC-FS-4 (28.05 Gb/s) coding function.";
         reference
           "ANSI INCITS 230-1994 R1999): Information Technology -
           Fibre Channel - Physical and Signaling Interface (FC-PH)

           RFC7139: GMPLS Signaling Extensions for Control of Evolving
           G.709 Optical Transport Networks

           ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
           Transport Network (OTN)

           MEF63: Subscriber Layer 1 Service Attributes";

Zheng & Busi             Expires 26 August 2024                [Page 25]
Internet-Draft            L1 Common YANG Types             February 2024

       }

       identity ETH-1000X {
         base coding-func;
         description
           "1000BASE-X PCS clause 36 coding function.";
         reference
           "IEEE 802.3-2018, Clause 36: IEEE Standard for Ethernet

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity ETH-10GW {
         base coding-func;
         description
           "IEEE 802.3-2018, Clause 50: IEEE Standard for Ethernet

           10GBASE-W (WAN PHY) PCS clause 49 and WIS clause 50
           coding function.";
         reference
           "MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity ETH-10GR {
         base coding-func;
         description
           "10GBASE-R (LAN PHY) PCS clause 49 coding function.";
         reference
           "IEEE 802.3-2018, Clause 49: IEEE Standard for Ethernet

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity ETH-40GR {
         base coding-func;
         description
           "40GBASE-R PCS clause 82 coding function.";
         reference
           "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity ETH-100GR {
         base coding-func;
         description
           "100GBASE-R PCS clause 82 coding function.";
         reference

Zheng & Busi             Expires 26 August 2024                [Page 26]
Internet-Draft            L1 Common YANG Types             February 2024

           "IEEE 802.3-2018, Clause 82: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 38: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 38: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 59: IEEE Standard for Ethernet

           MEF63: Subscriber Layer 1 Service Attributes";
       }

       identity BX10-PMD-1000 {
         base optical-interface-func;

Zheng & Busi             Expires 26 August 2024                [Page 27]
Internet-Draft            L1 Common YANG Types             February 2024

         description
           "BX10-PMD-clause-59 Optical Interface function for
           1000BASE-X PCS-36.";
         reference
           "IEEE 802.3-2018, Clause 59: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet

           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

Zheng & Busi             Expires 26 August 2024                [Page 28]
Internet-Draft            L1 Common YANG Types             February 2024

           "IEEE 802.3-2018, Clause 52: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 87: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 87: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 89: IEEE Standard for Ethernet

           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
           "IEEE 802.3-2018, Clause 88: IEEE Standard for Ethernet

           MEF63: Subscriber Layer 1 Service Attributes";
       }

Zheng & Busi             Expires 26 August 2024                [Page 29]
Internet-Draft            L1 Common YANG Types             February 2024

       identity ER4-PMD-100G {
         base optical-interface-func;
         description
           "ER4-PMD-clause-88 Optical Interface function for
           100GBASE-R PCS-82.";
         reference
           "IEEE 802.3-2018, Clause 88: IEEE Standard for Ethernet

           MEF63: Subscriber Layer 1 Service Attributes";
       }

     /*
      * Typedefs
      */

     typedef otn-tpn {
       type uint16 {
         range "1..4095";
       }
       description
         "Tributary Port Number (TPN) 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 (TS) 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 (TS).";
         }
         enum trib-port {
           description
             "Defines a range of OTN tributary ports (TPN).";
         }
       }

Zheng & Busi             Expires 26 August 2024                [Page 30]
Internet-Draft            L1 Common YANG Types             February 2024

       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
         "ITU-T G.709 v6.0 (06/2020), Table 7-8 and L.7: Interfaces for
          the Optical Transport Network (OTN)";
     }

     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

Zheng & Busi             Expires 26 August 2024                [Page 31]
Internet-Draft            L1 Common YANG Types             February 2024

          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
         "ITU-T G.709 v6.0 (06/2020), Table 7-2: Interfaces for the
          Optical Transport Network (OTN)";
     }

     typedef odtu-flex-type {
       type enumeration {
         enum "2" {
           description
             "The ODTU2.ts ODTU type.";
         }
         enum "3" {
           description
             "The ODTU3.ts ODTU type.";
         }
         enum "4" {
           description
             "The ODTU4.ts ODTU type.";
         }
         enum "Cn" {
           description
             "The ODTUCn.ts ODTU type.";
         }
       }
       description
         "The type of Optical Data Tributary Unit (ODTU),
         whose nominal bitrate is used to compute the number of
         Tributary Slots (TS) required by an ODUflex LSP, according to
         the (19-1a) and (20-1a) formulas defined in G.709.";
       reference
         "ITU-T G.709 v6.0 (06/2020), Table 7-7, clause 19.6 and
         clause 20.5: Interfaces for the Optical Transport
         Network (OTN)";
     }

     typedef bandwidth-scientific-notation {
       type string {
         pattern
           '0(\.0?)?([eE](\+)?0?)?|'
         + '[1-9](\.[0-9]{0,6})?[eE](\+)?(9[0-6]|[1-8][0-9]|0?[0-9])?';
       }
       units "bps";
       description

Zheng & Busi             Expires 26 August 2024                [Page 32]
Internet-Draft            L1 Common YANG Types             February 2024

         "Bandwidth values, expressed using the scientific notation
         in bits per second.

         The encoding format is the external decimal-significant
         character sequences specified in IEEE 754 and ISO/IEC 9899:1999
         for 32-bit decimal floating-point numbers:
         (-1)**(S) * 10**(Exponent) * (Significant),
         where Significant uses 7 digits.

         An implementation for this representation MAY use decimal32
         or binary32. The range of the Exponent is from -95 to +96
         for decimal32, and from -38 to +38 for binary32.
         As a bandwidth value, the format is restricted to be
         normalized, non-negative, and non-fraction:
         n.dddddde{+}dd, N.DDDDDDE{+}DD, 0e0 or 0E0,
         where 'd' and 'D' are decimal digits; 'n' and 'N' are
         non-zero decimal digits; 'e' and 'E' indicate a power of ten.
         Some examples are 0e0, 1e10, and 9.953e9.";
       reference
         "IEEE Std 754-2001: IEEE Standard for Floating-Point
         Arithmetic

         ISO/IEC 9899:1999: Information technology - Programming
         Languages - C";
     }

     /*
      * Groupings
      */

     grouping otn-link-bandwidth {
       description
         "Bandwidth attributes for OTN links.";
       container otn-bandwidth {
         description
           "Bandwidth attributes for OTN links.";
         list odulist {
           key "odu-type";
           description
             "OTN bandwidth definition";
           leaf odu-type {
             type identityref {
               base odu-type;
             }
             description "ODU type";
           }
           leaf number {
             type uint16;

Zheng & Busi             Expires 26 August 2024                [Page 33]
Internet-Draft            L1 Common YANG Types             February 2024

             description "Number of ODUs.";
           }
           leaf ts-number {
             when 'derived-from-or-self(../odu-type,"ODUflex") or
                   derived-from-or-self(../odu-type,
                   "ODUflex-resizable")' {
               description
                 "Applicable when odu-type is ODUflex or
                 ODUflex-resizable.";
             }
             type uint16 {
               range "1..4095";
             }
             description
               "The number of Tributary Slots (TS) that
               could be used by all the ODUflex LSPs.";
           }
         }
       }
     }

     grouping otn-path-bandwidth {
       description
         "Bandwidth attributes for OTN paths.";
       container otn-bandwidth {
         description
           "Bandwidth attributes for OTN paths.";
         leaf odu-type {
           type identityref {
             base odu-type;
           }
           description "ODU type";
         }
         choice oduflex-type {
           when 'derived-from-or-self(./odu-type,"ODUflex") or
                 derived-from-or-self(./odu-type,
                 "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
             "ITU-T G.709 v6.0 (06/2020), Table 7-2: Interfaces for the
              Optical Transport Network (OTN)";
           case generic {

Zheng & Busi             Expires 26 August 2024                [Page 34]
Internet-Draft            L1 Common YANG Types             February 2024

             leaf nominal-bit-rate {
               type union {
                 type l1-types:bandwidth-scientific-notation;
                 type rt-types:bandwidth-ieee-float32;
               }
               mandatory true;
               description
                 "Nominal ODUflex bit rate.";
             }
           }
           case cbr {
             leaf client-type {
               type identityref {
                 base client-signal;
               }
               mandatory true;
               description
                 "The type of Constant Bit Rate (CBR) client signal
                 of 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
                 "ITU-T G.709 v6.0 (06/2020), Tables 7-8 and L.7:
                  Interfaces for the Optical Transport Network (OTN)";
             }
             leaf gfp-k {
               type 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
                 "ITU-T G.709 v6.0 (06/2020), Tables 7-8 and L.7:
                  Interfaces for the Optical Transport Network (OTN)";
             }
           }
           case flexe-client {
             leaf flexe-client {
               type flexe-client-rate;

Zheng & Busi             Expires 26 August 2024                [Page 35]
Internet-Draft            L1 Common YANG Types             February 2024

               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 union {
                 type l1-types:bandwidth-scientific-notation;
                 type rt-types:bandwidth-ieee-float32;
               }
               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-max-path-bandwidth {
       description
         "Maximum bandwidth attributes for OTN paths.";
       container otn-bandwidth {
         description
           "Maximum bandwidth attributes for OTN paths.";
         leaf odu-type {
           type identityref {
             base odu-type;
           }
           description "ODU type.";
         }
         leaf max-ts-number {
           when 'derived-from-or-self(../odu-type,"ODUflex") or
                 derived-from-or-self(../odu-type,
                 "ODUflex-resizable")' {
             description

Zheng & Busi             Expires 26 August 2024                [Page 36]
Internet-Draft            L1 Common YANG Types             February 2024

               "Applicable when odu-type is ODUflex or
                ODUflex-resizable.";
           }
           type uint16 {
             range "1..4095";
           }
           description
             "The maximum number of Tributary Slots (TS) that could be
             used by an ODUflex LSP.";
         }
       }
     }

     grouping otn-label-range-info {
       description
         "Label range information for OTN.

          This grouping SHOULD be used together with the
          otn-label-start-end and otn-label-step groupings to provide
          OTN technology-specific label information to the models which
          use the label-restriction-info grouping defined in the module
          ietf-te-types.";
       container otn-label-range {
         description
           "Label range information for OTN.";
         leaf range-type {
           type 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 tributary-slot-granularity;
           }
           description
             "Tributary slot granularity (TSG) to which the label range
             applies.

             This leaf MUST be present when the range-type is TS.

             This leaf MAY 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
             "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
             Transport Network (OTN)";
         }
         leaf-list odu-type-list {

Zheng & Busi             Expires 26 August 2024                [Page 37]
Internet-Draft            L1 Common YANG Types             February 2024

           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 {
             range 0..7;
           }
           description
             "Priority in Interface Switching Capability
             Descriptor (ISCD).";
           reference
             "RFC4203: OSPF Extensions in Support of Generalized
             Multi-Protocol Label Switching (GMPLS)";
         }
       }
     }

     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 defined in the
          otn-label-range-info grouping.

          This grouping SHOULD be used together with the
          otn-label-range-info and otn-label-step groupings to provide
          OTN technology-specific label information to the models which
          use the label-restriction-info grouping defined in the module
          ietf-te-types.";
       container otn-label {
         description
           "Label start or label end for OTN.

           It is either a TPN or a TS depending on the OTN label range
           type specified in the 'range-type' leaf defined in the
           otn-label-range-info grouping.";
         leaf tpn {
           when "../../../../otn-label-range/range-type =
                 'trib-port'" {
             description
               "Valid only when range-type represented by

Zheng & Busi             Expires 26 August 2024                [Page 38]
Internet-Draft            L1 Common YANG Types             February 2024

               trib-port.";
           }
           type otn-tpn;
           description
             "Tributary Port Number (TPN).";
           reference
             "RFC7139: GMPLS Signaling Extensions for Control of
             Evolving G.709 Optical Transport Networks";
         }
         leaf ts {
           when "../../../../otn-label-range/range-type =
                 'trib-slot'" {
             description
               "Valid only when range-type represented by
               trib-slot.";
           }
           type otn-ts;
           description
             "Tributary Slot (TS) 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: GMPLS Signaling Extensions for Control of
          Evolving G.709 Optical Transport Networks";
       container otn-label {
         description
           "Label hop for OTN.";
         leaf tpn {
           type otn-tpn;
           description
             "Tributary Port Number (TPN).";
           reference
             "RFC7139: GMPLS Signaling Extensions for Control of
             Evolving G.709 Optical Transport Networks";
         }
         leaf tsg {
           type identityref {
             base tributary-slot-granularity;
           }
           description "Tributary Slot Granularity (TSG).";
           reference

Zheng & Busi             Expires 26 August 2024                [Page 39]
Internet-Draft            L1 Common YANG Types             February 2024

             "ITU-T G.709 v6.0 (06/2020): 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 (TS) 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.

          This grouping is dependent on the range-type defined in the
          otn-label-range-info grouping.

          This grouping SHOULD be used together with the
          otn-label-range-info and otn-label-start-end groupings to
          provide OTN technology-specific label information to the
          models which use the label-restriction-info grouping defined
          in the module ietf-te-types.";
       container otn-label-step {
         description
           "Label step for OTN.

           It is either a TPN or a TS depending on the OTN label range
           type specified in the 'range-type' leaf defined in the
           otn-label-range-info grouping.";
         leaf tpn {
           when "../../../otn-label-range/range-type =
                 'trib-port'" {
             description
               "Valid only when range-type represented by
               trib-port.";
           }
           type otn-tpn;

Zheng & Busi             Expires 26 August 2024                [Page 40]
Internet-Draft            L1 Common YANG Types             February 2024

           description
             "Label step which represents possible increments for
             Tributary Port Number (TPN).";
           reference
             "RFC7139: GMPLS Signaling Extensions for Control of
             Evolving G.709 Optical Transport Networks";
         }
         leaf ts {
           when "../../../otn-label-range/range-type =
                 'trib-slot'" {
             description
               "Valid only when range-type represented by
               trib-slot";
           }
           type otn-ts;
           description
             "Label step which represents possible increments for
             Tributary Slot (TS) number.";
           reference
             "RFC7139: GMPLS Signaling Extensions for Control of
             Evolving G.709 Optical Transport Networks";
         }
       }
     }
   }
   <CODE ENDS>

7.  Security Considerations

   The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF [RFC6241] or RESTCONF [RFC8040].  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) [RFC6242].  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   [RFC8446].

   If using secure channels, such as SSH for NETCONF or TLS for
   RESTCONF, an array of secure validation methods are availible.  These
   methods range from public key and password authentication to host
   identity verification.  It is strongly advised to not use options
   that require no authentication.  However, it is important to
   acknowledge that not all authentication methods offer the same level
   of security.  For instance, password-based authentication is notably
   susceptible to security threats such as phishing attacks and password
   reuse.

Zheng & Busi             Expires 26 August 2024                [Page 41]
Internet-Draft            L1 Common YANG Types             February 2024

   The NETCONF access control model [RFC8341] provides the means to
   restrict access for particular NETCONF or RESTCONF users to a
   preconfigured subset of all available NETCONF or RESTCONF protocol
   operations and content.

   The YANG module in this document defines layer 1 type definitions
   (i.e., typedef, identity and grouping statements) in YANG data
   modeling language to be imported and used by other layer 1
   technology-specific modules.  When imported and used, the resultant
   schema will have data nodes that can be writable, or readable.  The
   access to such data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   to these data nodes without proper protection can have a negative
   effect on network operations.

   The security considerations spelled out in the YANG 1.1 specification
   [RFC7950] apply for this document as well.

8.  IANA Considerations

   It is proposed that IANA should assign new URIs from the "IETF XML
   Registry" [RFC3688] as follows:

         URI: urn:ietf:params:xml:ns:yang:ietf-layer1-types
         Registrant Contact: The IESG
         XML: N/A; the requested URI is an XML namespace.

   This document registers following YANG modules in the YANG Module
   Names registry [RFC7950].

      name:         ietf-layer1-types
      namespace:    urn:ietf:params:xml:ns:yang:ietf-layer1-types
      prefix:       l1-types
      reference:    RFC XXXX

   RFC Editor Note: Please replace XXXX with the number assigned to the
   RFC once this draft becomes an RFC.

Zheng & Busi             Expires 26 August 2024                [Page 42]
Internet-Draft            L1 Common YANG Types             February 2024

9.  Acknowledgements

   The authors and the working group give their sincere thanks to Robert
   Wilton for the YANG doctor review, to Tom Petch for his comments
   during the model and document development, and to Deborah Brungard
   for her support in addressing IESG review comments on the scope of
   this document.

10.  Contributors

   Dieter Beller Nokia Email: dieter.beller@nokia.com

   Sergio Belotti Nokia Email: sergio.belotti@nokia.com

   Yanlei Zheng China Unicom Email: zhengyanlei@chinaunicom.cn

   Aihua Guo Futurewei Technologies Email: aihuaguo@futurewei.com

   Young Lee Samsung Email: younglee.tx@gmail.com

   Lei Wang China Mobile Email: wangleiyj@chinamobile.com

   Oscar Gonzalez de Dios Telefonica Email:
   oscar.gonzalezdedios@telefonica.com

   Xufeng Liu Volta Networks Email: xufeng.liu.ietf@gmail.com

   Yunbin Xu CAICT Email: xuyunbin@caict.ac.cn

   Anurag Sharma Google Email: ansha@google.com

   Rajan Rao Infinera Email: rrao@infinera.com

   Victor Lopez Telefonica Email: victor.lopez@nokia.com

   Yunbo Li China Mobile Email: liyunbo@chinamobile.com

   Daniel King Old Dog Consulting Email: daniel@olddog.co.uk

11.  References

11.1.  Normative References

Zheng & Busi             Expires 26 August 2024                [Page 43]
Internet-Draft            L1 Common YANG Types             February 2024

   [ANSI_INCITS_230]
              American National Standards Institute, "Information
              Technology - Fibre Channel - Physical and Signaling
              Interface (FC-PH).", ANSI INCITS 230-1994 (R1999), January
              1994, <https://webstore.ansi.org/standards/incits/
              ansiincits2301994r1999>.

   [ANSI_T1.105]
              American National Standards Institute, "Synchronous
              Optical Network (SONET) Basic Description including
              Multiplex Structure, Rates, and Formats",
              ANSI T1.105-2001, May 2001,
              <https://webstore.ansi.org/standards/atis/t11052001>.

   [I-D.ietf-teas-rfc8776-update]
              Busi, I., Guo, A., Liu, X., Saad, T., and I. Bryskin,
              "Common YANG Data Types for Traffic Engineering", Work in
              Progress, Internet-Draft, draft-ietf-teas-rfc8776-update-
              10, 22 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-teas-
              rfc8776-update-10>.

   [IEEE_754] Institute of Electrical and Electronics Engineers, "IEEE
              Standard for Floating-Point Arithmetic", IEEE 754-2019,
              July 2019, <https://ieeexplore.ieee.org/document/8766229>.

   [IEEE_802.3]
              Institute of Electrical and Electronics Engineers, "IEEE
              Standard for Ethernet", IEEE 802.3-2018, June 2018,
              <https://ieeexplore.ieee.org/document/8457469>.

   [ISO_IEC_9899_1999]
              International Organization for Standardization,
              "Programming Languages - C", ISO/IEC 9899:1999, December
              1999, <https://www.iso.org/standard/29237.html>.

   [ITU-T_G.7044]
              International Telecommunication Union, "Hitless adjustment
              of ODUflex(GFP)", ITU-T G.7044, October 2011,
              <https://www.itu.int/rec/T-REC-G.7044>.

   [ITU-T_G.707]
              International Telecommunication Union, "Network node
              interface for the synchronous digital hierarchy (SDH)",
              ITU-T G.707, January 2007,
              <https://www.itu.int/rec/T-REC-G.707>.

Zheng & Busi             Expires 26 August 2024                [Page 44]
Internet-Draft            L1 Common YANG Types             February 2024

   [ITU-T_G.709]
              International Telecommunication Union, "Interfaces for the
              optical transport network", ITU-T G.709, June 2020,
              <https://www.itu.int/rec/T-REC-G.709>.

   [MEF63]    Metro Ethernet Forum, "Subscriber Layer1 Service
              Attributes Technical Specification", MEF 63, August 2018,
              <https://www.mef.net/wp-content/uploads/2018/08/MEF-
              63.pdf>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC4203]  Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in
              Support of Generalized Multi-Protocol Label Switching
              (GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005,
              <https://www.rfc-editor.org/info/rfc4203>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://www.rfc-editor.org/info/rfc6242>.

   [RFC7139]  Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D.,
              and K. Pithewan, "GMPLS Signaling Extensions for Control
              of Evolving G.709 Optical Transport Networks", RFC 7139,
              DOI 10.17487/RFC7139, March 2014,
              <https://www.rfc-editor.org/info/rfc7139>.

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

Zheng & Busi             Expires 26 August 2024                [Page 45]
Internet-Draft            L1 Common YANG Types             February 2024

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8294]  Liu, X., Qu, Y., Lindem, A., Hopps, C., and L. Berger,
              "Common YANG Data Types for the Routing Area", RFC 8294,
              DOI 10.17487/RFC8294, December 2017,
              <https://www.rfc-editor.org/info/rfc8294>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

11.2.  Informative References

   [I-D.ietf-ccamp-client-signal-yang]
              Zheng, H., Guo, A., Busi, I., Snitser, A., and C. Yu, "A
              YANG Data Model for Transport Network Client Signals",
              Work in Progress, Internet-Draft, draft-ietf-ccamp-client-
              signal-yang-12, 29 January 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              client-signal-yang-12>.

   [I-D.ietf-ccamp-l1csm-yang]
              Lee, Y., Lee, K., Zheng, H., de Dios, O. G., and D.
              Ceccarelli, "A YANG Data Model for L1 Connectivity Service
              Model (L1CSM)", Work in Progress, Internet-Draft, draft-
              ietf-ccamp-l1csm-yang-25, 7 February 2024,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              l1csm-yang-25>.

   [I-D.ietf-ccamp-otn-topo-yang]
              Zheng, H., Busi, I., Liu, X., Belotti, S., and O. G. de
              Dios, "A YANG Data Model for Optical Transport Network
              Topology", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-otn-topo-yang-17, 10 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              otn-topo-yang-17>.

Zheng & Busi             Expires 26 August 2024                [Page 46]
Internet-Draft            L1 Common YANG Types             February 2024

   [I-D.ietf-ccamp-otn-tunnel-model]
              Zheng, H., Busi, I., Belotti, S., Lopez, V., and Y. Xu,
              "OTN Tunnel YANG Model", Work in Progress, Internet-Draft,
              draft-ietf-ccamp-otn-tunnel-model-20, 24 November 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              otn-tunnel-model-20>.

   [I-D.ietf-ccamp-transport-nbi-app-statement]
              Busi, I., King, D., Zheng, H., and Y. Xu, "Transport
              Northbound Interface Applicability Statement", Work in
              Progress, Internet-Draft, draft-ietf-ccamp-transport-nbi-
              app-statement-17, 10 July 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              transport-nbi-app-statement-17>.

   [ITU-T_G.Sup43]
              International Telecommunication Union, "Transport of IEEE
              10GBASE-R in optical transport networks (OTN)",
              ITU-T G.Sup43, November 2011,
              <https://www.itu.int/rec/T-REC-G.Sup43>.

   [RFC7062]  Zhang, F., Ed., Li, D., Li, H., Belotti, S., and D.
              Ceccarelli, "Framework for GMPLS and PCE Control of G.709
              Optical Transport Networks", RFC 7062,
              DOI 10.17487/RFC7062, November 2013,
              <https://www.rfc-editor.org/info/rfc7062>.

   [RFC7138]  Ceccarelli, D., Ed., Zhang, F., Belotti, S., Rao, R., and
              J. Drake, "Traffic Engineering Extensions to OSPF for
              GMPLS Control of Evolving G.709 Optical Transport
              Networks", RFC 7138, DOI 10.17487/RFC7138, March 2014,
              <https://www.rfc-editor.org/info/rfc7138>.

   [RFC7963]  Ali, Z., Bonfanti, A., Hartley, M., and F. Zhang, "RSVP-TE
              Extension for Additional Signal Types in G.709 Optical
              Transport Networks (OTNs)", RFC 7963,
              DOI 10.17487/RFC7963, August 2016,
              <https://www.rfc-editor.org/info/rfc7963>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8792]  Watsen, K., Auerswald, E., Farrel, A., and Q. Wu,
              "Handling Long Lines in Content of Internet-Drafts and
              RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
              <https://www.rfc-editor.org/info/rfc8792>.

Zheng & Busi             Expires 26 August 2024                [Page 47]
Internet-Draft            L1 Common YANG Types             February 2024

   [RFC9376]  Wang, Q., Ed., Valiveti, R., Ed., Zheng, H., Ed., van
              Helvoort, H., and S. Belotti, "Applicability of GMPLS for
              beyond 100 Gbit/s Optical Transport Network", RFC 9376,
              DOI 10.17487/RFC9376, March 2023,
              <https://www.rfc-editor.org/info/rfc9376>.

Appendix A.  Examples of OTN Label Ranges

   This appendix provides some examples of how the TPN and TS label
   ranges described in Table 3 and Table 4 of [RFC7139] can be
   represented in YANG using the groupings defined in this document.

   It also considers the OTUk links in addition to HO-ODUk links.

   The JSON code examples provided in this appendix provides some
   embedded comments following the conventions in Section 3.2 of
   [I-D.ietf-ccamp-transport-nbi-app-statement] and have been folded
   using the tool in [RFC8792].

   =============== NOTE: '\\' line wrapping per RFC 8792 ===============

   {
     "// examples of label-restrictions for different OTN Links": [
       {
         "// example": "HO-ODU1 or OTU1 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "// not-present tsg": "",
                 "odu-type-list": "[ ODU1 ]",
                 "// default priority": 7
               },
               "// tpn-range": 1,
               "// comment": "Since no TS range and no TSG are reported\
   \ for ODU1, the link is an OTU1 Link. TS allocation is not needed an\
   \d TPN shall be set to '1' for mapping ODU1 over OTU1. This entry is\
   \ not present if the OTN Link is an HO-ODU1 Link."
             },
             {
               "index ": 2,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-1.25G",

Zheng & Busi             Expires 26 August 2024                [Page 48]
Internet-Draft            L1 Common YANG Types             February 2024

                 "odu-type-list": "[ ODU0 ]",
                 "// default priority": 7
               },
               "// ts-range": "1-2",
               "// comment": "Since no TPN range is reported for ODU0 w\
   \ith 1.25G TSG, the TPN allocation rule is fixed (TPN = TS#) for map\
   \ping LO-ODU0 over HO-ODU1 with 1.25G TSG. See Table 4 of [RFC7139]."
             }
           ]
         }
       },
       {
         "// example": "HO-ODU2 or OTU2 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "// not-present tsg": "",
                 "odu-type-list": "[ ODU2 ]",
                 "// default priority": 7
               },
               "// tpn-range": 1,
               "// comment": "Since no TS range and no TSG are reported\
   \ for ODU2, the link is an OTU2 Link. TS allocation is not needed an\
   \d TPN shall be set to '1' for mapping ODU2 over OTU2. This entry is\
   \ not present if the OTN Link is an HO-ODU2 Link."
             },
             {
               "index ": 2,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U1 ]",
                 "// default priority": 7
               },
               "// ts-range": "1-8"
             },
             {
               "index ": 3,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-1.25G ",

Zheng & Busi             Expires 26 August 2024                [Page 49]
Internet-Draft            L1 Common YANG Types             February 2024

                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0 ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-8",
               "// comment": "Since this TPN range is reported for ODUf\
   \lex and ODU0 with 1.25G TSG, the TPN assignment rule is flexible wi\
   \thin a common range for mapping LO-ODUflex and LO-ODU0 over HO-ODU2\
   \ with 1.25G TSG. See Table 4 of [RFC7139]."
             },
             {
               "index ": 4,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODU1 ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-4",
               "// comment": "Since this TPN range is reported for ODU1\
   \ with 1.25G TSG, the TPN assignment rule is flexible within a commo\
   \n range for mapping LO-ODU1 over HO-ODU2 with 1.25G TSG. See Table \
   \4 of [RFC7139]."
             },
             {
               "index ": 5,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-2.5G",
                 "odu-type-list": "[ ODU1 ]",
                 "// default priority": 7
               },
               "// ts-range": "1-4",
               "// comment": "Since no TPN range is reported for ODU1 w\
   \ith 2.5G TSG, the TPN allocation rule is fixed (TPN = TS#) for mapp\
   \ing LO-ODU1 over HO-ODU2 with 2.5G TSG. See Table 3 of [RFC7139]."
             }
           ]
         }
       },
       {
         "// example": "HO-ODU3 or OTU3 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// default restriction": "inclusive",

Zheng & Busi             Expires 26 August 2024                [Page 50]
Internet-Draft            L1 Common YANG Types             February 2024

               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "// not-present tsg": "",
                 "odu-type-list": "[ ODU3 ]",
                 "// default priority": 7
               },
               "// tpn-range": 1,
               "// comment": "Since no TS range and no TSG are reported\
   \ for ODU3, the link is an OTU3 Link. TS allocation is not needed an\
   \d TPN shall be set to '1' for mapping ODU3 over OTU3. This entry is\
   \ not present if the OTN Link is an HO-ODU3 Link."
             },
             {
               "index ": 2,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U1, ODU2, ODU2e ]",
                 "// default priority": 7
               },
               "// ts-range": "1-32"
             },
             {
               "index ": 3,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U2e ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-32",
               "// comment": "Since this TPN range is reported for ODUf\
   \lex, ODU0 and ODU2e with 1.25G TSG, the TPN assignment rule is flex\
   \ible within a common range for mapping LO-ODUflex, LO-ODU0 and LO-O\
   \DU2e over HO-ODU3 with 1.25G TSG. See Table 4 of [RFC7139]."
             },
             {
               "index ": 4,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODU1 ]",
                 "// default priority": 7

Zheng & Busi             Expires 26 August 2024                [Page 51]
Internet-Draft            L1 Common YANG Types             February 2024

               },
               "// tpn-range": "1-16",
               "// comment": "Since this TPN range is reported for ODU1\
   \ with 1.25G TSG, the TPN assignment rule is flexible within a commo\
   \n range for mapping LO-ODU1 over HO-ODU3 with 1.25G TSG. See Table \
   \4 of [RFC7139]."
             },
             {
               "index ": 5,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODU2 ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-4",
               "// comment": "Since this TPN range is reported for ODU2\
   \ with 1.25G TSG, the TPN assignment rule is flexible within a commo\
   \n range for mapping LO-ODU2 over HO-ODU3 with 1.25G TSG. See Table \
   \4 of [RFC7139]."
             },
             {
               "index ": 6,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-2.5G",
                 "odu-type-list": "[ ODU1, ODU2 ]",
                 "// default priority": 7
               },
               "// ts-range": "1-16"
             },
             {
               "index ": 7,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-2.5G ",
                 "odu-type-list": "[ ODU2 ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-4",
               "// comment": "Since this TPN range is reported for ODU2\
   \ with 2.5G TSG, the TPN assignment rule is flexible within a common\
   \ range for mapping LO-ODU2 over HO-ODU3. Since no TPN range is repo\
   \rted for ODU1 with 2.5G TSG, the TPN allocation rule is fixed (TPN \
   \= TS#) for mapping LO-ODU1 over HO-ODU3 with 2.5G TSG. See Table 3 \

Zheng & Busi             Expires 26 August 2024                [Page 52]
Internet-Draft            L1 Common YANG Types             February 2024

   \of [RFC7139]."
             }
           ]
         }
       },
       {
         "// example": "HO-ODU4 or OTU4 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "// not-present tsg": "",
                 "odu-type-list": "[ ODU4 ]",
                 "// default priority": 7
               },
               "// tpn-range": 1,
               "// comment": "Since no TS range and no TSG are reported\
   \ for ODU4, the link is an OTU4 Link. TS allocation is not needed an\
   \d TPN shall be set to '1' for mapping ODU4 over OTU4. This entry is\
   \ not present if the OTN Link is an HO-ODU4 Link."
             },
             {
               "index ": 2,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U1, ODU2, ODU2e, ODU3 ]",
                 "// default priority": 7
               },
               "// ts-range": "1-80"
             },
             {
               "index ": 3,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-1.25G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U1, ODU2, ODU2e, ODU3 ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-80",
               "// comment": "Since this TPN range is reported for any \

Zheng & Busi             Expires 26 August 2024                [Page 53]
Internet-Draft            L1 Common YANG Types             February 2024

   \LO-ODUj with 1.25G TSG, the TPN assignment rule is flexible within \
   \a common range for mapping any LO-ODUj over HO-ODU4 with 1.25G TSG.\
   \ See Table 4 of [RFC7139]."
             }
           ]
         }
       },
       {
         "// example": "ODUC1 Link",
         "label-restrictions": {
           "label-restriction": [
             {
               "index ": 1,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-slot",
                 "tsg": "tsg-5G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U1, ODU2, ODU2e, ODU3, ODU4 ]",
                 "// default priority": 7
               },
               "// ts-range": "1-20",
               "// comment": "Since the TS range is specified for any O\
   \DUk, the OTN Link is an ODUCn Link."
             },
             {
               "index ": 2,
               "// default restriction": "inclusive",
               "otn-label-range": {
                 "range-type": "label-range-trib-port",
                 "tsg": "tsg-5G",
                 "odu-type-list": "[ ODUFlex-cbr, ODUFlex-gfp, ODU0, OD\
   \U1, ODU2, ODU2e, ODU3, ODU4 ]",
                 "// default priority": 7
               },
               "// tpn-range": "1-10",
               "// comment": "Since this TPN range is reported for any \
   \ODUk with 5G TSG, the TPN assignment rule is flexible within a comm\
   \on range for mapping any ODUk over ODUCn with 5G TSG."
             }
           ]
         }
       }
     ]
   }

Authors' Addresses

Zheng & Busi             Expires 26 August 2024                [Page 54]
Internet-Draft            L1 Common YANG Types             February 2024

   Haomian Zheng
   Huawei Technologies
   H1, Huawei Xiliu Beipo Village, Songshan Lake
   Dongguan
   Guangdong, 523808
   China
   Email: zhenghaomian@huawei.com

   Italo Busi
   Huawei Technologies
   Milan
   Italy
   Email: Italo.Busi@huawei.com

Zheng & Busi             Expires 26 August 2024                [Page 55]