RFC 8969

A Framework for Automating Service and Network Management with YANG

πŸ“… published January 2021, from ietf

A Framework for Automating Service and Network Management with YANG ✨

Okay bestie, this is RFC 8969 πŸ¦‹ It's an Informational doc from the IETF (not a Standards Track spec, so it's published for info, not as a rule you must follow πŸ’…). It was published in January 2021 under ISSN 2070-1721. The editors are Q. Wu (Huawei) and M. Boucadair (Orange), with co-authors D. Lopez (Telefonica I+D), C. Xie (China Telecom), and L. Geng (China Mobile). It doesn't list anything it obsoletes or updates, so it's standing on its own 🌸


Abstract

Data models are the programmatic way to describe services and networks 🧚 They can produce configuration info for network and service components, plus state info that gets monitored and tracked. You can use them through the whole service and network management life cycle: service instantiation, provisioning, optimization, monitoring, diagnosing, and assurance. They're also a huge deal for network management automation, because they can drive closed-loop control for adaptive, deterministic service creation, delivery, and maintenance ✨

This document describes a framework for automating service and network management with YANG modeling technologies. It's written from a network operator's point of view, no matter where a data model came from, so it can handle YANG modules developed outside the IETF too πŸ’–

Status of This Memo

This document is not an Internet Standards Track specification. It's published for informational purposes πŸŽ€

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8969.

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

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

Table of Contents

   1.  Introduction
   2.  Terminology and Abbreviations
     2.1.  Terminology
     2.2.  Abbreviations
   3.  Architectural Concepts and Goals
     3.1.  Data Models: Layering and Representation
     3.2.  Automation of Service Delivery Procedures
     3.3.  Service Fulfillment Automation
     3.4.  YANG Module Integration
   4.  Functional Blocks and Interactions
     4.1.  Service Life-Cycle Management Procedure
       4.1.1.  Service Exposure
       4.1.2.  Service Creation/Modification
       4.1.3.  Service Assurance
       4.1.4.  Service Optimization
       4.1.5.  Service Diagnosis
       4.1.6.  Service Decommission
     4.2.  Service Fulfillment Management Procedure
       4.2.1.  Intended Configuration Provision
       4.2.2.  Configuration Validation
       4.2.3.  Performance Monitoring
       4.2.4.  Fault Diagnostic
     4.3.  Multi-layer/Multi-domain Service Mapping
     4.4.  Service Decomposition
   5.  YANG Data Model Integration Examples
     5.1.  L2VPN/L3VPN Service Delivery
     5.2.  VN Life-Cycle Management
     5.3.  Event-Based Telemetry in the Device Self Management
   6.  Security Considerations
     6.1.  Service Level
     6.2.  Network Level
     6.3.  Device Level
   7.  IANA Considerations
   8.  References
     8.1.  Normative References
     8.2.  Informative References
   Appendix A.  Layered YANG Module Examples Overview
     A.1.  Service Models: Definition and Samples
     A.2.  Schema Mount
     A.3.  Network Models: Samples
     A.4.  Device Models: Samples
       A.4.1.  Model Composition
       A.4.2.  Device Management
       A.4.3.  Interface Management
       A.4.4.  Some Device Model Examples
   Acknowledgements
   Contributors
   Authors' Addresses

1. Introduction

Okay so, service management systems usually have two halves: service activation/provision and service operation πŸ“ Right now, service delivery goes from customer requirements and orders all the way to delivery and operation, and it usually means pushing data step by step through multiple OSS (Operations Support System) or BSS (Business Support System) apps. Those apps can belong to different departments inside the service provider, like the billing factory, the design factory, or the network operation center πŸ’…

The tea is that a lot of these apps were built in house over the years and work in silos. That causes problems:

  • The lack of standard data input/output (i.e., data model) raises many challenges in system integration and often results in manual configuration tasks.
  • Service fulfillment systems might have limited visibility into the network state, so they can be slow to respond to network changes πŸ’€

Software-Defined Networking (SDN) is the answer to these challenges πŸ”₯ SDN techniques are meant to automate the whole service delivery procedure, and they usually rely on standard data models. Those models don't just show off a service provider's savoir faire 😌 They also dynamically set up and enforce a group of service-inferred policies that fit what was defined and possibly negotiated with the customer. [RFC7149] was an early attempt at sorting out that service provider view of the SDN space. It names concrete technical domains that need attention and where solutions can be provided. These include:

  • Techniques for the dynamic discovery of topology, devices, and capabilities, along with relevant information and data models that are meant to precisely document such topology, devices, and their capabilities.
  • Techniques for exposing network services [RFC8309] and their characteristics.
  • Techniques used by service-derived dynamic resource allocation and policy enforcement schemes, so that networks can be programmed accordingly.
  • Dynamic feedback mechanisms that are meant to assess how efficiently a given policy (or a set thereof) is enforced from a service fulfillment and assurance perspective.

Models are key for each of the four technical items above 🧠 Service and network management automation is a big step toward more agile network operations. Models also make it way easier to integrate multi-vendor solutions 🫢

YANG module [RFC7950] developers have gone top-down and bottom-up to build modules [RFC8199]. Top-down means mapping a network technology to customer requirements. Bottom-up means abstracting common constructs out of various network technologies. At the time of writing this document (2020), there are many YANG data models, including configuration and service models, that have been specified or are being specified by the IETF. They cover many networking protocols and techniques. However, how these models work together to configure a function, manage a set of devices involved in a service, or provide a service is not currently documented, either within the IETF or in other Standards Development Organizations (SDOs). Not documented yet, bestie 😭

Many of the YANG modules listed in this document are used to exchange data between NETCONF/RESTCONF clients and servers [RFC6241][RFC8040]. But YANG is transport-independent, so it can be used without NETCONF/RESTCONF. For example, YANG can define abstract data structures [RFC8791] that other protocols can manipulate (e.g., [DOTS-DDOS]) πŸ¦‹

This document describes an architectural framework for service and network management automation (Section 3) that takes advantage of YANG modeling technologies. It also looks at how YANG data models at different layers interact with each other (e.g., Service Mapping, model composition) in the context of service delivery and fulfillment (Section 4). Concretely, the following benefits can be provided:

  • Vendor-agnostic interfaces managing a service and the underlying network are allowed.
  • Movement from deployment schemes where vendor-specific network managers are required to a scheme where the entities that are responsible for orchestrating and controlling services and network resources provided by multi-vendor devices are unified is allowed.
  • Data inheritance and reusability among the various architecture layers thus promoting a network-wise provisioning instead of device-specific configuration is eased.
  • Dynamically feeding a decision-making process (e.g., Controllers, Orchestrators) with notifications that will trigger appropriate actions, allowing that decision-making process to continuously adjust a network (and thus the involved resources) to deliver the service that conforms to the intended parameters (service objectives) is allowed.

This framework is drawn from a network operator perspective no matter where a data model came from, so it can also handle YANG modules developed outside the IETF ✨ The document covers service models that operators use to expose their services and to capture service requirements from customers (including other operators). But it doesn't dig into the communication protocol(s) that use these service models to request and deliver a service. Those considerations are out of scope πŸ™ˆ

The document lists a bunch of use cases to show off the proposed approach (Section 5), but it doesn't claim to be exhaustive, and it doesn't aim to be πŸ’… Appendix A has some examples of the layered YANG modules view.

2. Terminology and Abbreviations 🌈

2.1. Terminology

okay so these ones are already defined in [RFC8309] and [RFC8199], which means we're not redefining them here πŸ’…:

  • Network Operator πŸ› οΈ
  • Customer 🫢
  • Service ✨
  • Data Model πŸ“š
  • Service Model 🧩
  • Network Element Model 🌸

the doc also brings its own extra terms, so pay attention bestie πŸŽ€

Network Model: this one is a network-level abstraction (or just a slice of a network's infrastructure) 🌐. It covers devices and their subsystems, plus the relevant protocols running at the link and network layers across multiple devices. It lines up with the network configuration model that [RFC8309] talks about πŸ¦‹

a network operator can use it to allocate resources for the service, like tunnel resources or topology resources, or to schedule resources so they meet the service requirements in a service model πŸ’–

Network Domain: a network partitioning that network operators usually use to split up their network into parts πŸ“ "access network" and "core network" are both examples of network domains, so you've probably heard these ones before πŸ™ˆ

Device Model: this refers to either the Network Element YANG data model described in [RFC8199] or the device configuration model from [RFC8309] πŸ’œ

device models can also model a function that's built into a device, like Network Address Translation (NAT) [RFC8512] or Access Control Lists (ACLs) [RFC8519] πŸ”₯

Pipe: a communication scope where only one-to-one (1:1) communications are allowed 🎯 the scope can be identified between ingress and egress nodes, two service sites, and so on ⭐

Hose: a communication scope where one-to-many (1:N) communications are allowed, like one site talking to multiple sites 🌈

Funnel: a communication scope where many-to-one (N:1) communications are allowed 🧚

2.2. Abbreviations

the doc uses these abbreviations, so here's your cheat sheet πŸ“πŸŽ€

ACL     Access Control List
AS      Autonomous System
AP      Access Point
CE      Customer Edge
DBE     Data Border Element
E2E     End-to-End
ECA     Event Condition Action
L2VPN   Layer 2 Virtual Private Network
L3VPN   Layer 3 Virtual Private Network
L3SM    L3VPN Service Model
L3NM    L3VPN Network Model
NAT     Network Address Translation
OAM     Operations, Administration, and Maintenance
OWD     One-Way Delay
PE      Provider Edge
PM      Performance Monitoring
QoS     Quality of Service
RD      Route Distinguisher
RT      Route Target
SBE     Session Border Element
SDN     Software-Defined Networking
SP      Service Provider
TE      Traffic Engineering
VN      Virtual Network
VPN     Virtual Private Network
VRF     Virtual Routing and Forwarding

3. Architectural Concepts and Goals ✨

3.1. Data Models: Layering and Representation ✨

okay so bestie, layering is literally how modules get to be reusable 🧩 higher-level modules can build on lower-layer modules, and we avoid copying the same features into every layer. ✨ Section 2 of [RFC8199] explains this, and it's giving clean architecture πŸ’…

Data models for network management come in three flavors: service, network, and device models. πŸŽ€ Different service models can lean on the same network and/or device models, which is so efficient, ngl 🫢

Service models usually go top-down. πŸ” They're mostly customer-facing YANG modules that give higher-level network services (like the Layer 3 Virtual Private Network (L3VPN)) one shared model construct. These can be mapped onto network technology-specific modules at lower layers (like tunnel, routing, Quality of Service (QoS), and security) 🌸 For example, service models can describe the network service to be ensured between service nodes (ingress/egress), including:

  • the communication scope (pipe, hose, funnel, etc.),
  • the directionality (inbound/outbound),
  • the traffic performance guarantees expressed using metrics such as One-Way Delay (OWD) [RFC7679] or One-Way Loss [RFC7680]; a summary of performance metrics maintained by IANA can be found in [IPPM],
  • link capacity [RFC5136] [METRIC-METHOD],
  • etc.

Figure 1 shows a Voice over IP (VoIP) service that depends on connectivity services from a network operator πŸ“ž In this example, SP1 (Service Provider 1) offers the VoIP service to the operator's customers. πŸ’– To get global VoIP reachability, the SP1 Service Site interconnects with other Service Providers' service sites, typically by interconnecting Session Border Elements (SBEs) and Data Border Elements (DBEs) [RFC5486][RFC6406]. For other VoIP destinations, sessions get forwarded over the Internet 🌐 These connectivity services can be captured in a YANG service model that reflects the service attributes in Figure 2. This example follows the IP Connectivity Provisioning Profile template defined in [RFC7297]. πŸ¦‹

                 ,--,--,--.              ,--,--,--.
              ,-'    SP1   `-.        ,-'   SP2     `-.
             ( Service Site   )      ( Service Site    )
              `-.          ,-'        `-.          ,-'
                 `--'--'--'              `--'--'--'
                  x  | o *                  * |
               (2)x  | o *                  * |
                 ,x-,--o-*-.    (1)     ,--,*-,--.
              ,-' x    o  * * * * * * * * *       `-.
             (    x    o       +----(     Internet    )
      User---(x x x      o o o o o o o o o o o o o o o o o o
              `-.          ,-'       `-.          ,-'   (3)
                 `--'--'--'             `--'--'--'
              Network Operator

      **** (1) Inter-SP connectivity
      xxxx (2) Customer-to-SP connectivity
      oooo (3) SP to any destination connectivity

      Figure 1: An Example of Service Connectivity Components

Quick heads-up on Figure 2: "Full traffic performance guarantees class" means a service class where every traffic performance metric in the service model (OWD, loss, delay variation) is guaranteed πŸ”₯ Meanwhile, "Delay traffic performance guarantees class" means only OWD is guaranteed. 🧠

Connectivity: Scope and Guarantees
  (1) Inter-SP connectivity
     - Pipe scope from the local to the remote SBE/DBE
     - Full traffic performance guarantees class
  (2) Customer-to-SP connectivity
     - Hose/Funnel scope connecting the local SBE/DBE
       to the customer access points
     - Full traffic performance guarantees class
  (3) SP to any destination connectivity
     - Hose/Funnel scope from the local SBE/DBE to the
       Internet gateway
     - Delay traffic performance guarantees class
Flow Identification
  * Destination IP address (SBE, DBE)
  * DSCP marking
Traffic Isolation
  * VPN
Routing & Forwarding
  * Routing rule to exclude some ASes from the inter-domain
    paths
Notifications (including feedback)
  * Statistics on aggregate traffic to adjust capacity
  * Failures
  * Planned maintenance operations
  * Triggered by thresholds

      Figure 2: Sample Attributes Captured in a Service Model

Network models are mainly network-resource-facing modules πŸ› οΈ They describe different parts of a network infrastructure, including devices and their subsystems, plus the relevant protocols running at the link and network layers across multiple devices (like network topology and traffic-engineering tunnel modules). πŸ—ΊοΈ

Device (and function) models usually go bottom-up πŸͺœ They're mostly technology-specific modules used to realize a service (like BGP or ACL). 🎯

Each level keeps a view of the supported YANG modules provided by lower levels (see Appendix A, for example) πŸ‘€ Mechanisms like the YANG library [RFC8525] can be used to expose which YANG modules are supported by nodes in lower levels. πŸ“š

Figure 3 illustrates the overall layering model 🧁 If you want an overview of "Orchestrator" and "Controller" elements, check out Section 4 of [RFC8309] πŸ’œ All of these elements (Orchestrator(s), Controller(s), and device(s)) are under the responsibility of the same operator. 🫑

  +-----------------------------------------------------------------+
  |                                         Hierarchy Abstraction   |
  |                                                                 |
  | +-----------------------+                    Service Model      |
  | |    Orchestrator       |                 (Customer Oriented)   |
  | |+---------------------+|               Scope: "1:1" Pipe model |
  | ||  Service Modeling   ||                                       |
  | |+---------------------+|                                       |
  | |                       |                   Bidirectional       |
  | |+---------------------+|              +-+  Capacity, OWD +-+   |
  | ||Service Orchestration||              | +----------------+ |   |
  | |+---------------------+|              +-+                +-+   |
  | +-----------------------+            Ingress             Egress |
  |                                                                 |
  |                                                                 |
  | +-----------------------+                Network Model          |
  | |   Controller          |             (Operator Oriented)       |
  | |+---------------------+|           +-+    +--+    +---+   +-+  |
  | || Network Modeling    ||           | |    |  |    |   |   | |  |
  | |+---------------------+|           | o----o--o----o---o---o |  |
  | |                       |           +-+    +--+    +---+   +-+  |
  | |+---------------------+|           src                    dst  |
  | ||Network Orchestration||                L3VPN over TE          |
  | |+---------------------+|        Instance Name/Access Interface |
  | +-----------------------+      Protocol Type/Capacity/RD/RT/... |
  |                                                                 |
  |                                                                 |
  | +-----------------------+                 Device Model          |
  | |    Device             |                                       |
  | |+--------------------+ |                                       |
  | || Device Modeling    | |           Interface add, BGP Peer,    |
  | |+--------------------+ |              Tunnel ID, QoS/TE, ...   |
  | +-----------------------+                                       |
  +-----------------------------------------------------------------+

    Figure 3: Layering and Representation within a Network Operator

A composite service from a network operator can rely on services from other operators 🀝 In that case, the network operator is the customer, requesting services from other networks. ✨ The operators providing those services then follow the layering shown in Figure 3. The mapping between a composite service and a third-party service is kept at the orchestration level. πŸ—‚οΈ From a data-plane perspective, the network controllers manage the appropriate traffic steering policies (like Service Function Chaining [RFC7665]) to guide how and when a third-party service gets invoked for flows bound to a composite service. πŸͺ„

The layering model in Figure 3 makes no assumptions about where the various entities (like Controller and Orchestrator) live in the network πŸ—ΊοΈ So the architecture doesn't rule out deployments where, for example, the Controller is embedded on a device that hosts other functions controlled via YANG modules. πŸ’…

To make mapping between layers and reusing data easier, this document focuses on service models written in YANG πŸŽ€ That said, fully compliant with Section 3 of [RFC8309], Figure 3 doesn't rule out service models written in data modeling languages other than YANG. 🌈

3.2. Automation of Service Delivery Procedures πŸš€

Network operators can use service models to expose their services to customers πŸ’– Exposing these models lets service orders be activated automatically, and that's how service delivery gets automated. ⚑ One or more monolithic service models can be used for a composite service activation request (like delivering a caching infrastructure over a VPN). 🧠 These models feed a decision-making intelligence that adapts to customer needs. 🫢

Service models can also be used together with services that need dynamic invocation πŸ¦‹ A good example is the service modules defined by the DOTS WG to dynamically trigger requests for handling Distributed Denial-of-Service (DDoS) attacks [RFC8783] πŸ›‘οΈ The service filtering request modeled with [RFC8783] gets translated into device-specific filtering (like the ACLs defined in [RFC8519]) that fulfills the service request. πŸ”

Network models can be derived from service models and used to provision, monitor, and instantiate the service 🎯 They're also used to provide life-cycle management of network resources πŸ”„ Doing so is meant to:

  • expose network resources to customers (including other network operators) to provide service fulfillment and assurance.
  • allow customers (or network operators) to dynamically adjust the network resources based on service requirements as described in service models (e.g., Figure 2) and the current network performance information described in the telemetry modules.

Note that elaborating on the communication protocols used to implement the interface between the service ordering (customer) and service order handling (provider) is out of scope for this document πŸ™ˆ we'll leave that one for another day, bestie! πŸ’…

3.3. Service Fulfillment Automation πŸŽ€

okay so, to actually run a service, the parameters in the device models get derived from the service models and/or network models, and then they get used to:

  • Provision each involved network function/device with the proper configuration information.
  • Operate the network based on service requirements as described in the service model(s) and local operational guidelines.

Also, the operational state (the configuration that's in effect, plus the statistics) should be exposed to upper layers πŸ’… That gives better network visibility and lets you check how well the derived low-level modules match up with the upper-level inputs. Main character energy 🌸

Filters are enforced on the notifications that get communicated to Service layers 🧚 The type and frequency of those notifications may be agreed upon in the service model.

Note that it is important to correlate telemetry data with configuration data for closed loops at the different stages of service delivery, especially from resource allocation to service operation πŸ¦‹

3.4. YANG Module Integration πŸ’œ

bestie, to support top-down service delivery, YANG modules at different levels (or at the same level) need to be integrated so the service delivery works properly, including the network setup 🫢 For example, the service parameters captured in service models need to be broken down into a set of configuration/notification parameters. Those might be specific to one or more technologies, and these technology-specific parameters get grouped together to define technology-specific device-level models or network-level models.

Then these technology-specific device or network models can be integrated with each other using the schema mount mechanism [RFC8528]. That way, each involved network function/device or each involved network domain can support newly added modules or features ✨ A collection of integrated device models can be loaded and validated during implementation.

High-level policies can be defined at the service or network models (e.g., "Autonomous System Number (ASN) Exclude" in the example depicted in Figure 2) πŸ“ Device models then get tweaked accordingly to provide policy-based management. Policies can also be used for telemetry automation, e.g., policies that contain conditions to trigger the generation and pushing of new telemetry data. It's giving automation, fr fr πŸ€–

4. Functional Blocks and Interactions 🌈

The architectural considerations from Section 3 lead to the life-cycle management architecture illustrated in Figure 4 and described in the following subsections. Let's look at the whole picture first πŸ‘‘

                   +------------------+
   ............... |                  |
    Service level  |                  |
                   V                  |
     E2E          E2E                E2E                    E2E
   Service --> Service --------->  Service  ------------>  Service
   Exposure    Creation     ^    Optimization   ^          Diagnosis
              /Modification |                   |              |
                 ^ |        |Diff               |              |
       E2E       | |        |         E2E       |              |
     Service ----+ |        |        Service    |              |
    Decommission   |        +------ Assurance --+              |
                   |                     ^                     |
    Multi-layer    |                     |                     |
    Multi-domain   |                     |                     |
    Service Mapping|                     |                     |
   ............... |<-----------------+  |                     |
    Network level  |                  |  +-------+             v
                   V                  |          |         Specific
               Specific           Specific       |          Service
               Service  -------->  Service <--+  |         Diagnosis
               Creation     ^    Optimization |  |             |
             /Modification  |                 |  |             |
                   |        |Diff             |  |             |
                   |        |      Specific --+  |             |
          Service  |        |       Service      |             |
     Decomposition |        +----- Assurance ----+             |
                   |                  ^                        |
   ............... |                  |  Aggregation           |
    Device level   |                  +------------+           |
                   V                               |           |
   Service      Intent                             |           v
   Fulfillment  Config  ----> Config  ----> Performance ----> Fault
                Provision     Validation    Monitoring        Diagnostic

            Figure 4: Service and Network Life-Cycle Management

4.1. Service Life-Cycle Management Procedure πŸ¦‹

Service life-cycle management covers two things: end-to-end service life-cycle management at the service level, and technology-specific network life-cycle management at the network level ✨

The end-to-end one is technology-independent service management. It spans multiple network domains and/or multiple layers. The technology-specific one is service life-cycle management that's specific to a technology domain or a layer πŸ’…

4.1.1. Service Exposure πŸ’–

A service in the context of this document (sometimes called "Network Service") is some form of connectivity between customer sites and the Internet, or between customer sites across the operator's network and across the Internet 🌐

Service exposure is used to capture the services offered to customers (ordering and order handling). For example, a customer can use an L3VPN Service Model (L3SM) to request L3VPN service by providing the abstract technical characterization of the intended service between customer sites πŸŽ€

Service model catalogs can be created to expose the various services and the information needed to invoke or order a given service πŸ›οΈ

4.1.2. Service Creation/Modification 🧁

Customers are usually unaware of the technology the operator has available to deliver the service πŸ™ˆ So the customer doesn't make requests that are specific to the underlying technology. They only make requests about the service that's going to be delivered. This service request can be filled in using a service model.

When a service request comes in, and assuming the authentication and authorization checks have passed, the service Orchestrator/management system should verify whether the service requirements in the request can be met. In other words, it checks whether there are sufficient resources that can be allocated with the requested guarantees πŸ”

If the request is accepted, the service Orchestrator/management system maps the service request to its own view. That view can be described as a technology-specific network model or a set of technology-specific device models. This mapping may include choosing which networks and technologies to use, depending on which service features were requested πŸ—ΊοΈ

Also, a customer may need a change in the underlying network infrastructure to keep up with new customer needs and service requirements. For example, they might want to service a new customer site, add a new access link, or provide disjoint paths. This service modification can be issued using the same service model that was used for the service request ✨

Withdrawing a service is discussed in Section 4.1.6 πŸ₯€

4.1.3. Service Assurance πŸ›‘οΈ

The performance measurement telemetry (Section 4.2.3) can be used to provide service assurance at the service and/or network levels. The performance measurement telemetry model can tie in with service or network models to monitor network performance or Service Level Agreements πŸ“ˆ

4.1.4. Service Optimization ⚑

Service optimization is a technique that updates the network's configuration because of network changes, incident mitigation, or new service requirements πŸ”§ For example, once a tunnel or a VPN is set up, performance monitoring information or telemetry information can be collected for each tunnel (or each VPN) and fed into the management system. If the network performance doesn't meet the service requirements, the management system can create new VPN policies that capture the network service requirements and populate them into the network 🧠

Both network performance information and policies can be modeled using YANG πŸ’œ With policy-based management, self-configuration and self-optimization behavior can be specified and implemented πŸ€–

Overall service optimization is managed at the service level. The network level is responsible for optimizing the specific network services it provides πŸ‘‘

4.1.5. Service Diagnosis 🩺

Operations, Administration, and Maintenance (OAM) are important networking functions for service diagnosis. They let network operators do the following:

  • monitor network communications (i.e., reachability verification and Continuity Check)
  • troubleshoot failures (i.e., fault verification and localization)
  • monitor service level agreements and performance (i.e., performance management)

When the network is down, service diagnosis should be in place to pinpoint the problem and provide recommendations (or instructions) for network recovery πŸš‘

The service diagnosis information can be modeled as technology-independent Remote Procedure Call (RPC) operations for OAM protocols, and as a technology-independent abstraction of key OAM constructs for OAM protocols [RFC8531][RFC8533]. These models can be used to provide consistent configuration, reporting, and presentation for the OAM mechanisms used to manage the network πŸ“Š

Refer to Section 4.2.4 for the device-specific side πŸ”—

4.1.6. Service Decommission πŸ‘‹

Service decommission lets a customer stop the service by removing it from active status. That releases the network resources that were allocated to the service. Customers can also use the service model to withdraw their subscription to a service 🫠

4.2. Service Fulfillment Management Procedure πŸŽ€

4.2.1. Intended Configuration Provision ✨

okay so the intended configuration is basically the device-level setup that gets cooked up from network models or service models (πŸ’… the network-level stuff). It's the config the system is trying to apply. Take L3SM as our service model example for delivering an L3VPN service. We have to map that L3VPN service view into a detailed intended configuration view, defined by specific configuration models for each network element. The configuration info includes:

  • Virtual Routing and Forwarding (VRF) definition, including VPN policy expression
  • Physical Interface(s)
  • IP layer (IPv4, IPv6)
  • QoS features such as classification, profiles, etc.
  • Routing protocols: support of configuration of all protocols listed in a service request, as well as routing policies associated with those protocols
  • Multicast support
  • Address sharing
  • Security (e.g., access control, authentication, encryption)

These specific configuration models can be used to configure Provider Edge (PE) and Customer Edge (CE) devices within a site. For example, a BGP policy model can be used to establish VPN membership between sites and VPN service topology. 🌸

ngl the BGP policy part is my fave because it's literally how sites get to know each other 🧚

Heads up: in networks with legacy devices (the ones that support proprietary modules or don't support YANG at all), an adaptation layer is likely to be required at the network level. That's how those devices can still get involved in delivering network services. 🫢

This interface is also used to handle service withdrawal (Section 4.1.6). πŸ¦‹

4.2.2. Configuration Validation πŸ’œ

Configuration validation is used to validate intended configuration and ensure the configuration takes effect. Bestie, this is the "wait, did that actually work?" check. βœ…

For example, if a customer creates an interface eth-0/0/0 but the interface doesn't physically exist yet, then the configuration data shows up in the <intended> status but does not show up in the <operational> datastore. πŸ’€ More details about <intended> and <operational> datastores can be found in Section 5.1 of [RFC8342]. πŸŽ€

4.2.3. Performance Monitoring 🌈

When a configuration is in effect in a device, the <operational> datastore holds the complete operational state of the device, including learned, system, default configuration, and system state. πŸ“ But here's the tea: the configurations and state of one particular device don't have visibility on the whole network. They also can't show how packets are going to be forwarded through the entire network. So it gets way harder to operate the whole network without understanding its current status. 😭

The management system should subscribe to updates of a YANG datastore in all the network devices for performance monitoring purposes. Then it builds a full topological visibility of the network by aggregating (and filtering) these operational states from different sources. main character energy for the management system πŸ‘‘

4.2.4. Fault Diagnostic πŸ”₯

When configuration is in effect in a device, some devices may be misconfigured (e.g., device links are not consistent on both sides of the network connection), or network resources might be misallocated. πŸ™ˆ So services may get negatively affected without anyone knowing the root cause in the network. Rude. 😀

Technology-dependent nodes and RPC commands are defined in technology-specific YANG data models. These can use and extend the base model described in Section 4.1.5 to deal with these issues. 🧩

RPC commands received in the technology-dependent node can be used to trigger technology-specific OAM message exchanges for fault verification and fault isolation. For example, the Transparent Interconnection of Lots of Links (TRILL) Multi-destination Tree Verification (MTV) RPC command [TRILL-YANG-OAM] can be used to trigger Multi-Destination Tree Verification Messages (MTVMs) defined in [RFC7455] to verify TRILL distribution tree integrity. It's giving detective era πŸ•΅οΈβ€β™€οΈβœ¨


4.3. Multi-layer/Multi-domain Service Mapping πŸ¦‹

Multi-layer/Multi-domain Service Mapping lets you map an end-to-end abstract view of the service (segmented across different layers and/or different network domains) into domain-specific views. 🍰

One example: you map service parameters in the L3SM into configuration parameters such as Route Distinguisher (RD), Route Target (RT), and VRF in the L3VPN Network Model (L3NM). πŸ’–

Another example: you map service parameters in the L3SM into Traffic Engineered (TE) tunnel parameters (e.g., Tunnel ID) in the TE model. You also map them into Virtual Network (VN) parameters (e.g., Access Point (AP) list and VN members) in the YANG data model for VN operation [ACTN-VN-YANG]. Layers, layers everywhere 😩🧁

4.4. Service Decomposition 🧩

Service Decomposition lets you break down service models (at the service level) or network models (at the network level) into a set of device models (at the device level). πŸ”ͺ These device models may be tied to specific device types, or they may be sorted into a collection of related YANG modules based on service types and features offered. They may also get loaded at implementation time, before configuration is loaded and validated. Prep work = iconic πŸ’…


5. YANG Data Model Integration Examples 🌸

The following subsections give you some YANG data model integration examples. Let's gooo πŸš€

5.1. L2VPN/L3VPN Service Delivery πŸ‘‘

Looking at Figure 5, here are the steps performed to deliver the L3VPN service within the network management automation architecture defined in Section 4:

  1. The Customer requests to create two sites (as per Service Creation in Section 4.1.2), relying upon L3SM, with each site having one network access connectivity. For example:
    • Site A: network-access A, link-capacity = 20 Mbps, class "foo", guaranteed-capacity-percent = 10, average-one-way-delay = 70 ms.
    • Site B: network-access B, link-capacity = 30 Mbps, class "foo1", guaranteed-capacity-percent = 15, average-one-way-delay = 60 ms.
  2. The Orchestrator extracts the service parameters from the L3SM. Then it uses them as input to the Service Mapping in Section 4.3, translating them into orchestrated configuration parameters (e.g., RD, RT, and VRF) that are part of the L3NM specified in [OPSAWG-L3SM-L3NM]. 🧠
  3. The Controller takes the orchestrated configuration parameters in the L3NM and translates them into an orchestrated configuration of network elements (Service Decomposition in Section 4.4). These cover, e.g., BGP, QoS, Network Instance, IP management, and interface models. βš™οΈ

[UNI-TOPOLOGY] can be used for representing, managing, and controlling the User Network Interface (UNI) topology. πŸ—ΊοΈ

                             L3SM    |
                           Service   |
                            Model    |
            +------------------------+------------------------+
            |               +--------V--------+               |
            |               | Service Mapping |               |
            |               +--------+--------+               |
            | Orchestrator           |                        |
            +------------------------+------------------------+
                             L3NM    |     ^ UNI Topology Model
                            Network  |     |
                             Model   |     |
            +------------------------+------------------------+
            |            +-----------V-----------+            |
            |            | Service Decomposition |            |
            |            +--++---------------++--+            |
            |               ||               ||               |
            | Controller    ||               ||               |
            +---------------++---------------++---------------+
                            ||               ||
                            ||     BGP,      ||
                            ||     QoS,      ||
                            ||   Interface,  ||
               +------------+|      NI,      |+------------+
               |             |      IP       |             |
            +--+--+       +--+--+         +--+--+       +--+--+
            | CE1 +-------+ PE1 |         | PE2 +-------+ CE2 |
            +-----+       +-----+         +-----+       +-----+

             Figure 5: L3VPN Service Delivery Example (Current)

L3NM inherits some of the data elements from the L3SM. 🧬 Still, the L3NM as designed in [OPSAWG-L3SM-L3NM] doesn't expose some information to the layer above it. That includes the capabilities of an underlying network (which can be used to drive service order handling) and notifications (to tell subscribers about specific events or degradations as per agreed SLAs). πŸ₯² Some of this information can be provided using, e.g., [OPSAWG-YANG-VPN]. A target overall model is depicted in Figure 6. ✨

                             L3SM    |     ^
                           Service   |     |  Notifications
                            Model    |     |
            +------------------------+------------------------+
            |               +--------V--------+               |
            |               | Service Mapping |               |
            |               +--------+--------+               |
            | Orchestrator           |                        |
            +------------------------+------------------------+
                               L3NM  |     ^ UNI Topology Model
                              Network|     | L3NM Notifications
                               Model |     | L3NM Capabilities
            +------------------------+------------------------+
            |            +-----------V-----------+            |
            |            | Service Decomposition |            |
            |            +--++---------------++--+            |
            |               ||               ||               |
            | Controller    ||               ||               |
            +---------------++---------------++---------------+
                            ||               ||
                            ||     BGP,      ||
                            ||     QoS,      ||
                            ||   Interface,  ||
               +------------+|      NI,      |+------------+
               |             |      IP       |             |
            +--+--+       +--+--+         +--+--+       +--+--+
            | CE1 +-------+ PE1 |         | PE2 +-------+ CE2 |
            +-----+       +-----+         +-----+       +-----+

             Figure 6: L3VPN Service Delivery Example (Target)

Note that a similar analysis can be performed for Layer 2 VPNs (L2VPNs). 🌷 An L2VPN Service Model (L2SM) is defined in [RFC8466], while the YANG L2VPN Network Model (L2NM) is specified in [OPSAWG-L2NM]. the L2 side is giving sibling energy 🫢

Okay bestie, let's keep going! πŸŽ€ Wait, sorry, I'm not supposed to greet you, so let's just dive right back in. ✨

5.2. VN Life-Cycle Management ✨

okay so, looking at Figure 7, here's how the VN service actually gets delivered inside the network management automation architecture from Section 4 πŸ’…

  1. First, a customer makes a request (that's Service Exposure in Section 4.1.1) to create a VN. The link between the VN, the APs, and the VN members is defined in the VN YANG model [ACTN-VN-YANG]. πŸ¦‹
  2. Next, the Orchestrator builds the single abstract node topology from the info captured in that request. 🌸
  3. Then the customer and the Orchestrator swap the connectivity matrix on the abstract node topology and the explicit paths, using the TE topology model [RFC8795]. This info can be used to instantiate the VN and set up tunnels between the source and destination endpoints (that's Service Creation in Section 4.1.2). 🧚
  4. For service assurance (Service Optimization in Section 4.1.4), the telemetry model that augments the VN model and the corresponding TE tunnel model can be used by the Orchestrator to subscribe to performance measurement data. The Controller then notifies the Orchestrator about all the parameter changes and network performance changes related to the VN topology and the tunnels [TEAS-ACTN-PM]. πŸ‘‘
                                   |
                           VN      |
                           Service |
                           Model   |
            +----------------------|--------------------------+
            | Orchestrator         |                          |
            |             +--------V--------+                 |
            |             | Service Mapping |                 |
            |             +-----------------+                 |
            +----------------------+--------------------^-----+
                          TE       |         Telemetry  |
                          Tunnel   |         Model      |
                          Model    |                    |
            +----------------------V--------------------+-----+
            | Controller                                      |
            |                                                 |
            +-------------------------------------------------+

            +-----+      +-----+           +-----+      +-----+
            | CE1 +------+ PE1 |           | PE2 +------+ CE2 |
            +-----+      +-----+           +-----+      +-----+

                  Figure 7: A VN Service Delivery Example

5.3. Event-Based Telemetry in the Device Self Management 🌈

okay this one is so cool 😭 In reference to Figure 8, these steps happen to monitor state changes of managed resources in a network device and give it device self management, all inside the network management automation architecture from Section 4 πŸ’œ

  1. To control which state a network device should be in (or is allowed to be in) at any given time, you define a set of conditions and actions and correlate them with network events. For example, you can let the NETCONF server send updates only when the value exceeds a certain threshold for the first time, but not again until the threshold is cleared. That whole combo is an Event Condition Action (ECA) policy, or an event-driven policy control logic that can run on the device (e.g., [EVENT-YANG]). πŸ”₯
  2. To get a rapid autonomic response with self-management properties, the Controller pushes the ECA policy to the network device and delegates the network control logic to it. πŸ’…
  3. The network device uses the ECA model to subscribe to the event source (e.g., an event stream, or datastore state data conveyed to the server via YANG-Push subscription [RFC8641]). It monitors state parameters and takes simple, instant actions when an associated event condition on state parameters is met. ECA notifications can be generated as the result of actions based on event stream subscription or datastore subscription (model-driven telemetry operation discussed in Section 4.2.3). πŸ¦‹
                      +----------------+
                      |                <----+
                      |   Controller   |    |
                      +-------+--------+    |
                              |             |
                              |             |
                          ECA |             | ECA
                        Model |             | Notification
                              |             |
                              |             |
                 +------------V-------------+-----+
                 |Device                    |     |
                 | +-------+ +---------+ +--+---+ |
                 | | Event +-> Event   +->Event | |
                 | | Source| |Condition| |Action| |
                 | +-------+ +---------+ +------+ |
                 +--------------------------------+

                      Figure 8: Event-Based Telemetry

6. Security Considerations πŸ’€

okay bestie, this part is SERIOUS, so read it carefully 🫢

Lots of the YANG modules cited in this document define schema for data that's meant to be accessed through network management protocols like 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] gives you 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. πŸ™ˆ

Security considerations specific to each technology and protocol listed in the document are discussed in the specification documents of each of those protocols. πŸ“š

To prevent leaking sensitive information, and the "confused deputy" problem [Hardy] in general, you REALLY need to be careful when translating between the various layers in Section 4 or when aggregating data retrieved from various sources. Authorization and authentication checks should be performed to make sure data is only available to an authorized entity. The network operator must enforce means to protect privacy-related information included in customer-facing models. 😀

To detect misalignment between layers that might be induced by misbehaving nodes, upper layers should continuously monitor the perceived service (Section 4.1.4) and should proceed with checks to assess that the provided service complies with the expected service, and that the data reported by an underlying layer matches the perceived service of the layer above. Those checks are the responsibility of the service diagnosis (Section 4.1.5). πŸ”

When a YANG module includes security-related parameters, it is recommended to include the relevant information as part of the service assurance, so you can track that the security mechanisms are working correctly. πŸ’œ

Additional considerations are discussed in the following subsections. 🌸

6.1. Service Level πŸŽ€

A provider may rely on services offered by other providers to build composite services. The provider should enable appropriate mechanisms to monitor and detect a service disruption from these providers. The characterization of a service disruption (including mean time between failures and mean time to repair), the escalation procedure, and penalties are usually documented in contractual agreements (e.g., as described in Section 2.1 of [RFC4176]). That way, misbehaving peer providers will be identified and appropriate countermeasures will be applied. 🧾

The communication protocols that make use of a service model between a customer and an operator are out of scope. Relevant security considerations should be discussed in the specification documents of those protocols. πŸ™Œ

6.2. Network Level πŸ“

Security considerations specific to the network level are listed below:

  • A controller may create forwarding loops by misconfiguring the underlying network nodes. It is recommended to run tests to check the status of forwarding paths regularly, or whenever changes are made to routing or forwarding processes. Such checks may be triggered from the service level owing to the means discussed in Section 4.1.5. πŸ”
  • Some service models may include a traffic isolation clause that is passed down to the network level, so appropriate technology-specific actions must be enforced at the underlying network (and thus involved network devices) to avoid that such traffic is accessible to non-authorized parties. In particular, network models may indicate whether encryption is enabled and, if so, expose a list of supported encryption schemes and parameters. Refer, for example, to the encryption feature defined in [OPSAWG-VPN-COMMON] and its use in [OPSAWG-L3SM-L3NM]. πŸ”’

6.3. Device Level 🌈

Network operators should monitor and audit their networks to detect misbehaving nodes and abnormal behaviors. For example, OAM, as discussed in Section 4.1.5, can be used for that purpose. πŸ‘€

Access to some data requires specific access privilege levels. Devices MUST check that a required access privilege is provided before granting access to specific data or performing specific actions. This one is a MUST, bestie, so no skipping it! 🚨

7. IANA Considerations ⭐

This document has no IANA actions. πŸ₯³

8. References πŸ“–

8.1. Normative References πŸ’–

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

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

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

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

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

8.2. Informative References πŸ¦‹

[ACTN-VN-YANG] Lee, Y., Dhody, D., Ceccarelli, D., Bryskin, I., and B. Y. Yoon, "A YANG Data Model for VN Operation", Work in Progress, Internet-Draft, draft-ietf-teas-actn-vn-yang-10, 2 November 2020, <https://tools.ietf.org/html/draft-ietf-teas-actn-vn-yang-10>.

[BFD-YANG] Rahman, R., Zheng, L., Jethanandani, M., Pallagatti, S., and G. Mirsky, "YANG Data Model for Bidirectional Forwarding Detection (BFD)", Work in Progress, Internet-Draft, draft-ietf-bfd-yang-17, 2 August 2018, <https://tools.ietf.org/html/draft-ietf-bfd-yang-17>.

[DOTS-DDOS] Boucadair, M., Shallow, J., and T. Reddy.K, "Distributed Denial-of-Service Open Threat Signaling (DOTS) Signal Channel Specification", Work in Progress, Internet-Draft, draft-ietf-dots-rfc8782-bis-04, 3 December 2020, https://tools.ietf.org/html/draft-ietf-dots-rfc8782-bis-04.

[EVENT-YANG] Wu, Q., Bryskin, I., Birkholz, H., Liu, X., and B. Claise, "A YANG Data model for ECA Policy Management", Work in Progress, Internet-Draft, draft-wwx-netmod-event-yang-10, 1 November 2020, https://tools.ietf.org/html/draft-wwx-netmod-event-yang-10.

[EVPN-YANG] Brissette, P., Shah, H., Hussain, I., Tiruveedhula, K., and J. Rabadan, "Yang Data Model for EVPN", Work in Progress, Internet-Draft, draft-ietf-bess-evpn-yang-07, 11 March 2019, https://tools.ietf.org/html/draft-ietf-bess-evpn-yang-07.

[Hardy] Hardy, N., "The Confused Deputy: (or why capabilities might have been invented)", DOI 10.1145/54289.871709, October 1988, https://dl.acm.org/doi/10.1145/54289.871709.

[IDR-BGP-MODEL] Jethanandani, M., Patel, K., Hares, S., and J. Haas, "BGP YANG Model for Service Provider Networks", Work in Progress, Internet-Draft, draft-ietf-idr-bgp-model-10, 15 November 2020, https://tools.ietf.org/html/draft-ietf-idr-bgp-model-10.

[IPPM] IANA, "Performance Metrics", March 2020, https://www.iana.org/assignments/performance-metrics/performance-metrics.xhtml.

[L2VPN-YANG] Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., and K. Tiruveedhula, "YANG Data Model for MPLS-based L2VPN", Work in Progress, Internet-Draft, draft-ietf-bess-l2vpn-yang-10, 2 July 2019, https://tools.ietf.org/html/draft-ietf-bess-l2vpn-yang-10.

[L3VPN-YANG] Jain, D., Patel, K., Brissette, P., Li, Z., Zhuang, S., Liu, X., Haas, J., Esale, S., and B. Wen, "Yang Data Model for BGP/MPLS L3 VPNs", Work in Progress, Internet-Draft, draft-ietf-bess-l3vpn-yang-04, 19 October 2018, https://tools.ietf.org/html/draft-ietf-bess-l3vpn-yang-04.

[METRIC-METHOD] Morton, A., Geib, R., and L. Ciavattone, "Metrics and Methods for One-way IP Capacity", Work in Progress, Internet-Draft, draft-ietf-ippm-capacity-metric-method-04, 10 September 2020, https://tools.ietf.org/html/draft-ietf-ippm-capacity-metric-method-04.

[MVPN-YANG] Liu, Y., Guo, F., Litkowski, S., Liu, X., Kebler, R., and M. Sivakumar, "Yang Data Model for Multicast in MPLS/BGP IP VPNs", Work in Progress, Internet-Draft, draft-ietf-bess-mvpn-yang-04, 30 June 2020, https://tools.ietf.org/html/draft-ietf-bess-mvpn-yang-04.

[NETMOD-MODEL] Clarke, J. and B. Claise, "YANG module for yangcatalog.org", Work in Progress, Internet-Draft, draft-clacla-netmod-model-catalog-03, 3 April 2018, https://tools.ietf.org/html/draft-clacla-netmod-model-catalog-03.

[OPSAWG-L2NM] Barguil, S., Dios, O. G. D., Boucadair, M., Munoz, L. A., Jalil, L., and J. Ma, "A Layer 2 VPN Network YANG Model", Work in Progress, Internet-Draft, draft-ietf-opsawg-l2nm-01, 2 November 2020, https://tools.ietf.org/html/draft-ietf-opsawg-l2nm-01.

[OPSAWG-L3SM-L3NM] Barguil, S., Dios, O. G. D., Boucadair, M., Munoz, L. A., and A. Aguado, "A Layer 3 VPN Network YANG Model", Work in Progress, Internet-Draft, draft-ietf-opsawg-l3sm-l3nm-05, 16 October 2020, https://tools.ietf.org/html/draft-ietf-opsawg-l3sm-l3nm-05.

[OPSAWG-VPN-COMMON] Barguil, S., Dios, O. G. D., Boucadair, M., and Q. Wu, "A Layer 2/3 VPN Common YANG Model", Work in Progress, Internet-Draft, draft-ietf-opsawg-vpn-common-03, 14 January 2021, https://tools.ietf.org/html/draft-ietf-opsawg-vpn-common-03.

[OPSAWG-YANG-VPN] Wu, B., Wu, Q., Boucadair, M., Dios, O. G. D., Wen, B., Liu, C., and H. Xu, "A YANG Model for Network and VPN Service Performance Monitoring", Work in Progress, Internet-Draft, draft-www-opsawg-yang-vpn-service-pm-03, 21 January 2021, https://tools.ietf.org/html/draft-www-opsawg-yang-vpn-service-pm-03.

[PIM-YANG] Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu, Y., and F. Hu, "A YANG Data Model for Protocol Independent Multicast (PIM)", Work in Progress, Internet-Draft, draft-ietf-pim-yang-17, 19 May 2018, https://tools.ietf.org/html/draft-ietf-pim-yang-17.

[QOS-MODEL] Choudhary, A., Jethanandani, M., Strahle, N., Aries, E., and I. Chen, "YANG Model for QoS", Work in Progress, Internet-Draft, draft-ietf-rtgwg-qos-model-02, 9 July 2020, https://tools.ietf.org/html/draft-ietf-rtgwg-qos-model-02.

[RFC4176] El Mghazli, Y., Ed., Nadeau, T., Boucadair, M., Chan, K., and A. Gonguet, "Framework for Layer 3 Virtual Private Networks (L3VPN) Operations and Management", RFC 4176, DOI 10.17487/RFC4176, October 2005, https://www.rfc-editor.org/info/rfc4176.

[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 2006, https://www.rfc-editor.org/info/rfc4364.

[RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer 2 Virtual Private Networks (L2VPNs)", RFC 4664, DOI 10.17487/RFC4664, September 2006, https://www.rfc-editor.org/info/rfc4664.

[RFC4761] Kompella, K., Ed. and Y. Rekhter, Ed., "Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling", RFC 4761, DOI 10.17487/RFC4761, January 2007, https://www.rfc-editor.org/info/rfc4761.

[RFC4762] Lasserre, M., Ed. and V. Kompella, Ed., "Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling", RFC 4762, DOI 10.17487/RFC4762, January 2007, https://www.rfc-editor.org/info/rfc4762.

[RFC5136] Chimento, P. and J. Ishac, "Defining Network Capacity", RFC 5136, DOI 10.17487/RFC5136, February 2008, https://www.rfc-editor.org/info/rfc5136.

[RFC5486] Malas, D., Ed. and D. Meyer, Ed., "Session Peering for Multimedia Interconnect (SPEERMINT) Terminology", RFC 5486, DOI 10.17487/RFC5486, March 2009, https://www.rfc-editor.org/info/rfc5486.

[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, https://www.rfc-editor.org/info/rfc5880.

[RFC6406] Malas, D., Ed. and J. Livingood, Ed., "Session PEERing for Multimedia INTerconnect (SPEERMINT) Architecture", RFC 6406, DOI 10.17487/RFC6406, November 2011, https://www.rfc-editor.org/info/rfc6406.

[RFC7149] Boucadair, M. and C. Jacquenet, "Software-Defined Networking: A Perspective from within a Service Provider Environment", RFC 7149, DOI 10.17487/RFC7149, March 2014, https://www.rfc-editor.org/info/rfc7149.

[RFC7224] Bjorklund, M., "IANA Interface Type YANG Module", RFC 7224, DOI 10.17487/RFC7224, May 2014, https://www.rfc-editor.org/info/rfc7224.

[RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. Weingarten, "An Overview of Operations, Administration, and Maintenance (OAM) Tools", RFC 7276, DOI 10.17487/RFC7276, June 2014, https://www.rfc-editor.org/info/rfc7276.

[RFC7297] Boucadair, M., Jacquenet, C., and N. Wang, "IP Connectivity Provisioning Profile (CPP)", RFC 7297, DOI 10.17487/RFC7297, July 2014, https://www.rfc-editor.org/info/rfc7297.

[RFC7317] Bierman, A. and M. Bjorklund, "A YANG Data Model for System Management", RFC 7317, DOI 10.17487/RFC7317, August 2014, https://www.rfc-editor.org/info/rfc7317.

[RFC7455] Senevirathne, T., Finn, N., Salam, S., Kumar, D., Eastlake 3rd, D., Aldrin, S., and Y. Li, "Transparent Interconnection of Lots of Links (TRILL): Fault Management", RFC 7455, DOI 10.17487/RFC7455, March 2015, https://www.rfc-editor.org/info/rfc7455.

[RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015, https://www.rfc-editor.org/info/rfc7665.

[RFC7679] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, Ed., "A One-Way Delay Metric for IP Performance Metrics (IPPM)", STD 81, RFC 7679, DOI 10.17487/RFC7679, January 2016, https://www.rfc-editor.org/info/rfc7679.

[RFC7680] Almes, G., Kalidindi, S., Zekauskas, M., and A. Morton, Ed., "A One-Way Loss Metric for IP Performance Metrics (IPPM)", STD 82, RFC 7680, DOI 10.17487/RFC7680, January 2016, https://www.rfc-editor.org/info/rfc7680.

[RFC8077] Martini, L., Ed. and G. Heron, Ed., "Pseudowire Setup and Maintenance Using the Label Distribution Protocol (LDP)", STD 84, RFC 8077, DOI 10.17487/RFC8077, February 2017, https://www.rfc-editor.org/info/rfc8077.

[RFC8194] Schoenwaelder, J. and V. Bajpai, "A YANG Data Model for LMAP Measurement Agents", RFC 8194, DOI 10.17487/RFC8194, August 2017, https://www.rfc-editor.org/info/rfc8194.

[RFC8199] Bogdanovic, D., Claise, B., and C. Moberg, "YANG Module Classification", RFC 8199, DOI 10.17487/RFC8199, July 2017, https://www.rfc-editor.org/info/rfc8199.

[RFC8299] Wu, Q., Ed., Litkowski, S., Tomotaki, L., and K. Ogaki, "YANG Data Model for L3VPN Service Delivery", RFC 8299, DOI 10.17487/RFC8299, January 2018, https://www.rfc-editor.org/info/rfc8299.

[RFC8309] Wu, Q., Liu, W., and A. Farrel, "Service Models Explained", RFC 8309, DOI 10.17487/RFC8309, January 2018, https://www.rfc-editor.org/info/rfc8309.

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

[RFC8343] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 8343, DOI 10.17487/RFC8343, March 2018, https://www.rfc-editor.org/info/rfc8343.

[RFC8345] Clemm, A., Medved, J., Varga, R., Bahadur, N., Ananthakrishnan, H., and X. Liu, "A YANG Data Model for Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 2018, https://www.rfc-editor.org/info/rfc8345. πŸ’–βœ¨

[RFC8346] Clemm, A., Medved, J., Varga, R., Liu, X., Ananthakrishnan, H., and N. Bahadur, "A YANG Data Model for Layer 3 Topologies", RFC 8346, DOI 10.17487/RFC8346, March 2018, <https://www.rfc-editor.org/info/rfc8346>.

[RFC8348] Bierman, A., Bjorklund, M., Dong, J., and D. Romascanu, "A YANG Data Model for Hardware Management", RFC 8348, DOI 10.17487/RFC8348, March 2018, <https://www.rfc-editor.org/info/rfc8348>.

[RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, March 2018, <https://www.rfc-editor.org/info/rfc8349>.

[RFC8466] Wen, B., Fioccola, G., Ed., Xie, C., and L. Jalil, "A YANG Data Model for Layer 2 Virtual Private Network (L2VPN) Service Delivery", RFC 8466, DOI 10.17487/RFC8466, October 2018, <https://www.rfc-editor.org/info/rfc8466>.

[RFC8512] Boucadair, M., Ed., Sivakumar, S., Jacquenet, C., Vinapamula, S., and Q. Wu, "A YANG Module for Network Address Translation (NAT) and Network Prefix Translation (NPT)", RFC 8512, DOI 10.17487/RFC8512, January 2019, <https://www.rfc-editor.org/info/rfc8512>.

[RFC8513] Boucadair, M., Jacquenet, C., and S. Sivakumar, "A YANG Data Model for Dual-Stack Lite (DS-Lite)", RFC 8513, DOI 10.17487/RFC8513, January 2019, <https://www.rfc-editor.org/info/rfc8513>.

[RFC8519] Jethanandani, M., Agarwal, S., Huang, L., and D. Blair, "YANG Data Model for Network Access Control Lists (ACLs)", RFC 8519, DOI 10.17487/RFC8519, March 2019, <https://www.rfc-editor.org/info/rfc8519>.

[RFC8525] Bierman, A., Bjorklund, M., Schoenwaelder, J., Watsen, K., and R. Wilton, "YANG Library", RFC 8525, DOI 10.17487/RFC8525, March 2019, <https://www.rfc-editor.org/info/rfc8525>.

[RFC8528] Bjorklund, M. and L. Lhotka, "YANG Schema Mount", RFC 8528, DOI 10.17487/RFC8528, March 2019, <https://www.rfc-editor.org/info/rfc8528>.

[RFC8529] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Liu, "YANG Data Model for Network Instances", RFC 8529, DOI 10.17487/RFC8529, March 2019, <https://www.rfc-editor.org/info/rfc8529>.

[RFC8530] Berger, L., Hopps, C., Lindem, A., Bogdanovic, D., and X. Liu, "YANG Model for Logical Network Elements", RFC 8530, DOI 10.17487/RFC8530, March 2019, <https://www.rfc-editor.org/info/rfc8530>.

[RFC8531] Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model for Connection-Oriented Operations, Administration, and Maintenance (OAM) Protocols", RFC 8531, DOI 10.17487/RFC8531, April 2019, <https://www.rfc-editor.org/info/rfc8531>.

[RFC8532] Kumar, D., Wang, Z., Wu, Q., Ed., Rahman, R., and S. Raghavan, "Generic YANG Data Model for the Management of Operations, Administration, and Maintenance (OAM) Protocols That Use Connectionless Communications", RFC 8532, DOI 10.17487/RFC8532, April 2019, <https://www.rfc-editor.org/info/rfc8532>.

[RFC8533] Kumar, D., Wang, M., Wu, Q., Ed., Rahman, R., and S. Raghavan, "A YANG Data Model for Retrieval Methods for the Management of Operations, Administration, and Maintenance (OAM) Protocols That Use Connectionless Communications", RFC 8533, DOI 10.17487/RFC8533, April 2019, <https://www.rfc-editor.org/info/rfc8533>.

[RFC8632] Vallin, S. and M. Bjorklund, "A YANG Data Model for Alarm Management", RFC 8632, DOI 10.17487/RFC8632, September 2019, <https://www.rfc-editor.org/info/rfc8632>.

[RFC8641] Clemm, A. and E. Voit, "Subscription to YANG Notifications for Datastore Updates", RFC 8641, DOI 10.17487/RFC8641, September 2019, <https://www.rfc-editor.org/info/rfc8641>.

[RFC8652] Liu, X., Guo, F., Sivakumar, M., McAllister, P., and A. Peter, "A YANG Data Model for the Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD)", RFC 8652, DOI 10.17487/RFC8652, November 2019, <https://www.rfc-editor.org/info/rfc8652>.

[RFC8675] Boucadair, M., Farrer, I., and R. Asati, "A YANG Data Model for Tunnel Interface Types", RFC 8675, DOI 10.17487/RFC8675, November 2019, <https://www.rfc-editor.org/info/rfc8675>.

[RFC8676] Farrer, I., Ed. and M. Boucadair, Ed., "YANG Modules for IPv4-in-IPv6 Address plus Port (A+P) Softwires", RFC 8676, DOI 10.17487/RFC8676, November 2019, <https://www.rfc-editor.org/info/rfc8676>.

[RFC8783] Boucadair, M., Ed. and T. Reddy.K, Ed., "Distributed Denial-of-Service Open Threat Signaling (DOTS) Data Channel Specification", RFC 8783, DOI 10.17487/RFC8783, May 2020, <https://www.rfc-editor.org/info/rfc8783>.

[RFC8791] Bierman, A., BjΓΆrklund, M., and K. Watsen, "YANG Data Structure Extensions", RFC 8791, DOI 10.17487/RFC8791, June 2020, <https://www.rfc-editor.org/info/rfc8791>.

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

[RFC8819] Hopps, C., Berger, L., and D. Bogdanovic, "YANG Module Tags", RFC 8819, DOI 10.17487/RFC8819, January 2021, <https://www.rfc-editor.org/info/rfc8819>.

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

[RFC8960] Saad, T., Raza, K., Gandhi, R., Liu, X., and V. Beeram, "A YANG Data Model for MPLS Base", RFC 8960, DOI 10.17487/RFC8960, December 2020, <https://www.rfc-editor.org/info/rfc8960>.

[RTGWG-POLICY] Qu, Y., Tantsura, J., Lindem, A., and X. Liu, "A YANG Data Model for Routing Policy", Work in Progress, Internet-Draft, draft-ietf-rtgwg-policy-model-27, 10 January 2021, <https://tools.ietf.org/html/draft-ietf-rtgwg-policy-model-27>.

[SNOOPING-YANG] Zhao, H., Liu, X., Liu, Y., Sivakumar, M., and A. Peter, "A Yang Data Model for IGMP and MLD Snooping", Work in Progress, Internet-Draft, draft-ietf-pim-igmp-mld-snooping-yang-18, 14 August 2020, <https://tools.ietf.org/html/draft-ietf-pim-igmp-mld-snooping-yang-18>.

[SPRING-SR-YANG] Litkowski, S., Qu, Y., Lindem, A., Sarkar, P., and J. Tantsura, "YANG Data Model for Segment Routing", Work in Progress, Internet-Draft, draft-ietf-spring-sr-yang-29, 8 December 2020, <https://tools.ietf.org/html/draft-ietf-spring-sr-yang-29>.

[STAMP-YANG] Mirsky, G., Min, X., and W. S. Luo, "Simple Two-way Active Measurement Protocol (STAMP) Data Model", Work in Progress, Internet-Draft, draft-ietf-ippm-stamp-yang-06, 7 October 2020, <https://tools.ietf.org/html/draft-ietf-ippm-stamp-yang-06>.

[TEAS-ACTN-PM] Lee, Y., Dhody, D., Karunanithi, S., Vilalta, R., King, D., and D. Ceccarelli, "YANG models for VN/TE Performance Monitoring Telemetry and Scaling Intent Autonomics", Work in Progress, Internet-Draft, draft-ietf-teas-actn-pm-telemetry-autonomics-04, 2 November 2020, <https://tools.ietf.org/html/draft-ietf-teas-actn-pm-telemetry-autonomics-04>.

[TEAS-YANG-PATH-COMP] Busi, I., Belotti, S., Lopez, V., Sharma, A., and Y. Shi, "Yang model for requesting Path Computation", Work in Progress, Internet-Draft, draft-ietf-teas-yang-path-computation-11, 16 November 2020, <https://tools.ietf.org/html/draft-ietf-teas-yang-path-computation-11>.

[TEAS-YANG-RSVP] Beeram, V. P., Saad, T., Gandhi, R., Liu, X., Bryskin, I., and H. Shah, "A YANG Data Model for RSVP-TE Protocol", Work in Progress, Internet-Draft, draft-ietf-teas-yang-rsvp-te-08, 9 March 2020, <https://tools.ietf.org/html/draft-ietf-teas-yang-rsvp-te-08>.

[TEAS-YANG-TE] Saad, T., Gandhi, R., Liu, X., Beeram, V. P., and I. Bryskin, "A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths and Interfaces", Work in Progress, Internet-Draft, draft-ietf-teas-yang-te-25, 27 July 2020, <https://tools.ietf.org/html/draft-ietf-teas-yang-te-25>.

[TRILL-YANG-OAM] Kumar, D., Senevirathne, T., Finn, N., Salam, S., Xia, L., and W. Hao, "YANG Data Model for TRILL Operations, Administration, and Maintenance (OAM)", Work in Progress, Internet-Draft, draft-ietf-trill-yang-oam-05, 31 March 2017, <https://tools.ietf.org/html/draft-ietf-trill-yang-oam-05>.

[TWAMP-DATA-MODEL] Civil, R., Morton, A., Rahman, R., Jethanandani, M., and K. Pentikousis, "Two-Way Active Measurement Protocol (TWAMP) Data Model", Work in Progress, Internet-Draft, draft-ietf-ippm-twamp-yang-13, 2 July 2018, <https://tools.ietf.org/html/draft-ietf-ippm-twamp-yang-13>.

[UNI-TOPOLOGY] Dios, O. G. D., Barguil, S., Wu, Q., and M. Boucadair, "A YANG Model for User-Network Interface (UNI) Topologies", Work in Progress, Internet-Draft, draft-ogondio-opsawg-uni-topology-01, 2 April 2020, <https://tools.ietf.org/html/draft-ogondio-opsawg-uni-topology-01>.


Appendix A. Layered YANG Module Examples Overview ✨

Okay so this appendix is basically a shopping list πŸ›οΈ of YANG data models you can grab to deliver connectivity services. Every model on the list falls into one of three buckets: service, network, or device models. Cute, right? πŸŽ€

Quick heads up though, bestie: this is NOT meant to be a full inventory of every tool and mechanism out there for specific network and service management domains. If you want that kind of list, go check out documents like [RFC7276] πŸ“š.

If you want to poke around existing models, the YANG Catalog (<https://www.yangcatalog.org>) and the public Github YANG repository (<https://github.com/YangModels/yang>) are your go-to spots πŸ’œ. The YANG Catalog even has some metadata to show the module type ('module-classification') [NETMOD-MODEL] πŸ”₯.

And one more thing I'm obsessed with: the mechanism in [RFC8819] lets you attach tags to YANG modules, which helps sort them into categories 🏷️✨. It's giving organized and iconic πŸ’….

A.1. Service Models: Definition and Samples ✨

okay so [RFC8309] says the service is "some form of connectivity between customer sites and the Internet or between customer sites across the network operator's network and across the Internet" πŸŒπŸ’– bestie, that's the vibe. More concretely, an IP connectivity service is the IP transfer capability described by a (Source Nets, Destination Nets, Guarantees, Scope) tuple πŸŽ€. "Source Nets" is a group of unicast IP addresses, and "Destination Nets" is a group of IP unicast and/or multicast addresses. "Guarantees" covers the guarantees (like QoS, performance, and availability, for example) that make sure traffic gets forwarded properly to that "Destination" [RFC7297] ✨. The "Scope" is the network perimeter (e.g., between Provider Edge (PE) routers or Customer Nodes) where those guarantees need to be provided 🫢.

Some examples to make it click:

  • The L3SM [RFC8299] defines the L3VPN service a customer orders from a network operator πŸ’….
  • The L2SM [RFC8466] defines the L2VPN service a customer orders from a network operator πŸ¦‹.
  • The Virtual Network (VN) model [ACTN-VN-YANG] is a YANG data model that works for any mode of VN operation 🌸.

L2SM and L3SM are customer service models as per [RFC8309] πŸ‘‘.

A.2. Schema Mount 🧚

Modularity and extensibility were, like, the main design principles of the YANG data modeling language πŸ’œ. That means the same YANG module can get combined with different sets of other modules, so you end up with a data model tailored to a specific use case πŸ“. [RFC8528] defines a mechanism called "schema mount," which lets you mount one data model (made of any number of YANG modules) at a specified location in another (parent) schema πŸ”₯.

A.3. Network Models: Samples 🌈

L2NM [OPSAWG-L2NM] and L3NM [OPSAWG-L3SM-L3NM] are examples of YANG network models ✨.

Figure 9 shows a set of extra network models, like topology and tunnel models πŸ¦‹:

  +-------------------------------+-------------------------------+
  |      Topology YANG modules    |     Tunnel YANG modules       |
  +-------------------------------+-------------------------------+
  |  +------------------+         |                               |
  |  |Network Topologies|         | +------+  +-----------+       |
  |  |       Model      |         | |Other |  | TE Tunnel |       |
  |  +--------+---------+         | |Tunnel|  +----+------+       |
  |           |   +---------+     | +------+       |              |
  |           +---+Service  |     |     +----------+---------+    |
  |           |   |Topology |     |     |          |         |    |
  |           |   +---------+     |     |          |         |    |
  |           |   +---------+     |+----+---+ +----+---+ +---+---+|
  |           +---+Layer 3  |     ||MPLS-TE | |RSVP-TE | | SR-TE ||
  |           |   |Topology |     || Tunnel | | Tunnel | |Tunnel ||
  |           |   +---------+     |+--------+ +--------+ +-------+|
  |           |   +---------+     |                               |
  |           +---+TE       |     |                               |
  |           |   |Topology |     |                               |
  |           |   +---------+     |                               |
  |           |   +---------+     |                               |
  |           +---+Layer 3  |     |                               |
  |               |Topology |     |                               |
  |               +---------+     |                               |
  +-------------------------------+-------------------------------+

          Figure 9: Sample Resource-Facing Network Models

Here are the topology YANG modules, bestie πŸ’–:

  • Network Topologies Model: [RFC8345] defines a base model for network topology and inventories. Network topology data includes link, node, and terminate-point resources 🌸.
  • TE Topology Model: [RFC8795] defines a YANG data model for representing and manipulating TE topologies. This module is extended from the network topology model defined in [RFC8345] and includes content related to TE topologies. This model holds technology-agnostic TE topology building blocks that other technology-specific TE topology models can augment and use πŸ”₯.
  • Layer 3 Topology Model: [RFC8346] defines a YANG data model for representing and manipulating Layer 3 topologies. It's extended from the network topology model defined in [RFC8345] and includes content about Layer 3 topology specifics πŸ’….
  • Layer 2 Topology Model: [RFC8944] defines a YANG data model for representing and manipulating Layer 2 topologies. It's extended from the network topology model defined in [RFC8345] and includes content about Layer 2 topology specifics 🫢.

And here are the tunnel YANG modules πŸš‡βœ¨:

  • Tunnel Identities: [RFC8675] defines a collection of YANG identities used as interface types for tunnel interfaces πŸ¦‹.
  • TE Tunnel Model: [TEAS-YANG-TE] defines a YANG module for configuring and managing TE interfaces, tunnels, and LSPs πŸ“.
  • Segment Routing (SR) Traffic Engineering (TE) Tunnel Model: [TEAS-YANG-TE] augments the TE generic and MPLS-TE model(s) and defines a YANG module for SR-TE-specific data 🧚.
  • MPLS-TE Model: [TEAS-YANG-TE] augments the TE generic and MPLS-TE model(s) and defines a YANG module for MPLS-TE configurations, state, RPC, and notifications πŸ’œ.
  • RSVP-TE MPLS Model: [TEAS-YANG-RSVP] augments the RSVP-TE generic module with parameters to configure and manage signaling of MPLS RSVP-TE LSPs 🌈.

Other sample network models, periodt πŸ’…:

  • Path Computation API Model: [TEAS-YANG-PATH-COMP] defines a YANG module for a stateless RPC that complements the stateful solution defined in [TEAS-YANG-TE] ✨.

OAM models (including Fault Management (FM) and Performance Monitoring) are next πŸ”πŸŒΈ. [RFC8532] defines a base YANG module for managing OAM protocols that use Connectionless Communications. [RFC8533] defines a retrieval method YANG module for connectionless OAM protocols. [RFC8531] defines a base YANG module for connection-oriented OAM protocols. These three models are meant to give consistent reporting, configuration, and representation for connectionless OAM and connection-oriented OAM separately πŸ¦‹.

Alarm monitoring is a fundamental part of monitoring the network, and raw alarms from devices don't always tell you the status of network services or point to the root cause 😭. [RFC8632] defines a YANG module for alarm management 🚨.

A.4. Device Models: Samples πŸ’»

Network Element models (listed in Figure 10) describe how a service can be implemented by activating and tweaking a set of functions 🧚. Those functions can be enabled in one or multiple devices, or hosted in cloud infrastructures, and they're all involved in delivering the service 🫢. For example, the L3VPN service involves many PEs and needs these modules manipulated πŸ‘‘:

  • Routing management [RFC8349] 🌸
  • BGP [IDR-BGP-MODEL] πŸ’œ
  • PIM [PIM-YANG] πŸ¦‹
  • NAT management [RFC8512] πŸ“
  • QoS management [QOS-MODEL] ✨
  • ACLs [RFC8519] πŸ”₯

Figure 10 uses IETF-defined data models as an example 🌈.

                                        +------------------------+
                                      +-+     Device Model       |
                                      | +------------------------+
                                      | +------------------------+
                  +---------------+   | |   Logical Network      |
                  |               |   +-+     Element Model      |
                  | Architecture  |   | +------------------------+
                  |               |   | +------------------------+
                  +-------+-------+   +-+ Network Instance Model |
                          |           | +------------------------+
                          |           | +------------------------+
                          |           +-+   Routing Type Model   |
                          |             +------------------------+
  +-------+----------+----+------+------------+-----------+------+
  |       |          |           |            |           |      |
+-+-+ +---+---+ +----+----+   +--+--+    +----+----+   +--+--+   |
|ACL| |Routing| |Transport|   | OAM |    |Multicast|   |  PM | Others
+---+ +-+-----+ +----+----+   +--+--+    +-----+---+   +--+--+
        | +-------+  | +------+  | +--------+  | +-----+  | +-----+
        +-+Core   |  +-+ MPLS |  +-+  BFD   |  +-+IGMP |  +-+TWAMP|
        | |Routing|  | | Base |  | +--------+  | |/MLD |  | +-----+
        | +-------+  | +------+  | +--------+  | +-----+  | +-----+
        | +-------+  | +------+  +-+LSP Ping|  | +-----+  +-+OWAMP|
        +-+  BGP  |  +-+ MPLS |  | +--------+  +-+ PIM |  | +-----+
        | +-------+  | | LDP  |  | +--------+  | +-----+  | +-----+
        | +-------+  | +------+  +-+MPLS-TP |  | +-----+  +-+LMAP |
        +-+  ISIS |  | +------+    +--------+  +-+ MVPN|    +-----+
        | +-------+  +-+ MPLS |                  +-----+
        | +-------+    |Static|
        +-+  OSPF |    +------+
        | +-------+
        | +-------+
        +-+  RIP  |
        | +-------+
        | +-------+
        +-+  VRRP |
        | +-------+
        | +-------+
        +-+SR/SRv6|
        | +-------+
        | +-------+
        +-+ISIS-SR|
        | +-------+
        | +-------+
        +-+OSPF-SR|
          +-------+

              Figure 10: Network Element Models Overview

A.4.1. Model Composition 🧩

  • Logical Network Element Model: [RFC8530] defines a logical network element model that can be used to manage the logical resource partitioning that may be present on a network device. Examples of common industry terms for logical resource partitioning are Logical Systems or Logical Routers 🌸.
  • Network Instance Model: [RFC8529] defines a network instance module. This module can be used to manage the virtual resource partitioning that may be present on a network device. Examples of common industry terms for virtual resource partitioning are VRF instances and Virtual Switch Instances (VSIs) πŸ¦‹.

A.4.2. Device Management πŸ› οΈ

The following list enumerates some YANG modules that can be used for device management πŸ’…:

  • [RFC8348] defines a YANG module for the management of hardware πŸ”§.
  • [RFC7317] defines the "ietf-system" YANG module, which provides many features such as configuring and monitoring system or system control operations (e.g., shutdown, restart, and setting time) and identification πŸ–₯️.
  • [RFC8341] defines a network configuration access control YANG module πŸ”.

A.4.3. Interface Management πŸ”Œ

The following provides some YANG modules that can be used for interface management πŸ’–:

  • [RFC7224] defines a YANG module for interface type definitions πŸŽ€.
  • [RFC8343] defines a YANG module for the management of network interfaces ✨.

A.4.4. Some Device Model Examples ✨

okay so here's a tour of some device models you can actually use in a network 🧚 this list is not comprehensive, bestie, there are more out there!

L2VPN πŸŽ€ [L2VPN-YANG] defines a YANG module for MPLS-based Layer 2 VPN services (L2VPN) [RFC4664] and includes switching between the local attachment circuits. The L2VPN model covers point-to-point Virtual Private Wire Service (VPWS) and Multipoint Virtual Private LAN Service (VPLS). These services use signaling of Pseudowires across MPLS networks using LDP [RFC8077][RFC4762] or BGP [RFC4761].

EVPN πŸ’… [EVPN-YANG] defines a YANG module for Ethernet VPN services. The model is agnostic of the underlay, so it applies to MPLS as well as to Virtual eXtensible Local Area Network (VxLAN) encapsulation. It's also agnostic to the services, including E-LAN, E-LINE, and E-TREE services. so unbothered πŸ¦‹

L3VPN 🌸 [L3VPN-YANG] defines a YANG module that can be used to configure and manage BGP L3VPNs [RFC4364]. It contains VRF-specific parameters as well as BGP-specific parameters applicable for L3VPNs.

Core Routing πŸ‘‘ [RFC8349] defines the core routing YANG data model. It's intended as a basis for future data model development covering more-sophisticated routing systems. It is expected that other Routing technology YANG modules (e.g., VRRP, RIP, ISIS, or OSPF models) will augment the Core Routing base YANG module. the layering is giving architecture 🀌

MPLS πŸ”₯ [RFC8960] defines a base model for MPLS that serves as a base framework for configuring and managing an MPLS switching subsystem. It is expected that other MPLS technology YANG modules (e.g., MPLS LSP Static, LDP, or RSVP-TE models) will augment the MPLS base YANG module.

BGP πŸ“ [IDR-BGP-MODEL] defines a YANG module for configuring and managing BGP, including protocol, policy, and operational aspects based on data center, carrier, and content provider operational requirements.

Routing Policy 🧚 [RTGWG-POLICY] defines a YANG module for configuring and managing routing policies based on operational practice. The module provides a generic policy framework that can be augmented with protocol-specific policy configuration.

SR/SRv6 ⭐ [SPRING-SR-YANG] defines a YANG module for segment routing configuration and operation.

BFD πŸ’– Bidirectional Forwarding Detection (BFD) [RFC5880] is a network protocol that is used for liveness detection of arbitrary paths between systems. [BFD-YANG] defines a YANG module that can be used to configure and manage BFD.

Multicast πŸ“‘ [PIM-YANG] defines a YANG module that can be used to configure and manage Protocol Independent Multicast (PIM) devices.

[RFC8652] defines a YANG module that can be used to configure and manage Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) devices.

[SNOOPING-YANG] defines a YANG module that can be used to configure and manage Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) snooping devices.

[MVPN-YANG] defines a YANG data model to configure and manage Multicast in MPLS/BGP IP VPNs (MVPNs).

PM ⏱️ [TWAMP-DATA-MODEL] defines a YANG data model for client and server implementations of the Two-Way Active Measurement Protocol (TWAMP).

[STAMP-YANG] defines the data model for implementations of Session-Sender and Session-Reflector for Simple Two-way Active Measurement Protocol (STAMP) mode using YANG.

[RFC8194] defines a YANG data model for Large-Scale Measurement Platforms (LMAPs).

ACL πŸ” An Access Control List (ACL) is one of the basic elements used to configure device-forwarding behavior. It is used in many networking technologies such as Policy-Based Routing, firewalls, etc. [RFC8519] describes a YANG data model of ACL basic building blocks.

QoS πŸŽ€ [QOS-MODEL] describes a YANG module of Differentiated Services for configuration and operations.

NAT πŸ¦„ For the sake of network automation and the need for programming the Network Address Translation (NAT) function in particular, a YANG data model for configuring and managing the NAT is essential.

[RFC8512] defines a YANG module for the NAT function covering a variety of NAT flavors such as Network Address Translation from IPv4 to IPv4 (NAT44), Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers (NAT64), customer-side translator (CLAT), Stateless IP/ICMP Translation (SIIT), Explicit Address Mappings (EAMs) for SIIT, IPv6-to-IPv6 Network Prefix Translation (NPTv6), and Destination NAT.

[RFC8513] specifies a Dual-Stack Lite (DS-Lite) YANG module.

Stateless Address Sharing 🫧 [RFC8676] specifies a YANG module for Address plus Port (A+P) address sharing, including Lightweight 4over6, Mapping of Address and Port with Encapsulation (MAP-E), and Mapping of Address and Port using Translation (MAP-T) softwire mechanisms.


Acknowledgements 🫢

Thanks to Joe Clark, Greg Mirsky, Shunsuke Homma, Brian Carpenter, Adrian Farrel, Christian Huitema, Tommy Pauly, Ines Robles, and Olivier Augizeau for the review. πŸ’•

Many thanks to Robert Wilton for the detailed AD review. πŸ™Œ

Thanks to Γ‰ric Vyncke, Roman Danyliw, Erik Kline, and Benjamin Kaduk for the IESG review. ✨


Contributors 🌈

Christian Jacquenet Orange Rennes, 35000 France

Email: Christian.jacquenet@orange.com

Luis Miguel Contreras Murillo Telefonica

Email: luismiguel.contrerasmurillo@telefonica.com

Oscar Gonzalez de Dios Telefonica Madrid Spain

Email: oscar.gonzalezdedios@telefonica.com

Weiqiang Cheng China Mobile

Email: chengweiqiang@chinamobile.com

Young Lee Sung Kyun Kwan University

Email: younglee.tx@gmail.com


Authors' Addresses πŸ’œ

Qin Wu (editor) Huawei 101 Software Avenue Yuhua District Nanjing Jiangsu, 210012 China

Email: bill.wu@huawei.com

Mohamed Boucadair (editor) Orange Rennes 35000 France

Email: mohamed.boucadair@orange.com

Diego R. Lopez Telefonica I+D Spain

Email: diego.r.lopez@telefonica.com

Chongfeng Xie China Telecom Beijing China

Email: xiechf@chinatelecom.cn

Liang Geng China Mobile

Email: gengliang@chinamobile.com

πŸ“¦ where this page comes from