RFC 9656
A YANG Data Model for Microwave Topology
A YANG Data Model for Microwave Topology π‘β¨
- RFC number: 9656 π
- Category: Standards Track π
- Date: September 2024 πΈ
- ISSN: 2070-1721
- Obsoletes / Updates: The title block doesn't list anything it obsoletes or updates π¦
- Authors:
- S. Mansfield, Ed. (Ericsson Inc) π
- J. Ahlberg (Ericsson AB) π
- M. Ye (Huawei Technologies) π§
- X. Li (NEC Laboratories Europe) π
- D. Spreafico (Nokia - IT) π
This is an IETF (Internet Engineering Task Force) document, and it's on the Standards Track, so it's an official spec! π₯
Abstract β¨
okay so this doc defines a YANG data model to describe microwave and millimeter-wave radio links in a network topology π‘π
Status of This Memo π
This is an Internet Standards Track document. π
It's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). If you want more info on Internet Standards, check out Section 2 of RFC 7841 π«Ά
Info about the current status of this doc, any errata, and how to give feedback is all at https://www.rfc-editor.org/info/rfc9656 πΈ
Copyright Notice π
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. π
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they're in effect on the date of publication. Please read these carefully, bestie, because they spell out your rights and restrictions for this document π Code Components pulled out of this document must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Revised BSD License β οΈ
Table of Contents πΊοΈ
1. Introduction
1.1. Abbreviations
1.2. Tree Structure
1.3. Prefixes in Data Node Names
2. Microwave Topology YANG Data Model
2.1. YANG Tree
2.2. Relationship between Radio Links and Carriers
2.3. Relationship with Client Topology Model
2.4. Applicability of the Data Model for Traffic Engineering
(TE) Topologies
2.5. Microwave Topology YANG Module
3. Security Considerations
4. IANA Considerations
5. References
5.1. Normative References
5.2. Informative References
Appendix A. Microwave Topology Model with Base Topology Models
A.1. Instance Data for 2+0 Mode for a Bonded Configuration
A.2. Instance Data for 1+1 Mode for a Protected Configuration
Appendix B. Microwave Topology Model with Example Extensions
B.1. Instance Data for 2+0 Mode
B.2. Instance Data for Geolocation Information
Acknowledgments
Contributors
Authors' Addresses
1. Introduction π
okay so this document defines a YANG data model to describe microwave and millimeter-wave radio links in a network topology. From here on, we're just going to say "microwave" to keep things simple π The YANG data model describes radio links, the carriers that support them, and the associated carrier termination points [RFC8561]. A carrier is a single link that gives you transport capacity over the air, and it's usually defined by its transmitting and receiving frequencies π‘ A radio link gives you the transport capacity of its supporting carriers in aggregated and/or protected configurations. That capacity can carry traffic on higher topology layers, like Ethernet and Time-Division Multiplexing (TDM) π¦ This model augments the YANG Data Model for Traffic Engineering (TE) Topologies defined in [RFC8795], and that one is based on A YANG Data Model for Network Topologies defined in [RFC8345] β¨
The microwave point-to-point radio tech gives you connectivity on Layer 0 or Layer 1 (L0/L1) over a radio link between two termination points, using one or several supporting carriers in aggregated or protected configurations π This is not the kind of microwave tech that can do cross-connection or switching of traffic to build connectivity across multiple microwave radio links, no cap π ββοΈ Instead, a payload of traffic from higher topology layers, normally Layer 2 (L2) Ethernet, gets carried over the microwave radio link. Once the radio link is terminated at the endpoints, cross-connection and switching can happen on that higher layer, and that's how you get 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]. Here are some use cases it can support, bestie π
- Correlation between microwave radio links and the supported links on higher topology layers (e.g., an L2 Ethernet topology). This info helps you understand how changes in the performance or status of a microwave radio link affect traffic on higher layers πΈ
- Propagation of relevant characteristics of a microwave radio link, such as bandwidth, up to higher topology layers. Those can then be used as a criterion when configuring and optimizing a path for a connection or service through the network, end to end π₯
- Optimization of the microwave radio link configurations at the network level, with the purpose of minimizing overall interference and/or maximizing 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 π
1.2. Tree Structure π³
A simplified graphical representation of the data model is used in Section 2 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 with the standard prefix associated with the corresponding YANG imported modules, as shown in Table 1 π
+==========+=======================+===========+
| Prefix | YANG Module | Reference |
+==========+=======================+===========+
| nw | ietf-network | [RFC8345] |
+----------+-----------------------+-----------+
| nt | ietf-network-topology | [RFC8345] |
+----------+-----------------------+-----------+
| mw-types | ietf-microwave-types | [RFC8561] |
+----------+-----------------------+-----------+
| tet | ietf-te-topology | [RFC8795] |
+----------+-----------------------+-----------+
Table 1: Prefixes for Imported YANG Modules
2. Microwave Topology YANG Data Model π§
2.1. YANG Tree π²
Here's the tree diagram for the module, so you can see how everything nests π
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
+--ro actual-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
Figure 1: Microwave Topology Tree
2.2. Relationship between Radio Links and Carriers πΆ
A microwave radio link is always an aggregate of one or more carriers, arranged in various configurations or modes π The supporting carriers are identified by their termination points, and they're 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 has JSON examples of how this relationship can be modeled π
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 or dependency from higher topology layers to a supporting microwave radio link topology layer π¦ Appendix A has 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, most of the leafs in the Data Model for Traffic Engineering (TE) Topologies [RFC8795] that get augmented by the microwave topology model are not applicable π You can find examples of which leafs are considered applicable in Appendices A and B of this document π
In the more specific context of the microwave-specific augmentations of te-topology, the admin-status and oper-status leafs (from te-topology) are only applicable to microwave carriers (in the mw-link tree). They are not applicable to microwave radio links. Radio links are instead enabled or disabled through their constituent carriers π₯ Also, the status leafs related to mw-tp can be used with inter-domain links, and when the status of only one side of the link is known. However, since microwave is a point-to-point technology where both ends normally belong to the same domain, it's not expected to be applicable in normal cases π
2.5. Microwave Topology YANG Module β¨
okay so this is the big one bestie π this section is where the actual YANG module lives, the whole microwave topology model in code form. it imports stuff from [RFC8345], [RFC8561], and [RFC8795] (so it's built on top of those, iykyk π§) and it references [EN301129] and [EN302217-1] too. the code is shown exactly as written, no cap π
<CODE BEGINS> file "ietf-microwave-topology@2024-09-30.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: A YANG Data Model for Microwave Radio Link";
}
organization
"Internet Engineering Task Force (IETF) CCAMP WG";
contact
"WG Web: <https://datatracker.ietf.org/wg/ccamp/>
WG List: <ccamp@ietf.org>
Editor: Jonas Ahlberg
<jonas.ahlberg@ericsson.com>
Editor: Scott Mansfield
<scott.mansfield@ericsson.com>
Editor: Min Ye
<amy.yemin@huawei.com>
Editor: Italo Busi
<Italo.Busi@huawei.com>
Editor: Xi Li
<Xi.Li@neclab.eu>
Editor: Daniela Spreafico
<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 9656; see
the RFC itself for full legal notices.";
revision 2024-09-30 {
description
"Initial revision.";
reference
"RFC 9656: A YANG Data Model for Microwave Topology";
}
grouping rlt-mode {
description
"This grouping provides a flexible definition of the 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 the 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 actual-rx-frequency {
type uint32;
units "kHz";
config false;
description
"Computed 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 channel 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:network-types'
+ '/tet:te-topology/mwt:mw-topology' {
description
"Augmentation parameters apply only to 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.";
reference
"RFC 8561: A YANG Data Model for Microwave Radio Link";
}
}
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.";
reference
"RFC 8561: A YANG Data Model for Microwave Radio Link";
}
}
}
}
}
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";
description
"Denotes and describes a microwave radio link.";
uses microwave-radio-link-attributes;
}
}
case microwave-carrier {
container microwave-carrier {
presence "Denotes a microwave carrier";
description
"Denotes and describes a microwave carrier.";
uses microwave-carrier-attributes;
}
}
}
}
}
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>
that's the whole module, babes π¦π
3. Security Considerations πβ¨
Okay bestie, security is the serious part, so listen up π«Ά. This YANG module defines schemas for data that's meant to be accessed over network management protocols like NETCONF [RFC6241] or RESTCONF [RFC8040]. For NETCONF, the bottom layer is the secure transport layer, and the mandatory-to-implement secure transport is Secure Shell (SSH) [RFC6242]. For RESTCONF, the bottom layer is HTTPS, and the mandatory-to-implement secure transport is TLS [RFC8446]. So the locks go on the transport first π
The NETCONF access control model [RFC8341] is how you restrict particular NETCONF or RESTCONF users to a preconfigured subset of the protocol operations and content. It's giving "only these people get these buttons" π
This module imports and augments the ietf-network and ietf-network-topology models from [RFC8345], so the security considerations in [RFC8345] also apply to this module. Not me reading one spec and skipping the other π
Now the scary part π Lots of data nodes in this module are writable, creatable, and deletable (that's config true, which is the default). Those nodes can be sensitive or vulnerable depending on the network, and write operations like edit-config to them without proper protection can mess with network operations in a bad way. These are the subtrees and data nodes, plus why they're sensitive:
rlt-mode: A malicious client could try to change the mode the radio link is configured in, which would change how the link is meant to behave. πtx-frequencyandchannel-separation: A malicious client could try to change a carrier's frequency configuration. That could change its intended behavior, make the configuration invalid, and stop its operation completely. Literally the nightmare scenario ππ₯
4. IANA Considerations ππ
IANA has assigned a brand new URI from the "IETF XML Registry" [RFC3688], and it looks like this:
URI: urn:ietf:params:xml:ns:yang:ietf-microwave-topology
Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace.
IANA also recorded the YANG module name in the "YANG Module Names" registry [RFC6020], so the module is officially on the list π
Name: ietf-microwave-topology
Maintained by IANA?: N
Namespace: urn:ietf:params:xml:ns:yang:ietf-microwave-topology
Prefix: mwt
Reference: RFC 9656
5. References ππ§
5.1. Normative References
These are the must-read ones, the ones this document can't function without π
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<https://www.rfc-editor.org/info/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://www.rfc-editor.org/info/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://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>.
[RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration
Access Control Model", STD 91, RFC 8341,
DOI 10.17487/RFC8341, March 2018,
<https://www.rfc-editor.org/info/rfc8341>.
[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://www.rfc-editor.org/info/rfc8345>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>.
[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://www.rfc-editor.org/info/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, August 2020,
<https://www.rfc-editor.org/info/rfc8795>.
5.2. Informative References
These are the extra-credit reads that give more background π¦
[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, May 1999, <https://www.etsi.org/deliver/
etsi_en/301100_301199/301129/01.01.02_60/
en_301129v010102p.pdf>.
[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.1, May 2017,
<https://www.etsi.org/deliver/
etsi_en/302200_302299/30221701/03.01.01_60/
en_30221701v030101p.pdf>.
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
<https://www.rfc-editor.org/info/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://www.rfc-editor.org/info/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, June 2020,
<https://www.rfc-editor.org/info/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, November 2020,
<https://www.rfc-editor.org/info/rfc8944>.
[YANG-BWA-TOPO]
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, 18 October 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
bwa-topo-yang-01>.
[YANG-IF-REF-TOPO]
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, 18 October 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
if-ref-topo-yang-01>.
Appendix A. Microwave Topology Model with Base Topology Models π§β¨
okay so this appendix is basically a sneak peek π of the whole Microwave Topology Model, all plugged into the base models it's built on. The tree below shows the relevant leafs for a complete Microwave Topology Model, including the augmented Network Topology Model from [RFC8345] and the Traffic Engineering (TE) Topologies model from [RFC8795]. There are also JSON-based instantiations of the Microwave Topology Model for a couple of small network examples, so you can see what real data looks like π
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 leafref
| | | +--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? leafref
| | +--rw nt:destination
| | | +--rw nt:dest-node? -> ../../../nw:node/node-id
| | | +--rw nt:dest-tp? leafref
| | +--rw nt:supporting-link* [network-ref link-ref]
| | | +--rw nt:network-ref
| | | | -> ../../../nw:supporting-network/network-ref
| | | +--rw nt:link-ref 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: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
| | | +--ro mwt:actual-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
Figure 2: Microwave Topology with Augmentations Tree
ngl this tree is the vibe check β¨ π¦ It shows how the Microwave Topology Model augments the TE Topology Model, and it's giving layers on layers on layers π
The Microwave Topology Model augments the TE Topology Model. π
Now for the fun part! Figure 3 is a little picture of what an L2 over Microwave example looks like, with two nodes, their termination points, and the links between them π
Node N1 Node N2
+--------------+ +--------------+
| +----------+ | | +----------+ | L2-network
| |L2-N1-TP1 | | L2-N1-N2 | |L2-N2-TP2 | | -L2 topology
| | o<--------------------->o | |
| +----------+ | ' | +----------+ | Supporting
| : | ' | : | ' mw link
| : | ' | : | : TPs
| +----------+ | ' | +----------+ |
| |mw-N1- | | mwrl-N1-N2 | | mw-N2- | | MW-network
| |RLTP1 o<----------*---------->o RLTP2 | | -MW topology
| +----------+ | / \ | +----------+ |
| : : | / \ | : : |
| :: | / \ | :: | Supporting
| +-------:--+ | / \ | +--:-------+ | : TPs
| |mw-N1- : *---+--' '--+---* : mw-N2-| | * carriers
| |CTP1 : o<--|---------------|-->o : CTP2 | | as bundled
| +-------:--+ | | mwc-N1-N2-A | | +--:-------+ | links
| : | | | | : |
| +----------+ | | | | +----------+ |
| |mw-N1-CTP3*---' '---*mw-N2-CTP4| |
| | o<--------------------->o | |
| +----------+ | mwc-N1-N2-B | +----------+ |
+--------------+ +--------------+
Figure 3: Example for L2 over Microwave
okay bestie, that's the whole picture π«Ά Nodes N1 and N2 each hold their own layers, the L2 network sits on top, the MW network sits underneath, and the carriers get bundled together as links. Iconic architecture, honestly ππ
A.1. Instance Data for 2+0 Mode for a Bonded Configuration β¨
okay so this one is giving 2+0 mode π an L2 network sitting on top of a microwave network, and the microwave side is set up as a 2+0 configuration. so num-bonded-carriers = 2 and num-protecting-carriers = 0. both carriers are active, which means there's no redundancy π but you do get more capacity π that's the whole trade-off, bestie. the JSON encoding of the 2+0 example data is right below π
{
"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,
"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,
"channel-separation": 28000
}
}
}
}
}
]
}
]
}
}
A.2. Instance Data for 1+1 Mode for a Protected Configuration β¨
okay so this one is the 1+1 setup, and it's giving protection π‘οΈπ an L2 network sits on top of a supporting microwave network, and the microwave side is running 1+1. the example sets num-bonded-carriers = 1 and num-protecting-carriers = 1, which means there's a standby carrier just waiting in the wings to cover for the active one. main character energy for redundancy, no cap π
here's the JSON encoding of the 1+1 example data:
{
"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,
"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,
"channel-separation": 28000
}
}
}
}
}
]
}
]
}
}
π«Ά that's the whole example, bestie. the carriers are doing their protecting thing and the data model keeps every link and termination point lined up so the L2 layer knows exactly what's underneath it π¦
Appendix B. Microwave Topology Model with Example Extensions β¨
okay so this one is non-normative π«Ά which just means it's examples, not the rules. it shows how the Microwave Topology Model plays with the interface reference topology (ifref) [YANG-IF-REF-TOPO] and the bandwidth-availability-topology (bwa) [YANG-BWA-TOPO] models. there's also a little JSON snippet showing geolocation instance data π. if the JSON lines get too long, they get wrapped the way [RFC8792] describes, so don't panic if things look chopped up π
here's the tree for a full Microwave Topology Model that includes both the ifref and bwa models. it's giving everything, bestie π
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 leafref
| | | +--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 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? leafref
| | +--rw nt:destination
| | | +--rw nt:dest-node? -> ../../../nw:node/node-id
| | | +--rw nt:dest-tp? leafref
| | +--rw nt:supporting-link* [network-ref link-ref]
| | | +--rw nt:network-ref
| | | | -> ../../../nw:supporting-network/network-ref
| | | +--rw nt:link-ref 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: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
| | | | +--ro mwt:actual-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
Figure 4: Microwave Topology with Extensions Tree
okay now the vibe shift π¦ microwave is a transport technology, and one of the things it can carry is client services, like L2 Ethernet links πΈ when an L2 link rides over a single supporting microwave radio link, the topologies could look like the figures below. just so you know, these only show an example, there might be other ways to set up the same thing π the JSON instance here uses only a selected subset of the leafs from the L2 topology model [RFC8944]. the example below builds on Figure 3 and adds the interface-related info β¨
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 5: Interface Extension Example for L2 over Microwave
B.1. Instance Data for 2+0 Mode π
so here's the setup π an L2 network sitting on top of a supporting microwave network. it includes the microwave-topology (mw) and bandwidth-availability-topology (bwa) models, plus the reference to the matching interface management info. it's encoded in JSON like this:
Okay bestie, the instance data is giving main character energy πβ¨ Two network layers, one L2 network riding on top of the microwave network, all wired up with the right IDs π
{
"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,
"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,
"channel-separation": 28000
}
}
}
}
}
]
}
]
}
}
B.2. Instance Data for Geolocation Information β¨
Okay so this one is a cute little snack π It's a JSON snippet showing geolocation info for a node, and bestie, that ietf-te-topology:geolocation object is giving main character energy π
"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 π
So this doc was first put together with the kramdown RFC tool, which Carsten Bormann wrote and still looks after. π«Ά Huge thanks to Martin Thomson for setting up the GitHub integration for that tool, and for the aasvg tool, which turns the ASCII art into SVG. Literally the unsung heroes β¨
The authors would like to thank Tom Petch, Γric Vyncke, and Rob Wilton for their reviews. Iconic reviewers, no notes π
Contributors πΈ
Italo Busi Huawei Technologies Email: italo.busi@huawei.com
Authors' Addresses π
Scott Mansfield (editor) Ericsson Inc Email: scott.mansfield@ericsson.com
Jonas Ahlberg Ericsson AB Lindholmspiren 11 SE-417 56 Goteborg Sweden Email: jonas.ahlberg@ericsson.com
Min Ye Huawei Technologies No.1899, Xiyuan Avenue Chengdu 611731 China Email: amy.yemin@huawei.com
Xi Li NEC Laboratories Europe Kurfursten-Anlage 36 69115 Heidelberg Germany Email: Xi.Li@neclab.eu
Daniela Spreafico Nokia - IT Via Energy Park, 14 20871 Vimercate (MI) Italy Email: daniela.spreafico@nokia.com
π¦ where this page comes from
- ietf: rfc9656 2024-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms