Internet-Draft Microwave Topology YANG Model January 2024
Mansfield, et al. Expires 22 July 2024 [Page]
Workgroup:
CCAMP Working Group
Internet-Draft:
draft-ietf-ccamp-mw-topo-yang-09
Published:
Intended Status:
Standards Track
Expires:
Authors:
S. Mansfield, Ed.
Ericsson Inc
J. Ahlberg
Ericsson AB
M. Ye
Huawei Technologies
X. Li
NEC Laboratories Europe
D. Spreafico
Nokia - IT

A YANG Data Model for Microwave Topology

Abstract

This document defines a YANG data model to describe microwave/millimeter radio links in a network topology.

About This Document

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

The latest revision of this draft can be found at https://github.com/ietf-ccamp-wg/draft-ietf-ccamp-mw-topo-yang. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ietf-ccamp-mw-topo-yang/.

Discussion of this document takes place on the CCAMP Working Group mailing list (mailto:ccamp@ietf.org), which is archived at https://datatracker.ietf.org/wg/ccamp/about/. Subscribe at https://www.ietf.org/mailman/listinfo/ccamp/.

Source for this draft and an issue tracker can be found at https://github.com/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 22 July 2024.

Table of Contents

1. Introduction

This document defines a YANG data model to describe topologies of microwave/millimeter wave (hereafter microwave is used to simplify the text). The YANG data model describes radio links, supporting carrier(s) and the associated termination points [RFC8561]. 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. The model augments "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 Layer 0 / Layer 1 (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 Layer 2 (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 model is 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 affect traffic on higher layers.

  2. Propagation of relevant characteristics of a microwave radio link, such as bandwidth, to higher topology layers, where it 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, with the purpose to minimize overall interference and/or maximize the overall capacity provided by the links.

1.1. Abbreviations

The following abbreviations are used in this document:

CTP Carrier Termination Point

RLT Radio Link Terminal

RLTP Radio Link Termination Point

SNIR Signal Noise Interference Ratio

MDSC Multi Domain Service Coordinator

PNC Provisioning Network Controller

1.2. Tree Structure

A simplified graphical representation of the data model is used in chapter 3.1 of this document. The meaning of the symbols in these diagrams is defined in [RFC8340].

1.3. Prefixes in Data Node Names

In this document, 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.

Table 1: Prefixes for imported YANG modules
Prefix YANG Module Reference
mwt ietf-microwave-topology This document
nw ietf-network [RFC8345]
nt ietf-network-topology [RFC8345]
mw-types ietf-microwave-types [RFC8561]
tet ietf-te-topology [RFC8795]

2. Microwave Topology YANG Data Model

2.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/tet:te/tet:te-node-attributes:
  +--rw mw-node!
augment
 /nw:networks/nw:network/nw:node/nt:termination-point/tet:te:
  +--rw mw-tp!
     +--rw (mw-tp-option)?
        +--:(microwave-rltp)
        |  +--rw microwave-rltp!
        +--:(microwave-ctp)
           +--rw microwave-ctp!
augment
 /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes:
  +--rw mw-link!
     +--rw (mw-link-option)?
        +--:(microwave-radio-link)
        |  +--rw microwave-radio-link!
        |     +--rw rlt-mode
        |        +--rw num-bonded-carriers        uint32
        |        +--rw num-protecting-carriers    uint32
        +--:(microwave-carrier)
           +--rw microwave-carrier!
              +--rw tx-frequency?               uint32
              +--rw rx-frequency?               uint32
              +--rw channel-separation?         uint32
              +--ro actual-tx-cm?               identityref
              +--ro actual-snir?                decimal64
              +--ro actual-transmitted-level?   decimal64
augment
 /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes/
 tet:max-link-bandwidth/tet:te-bandwidth:
   +--ro mw-bandwidth?   uint64

2.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 JSON examples of an L2 Ethernet link transported over one supporting microwave link.

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

Since microwave is a point-to-point radio technology, 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 appendices Appendix A and Appendix B in this document.

More specifically in the context of the microwave-specific augmentations of te-topology, admin-status and oper-status leafs (from te-topology) are only applicable to microwave carriers (in the mw-link tree) and not microwave radio links. Enable and disable of a radio link is instead done in the constituent carriers. Furthermore the status leafs related to mw-tp can be used when links are inter-domain and when the status of only one side of the 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.

2.5. Microwave Topology YANG Module

<CODE BEGINS> file "ietf-microwave-topology@2024-01-19.yang"

 module ietf-microwave-topology {
   yang-version "1.1";
   namespace
   "urn:ietf:params:xml:ns:yang:ietf-microwave-topology";

   prefix "mwt";

   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>

      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>
     ";

   description
     "This is a module for microwave topology.

     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.";

   revision 2024-01-19   {
     description
     "AD comment resolutions.";
     reference "";
   }

   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-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;
     }
   }

   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;
       }
       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 decimal64 {
         fraction-digits 1;
       }
       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";
     }
   }

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

   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/tet:te"
        + "/tet:te-node-attributes" {
    when "/nw:networks/nw:network/nw:network-types"
       + "/tet:te-topology/mwt:mw-topology" {
       description
         "Augmentation parameters apply only for networks with a
          microwave network topology type.";
     }
     description
       "Augment network node to indicate a microwave node.";
     container mw-node {
       presence "Indicates a microwave node.";
       description "Microwave node";
     }
   }

   augment "/nw:networks/nw:network/nw:node/nt:termination-point/"
           + "tet:te" {
     when '../../../nw:network-types/tet:te-topology/'
          + 'mwt:mw-topology' {
       description
         "Augmentation parameters apply only for networks with a
          microwave network topology type.";
     }
     description
       "Augmentation to add microwave technology specific
        characteristics to a termination point.";
     container mw-tp {
       presence
         "Denotes a microwave termination point.";
       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.";
             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.";
             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/'
        + 'mwt:mw-topology' {
       description
         "Augmentation parameters apply only for networks with a
          microwave network topology type.";
     }
     description
       "Augmentation to add microwave technology specific
        characteristics to a link.";
     container mw-link {
       presence "This indicates a microwave link";
       description "Specification of type of link.";
       choice mw-link-option {
         mandatory true;
         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" {
     when '../../../../../nw:network-types/tet:te-topology/'
          + 'mwt:mw-topology' {
       description
         "Augmentation parameters apply only for networks with a
          microwave network topology type.";
     }
     description
       "Augmentation for TE bandwidth.";
      uses microwave-bandwidth;
   }
 }

<CODE ENDS>

3. Security Considerations

The YANG module specified in this document defines 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 module specified in this document imports and augments the ietf-network and ietf-network-topology models defined in [RFC8345]. The security considerations from [RFC8345] are applicable to the module in this document.

There are a several data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default). These data nodes can 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:

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

It is proposed that IANA record the 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: mwt
    Reference: RFC XXXX

5. References

5.1. Normative References

[RFC3688]
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, , <https://www.rfc-editor.org/rfc/rfc3688>.
[RFC6020]
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, , <https://www.rfc-editor.org/rfc/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, , <https://www.rfc-editor.org/rfc/rfc6241>.
[RFC6242]
Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, , <https://www.rfc-editor.org/rfc/rfc6242>.
[RFC8040]
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, , <https://www.rfc-editor.org/rfc/rfc8040>.
[RFC8341]
Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, , <https://www.rfc-editor.org/rfc/rfc8341>.
[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, , <https://www.rfc-editor.org/rfc/rfc8345>.
[RFC8446]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, , <https://www.rfc-editor.org/rfc/rfc8446>.
[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, , <https://www.rfc-editor.org/rfc/rfc8561>.
[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, , <https://www.rfc-editor.org/rfc/rfc8795>.

5.2. Informative References

[EN301129]
ETSI, "Transmission and Multiplexing (TM); Digital Radio Relay Systems (DRRS); Synchronous Digital Hierarchy (SDH); System performance monitoring parameters of SDH DRRS", EN 301 129 V1.1.2 , .
[EN302217-1]
ETSI, "Fixed Radio Systems; Characteristics and requirements for point-to-point equipment and antennas; Part 1: Overview, common characteristics and system- dependent requirements", EN 302 217-1 V3.1.0 , .
[I-D.draft-ietf-ccamp-bwa-topo-yang]
Ahlberg, J., Mansfield, S., Ye, M., Busi, I., Li, X., and D. Spreafico, "A YANG Data Model for Bandwidth Availability Topology", Work in Progress, Internet-Draft, draft-ietf-ccamp-bwa-topo-yang-01, , <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-bwa-topo-yang-01>.
[I-D.draft-ietf-ccamp-if-ref-topo-yang]
Ahlberg, J., Mansfield, S., Ye, M., Busi, I., Li, X., and D. Spreafico, "A YANG Data Model for Interface Reference Topology", Work in Progress, Internet-Draft, draft-ietf-ccamp-if-ref-topo-yang-01, , <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-if-ref-topo-yang-01>.
[RFC8340]
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, , <https://www.rfc-editor.org/rfc/rfc8340>.
[RFC8453]
Ceccarelli, D., Ed. and Y. Lee, Ed., "Framework for Abstraction and Control of TE Networks (ACTN)", RFC 8453, DOI 10.17487/RFC8453, , <https://www.rfc-editor.org/rfc/rfc8453>.
[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, , <https://www.rfc-editor.org/rfc/rfc8792>.
[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, , <https://www.rfc-editor.org/rfc/rfc8944>.

Appendix A. Microwave Topology Model with base topology models

This appendix provides some examples and illustrations of how the Microwave Topology Model can be used. The tree illustrates an example of a complete Microwave Topology Model including the relevant data nodes from network-topology and te-topology (base topology models). There are also JSON based instantiations of the Microwave Topology Model for a couple of small network examples.

The tree below shows an example of the relevant leafs for a complete Microwave Topology Model including the augmented Network Topology Model defined in [RFC8345] and the Traffic Engineering (TE) Topologies model defined in [RFC8795].

module: ietf-network
+--rw networks
 +--rw network* [network-id]
 |  +--rw network-id                    network-id
 |  +--rw network-types
 |  |  +--rw tet:te-topology!
 |  |  |  +--rw mwt:mw-topology!
 |  +--rw supporting-network* [network-ref]
 |  |  +--rw network-ref    -> /networks/network/network-id
 |  +--rw node* [node-id]
 |  |  +--rw node-id                   node-id
 |  |  +--rw supporting-node* [network-ref node-ref]
 |  |  |  +--rw network-ref  -> ../../../supporting-network/
network-ref
 |  |  |  +--rw node-ref     -> /networks/network/node/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/
network-ref
 |  |  |  |  +--rw nt:node-ref       -> ../../../nw:supporting-node/
node-ref
 |  |  |  |  +--rw nt:tp-ref         -> /nw:networks/
network[nw:network-id=current()/../network-ref]/
node[nw:node-id=current()/../node-ref]/termination-point/tp-id
 |  |  |  +--rw tet:te-tp-id?                  te-types:te-tp-id
 |  |  |  +--rw tet:te!
 |  |  |  |  +--rw tet:name?                   string
 |  |  |  |  +--ro tet:geolocation
 |  |  |  |  |  +--ro tet:altitude?    int64
 |  |  |  |  |  +--ro tet:latitude?    geographic-coordinate-degree
 |  |  |  |  |  +--ro tet:longitude?   geographic-coordinate-degree
 |  |  |  |  +--rw mwt:mw-tp
 |  |  |  |  |  +--rw (mwt:mw-tp-option)?
 |  |  |  |  |     +--:(mwt:microwave-rltp)
 |  |  |  |  |     |  +--rw mwt:microwave-rltp!
 |  |  |  |  |     +--:(mwt:microwave-ctp)
 |  |  |  |  |        +--rw mwt:microwave-ctp!
 |  |  +--rw tet:te-node-id?           te-types:te-node-id
 |  +--rw nt:link* [link-id]
 |  |  +--rw nt:link-id                link-id
 |  |  +--rw nt:source
 |  |  |  +--rw nt:source-node?   -> ../../../nw:node/node-id
 |  |  |  +--rw nt:source-tp?     -> ../../../nw:node
[nw:node-id=current()/../source-node]/termination-point/tp-id
 |  |  +--rw nt:destination
 |  |  |  +--rw nt:dest-node?   -> ../../../nw:node/node-id
 |  |  |  +--rw nt:dest-tp?     -> ../../../nw:node
[nw:node-id=current()/../dest-node]/termination-point/tp-id
 |  |  +--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?   -> ../../../../../
nw:node[nw:node-id = current()/../../../../nt:source/source-node]/
termination-point/tp-id
 |  |  |  |  |        +--rw tet:des-tp-ref?   -> ../../../../../
nw:node[nw:node-id = current()/../../../../nt:destination/dest-node]/
termination-point/tp-id
 |  |  |  +--rw tet:te-link-attributes
 |  |  |  |  +--rw tet:name?                             string
 |  |  |  |  +--rw tet:max-link-bandwidth
 |  |  |  |  |  +--rw tet:te-bandwidth
 |  |  |  |  |     +--ro mwt:mw-bandwidth?       uint64
 |  |  |  |  +--rw mwt:mw-link!
 |  |  |  |     +--rw (mwt:mw-link-option)?
 |  |  |  |        +--:(mwt:microwave-radio-link)
 |  |  |  |        |  +--rw mwt:microwave-radio-link!
 |  |  |  |        |     +--rw mwt:rlt-mode
 |  |  |  |        |        +--rw mwt:num-bonded-carriers
uint32
 |  |  |  |        |        +--rw mwt:num-protecting-carriers
uint32
 |  |  |  |        +--:(mwt:microwave-carrier)
 |  |  |  |           +--rw mwt:microwave-carrier!
 |  |  |  |              +--rw mwt:tx-frequency?      uint32
 |  |  |  |              +--rw mwt:rx-frequency?      uint32
 |  |  |  |              +--rw mwt:channel-separation? uint32
 |  |  |  |              +--ro mwt:actual-tx-cm?      identityref
 |  |  |  |              +--ro mwt:actual-snir?       decimal64
 |  |  |  |              +--ro mwt:actual-transmitted-level?
decimal64

The Microwave Topology Model augments the TE Topology Model.

Node N1 Node N2 L2-network L2-N1-TP1 L2-N1-N2 L2-N2-TP2 -L2 topology ' Supporting : ' : ' mw link : ' : : TPs ' mw-N1- mwrl-N1-N2 mw-N2- MW-network RLTP1 RLTP2 -MW topology : : : : :: :: Supporting : : : TPs mw-N1- : : mw-N2- carriers CTP1 : : CTP2 as bundled : mwc-N1-N2-A : links : : mw-N1-CTP3 mw-N2-CTP4 mwc-N1-N2-B
Figure 1: Example for L2 over microwave

A.1. Instance data for 2+0 mode for a bonded configuration

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "L2-network",
        "network-types": {
          "ietf-te-topology:te-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": "192.0.2.3",
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-rltp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N1-CTP1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N1-CTP3",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              }
            ]
          },
          {
            "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": "192.0.2.4",
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-rltp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N2-CTP2",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N2-CTP4",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              }
            ]
          }
        ],
        "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-microwave-topology:mw-link": {
                  "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-microwave-topology:mw-link": {
                  "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-microwave-topology:mw-link": {
                  "microwave-carrier": {
                    "tx-frequency": 10528000,
                    "rx-frequency": 10415000,
                    "channel-separation": 28000
                  }
                }
              }
            }
          }
        ]
      }
    ]
  }
}

A.2. Instance data for 1+1 mode for a protected configuration

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "L2-network",
        "network-types": {
          "ietf-te-topology:te-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": "192.0.2.3",
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-rltp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N1-CTP1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N1-CTP3",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              }
            ]
          },
          {
            "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": "192.0.2.4",
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-rltp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N2-CTP2",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              },
              {
                "tp-id": "mw-N2-CTP4",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  }
                }
              }
            ]
          }
        ],
        "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-microwave-topology:mw-link": {
                  "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-microwave-topology:mw-link": {
                  "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-microwave-topology:mw-link": {
                  "microwave-carrier": {
                    "tx-frequency": 10728000,
                    "rx-frequency": 10615000,
                    "channel-separation": 28000
                  }
                }
              }
            }
          }
        ]
      }
    ]
  }
}

Appendix B. Microwave Topology Model with example extensions

This appendix provides examples of how the Microwave Topology Model can be used with the interface reference topology (ifref) [I-D.draft-ietf-ccamp-if-ref-topo-yang] and the bandwidth-availability-topology (bwa) [I-D.draft-ietf-ccamp-bwa-topo-yang] models. There is also a snippet of JSON to show geolocation information instance data. When the JSON files have long lines, [RFC8792] is used to wrap the long lines.

The tree below shows an example of the relevant leafs for a complete Microwave Topology Model including interface reference topology (ifref) [I-D.draft-ietf-ccamp-if-ref-topo-yang] and bandwidth-availability-topology (bwa) [I-D.draft-ietf-ccamp-bwa-topo-yang] models.

module: ietf-network
+--rw networks
 +--rw network* [network-id]
 |  +--rw network-id                    network-id
 |  +--rw network-types
 |  |  +--rw tet:te-topology!
 |  |  |  +--rw mwt:mw-topology!
 |  +--rw supporting-network* [network-ref]
 |  |  +--rw network-ref    -> /networks/network/network-id
 |  +--rw node* [node-id]
 |  |  +--rw node-id                   node-id
 |  |  +--rw supporting-node* [network-ref node-ref]
 |  |  |  +--rw network-ref    -> ../../../supporting-network/networ
k-ref
 |  |  |  +--rw node-ref       -> /networks/network/node/node-id
 |  |  +--rw nt:termination-point* [tp-id]
 |  |  |  +--rw nt:tp-id                               tp-id
 |  |  |  +--rw nt:supporting-termination-point* [network-ref node-r
ef tp-ref]
 |  |  |  |  +--rw nt:network-ref    -> ../../../nw:supporting-node/
network-ref
 |  |  |  |  +--rw nt:node-ref       -> ../../../nw:supporting-node/
node-ref
 |  |  |  |  +--rw nt:tp-ref         -> /nw:networks/
network[nw:network-id=current()/../network-ref]/
node[nw:node-id=current()/../node-ref]/
termination-point/tp-id
 |  |  |  +--rw tet:te-tp-id?                          te-types:te-t
p-id
 |  |  |  +--rw tet:te!
 |  |  |  |  +--rw tet:name?                             string
 |  |  |  |  +--ro tet:geolocation
 |  |  |  |  |  +--ro tet:altitude?    int64
 |  |  |  |  |  +--ro tet:latitude?    geographic-coordinate-degree
 |  |  |  |  |  +--ro tet:longitude?   geographic-coordinate-degree
 |  |  |  |  +--rw mwt:mw-tp!
 |  |  |  |  |  +--rw (mwt:mw-tp-option)?
 |  |  |  |  |     +--:(mwt:microwave-rltp)
 |  |  |  |  |     |  +--rw mwt:microwave-rltp!
 |  |  |  |  |     +--:(mwt:microwave-ctp)
 |  |  |  |  |        +--rw mwt:microwave-ctp!
 |  |  |  |  +--rw ifref:tp-to-interface-path?  -> /if:interfaces/
interface/name
 |  |  +--rw tet:te-node-id?           te-types:te-node-id
 |  +--rw nt:link* [link-id]
 |  |  +--rw nt:link-id                link-id
 |  |  +--rw nt:source
 |  |  |  +--rw nt:source-node?   -> ../../../nw:node/node-id
 |  |  |  +--rw nt:source-tp?     -> ../../../
nw:node[nw:node-id=current()/../source-node]/termination-point/tp-id
 |  |  +--rw nt:destination
 |  |  |  +--rw nt:dest-node?   -> ../../../nw:node/node-id
 |  |  |  +--rw nt:dest-tp?     -> ../../../
nw:node[nw:node-id=current()/../dest-node]/termination-point/tp-id
 |  |  +--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?   -> ../../../../../
nw:node[nw:node-id = current()/../../../../nt:source/source-node]/
termination-point/tp-id
 |  |  |  |  |        +--rw tet:des-tp-ref?   -> ../../../../../
nw:node[nw:node-id = current()/../../../../nt:destination/
dest-node]/termination-point/tp-id
 |  |  |  +--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
 |  |  |  |  |     +--ro mwt:mw-bandwidth?       uint64
 |  |  |  |  +--rw mwt:mw-link!
 |  |  |  |     +--rw (mwt:mw-link-option)?
 |  |  |  |        +--:(mwt:microwave-radio-link)
 |  |  |  |        |  +--rw mwt:microwave-radio-link!
 |  |  |  |        |     +--rw mwt:rlt-mode
 |  |  |  |        |      +--rw mwt:num-bonded-carriers uint32
 |  |  |  |        |      +--rw mwt:num-protecting-carriers uint32
 |  |  |  |        +--:(mwt:microwave-carrier)
 |  |  |  |           +--rw mwt:microwave-carrier!
 |  |  |  |            +--rw mwt:tx-frequency?       uint32
 |  |  |  |            +--rw mwt:rx-frequency?       uint32
 |  |  |  |            +--rw mwt:channel-separation? uint32
 |  |  |  |            +--ro mwt:actual-tx-cm?       identityref
 |  |  |  |            +--ro mwt:actual-snir?        decimal64
 |  |  |  |            +--ro mwt:actual-transmitted-level?
decimal64
 |  |  |  |  +--rw bwatopo:link-availability* [availability]
 |  |  |  |  |  +--rw bwatopo:availability      decimal64
 |  |  |  |  |  +--rw bwatopo:link-bandwidth?   uint64
 |  |  |  |  +--ro bwatopo:actual-bandwidth?    yang:gauge64

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]. The example below uses Figure 1 and adds the Interface related information.

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 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
Figure 2: Interface extension example for L2 over microwave

B.1. Instance data for 2+0 mode

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:

{
  "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": 113000,
        "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": 113000,
        "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": 113000,
        "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": 113000,
        "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"
        }
      }
    ]
  },
  "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"
                  }
                ]
              }
            ],
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "ietf-eth-te-topology:eth-node": {}
              }
            }
          },
          {
            "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-te-topology:te-node-id": "192.0.2.2",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "ietf-eth-te-topology:eth-node": {}
              }
            }
          }
        ],
        "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"
              }
            ],
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "switching-capability":
                      "ietf-te-types:switching-l2sc",
                    "encoding": "ietf-te-types:lsp-encoding-ethernet"
                  }
                ]
              }
            }
          }
        ]
      },
      {
        "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": "192.0.2.3",
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-rltp": {}
                  },
"ietf-tp-interface-reference-topology:tp-to-interface-path": "RLT-1"
                }
              },
              {
                "tp-id": "mw-N1-CTP1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  },
"ietf-tp-interface-reference-topology:tp-to-interface-path": "CT-1"
                }
              },
              {
                "tp-id": "mw-N1-CTP3",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  },
"ietf-tp-interface-reference-topology:tp-to-interface-path": "CT-3"
                }
              }
            ],
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "ietf-microwave-topology:mw-node": {}
              }
            }
          },
          {
            "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": "192.0.2.4",
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-rltp": {}
                  },
"ietf-tp-interface-reference-topology:tp-to-interface-path": "RLT-2"
                }
              },
              {
                "tp-id": "mw-N2-CTP2",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  },
"ietf-tp-interface-reference-topology:tp-to-interface-path": "CT-2"
                }
              },
              {
                "tp-id": "mw-N2-CTP4",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "ietf-microwave-topology:mw-tp": {
                    "microwave-ctp": {}
                  },
"ietf-tp-interface-reference-topology:tp-to-interface-path": "CT-4"
                }
              }
            ],
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "ietf-microwave-topology:mw-node": {}
              }
            }
          }
        ],
        "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-microwave-topology:mw-link": {
                  "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-availability": [
                  {
                    "availability": "0.99",
                    "link-bandwidth": "998423"
                  },
                  {
                    "availability": "0.95",
                    "link-bandwidth": "1048576"
                  }
                ],
                "ietf-microwave-topology:mw-link": {
                  "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-microwave-topology:mw-link": {
                  "microwave-carrier": {
                    "tx-frequency": 10528000,
                    "rx-frequency": 10415000,
                    "channel-separation": 28000
                  }
                }
              }
            }
          }
        ]
      }
    ]
  }
}

B.2. Instance data for geolocation information

This example provides a json snippet that shows geolocation information.

   "node": [
      {
         "node-id": "mw-N1",

         ...

         "ietf-te-topology:te" : {
            "ietf-te-topology:geolocation": {
               "altitude": "200000",
               "latitude": "45",
               "longitude": "90"
               }
         },
         "ietf-network-topology:termination-point": [

         ...

Acknowledgments

This document was prepared using kramdown (thanks Martin Thomson).

The authors would like to thank Tom Petch and Éric Vyncke for their reviews.

Contributors

Italo Busi
Huawei Technologies

Authors' Addresses

Scott Mansfield (editor)
Ericsson Inc
Jonas Ahlberg
Ericsson AB
Lindholmspiren 11
SE-417 56 Goteborg
Sweden
Min Ye
Huawei Technologies
No.1899, Xiyuan Avenue
Chengdu
611731
China
Xi Li
NEC Laboratories Europe
Kurfursten-Anlage 36
69115 Heidelberg
Germany
Daniela Spreafico
Nokia - IT
Via Energy Park, 14
20871 Vimercate (MI)
Italy