Skip to main content

A YANG Data Model for Microwave Topology
draft-ietf-ccamp-mw-topo-yang-04

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Active".
Authors Jonas Ahlberg , Scott Mansfield , Min Ye , Italo Busi , Xi Li , Daniela Spreafico
Last updated 2022-10-21
Replaces draft-ye-ccamp-mw-topo-yang
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state WG Document
Associated WG milestone
Nov 2022
Submit Microwave topology model to IESG for review
Document shepherd (None)
IESG IESG state I-D Exists
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-ccamp-mw-topo-yang-04
ccamp                                                         J. Ahlberg
Internet-Draft                                              S. Mansfield
Intended status: Standards Track                                Ericsson
Expires: 24 April 2023                                             M. Ye
                                                                 I. Busi
                                                     Huawei Technologies
                                                                   X. Li
                                                 NEC Laboratories Europe
                                                            D. Spreafico
                                                              Nokia - IT
                                                         21 October 2022

                A YANG Data Model for Microwave Topology
                  draft-ietf-ccamp-mw-topo-yang-04

Abstract

   This document defines three YANG data models to describe topologies
   of microwave/millimeter radio links and bandwidth availability for a
   link in general, as well as to reference interface management
   information from a termination point.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/ietf-ccamp-wg/draft-ietf-ccamp-mw-topo-yang.

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 24 April 2023.

Copyright Notice

   Copyright (c) 2022 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 Simplified BSD License text
   as described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Simplified BSD License.

Table of Contents

   1.  Introduction
     1.1.  Terminology and Definitions
     1.2.  Tree Structure
   2.  Requirements Language
   3.  Microwave Topology YANG Data Model
     3.1.  YANG Tree
     3.2.  Relationship between radio links and carriers
     3.3.  Relationship with client topology model
     3.4.  Applicability of the Data Model for Traffic Engineering
           (TE) Topologies
     3.5.  Model applicability to other technology
     3.6.  Microwave Topology YANG Module
   4.  Bandwidth Availability Topology YANG Data Model
     4.1.  YANG Tree
     4.2.  Bandwidth Availability Topology YANG Data Module
   5.  Termination Point to Interface Reference YANG Data Model
     5.1.  YANG Tree
     5.2.  Termination Point to Interface Reference YANG Data Module
   6.  Security Considerations
   7.  IANA Considerations
   8.  References
     8.1.  Normative References
     8.2.  Informative References
   Appendix A.  Examples of the application of the Topology Models
     A.1.  A tree for a complete Microwave Topology Model
     A.2.  A topology with single microwave radio link
   Authors' Addresses

1.  Introduction

   This document defines three YANG data models to describe topologies
   of microwave/millimeter wave (hereafter microwave is used to simplify
   the text).  The first YANG data model describes radio links,
   supporting carrier(s) and the associated termination points.  A
   carrier is a description of a link providing transport capacity over
   the air by a single carrier.  It is typically defined by its
   transmitting and receiving frequencies.  A radio link is a link
   providing the aggregated transport capacity of the supporting
   carriers in aggregated and/or protected configurations, which can be
   used to carry traffic on higher topology layers such as Ethernet and
   TDM.  A second YANG data model describes bandwidth availability for a
   link.  It is an important characteristic of a microwave radio link,
   but it could also be applicable for other types of links.  A third
   YANG data model introduces a way to reference the information in a
   YANG data model for interface management [RFC8343] from a termination
   point, which is useful for microwave termination points, but which
   could also be useful for other types of termination points.  All
   three models augment "YANG Data Model for Traffic Engineering (TE)
   Topologies" defined in [RFC8795], which is based on "A YANG Data
   Model for Network Topologies" defined in [RFC8345].

   The microwave point-to-point radio technology provides connectivity
   on L0/L1 over a radio link between two termination points, using one
   or several supporting carriers in aggregated or protected
   configurations.  That application of microwave technology cannot be
   used to perform cross-connection or switching of the traffic to
   create network connectivity across multiple microwave radio links.
   Instead, a payload of traffic on higher topology layers, normally L2
   Ethernet, is carried over the microwave radio link and when the
   microwave radio link is terminated at the endpoints, cross-connection
   and switching can be performed on that higher layer creating
   connectivity across multiple supporting microwave radio links.

   The microwave topology, the bandwidth availability, and the interface
   reference models are expected to be used between a Provisioning
   Network Controller (PNC) and a Multi Domain Service Coordinator(MDSC)
   [RFC8453].  Examples of use cases that can be supported are:

   1.  Correlation between microwave radio links and the supported links
       on higher topology layers. e.g. an L2 Ethernet topology.  This
       information can be used to understand how changes in the
       performance/status of a microwave radio link affects traffic on
       higher layers.

   2.  Propagation of relevant characteristics of a microwave radio
       link, such as bandwidth, to higher topology layers, where it e.g.
       could be used as a criterion when configuring and optimizing a
       path for a connection/service through the network end to end.

   3.  Optimization of the microwave radio link configurations on a
       network level, e.g. with the purpose to minimize overall
       interference and/or maximize the overall capacity provided by the
       links.

   4.  A microwave radio link could dynamically adjust its bandwidth
       according to changes in the signal conditions.  [RFC8330] defines
       a mechanism to report bandwidth-availability information through
       OSPF-TE, but it could also be useful for a controller to access
       such bandwidth-availability information as part of the topology
       model when performing a path/route computation.

   Different use cases require access to different attributes and in
   order not to restrict what use cases can be supported, all attributes
   supported by the microwave radio link interface management model is
   accessible from the topology model.

1.1.  Terminology and Definitions

   The following acronyms are used in this document:

   PNC Provisioning Network Controller

   MDSC Multi Domain Service Coordinator

1.2.  Tree Structure

   A simplified graphical representation of the data models is used in
   chapters 3.1, 4.1, and 5.1 of this document.  The meaning of the
   symbols in these diagrams is defined in [RFC8340].

2.  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.

3.  Microwave Topology YANG Data Model

3.1.  YANG Tree

   module: ietf-microwave-topology

     augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
       +--rw mw-topology!
     augment /nw:networks/nw:network/nw:node/nt:termination-point
               /tet:te:
       +--rw mw-tp-choice
          +--rw (mw-tp-option)?
             +--:(microwave-rltp)
             |  +--rw microwave-rltp!
             |     +---u microwave-rltp-attributes
             +--:(microwave-ctp)
                +--rw microwave-ctp!
                   +---u microwave-ctp-attributes
     augment /nw:networks/nw:network/nt:link/tet:te
               /tet:te-link-attributes:
       +--rw mw-link-choice
          +--rw (mw-link-option)?
             +--:(microwave-radio-link)
             |  +--rw microwave-radio-link!
             |     +---u microwave-radio-link-attributes
             +--:(microwave-carrier)
                +--rw microwave-carrier!
                   +---u microwave-carrier-attributes
     augment /nw:networks/nw:network/nt:link/tet:te
               /tet:te-link-attributes/tet:max-link-bandwidth
               /tet:te-bandwidth/tet:technology:
       +--:(microwave)
          +---u microwave-bandwidth

3.2.  Relationship between radio links and carriers

   A microwave radio link is always an aggregate of one or multiple
   carries, in various configurations/modes.  The supporting carriers
   are identified by its termination points and are listed in the
   container bundled-links as part of the te-link-config in the YANG
   Data Model for Traffic Engineering (TE) Topologies [RFC8795] for a
   radio-link.  The exact configuration of the included carriers is
   further specified in the rlt-mode container (1+0, 2+0, 1+1, etc.) for
   the radio-link.  Appendix A includes a JSON example of how such a
   relationship can be modelled.

3.3.  Relationship with client topology model

   A microwave radio link carries a payload of traffic on higher
   topology layers, normally L2 Ethernet.  The leafs supporting-network,
   supporting-node, supporting-link, and supporting-termination-point in
   the generic YANG module for Network Topologies [RFC8345] are expected
   to be used to model a relationship/dependency from higher topology
   layers to a supporting microwave radio link topology layer.
   Appendix A includes a JSON example of an L2 Ethernet link transported
   over one supporting microwave link.

3.4.  Applicability of the Data Model for Traffic Engineering (TE)
      Topologies

   Since microwave is a point-to-point radio technology providing
   connectivity on L0/L1 over a radio link between two termination
   points and cannot be used to perform cross-connection or switching of
   the traffic to create network connectivity across multiple microwave
   radio links, a majority of the leafs in the Data Model for Traffic
   Engineering (TE) Topologies augmented by the microwave topology model
   are not applicable.  An example of which leafs are considered
   applicable can be found in appendix "Examples of the application of
   the Topology Models" in this document.  Appendix A

   More specifically, admin-status and oper-status are recommended to be
   reported for links only.  Status for termination points can be used
   when links are inter-domain and when the status of only one side of
   link is known, but since microwave is a point-to-point technology
   where both ends normally belong to the same domain it is not expected
   to be applicable in normal cases.  Furthermore, admin-status is not
   applicable for microwave radio links.  Enable and disable of a radio
   link is instead done in the constituent carriers.

3.5.  Model applicability to other technology

   TBD

3.6.  Microwave Topology YANG Module

   <CODE BEGINS> file "ietf-microwave-topology.yang"
    module ietf-microwave-topology {
      yang-version "1.1";
      namespace
      "urn:ietf:params:xml:ns:yang:ietf-microwave-topology";

      prefix "mwtopo";

      import ietf-network {
        prefix "nw";
        reference "RFC 8345: A YANG Data Model for Network Topologies";
      }

      import ietf-network-topology {
        prefix "nt";
        reference "RFC 8345: A YANG Data Model for Network Topologies";
      }

      import ietf-te-topology {
        prefix "tet";
        reference "RFC 8795: YANG Data Model for Traffic Engineering
                   (TE) Topologies";
      }

      import ietf-microwave-types {
        prefix mw-types;
        reference "RFC 8561";
      }

      organization
        "Internet Engineering Task Force (IETF) CCAMP WG";
      contact
       "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
        WG List: <mailto:ccamp@ietf.org>

   //[JonasA] Who would like to be on the list of editors/contributors?
         Editor: Jonas Ahlberg
                 <mailto:jonas.ahlberg@ericsson.com>
         Editor: Scott Mansfield
                 <mailto:scott.mansfield@ericsson.com>
         Editor: Min Ye
                 <mailto:amy.yemin@huawei.com>
         Editor: Italo Busi
                 <mailto:Italo.Busi@huawei.com>
         Editor: Xi Li
                 <mailto:Xi.Li@neclab.eu>
         Editor: Daniela Spreafico
                 <mailto:daniela.spreafico@nokia.com>
        ";

    // Note to RFC Editor: replace XXXX with actual RFC number and
    // remove this note.
      description
        "This is a module for microwave topology.

        Copyright (c) 2022 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.";

      revision 2022-10-12   {
        description
        "Draft to be used as a basis for the continued microwave
         team discussions";
        reference "";
      }

      /*
       * Typedefs
       */

      typedef power {
        type decimal64 {
          fraction-digits 1;
        }
        description
          "Type used for the power values 'selected' and
           'measured'.";
      }

      /*
       * Groupings
       */

      grouping rlt-mode {
        description
          "This grouping provides a flexible definition of number
          of bonded carriers and protecting carriers of a radio
          link.";
        leaf num-bonded-carriers {
          type uint32;
          mandatory true;
          description
            "Number of bonded carriers.";
        }
        leaf num-protecting-carriers {
          type uint32;
          mandatory true;
          description
            "Number of protecting carriers.";
        }
      }

      grouping microwave-rltp-attributes {
        description "Grouping used for attributes describing a microwave
                     radio link termination point.";

    //Any attributes to be included?
      }

      grouping microwave-ctp-attributes {
        description "Grouping used for attributes describing a microwave
                     carrier termination point.";

    // Any attributes to be included?
      }

      grouping microwave-radio-link-attributes {
        description "Grouping used for attributes describing a microwave
                     radio link.";
        container rlt-mode {
          description
            "This grouping provides a flexible definition of number
            of bonded carriers and protecting carriers of a radio
            link.";
          uses rlt-mode;
        }
    // Any other attributes to be included?
      }

      grouping microwave-carrier-attributes {
        description "Grouping used for attributes describing a microwave
                     carrier.";
        leaf tx-frequency {
          type uint32;
          units "kHz";
          description
            "Selected transmitter frequency.
             Related to the data node tx-frequency in RFC 8561.";
          reference
            "RFC 8561: A YANG Data Model for Microwave Radio Link";
        }
        leaf rx-frequency {
          type uint32;
          units "kHz";
          description
            "Selected receiver frequency.
             Related to the data node actual-rx-frequency in RFC 8561.";
          reference
            "RFC 8561: A YANG Data Model for Microwave Radio Link";
        }
        leaf channel-separation {
          type uint32;
          units "kHz";
          description
            "The amount of bandwidth allocated to a carrier.  The
             distance between adjacent channels in a radio
             frequency channels arrangement.
             Related to the data node channel-separation in RFC 8561.";
          reference
            "ETSI EN 302 217-1 and
             RFC 8561: A YANG Data Model for Microwave Radio Link";
        }
        leaf actual-tx-cm {
          type identityref {
            base mw-types:coding-modulation;
          }
          config false;
          description
            "Actual coding/modulation in transmitting direction.
             Related to the data node actual-tx-cm in RFC 8561.";
          reference
            "RFC 8561: A YANG Data Model for Microwave Radio Link";
        }
        leaf actual-snir {
          type decimal64 {
            fraction-digits 1;
            range "0..99";
          }
          units "dB";
          config false;
          description
            "Actual signal to noise plus the interference ratio
             (0.1 dB resolution).
             Related to the data node actual-snir in RFC 8561.";
          reference
            "RFC 8561: A YANG Data Model for Microwave Radio Link";
        }
        leaf actual-transmitted-level {
          type power {
            range "-99..99";
          }
          units "dBm";
          config false;
          description
            "Actual transmitted power level (0.1 dBm resolution).
             Related to the data node actual-transmitted-level
             in RFC 8561.";
          reference
            "ETSI EN 301 129 and
             RFC 8561: A YANG Data Model for Microwave Radio Link";
        }

    //Any other attributes to be included?
      }

      grouping microwave-bandwidth {
        description "Grouping used for microwave bandwidth.";
        leaf mw-bandwidth {
          type uint64;
          units "Kbps";
          config false;
          description
            "Nominal microwave radio link and carrier bandwidth.";
        }
      }

      /*
       * Data nodes
       */
      augment "/nw:networks/nw:network/nw:network-types/"
              + "tet:te-topology" {
        description
          "Augment network types to define a microwave network
           topology type.";
        container mw-topology {
          presence "Indicates a topology type of microwave.";
          description "Microwave topology type";
        }
      }

      augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
              + "tet:te" {
        when '../../../nw:network-types/tet:te-topology/'
             + 'mwtopo:mw-topology' {
          description
            "Augmentation parameters apply only for networks with an
             microwave network topology type.";
        }
        description
          "Augmentation to add microwave technology specific
           characteristics to a termination point.";
        container mw-tp-choice {
          description "Specification of type of termination point.";
          choice mw-tp-option {
            description "Selection of type of termination point.";
            case microwave-rltp {
              container "microwave-rltp" {
                presence
                  "Denotes a microwave radio link termination point.
                   It corresponds to a microwave RLT interface as
                   defined in RFC 8561.";
                uses microwave-rltp-attributes;
                description
                  "Denotes and describes a microwave radio link
                   termination point.";
              }
            }
            case microwave-ctp {
              container "microwave-ctp" {
                presence
                  "Denotes a microwave carrier termination point.
                   It corresponds to a microwave CT interface as
                   defined in RFC 8561.";
                uses microwave-ctp-attributes;
                description
                  "Denotes and describes a microwave carrier
                   termination point.";
              }
            }
          }
        }
      }

      augment "/nw:networks/nw:network/nt:link/tet:te/"
              + "tet:te-link-attributes" {
        when '../../../nw:network-types/tet:te-topology/'
           + 'mwtopo:mw-topology' {
          description
            "Augmentation parameters apply only for networks with an
             microwave network topology type.";
        }
        description
          "Augmentation to add microwave technology specific
           characteristics to a link.";
        container mw-link-choice {
          description "Specification of type of link.";
          choice mw-link-option {
            description "Selection of type of link.";
            case microwave-radio-link {
              container "microwave-radio-link" {
                presence
                  "Denotes a microwave radio link";
                uses microwave-radio-link-attributes;
                description
                  "Denotes and describes a microwave radio link";
              }
            }
            case microwave-carrier {
              container "microwave-carrier" {
                presence "Denotes a microwave carrier";
                uses microwave-carrier-attributes;
                description "Denotes and describes a microwave carrier";
              }
            }
          }
        }
      }

      augment "/nw:networks/nw:network/nt:link/tet:te/"
              + "tet:te-link-attributes/"
              + "tet:max-link-bandwidth/"
              + "tet:te-bandwidth/tet:technology" {
        when '../../../../../nw:network-types/tet:te-topology/'
             + 'mwtopo:mw-topology' {
          description
            "Augmentation parameters apply only for networks with an
             microwave network topology type.";
        }
        description
          "Augmentation for TE bandwidth.";
        case microwave {
         uses microwave-bandwidth;
        }
      }
    }
   <CODE ENDS>

4.  Bandwidth Availability Topology YANG Data Model

4.1.  YANG Tree

   module: ietf-bandwidth-availability-topology

     augment /nw:networks/nw:network/nt:link/tet:te
               /tet:te-link-attributes:
       +---u link-bw-availability-table

4.2.  Bandwidth Availability Topology YANG Data Module

   <CODE BEGINS> file "ietf-bandwidth-availability-topology.yang"
   module ietf-bandwidth-availability-topology {
      yang-version "1.1";
      namespace
     "urn:ietf:params:xml:ns:yang:ietf-bandwidth-availability-topology";
      prefix "bwatopo";

      import ietf-yang-types {
        prefix yang;
        reference
          "RFC 6991";
      }

      import ietf-network {
        prefix "nw";
        reference "RFC 8345: A YANG Data Model for Network Topologies";
      }

      import ietf-network-topology {
        prefix "nt";
        reference "RFC 8345: A YANG Data Model for Network Topologies";
      }

      import ietf-te-topology {
        prefix "tet";
        reference "RFC 8795: YANG Data Model for Traffic Engineering
                   (TE) Topologies";
      }

      organization
        "Internet Engineering Task Force (IETF) CCAMP WG";
      contact
        "WG List: <mailto:ccamp@ietf.org>

   //[JonasA] Who would like to be on the list of editors/contributors?
         Editor: Jonas Ahlberg
                 <mailto:jonas.ahlberg@ericsson.com>
         Editor: Scott Mansfield
                 <mailto:scott.mansfield@ericsson.com>
         Editor: Min Ye
                 <mailto:amy.yemin@huawei.com>
         Editor: Italo Busi
                 <mailto:Italo.Busi@huawei.com>
         Editor: Xi Li
                 <mailto:Xi.Li@neclab.eu>
         Editor: Daniela Spreafico
                 <mailto:daniela.spreafico@nokia.com>
        ";

      // Note to RFC Editor: replace XXXX with actual RFC number and
      // remove this note.
      description
        "This is a module for defining bandwidth availability matrix,
         for links in a topology. It is intended to be used in
         conjunction with an instance of ietf-network-topology and its

         augmentations.
         Example use cases include:
         - Defining bandwidth availability matrix for a microwave link
         - Defining bandwidth availability matrix for a LAG link
           comprising of two or more member links

         Copyright (c) 2020 IETF Trust and the persons identified as
         authors of the code.  All rights reserved.
         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject to
         the license terms contained in, the Simplified BSD License set
         forth in Section 4.c of the IETF Trust's Legal Provisions
         Relating to IETF Documents
         (http://trustee.ietf.org/license-info).
         This version of this YANG module is part of RFC XXXX
         (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
         full legal notices.";

      revision 2021-10-20 {
        description
        "First rough draft.";
        reference "";
      }

      /*
       * Groupings
       */
      grouping link-bw-availability-table {

        description "Grouping used for bandwidth availability.";

        list link-availability{
          key "availability";
          description
            "Table describing the bandwidths available at corresponding
             availability level for a link.";

          leaf availability {
            type decimal64 {
              fraction-digits 4;
              range "0..99.9999";
            }
            description "Availability level";
          }

          leaf link-bandwidth {
            type uint64;
            units "Kbps";

            description
              "The link bandwidth corresponding to the availability
               level";
          }
        }
        leaf actual-bandwidth{
          type yang:gauge64;
          units "bits/second";
          config false;
          description
            "An estimate of the link's current bandwidth in bits per
             second. Related to the data node speed in RFC 8343.";
          reference
            "RFC 8343: A YANG Data Model for Interface Management";
        }
      }

      /*
       * Data nodes
       */

      augment "/nw:networks/nw:network/nt:link/tet:te/"
              + "tet:te-link-attributes" {
        description
          "Augmenting link with link bandwidth availability matrix.";
        uses link-bw-availability-table;
      }
    }
   <CODE ENDS>

5.  Termination Point to Interface Reference YANG Data Model

5.1.  YANG Tree

   module: ietf-tp-interface-reference-topology

   augment /nw:networks/nw:network/nw:node/nt:termination-point/tet:te:
     +--rw tp-to-interface-path?   -> /if:interfaces/interface/name

5.2.  Termination Point to Interface Reference YANG Data Module

   <CODE BEGINS> file "ietf-tp-interface-reference-topology.yang"
   module ietf-tp-interface-reference-topology {
     yang-version "1.1";
      namespace
     "urn:ietf:params:xml:ns:yang:ietf-tp-interface-reference-topology";

      prefix "ifref";

      import ietf-network {
        prefix "nw";
        reference "RFC 8345: A YANG Data Model for Network Topologies";
      }

      import ietf-network-topology {
        prefix "nt";
        reference "RFC 8345: A YANG Data Model for Network Topologies";
      }

      import ietf-te-topology {
        prefix "tet";
        reference "RFC 8795: YANG Data Model for Traffic Engineering
                   (TE) Topologies";
      }

      import ietf-interfaces {
        prefix if;
        reference
          "RFC 8343";
      }

      organization
        "Internet Engineering Task Force (IETF) CCAMP WG";
      contact
        "WG List: <mailto:ccamp@ietf.org>

   //[JonasA] Who would like to be on the list of editors/contributors?
         Editor: Jonas Ahlberg
                 <mailto:jonas.ahlberg@ericsson.com>
         Editor: Scott Mansfield
                 <mailto:scott.mansfield@ericsson.com>
         Editor: Min Ye
                 <mailto:amy.yemin@huawei.com>
         Editor: Italo Busi
                 <mailto:Italo.Busi@huawei.com>
         Editor: Xi Li
                 <mailto:Xi.Li@neclab.eu>
         Editor: Daniela Spreafico

                 <mailto:daniela.spreafico@nokia.com>
        ";

      // Note to RFC Editor: replace XXXX with actual RFC number and
      // remove this note.
      description
        "This is a module for defining a reference from a termination
         point in a te topology to a list element in interfaces
         as defined in RFC 8343.

         Copyright (c) 2020 IETF Trust and the persons identified as
         authors of the code.  All rights reserved.
         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject to
         the license terms contained in, the Simplified BSD License set
         forth in Section 4.c of the IETF Trust's Legal Provisions
         Relating to IETF Documents
         (http://trustee.ietf.org/license-info).
         This version of this YANG module is part of RFC XXXX
         (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
         full legal notices.";

      revision 2021-10-20 {
        description
        "First rough draft.";
        reference "";
      }

      /*
       * Groupings
       */
      grouping tp-to-interface-ref {

        description
          "Grouping used for reference between a termination point and
           an interface.";
        leaf tp-to-interface-path {
          type leafref {
            path '/if:interfaces/if:interface/if:name';
          }
          description
            "Leafref expression referencing a list element, identified
             by its name, in interfaces as defined in RFC 8343.";
        }
     }

      /*
       * Data nodes

       */

      augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
              + "tet:te" {
        description
          "Augmentation to add possibility to reference an element
           in the list of interfaces as defined by RFC 8343.";
        uses tp-to-interface-ref;
      }
    }
   <CODE ENDS>

6.  Security Considerations

   The YANG modules specified in this document define schemas 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].

   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 modules specified in this document import and augment the
   ietf-network and ietf-network-topology models defined in [RFC8345].
   The security considerations from [RFC8345] are applicable to the
   modules in this document.

   There are a several data nodes defined in these YANG modules that are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These 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.  These are the subtrees and data nodes
   and their sensitivity/vulnerability:

   In the "ietf-microwave-topology" module:

   *  rlt-interface-path: A malicious client could set an arbitrary
      xpath that could allow a client to retrieve incorrect information.
      Troubleshooting would be difficult because the bad path would not
      be detectable until the client tries to use the leaf to identify
      to radio link terminal.

   In the "ietf-bandwidth-availability-topology" module:

   *  availability: A malicious client could attempt to modify the
      availability level which could modify the intended behavior.

   *  link-bandwidth: A malicious client could attempt to modify the
      link bandwidth which could either provide more or less link
      bandwidth at the indicated availability level, changing the
      resource allocation in unintended ways.

7.  IANA Considerations

   IANA is asked to assign a new URI from the "IETF XML Registry"
   [RFC3688] as follows:

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

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

   It is proposed that IANA should record YANG module names in the "YANG
   Module Names" registry [RFC6020] as follows:

       Name: ietf-microwave-topology
       Maintained by IANA?: N
       Namespace: urn:ietf:params:xml:ns:yang:ietf-microwave-topology
       Prefix: mwtopo
       Reference: RFC XXXX

       Name: ietf-bandwidth-availability-topology
       Maintained by IANA?: N
       Namespace:
       urn:ietf:params:xml:ns:yang:ietf-bandwidth-availability-topology
       Prefix: bwavtopo
       Reference: RFC XXXX

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://datatracker.ietf.org/doc/html/rfc2119>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://datatracker.ietf.org/doc/html/rfc3688>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://datatracker.ietf.org/doc/html/rfc6020>.

   [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://datatracker.ietf.org/doc/html/rfc6241>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <https://datatracker.ietf.org/doc/html/rfc6242>.

   [RFC8040]  Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
              <https://datatracker.ietf.org/doc/html/rfc8040>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://datatracker.ietf.org/doc/html/rfc8174>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018,
              <https://datatracker.ietf.org/doc/html/rfc8341>.

   [RFC8343]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 8343, DOI 10.17487/RFC8343, March 2018,
              <https://datatracker.ietf.org/doc/html/rfc8343>.

   [RFC8345]  Clemm, A., Medved, J., Varga, R., Bahadur, N.,
              Ananthakrishnan, H., and X. Liu, "A YANG Data Model for
              Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March
              2018, <https://datatracker.ietf.org/doc/html/rfc8345>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://datatracker.ietf.org/doc/html/rfc8446>.

   [RFC8795]  Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and
              O. Gonzalez de Dios, "YANG Data Model for Traffic
              Engineering (TE) Topologies", RFC 8795,
              DOI 10.17487/RFC8795, August 2020,
              <https://datatracker.ietf.org/doc/html/rfc8795>.

8.2.  Informative References

   [RFC8330]  Long, H., Ye, M., Mirsky, G., D'Alessandro, A., and H.
              Shah, "OSPF Traffic Engineering (OSPF-TE) Link
              Availability Extension for Links with Variable Discrete
              Bandwidth", RFC 8330, DOI 10.17487/RFC8330, February 2018,
              <https://datatracker.ietf.org/doc/html/rfc8330>.

   [RFC8340]  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
              <https://datatracker.ietf.org/doc/html/rfc8340>.

   [RFC8453]  Ceccarelli, D., Ed. and Y. Lee, Ed., "Framework for
              Abstraction and Control of TE Networks (ACTN)", RFC 8453,
              DOI 10.17487/RFC8453, August 2018,
              <https://datatracker.ietf.org/doc/html/rfc8453>.

   [RFC8561]  Ahlberg, J., Ye, M., Li, X., Spreafico, D., and M.
              Vaupotic, "A YANG Data Model for Microwave Radio Link",
              RFC 8561, DOI 10.17487/RFC8561, June 2019,
              <https://datatracker.ietf.org/doc/html/rfc8561>.

   [RFC8944]  Dong, J., Wei, X., Wu, Q., Boucadair, M., and A. Liu, "A
              YANG Data Model for Layer 2 Network Topologies", RFC 8944,
              DOI 10.17487/RFC8944, November 2020,
              <https://datatracker.ietf.org/doc/html/rfc8944>.

Appendix A.  Examples of the application of the Topology Models

   This appendix provides some examples and illustrations of how the
   Microwave Topology Model and the Bandwidth Availability Topology
   Model can be used.  There is one extended tree to illustrate the
   complete Microwave Topology Model and a JSON based instantiation of
   the Microwave Topology Model for a small network example.

A.1.  A tree for a complete Microwave Topology Model

   The tree below shows the leafs for a complete Microwave Topology
   Model including the augmented Network Topology Model defined in
   [RFC8345], Traffic Engineering (TE) Topologies model defined in
   [RFC8795] and the associated Bandwidth Availability Model.

   module: ietf-network
     +--rw networks
        +--rw network* [network-id]
        |  +--rw network-id                network-id
        |  +--rw network-types
        |  |  +--rw tet:te-topology!
        |  |     +--rw mwtopo:mw-topology!
        |  +--rw supporting-network* [network-ref]
        |  |  +--rw network-ref
        |  |          -> /nw:networks/nw:network/nw:network-id
        |  +--rw node* [node-id]
        |  |  +--rw node-id               node-id
        |  |  +--rw supporting-node* [network-ref node-ref]
        |  |  |  +--rw network-ref
        |  |  |  |       -> ../../../nw:supporting-network/nw:network-ref
        |  |  |  +--rw node-ref
        |  |  |          -> /nw:networks/nw:network/nw:node/nw:node-id
        |  |  +--rw nt:termination-point* [tp-id]
        |  |  |  +--rw nt:tp-id                              tp-id
        |  |  |  +--rw nt:supporting-termination-point*
        |  |  |  |       [network-ref node-ref tp-ref]
        |  |  |  |  +--rw nt:network-ref
        |  |  |  |  |       -> ../../../nw:supporting-node/nw:network-ref
        |  |  |  |  +--rw nt:node-ref
        |  |  |  |  |       -> ../../../nw:supporting-node/nw:node-ref
        |  |  |  |  +--rw nt:tp-ref         leafref
        |  |  |  +--rw tet:te!
        |  |  |     +--rw tet:admin-status?
        |  |  |     |       te-types:te-admin-status
        |  |  |     +--rw tet:name?                             string
        |  |  |     +--ro tet:oper-status?
        |  |  |     |       te-types:te-oper-status
        |  |  |     +--ro tet:geolocation
        |  |  |     |  +--ro tet:altitude?    int64
        |  |  |     |  +--ro tet:latitude?
        |  |  |     |  |       geographic-coordinate-degree
        |  |  |     |  +--ro tet:longitude?
        |  |  |     |          geographic-coordinate-degree
        |  |  |     +--rw mwtopo:mw-tp-choice
        |  |  |     |  +--rw (mwtopo:mw-tp-option)?
        |  |  |     |     +--:(mwtopo:microwave-rltp)
        |  |  |     |     |  +--rw mwtopo:microwave-rltp!
        |  |  |     |     +--:(mwtopo:microwave-ctp)
        |  |  |     |        +--rw mwtopo:microwave-ctp!
        |  |  |     +--rw ifref:tp-to-interface-path?
        |  |  |             -> /if:interfaces/if:interface/if:name
        |  +--rw nt:link* [link-id]
        |  |  +--rw nt:link-id               link-id
        |  |  +--rw nt:source
        |  |  |  +--rw nt:source-node?   -> ../../../nw:node/nw:node-id
        |  |  |  +--rw nt:source-tp?     leafref
        |  |  +--rw nt:destination
        |  |  |  +--rw nt:dest-node?   -> ../../../nw:node/nw:node-id
        |  |  |  +--rw nt:dest-tp?     leafref
        |  |  +--rw tet:te!
        |  |     +--rw (tet:bundle-stack-level)?
        |  |     |  +--:(tet:bundle)
        |  |     |  |  +--rw tet:bundled-links
        |  |     |  |     +--rw tet:bundled-link* [sequence]
        |  |     |  |        +--rw tet:sequence      uint32
        |  |     |  |        +--rw tet:src-tp-ref?   leafref
        |  |     |  |        +--rw tet:des-tp-ref?   leafref
        |  |     +--rw tet:te-link-attributes
        |  |     |  +--rw tet:name?                             string
        |  |     |  +--rw tet:admin-status?
        |  |     |  |       te-types:te-admin-status
        |  |     |  +--rw tet:max-link-bandwidth
        |  |     |  |  +--rw tet:te-bandwidth
        |  |     |  |     +--rw (tet:technology)?
        |  |     |  |        +--:(mwtopo:microwave)
        |  |     |  |           +--ro mwtopo:mw-bandwidth?   uint64
        |  |     |  +--rw mwtopo:mw-link-choice
        |  |     |     +--rw (mwtopo:mw-link-option)?
        |  |     |        +--:(mwtopo:microwave-radio-link)
        |  |     |        |  +--rw mwtopo:microwave-radio-link!
        |  |     |        |     +--rw mwtopo:rlt-mode
        |  |     |        |        +--rw mwtopo:num-bonded-carriers
        |  |     |        |        |       uint32
        |  |     |        |        +--rw mwtopo:num-protecting-carriers
        |  |     |        |                uint32
        |  |     |        +--:(mwtopo:microwave-carrier)
        |  |     |           +--rw mwtopo:microwave-carrier!
        |  |     |              +--rw mwtopo:tx-frequency?
        |  |     |              |       uint32
        |  |     |              +--rw mwtopo:rx-frequency?
        |  |     |              |       uint32
        |  |     |              +--rw mwtopo:channel-separation?
        |  |     |              |       uint32
        |  |     |              +--ro mwtopo:actual-tx-cm?
        |  |     |              |       identityref
        |  |     |              +--ro mwtopo:actual-snir?
        |  |     |              |       decimal64
        |  |     |              +--ro mwtopo:actual-transmitted-level?
        |  |     |                      power
        |  |     +--ro tet:oper-status?
        |  |     |       te-types:te-oper-status

A.2.  A topology with single microwave radio link

   Microwave is a transport technology which can be used to transport
   client services, such as L2 Ethernet links.  When an L2 link is
   transported over a single supporting microwave radio link, the
   topologies could be as shown below.  Note that the figure just shows
   an example, there might be other possibilities to demonstrate such a
   topology.  The example of the instantiation encoded in JSON is using
   only a selected subset of the leafs from the L2 topology model
   [RFC8944] and the Microwave Interface Management Model [RFC8561].

        Node N1                          Node N2
   +--------------+                 +--------------+
   | +----------+ |                 | +----------+ | L2-network
   | | L2-N1-   | |    L2-N1-N2     | |    L2-N2-| | -L2 topology
   | | TP1      o---------------------o    TP2   | |
   | +----------+ |        '        | +----------+ | Supporting
   |          :   |        '        |   :          | ' mw link
   |          :   |        '        |   :          | : TPs
   | +----------+ |        '        | +----------+ |
   | |mw-N1-    | |   mwrl-N1-N2    | |    mw-N2-| | MW-network
   | |RLTP1     o---------------------o    RLTP2 | | -MW topology
   | +----------+ |        *        | +----------+ |
   |         : :  | ******* ******* |  : :         |
   |         ::   |**             **|   ::         | Supporting
   | +-------:--+ * *             * * +--:-------+ | : TPs
   | |mw-N1- :  * | * mwc-N1-N2-A * | *  : mw-N2-| | * carriers as
   | |CTP1   :  o---------------------o  : CTP2  | |   bundled links
   | +-------:--+ | *             * | +--:-------+ |
   |         :    |*               *|    :         |
   | +----------+ *                 * +----------+ |
   | |mw-N1-    * |   mwc-N1-N2-B   | *    mw-N2-| |
   | |CTP3      o---------------------o    CTP4  | |
   | +----------+ |                 | +----------+ |
   +--------------+                 +--------------+
    L2 transported over a (2+0) microwave radio link

        Node N1                            Interfaces
   +---------------+                    +----------------+
   | +-----------+ |tp-to-interface-path| +------------+ |
   | | L2-N1-TP1 |************************|L2Interface1| |
   | +-----------+ |                    | +------------+ |
   |               |                    |                |
   | +-----------+ |tp-to-interface-path| +------------+ |
   | |mw-N1-RLTP1|************************|   RLT-1    | |
   | +-----------+ |                    | +------------+ |
   |               |                    |                |
   | +-----------+ |tp-to-interface-path| +------------+ |
   | |mw-N1-CTP1 |************************|    CT-1    | |
   | +-----------+ |                    | +------------+ |
   |               |                    |                |
   | +-----------+ |tp-to-interface-path| +------------+ |
   | |mw-N1-CTP3 |************************|    CT-3    | |
   | +-----------+ |                    | +------------+ |
   +---------------+                    +----------------+
    Topology model information to the associated interface
    management model information for Node N1

        Node N2                            Interfaces
   +---------------+                    +----------------+
   | +-----------+ |tp-to-interface-path| +------------+ |
   | | L2-N2-TP2 |************************|L2Interface2| |
   | +-----------+ |                    | +------------+ |
   |               |                    |                |
   | +-----------+ |tp-to-interface-path| +------------+ |
   | |mw-N2-RLTP2|************************|   RLT-2    | |
   | +-----------+ |                    | +------------+ |
   |               |                    |                |
   | +-----------+ |tp-to-interface-path| +------------+ |
   | |mw-N2-CTP2 |************************|    CT-2    | |
   | +-----------+ |                    | +------------+ |
   |               |                    |                |
   | +-----------+ |tp-to-interface-path| +------------+ |
   | |mw-N2-CTP4 |************************|    CT-4    | |
   | +-----------+ |                    | +------------+ |
   +---------------+                    +----------------+
    Topology model information to the associated interface
    management model information for Node N2

      The example above, a L2 network with a supporting microwave
      network, including microwave-topology (MW) and
      bandwidth-availability-topology (BWA) models as well as
      the reference to the associated interface management
      information, is encoded in JSON as follows:

   This example shows a 2+0 mode for a bonded configuration.

   <CODE BEGINS> file "example2plus0-f.json"
   =============== NOTE: '\' line wrapping per RFC 8792 ================

   {
     "ietf-network:networks": {
       "network": [
         {
           "network-id": "L2-network",
           "network-types": {
             "ietf-te-topology:te-topology": {
               "ietf-eth-te-topology:eth-tran-topology": {
               }
             }
           },
           "supporting-network": [
             {
               "network-ref": "mw-network"
             }
           ],
           "node": [
             {
               "node-id": "L2-N1",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N1"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "L2-N1-TP1",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N1",
                       "tp-ref": "mw-N1-RLTP1"
                     }
                   ]
                 }
               ]
             },
             {
               "node-id": "L2-N2",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N2"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "L2-N2-TP2",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N2",
                       "tp-ref": "mw-N2-RLTP2"
                     }
                   ]
                 }
               ]
             }
           ],
           "ietf-network-topology:link": [
             {
               "link-id": "L2-N1-N2",
               "source": {
                 "source-node": "L2-N1",
                 "source-tp": "L2-N1-TP1"
               },
               "destination": {
                 "dest-node": "L2-N2",
                 "dest-tp": "L2-N2-TP2"
               },
               "supporting-link": [
                 {
                   "network-ref": "mw-network",
                   "link-ref": "mwrl-N1-N2"
                 }
               ]
             }
           ]
         },
         {
           "network-id": "mw-network",
           "network-types": {
             "ietf-te-topology:te-topology": {
               "ietf-microwave-topology:mw-topology": {
               }
             }
           },
           "supporting-network": [
             {
               "network-ref": "mw-network"
             }
           ],
           "node": [
             {
               "node-id": "mw-N1",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N1"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "mw-N1-RLTP1",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N1",
                       "tp-ref": "mw-N1-CTP1"
                     },
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N1",
                       "tp-ref": "mw-N1-CTP3"
                     }
                   ],
                   "ietf-te-topology:te-tp-id": "10.10.10.1",
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-rltp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path":"RLT-1"
                   }
                 },
                 {
                   "tp-id": "mw-N1-CTP1",
                   "ietf-te-topology:te-tp-id": 1,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path":"CT-1"
                   }
                 },
                 {
                   "tp-id": "mw-N1-CTP3",
                   "ietf-te-topology:te-tp-id": 2,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path":"CT-3"
                   }
                 }
               ]
             },
             {
               "node-id": "mw-N2",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N2"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "mw-N2-RLTP2",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N2",
                       "tp-ref": "mw-N2-CTP2"
                     },
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N2",
                       "tp-ref": "mw-N2-CTP4"
                     }
                   ],
                   "ietf-te-topology:te-tp-id": "10.10.10.1",
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-rltp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path":"RLT-2"
                   }
                 },
                 {
                   "tp-id": "mw-N2-CTP2",
                   "ietf-te-topology:te-tp-id": 1,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path":"CT-2"
                   }
                 },
                 {
                   "tp-id": "mw-N2-CTP4",
                   "ietf-te-topology:te-tp-id": 2,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path":"CT-4"
                   }
                 }
               ]
             }
           ],
           "ietf-network-topology:link": [
             {
               "link-id": "mwrl-N1-N2",
               "source": {
                 "source-node": "mw-N1",
                 "source-tp": "mw-N1-RLTP1"
               },
               "destination": {
                 "dest-node": "mw-N2",
                 "dest-tp": "mw-N2-RLTP2"
               },
               "ietf-te-topology:te": {
                 "bundled-links": {
                   "bundled-link": [
                     {
                       "sequence": 1,
                       "src-tp-ref": "mw-N1-CTP1",
                       "des-tp-ref": "mw-N2-CTP2"
                     },
                     {
                       "sequence": 2,
                       "src-tp-ref": "mw-N1-CTP3",
                       "des-tp-ref": "mw-N2-CTP4"
                     }
                   ]
                 },
                 "te-link-attributes": {
                   "ietf-bandwidth-availability-topology:link-availabil\
   ity":
    [
                     {
                       "availability": "0.999",
                       "link-bandwidth": "1572864"
                     },
                     {
                       "availability": "0.95",
                       "link-bandwidth": "2097152"
                     }
                   ],
                   "ietf-microwave-topology:mw-link-choice": {
                     "microwave-radio-link": {
                       "rlt-mode": {
                          "num-bonded-carriers": 2,
                          "num-protecting-carriers": 0
                       }
                     }
                   }
                 }
               }
             },
             {
               "link-id": "mwc-N1-N2-A",
               "source": {
                 "source-node": "mw-N1",
                 "source-tp": "mw-N1-CTP1"
               },
               "destination": {
                 "dest-node": "mw-N2",
                 "dest-tp": "mw-N2-CTP2"
               },
               "ietf-te-topology:te": {
                 "te-link-attributes": {
                   "ietf-bandwidth-availability-topology:link-availabil\
   ity":
    [
                     {
                       "availability": "0.99",
                       "link-bandwidth": "1048576"
                     }
                   ],
                   "ietf-microwave-topology:mw-link-choice": {
                     "microwave-carrier": {
                       "tx-frequency": 10728000,
                       "rx-frequency": 10615000,
                       "channel-separation": 28000
                     }
                   }
                 }
               }
             },
             {
               "link-id": "mwc-N1-N2-B",
               "source": {
                 "source-node": "mw-N1",
                 "source-tp": "mw-N1-CTP3"
               },
               "destination": {
                 "dest-node": "mw-N2",
                 "dest-tp": "mw-N2-CTP4"
               },
               "ietf-te-topology:te": {
                 "te-link-attributes": {
                   "ietf-bandwidth-availability-topology:link-availabil\
   ity":
    [
                     {
                       "availability": "0.99",
                       "link-bandwidth": "1048576"
                     }
                   ],
                   "ietf-microwave-topology:mw-link-choice": {
                     "microwave-carrier": {
                       "tx-frequency": 10528000,
                       "rx-frequency": 10415000,
                       "channel-separation": 28000
                     }
                   }
                 }
               }
             }
           ]
         }
       ]
     },
     "ietf-interfaces:interfaces": {
       "interface": [
         {
           "name": "L2Interface1",
           "description": "'Ethernet Interface 1'",
           "type": "iana-if-type:ethernetCsmacd"
         },
         {
           "name": "L2Interface2",
           "description": "'Ethernet Interface 2'",
           "type": "iana-if-type:ethernetCsmacd"
         },
         {
           "name": "RLT-1",
           "description": "'Radio Link Terminal 1'",
           "type": "iana-if-type:microwaveRadioLinkTerminal",
           "ietf-microwave-radio-link:mode":
           "ietf-microwave-types:two-plus-zero",
           "ietf-microwave-radio-link:carrier-terminations": [
             "CT-1",
             "CT-3"
           ]
         },
         {
           "name": "RLT-2",
           "description": "'Radio Link Terminal 2'",
           "type": "iana-if-type:microwaveRadioLinkTerminal",
           "ietf-microwave-radio-link:mode":
           "ietf-microwave-types:two-plus-zero",
           "ietf-microwave-radio-link:carrier-terminations": [
             "CT-2",
             "CT-4"
           ]
         },
         {
           "name": "CT-1",
           "description": "'Carrier Termination 1'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10728000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:single": {
             "selected-cm": "ietf-microwave-types:qam-512"
           }
         },
         {
           "name": "CT-3",
           "description": "'Carrier Termination 3'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10528000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:single": {
             "selected-cm": "ietf-microwave-types:qam-512"
           }
         },
         {
           "name": "CT-2",
           "description": "'Carrier Termination 2'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10615000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:single": {
             "selected-cm": "ietf-microwave-types:qam-512"
           }
         },
         {
           "name": "CT-4",
           "description": "'Carrier Termination 4'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10415000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:single": {
             "selected-cm": "ietf-microwave-types:qam-512"
           }
         }
       ]
     }
   }
   <CODE ENDS>

   This example shows a 1+1 mode for protection.

   <CODE BEGINS> file "example1plus1-f.json"
   =============== NOTE: '\' line wrapping per RFC 8792 ================

   {
     "ietf-network:networks": {
       "network": [
         {
           "network-id": "L2-network",
           "network-types": {
             "ietf-te-topology:te-topology": {
               "ietf-eth-te-topology:eth-tran-topology": {
               }
             }
           },
           "supporting-network": [
             {
               "network-ref": "mw-network"
             }
           ],
           "node": [
             {
               "node-id": "L2-N1",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N1"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "L2-N1-TP1",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N1",
                       "tp-ref": "mw-N1-RLTP1"
                     }
                   ]
                 }
               ]
             },
             {
               "node-id": "L2-N2",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N2"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "L2-N2-TP2",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N2",
                       "tp-ref": "mw-N2-RLTP2"
                     }
                   ]
                 }
               ]
             }
           ],
           "ietf-network-topology:link": [
             {
               "link-id": "L2-N1-N2",
               "source": {
                 "source-node": "L2-N1",
                 "source-tp": "L2-N1-TP1"
               },
               "destination": {
                 "dest-node": "L2-N2",
                 "dest-tp": "L2-N2-TP2"
               },
               "supporting-link": [
                 {
                   "network-ref": "mw-network",
                   "link-ref": "mwrl-N1-N2"
                 }
               ]
             }
           ]
         },
         {
           "network-id": "mw-network",
           "network-types": {
             "ietf-te-topology:te-topology": {
               "ietf-microwave-topology:mw-topology": {
               }
             }
           },
           "supporting-network": [
             {
               "network-ref": "mw-network"
             }
           ],
           "node": [
             {
               "node-id": "mw-N1",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N1"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "mw-N1-RLTP1",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N1",
                       "tp-ref": "mw-N1-CTP1"
                     },
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N1",
                       "tp-ref": "mw-N1-CTP3"
                     }
                   ],
                   "ietf-te-topology:te-tp-id": "10.10.10.1",
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-rltp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path": "RLT-1"
                   }
                 },
                 {
                   "tp-id": "mw-N1-CTP1",
                   "ietf-te-topology:te-tp-id": 1,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path": "CT-1"
                   }
                 },
                 {
                   "tp-id": "mw-N1-CTP3",
                   "ietf-te-topology:te-tp-id": 2,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path": "CT-3"
                   }
                 }
               ]
             },
             {
               "node-id": "mw-N2",
               "supporting-node": [
                 {
                   "network-ref": "mw-network",
                   "node-ref": "mw-N2"
                 }
               ],
               "ietf-network-topology:termination-point": [
                 {
                   "tp-id": "mw-N2-RLTP2",
                   "supporting-termination-point": [
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N2",
                       "tp-ref": "mw-N2-CTP2"
                     },
                     {
                       "network-ref": "mw-network",
                       "node-ref": "mw-N2",
                       "tp-ref": "mw-N2-CTP4"
                     }
                   ],
                   "ietf-te-topology:te-tp-id": "10.10.10.1",
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-rltp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path": "RLT-2"
                   }
                 },
                 {
                   "tp-id": "mw-N2-CTP2",
                   "ietf-te-topology:te-tp-id": 1,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path": "CT-2"
                   }
                 },
                 {
                   "tp-id": "mw-N2-CTP4",
                   "ietf-te-topology:te-tp-id": 2,
                   "ietf-te-topology:te": {
                     "ietf-microwave-topology:mw-tp-choice": {
                       "microwave-ctp": {}
                     },
                     "ietf-tp-interface-reference-topology:tp-to-interf\
   ace-path": "CT-4"
                   }
                 }
               ]
             }
           ],
           "ietf-network-topology:link": [
             {
               "link-id": "mwrl-N1-N2",
               "source": {
                 "source-node": "mw-N1",
                 "source-tp": "mw-N1-RLTP1"
               },
               "destination": {
                 "dest-node": "mw-N2",
                 "dest-tp": "mw-N2-RLTP2"
               },
               "ietf-te-topology:te": {
                 "bundled-links": {
                   "bundled-link": [
                     {
                       "sequence": 1,
                       "src-tp-ref": "mw-N1-CTP1",
                       "des-tp-ref": "mw-N2-CTP2"
                     },
                     {
                       "sequence": 2,
                       "src-tp-ref": "mw-N1-CTP3",
                       "des-tp-ref": "mw-N2-CTP4"
                     }
                   ]
                 },
                 "te-link-attributes": {
                   "ietf-bandwidth-availability-topology:link-availabil\
   ity":
    [
                     {
                       "availability": "0.999",
                       "link-bandwidth": "998423"
                     },
                     {
                       "availability": "0.99",
                       "link-bandwidth": "1048576"
                     }
                   ],
                   "ietf-microwave-topology:mw-link-choice": {
                     "microwave-radio-link": {
                       "rlt-mode": {
                          "num-bonded-carriers": 1,
                          "num-protecting-carriers": 1
                       }
                     }
                   }
                 }
               }
             },
             {
               "link-id": "mwc-N1-N2-A",
               "source": {
                 "source-node": "mw-N1",
                 "source-tp": "mw-N1-CTP1"
               },
               "destination": {
                 "dest-node": "mw-N2",
                 "dest-tp": "mw-N2-CTP2"
               },
               "ietf-te-topology:te": {
                 "te-link-attributes": {
                   "ietf-bandwidth-availability-topology:link-availabil\
   ity":
    [
                     {
                       "availability": "0.99",
                       "link-bandwidth": "998423"
                     },
                     {
                       "availability": "0.95",
                       "link-bandwidth": "1048576"
                     }
                   ],
                   "ietf-microwave-topology:mw-link-choice": {
                     "microwave-carrier": {
                       "tx-frequency": 10728000,
                       "rx-frequency": 10615000,
                       "channel-separation": 28000
                     }
                   }
                 }
               }
             },
             {
               "link-id": "mwc-N1-N2-B",
               "source": {
                 "source-node": "mw-N1",
                 "source-tp": "mw-N1-CTP3"
               },
               "destination": {
                 "dest-node": "mw-N2",
                 "dest-tp": "mw-N2-CTP4"
               },
               "ietf-te-topology:te": {
                 "te-link-attributes": {
                   "ietf-bandwidth-availability-topology:link-availabil\
   ity":
    [
                     {
                       "availability": "0.99",
                       "link-bandwidth": "998423"
                     },
                     {
                       "availability": "0.95",
                       "link-bandwidth": "1048576"
                     }
                   ],
                   "ietf-microwave-topology:mw-link-choice": {
                     "microwave-carrier": {
                       "tx-frequency": 10728000,
                       "rx-frequency": 10615000,
                       "channel-separation": 28000
                     }
                   }
                 }
               }
             }
           ]
         }
       ]
     },
       "ietf-interfaces:interfaces": {
       "interface": [
         {
           "name": "L2Interface1",
           "description": "'Ethernet Interface 1'",
           "type": "iana-if-type:ethernetCsmacd"
         },
         {
           "name": "L2Interface2",
           "description": "'Ethernet Interface 2'",
           "type": "iana-if-type:ethernetCsmacd"
         },
         {
           "name": "RLT-1",
           "description": "'Radio Link Terminal 1'",
           "type": "iana-if-type:microwaveRadioLinkTerminal",
           "ietf-microwave-radio-link:mode":
      "ietf-microwave-types:one-plus-one",
           "ietf-microwave-radio-link:carrier-terminations": [
             "CT-1",
             "CT-3"
           ]
         },
         {
           "name": "RLT-2",
           "description": "'Radio Link Terminal 2'",
           "type": "iana-if-type:microwaveRadioLinkTerminal",
           "ietf-microwave-radio-link:mode":
      "ietf-microwave-types:one-plus-one",
           "ietf-microwave-radio-link:carrier-terminations": [
             "CT-2",
             "CT-4"
           ]
         },
         {
           "name": "CT-1",
           "description": "'Carrier Termination 1'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10728000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:adaptive": {
             "selected-min-acm": "ietf-microwave-types:qam-256",
             "selected-max-acm": "ietf-microwave-types:qam-512"
           }
         },
         {
           "name": "CT-3",
           "description": "'Carrier Termination 3'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10728000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:adaptive": {
             "selected-min-acm": "ietf-microwave-types:qam-256",
             "selected-max-acm": "ietf-microwave-types:qam-512"
           }
         },
         {
           "name": "CT-2",
           "description": "'Carrier Termination 2'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10615000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:adaptive": {
             "selected-min-acm": "ietf-microwave-types:qam-256",
             "selected-max-acm": "ietf-microwave-types:qam-512"
           }
         },
         {
           "name": "CT-4",
           "description": "'Carrier Termination 4'",
           "type": "iana-if-type:microwaveCarrierTermination",
           "ietf-microwave-radio-link:tx-frequency": 10615000,
           "ietf-microwave-radio-link:duplex-distance": 644000,
           "ietf-microwave-radio-link:channel-separation": 28000,
           "ietf-microwave-radio-link:rtpc": {
             "maximum-nominal-power": "20.0"
           },
           "ietf-microwave-radio-link:adaptive": {
             "selected-min-acm": "ietf-microwave-types:qam-256",
             "selected-max-acm": "ietf-microwave-types:qam-512"
           }
         }

       ]
     }
   }
   <CODE ENDS>

   Note that the examples above show one particular link
   (unidirectional) and not a complete network topology.

Authors' Addresses

   Jonas Ahlberg
   Ericsson

   Email: jonas.ahlberg@ericsson.com

   Scott Mansfield
   Ericsson

   Email: scott.mansfield@ericsson.com

   Min Ye
   Huawei Technologies

   Email: amy.yemin@huawei.com

   Italo Busi
   Huawei Technologies

   Email: italo.busi@huawei.com

   Xi Li
   NEC Laboratories Europe

   Email: xi.li@neclab.eu

   Daniela Spreafico
   Nokia - IT

   Email: daniela.spreafico@nokia.com