| rfc8969xml2.original.xml | rfc8969.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) | ||||
| by Daniel M Kohn (private) --> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference. | ||||
| RFC.2119.xml"> | ||||
| ]> | ||||
| <rfc category="info" docName="draft-ietf-opsawg-model-automation-framework-10" | ||||
| ipr="trust200902"> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc toc="yes" ?> | ||||
| <?rfc symrefs="yes" ?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc iprnotified="no" ?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc strict="yes" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
| docName="draft-ietf-opsawg-model-automation-framework-10" number="8969" | ||||
| ipr="trust200902" obsoletes="" updates="" submissionType="IETF" | ||||
| category="info" consensus="true" xml:lang="en" tocInclude="true" | ||||
| symRefs="true" sortRefs="true" version="3"> | ||||
| <front> | <front> | |||
| <title abbrev="Service and Network Management Automation">A Framework for | <title abbrev="Service & Network Management Automation">A Framework for | |||
| Automating Service and Network Management with YANG</title> | Automating Service and Network Management with YANG</title> | |||
| <seriesInfo name="RFC" value="8969"/> | ||||
| <author fullname="Qin Wu" initials="Q." role="editor" surname="Wu"> | <author fullname="Qin Wu" initials="Q." role="editor" surname="Wu"> | |||
| <organization>Huawei</organization> | <organization>Huawei</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>101 Software Avenue, Yuhua District</street> | <street>101 Software Avenue</street> | |||
| <cityarea>Yuhua District</cityarea> | ||||
| <city>Nanjing</city> | <city>Nanjing</city> | |||
| <region>Jiangsu</region> | <region>Jiangsu</region> | |||
| <code>210012</code> | <code>210012</code> | |||
| <country>China</country> | <country>China</country> | |||
| </postal> | </postal> | |||
| <email>bill.wu@huawei.com</email> | <email>bill.wu@huawei.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Mohamed Boucadair" initials="M." role="editor" surname="Bo | ||||
| <author fullname="Mohamed Boucadair" initials="M." role="editor" | ucadair"> | |||
| surname="Boucadair"> | ||||
| <organization>Orange</organization> | <organization>Orange</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Rennes 35000</street> | <street>Rennes 35000</street> | |||
| <country>France</country> | <country>France</country> | |||
| </postal> | </postal> | |||
| <email>mohamed.boucadair@orange.com</email> | <email>mohamed.boucadair@orange.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Diego R. Lopez " initials="D." surname="Lopez"> | <author fullname="Diego R. Lopez " initials="D." surname="Lopez"> | |||
| <organization>Telefonica I+D</organization> | <organization>Telefonica I+D</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <city/> | ||||
| <city></city> | <region/> | |||
| <code/> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country>Spain</country> | <country>Spain</country> | |||
| </postal> | </postal> | |||
| <email>diego.r.lopez@telefonica.com</email> | <email>diego.r.lopez@telefonica.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Chongfeng Xie" initials="C." surname="Xie"> | <author fullname="Chongfeng Xie" initials="C." surname="Xie"> | |||
| <organization>China Telecom</organization> | <organization>China Telecom</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <city>Beijing</city> | <city>Beijing</city> | |||
| <country>China</country> | <country>China</country> | |||
| </postal> | </postal> | |||
| <email>xiechf@chinatelecom.cn</email> | <email>xiechf@chinatelecom.cn</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Liang Geng" initials="L." surname="Geng"> | <author fullname="Liang Geng" initials="L." surname="Geng"> | |||
| <organization>China Mobile</organization> | <organization>China Mobile</organization> | |||
| <address> | <address> | |||
| <email>gengliang@chinamobile.com</email> | <email>gengliang@chinamobile.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2021" month="January" /> | ||||
| <date year="2020" /> | ||||
| <area>OPS Area</area> | <area>OPS Area</area> | |||
| <workgroup>OPSAWG</workgroup> | <workgroup>OPSAWG</workgroup> | |||
| <keyword>Model Driven</keyword> | ||||
| <keyword>Model Driven, YANG Data Model</keyword> | <keyword>YANG Data Model</keyword> | |||
| <keyword>automation</keyword> | <keyword>automation</keyword> | |||
| <keyword>service delivery</keyword> | <keyword>service delivery</keyword> | |||
| <keyword>notification</keyword> | <keyword>notification</keyword> | |||
| <keyword>SDN</keyword> | <keyword>SDN</keyword> | |||
| <abstract> | <abstract> | |||
| <t>Data models provide a programmatic approach to represent services and | <t>Data models provide a programmatic approach to represent services and | |||
| networks. Concretely, they can be used to derive configuration | networks. Concretely, they can be used to derive configuration | |||
| information for network and service components, and state information | information for network and service components, and state information | |||
| that will be monitored and tracked. Data models can be used during the | that will be monitored and tracked. | |||
| service and network management life cycle, such as service | ||||
| instantiation, provisioning, optimization, monitoring, diagnostic, and | Data models can be used during the service and network management life cycle | |||
| assurance. Data models are also instrumental in the automation of | (e.g., service instantiation, service provisioning, service optimization, | |||
| network management, and they can provide closed-loop control for | service monitoring, service diagnosing, and service assurance). | |||
| adaptive and deterministic service creation, delivery, and | ||||
| maintenance.</t> | ||||
| Data models are also instrumental in the automation of network management, and | ||||
| they can provide closed-loop control for adaptive and deterministic service | ||||
| creation, delivery, and maintenance.</t> | ||||
| <t>This document describes a framework for service and network | <t>This document describes a framework for service and network | |||
| management automation that takes advantage of YANG modeling | management automation that takes advantage of YANG modeling | |||
| technologies. This framework is drawn from a network operator | technologies. This framework is drawn from a network operator | |||
| perspective irrespective of the origin of a data model; it can thus | perspective irrespective of the origin of a data model; thus, it can | |||
| accommodate YANG modules that are developed outside the IETF.</t> | accommodate YANG modules that are developed outside the IETF.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="intro" title="Introduction"> | <section anchor="intro" numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t>Service management systems usually comprise service | <t>Service management systems usually comprise service | |||
| activation/provision and service operation. Current service delivery | activation/provision and service operation. Current service delivery | |||
| procedures, from the processing of customer requirements and orders to | procedures, from the processing of customer requirements and orders to | |||
| service delivery and operation, typically assume the manipulation of | service delivery and operation, typically assume the manipulation of | |||
| data sequentially into multiple Operations Support System (OSS) or | data sequentially into multiple Operations Support System (OSS) or | |||
| Business Support System (BSS) applications that may be managed by | Business Support System (BSS) applications that may be managed by | |||
| different departments within the service provider's organization (e.g., | different departments within the service provider's organization (e.g., | |||
| billing factory, design factory, network operation center). Many of | billing factory, design factory, network operation center). Many of | |||
| these applications have been developed in-house over the years and | these applications have been developed in house over the years and | |||
| operate in a silo mode:<list style="symbols"> | operate in a silo mode. As a result:</t> | |||
| <t>The lack of standard data input/output (i.e., data model) raises | ||||
| many challenges in system integration and often results in manual | ||||
| configuration tasks.</t> | ||||
| <t>Service fulfillment systems might have a limited visibility on | ||||
| the network state and therefore have slow response to network | ||||
| changes.</t> | ||||
| </list></t> | ||||
| <t>Software Defined Networking (SDN) becomes crucial to address these | <ul spacing="normal"> | |||
| <li>The lack of standard data input/output (i.e., data model) raises | ||||
| many challenges in system integration and often results in manual | ||||
| configuration tasks.</li> | ||||
| <li>Service fulfillment systems might have a limited visibility on | ||||
| the network state and may therefore have a slow response to network | ||||
| changes.</li> | ||||
| </ul> | ||||
| <t>Software-Defined Networking (SDN) becomes crucial to address these | ||||
| challenges. SDN techniques are meant to automate the overall service | challenges. SDN techniques are meant to automate the overall service | |||
| delivery procedures and typically rely upon standard data models. These | delivery procedures and typically rely upon standard data models. These | |||
| models are used to not only reflect service providers' savoir-faire, but | models are used not only to reflect service providers' savoir faire, but | |||
| also to dynamically instantiate and enforce a set of service-inferred | also to dynamically instantiate and enforce a set of service-inferred | |||
| policies that best accommodate what has been defined and possibly | policies that best accommodate what has been defined and possibly | |||
| negotiated with the customer. <xref target="RFC7149"></xref> provides a | negotiated with the customer. <xref target="RFC7149" format="default"/> | |||
| first tentative attempt to rationalize that service provider's view on | provides a first tentative attempt to rationalize that service | |||
| the SDN space by identifying concrete technical domains that need to be | provider's view on the SDN space by identifying concrete technical | |||
| considered and for which solutions can be provided: <list | domains that need to be considered and for which solutions can be | |||
| style="symbols"> | provided. These include: </t> | |||
| <t>Techniques for the dynamic discovery of topology, devices, and | <ul spacing="normal"> | |||
| <li>Techniques for the dynamic discovery of topology, devices, and | ||||
| capabilities, along with relevant information and data models that | capabilities, along with relevant information and data models that | |||
| are meant to precisely document such topology, devices, and their | are meant to precisely document such topology, devices, and their | |||
| capabilities.</t> | capabilities.</li> | |||
| <li>Techniques for exposing network services <xref target="RFC8309" | ||||
| <t>Techniques for exposing network services <xref | format="default"/> and their characteristics.</li> | |||
| target="RFC8309"></xref> and their characteristics.</t> | <li>Techniques used by service-derived dynamic resource allocation | |||
| <t>Techniques used by service-derived dynamic resource allocation | ||||
| and policy enforcement schemes, so that networks can be programmed | and policy enforcement schemes, so that networks can be programmed | |||
| accordingly.</t> | accordingly.</li> | |||
| <li>Dynamic feedback mechanisms that are meant to assess how | ||||
| <t>Dynamic feedback mechanisms that are meant to assess how | ||||
| efficiently a given policy (or a set thereof) is enforced from a | efficiently a given policy (or a set thereof) is enforced from a | |||
| service fulfillment and assurance perspectives.</t> | service fulfillment and assurance perspective.</li> | |||
| </list></t> | </ul> | |||
| <t>Models are key for each of the four technical items above. | ||||
| <t>Models are key for each of the aforementioned four technical items. | ||||
| Service and network management automation is an important step to | Service and network management automation is an important step to | |||
| improve the agility of network operations. Models are also important to | improve the agility of network operations. Models are also important to | |||
| ease integrating multi-vendor solutions.</t> | ease integrating multi-vendor solutions.</t> | |||
| <t>YANG module <xref target="RFC7950" format="default"/> developers have | ||||
| taken both top-down and bottom-up approaches to develop modules <xref | ||||
| target="RFC8199" format="default"/> and to establish a mapping between a | ||||
| network technology and customer requirements at the top or abstracting | ||||
| common constructs from various network technologies at the bottom. | ||||
| <t>YANG <xref target="RFC7950"></xref> module developers have taken both | At the time of writing this document (2020), there are many YANG data models, | |||
| top-down and bottom-up approaches to develop modules <xref | including configuration and service models, that have been specified or are | |||
| target="RFC8199"></xref> and to establish a mapping between a network | being specified by the IETF. They cover many of the networking protocols and | |||
| technology and customer requirements at the top or abstracting common | techniques. However, how these models work together to configure a function, | |||
| constructs from various network technologies at the bottom. At the time | manage a set of devices involved in a service, or provide a service is | |||
| of writing this document (2020), there are many YANG data models | something that is not currently documented either within the IETF or other | |||
| including configuration and service models that have been specified or | Standards Development Organizations (SDOs).</t> | |||
| are being specified by the IETF. They cover many of the 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 something that is not currently documented either | ||||
| within the IETF or other Standards Development Organizations (SDOs).</t> | ||||
| <t>Many of the YANG modules listed in this document are used to exchange | <t>Many of the YANG modules listed in this document are used to exchange | |||
| data between NETCONF/RESTCONF clients and servers <xref | data between NETCONF/RESTCONF clients and servers <xref target="RFC6241" | |||
| target="RFC6241"></xref><xref target="RFC8040"></xref>. Nevertheless, | format="default"/><xref target="RFC8040" | |||
| YANG is a transport-independent data modeling language. It can thus be | format="default"/>. Nevertheless, YANG is a transport-independent data | |||
| used independently of NETCONF/RESTONF. For example, YANG can be used to | modeling language. It can thus be used independently of | |||
| define abstract data structures <xref target="RFC8791"></xref> that can | NETCONF/RESTCONF. For example, YANG can be used to define abstract data | |||
| be manipulated by other protocols (e.g., <xref | structures <xref target="RFC8791" format="default"/> that can be | |||
| target="I-D.ietf-dots-rfc8782-bis"></xref>).</t> | manipulated by other protocols (e.g., <xref | |||
| target="I-D.ietf-dots-rfc8782-bis" format="default"/>).</t> | ||||
| <t>This document describes an architectural framework for service and | <t>This document describes an architectural framework for service and | |||
| network management automation (<xref target="concept"></xref>) that | network management automation (<xref target="concept" | |||
| takes advantage of YANG modeling technologies and investigates how YANG | format="default"/>) that takes advantage of YANG modeling technologies | |||
| data models at different layers interact with each other (e.g., service | and investigates how YANG data models at different layers interact with | |||
| mapping, model composition) in the context of service delivery and | each other (e.g., Service Mapping, model composition) in the context of | |||
| fulfillment (<xref target="compo"></xref>). Concretely, the following | service delivery and fulfillment (<xref target="compo" | |||
| benefits can be provided: <list style="symbols"> | format="default"/>). Concretely, the following benefits can be provided: | |||
| <t>Allow for vendor-agnostic interfaces to manage a service and the | </t> | |||
| underlying network.</t> | <ul spacing="normal"> | |||
| <li>Vendor-agnostic interfaces managing a service and the | ||||
| <t>Move from deployment schemes where vendor-specific network | underlying network are allowed.</li> | |||
| <li>Movement from deployment schemes where vendor-specific network | ||||
| managers are required to a scheme where the entities that are | managers are required to a scheme where the entities that are | |||
| responsible for orchestrating and controlling services and network | responsible for orchestrating and controlling services and network | |||
| resources provided by multi-vendor devices are unified.</t> | resources provided by multi-vendor devices are unified is allowed.</li | |||
| > | ||||
| <t>Ease data inheritance and reusability among the various | <li>Data inheritance and reusability among the various | |||
| architecture layers thus promoting a network-wise provisioning | architecture layers thus promoting a network-wise provisioning | |||
| instead of device-specific configuration.</t> | instead of device-specific configuration is eased.</li> | |||
| <li>Dynamically feeding a decision-making process (e.g., Controllers, | ||||
| <t>Dynamically feed a decision-making process (e.g., Controllers, | ||||
| Orchestrators) with notifications that will trigger appropriate | Orchestrators) with notifications that will trigger appropriate | |||
| actions, allowing that decision-making process to continuously | actions, allowing that decision-making process to continuously | |||
| adjust a network (and thus, the involved resources) to deliver the | adjust a network (and thus the involved resources) to deliver the | |||
| service that conforms to the intended parameters (service | service that conforms to the intended parameters (service | |||
| objectives).</t> | objectives) is allowed.</li> | |||
| </list></t> | </ul> | |||
| <t>This framework is drawn from a network operator perspective | <t>This framework is drawn from a network operator perspective | |||
| irrespective of the origin of a data model; it can also accommodate YANG | irrespective of the origin of a data model; it can also accommodate YANG | |||
| modules that are developed outside the IETF. The document covers service | modules that are developed outside the IETF. The document covers service | |||
| models that are used by an operator to expose its services and capture | models that are used by an operator to expose its services and capture | |||
| service requirements from the customers (including other operators). | service requirements from the customers (including other operators). | |||
| Nevertheless, the document does not elaborate on the communication | Nevertheless, the document does not elaborate on the communication | |||
| protocol(s) that makes use of these service models in order to request | protocol(s) that makes use of these service models in order to request | |||
| and deliver a service. Such considerations are out of scope.</t> | and deliver a service. Such considerations are out of scope.</t> | |||
| <t>The document identifies a list of use cases to exemplify the proposed | <t>The document identifies a list of use cases to exemplify the proposed | |||
| approach (<xref target="examples"></xref>), but it does not claim nor | approach (<xref target="examples" format="default"/>), but it does not cla | |||
| aim to be exhaustive. <xref target="app"></xref> lists some examples to | im nor | |||
| aim to be exhaustive. <xref target="app" format="default"/> lists some exa | ||||
| mples to | ||||
| illustrate the layered YANG modules view.</t> | illustrate the layered YANG modules view.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Terminology and Abbreviations</name> | ||||
| <t/> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Terminology</name> | ||||
| <t>The following terms are defined in <xref target="RFC8309" | ||||
| format="default"/> and <xref target="RFC8199" format="default"/> and are | ||||
| not redefined here:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Network Operator</li> | ||||
| <li>Customer</li> | ||||
| <li>Service</li> | ||||
| <li>Data Model</li> | ||||
| <li>Service Model</li> | ||||
| <li>Network Element Model</li> | ||||
| </ul> | ||||
| <section title="Terminology and Acronyms"> | <t>In addition, the document makes use of the following terms: </t> | |||
| <t></t> | <dl newline="true" spacing="normal"> | |||
| <dt>Network Model:</dt> | ||||
| <section title="Terminology"> | <dd> | |||
| <t>The following terms are defined in <xref | <t>Describes a network-level abstraction | |||
| target="RFC8309"></xref><xref target="RFC8199"></xref> and are not | ||||
| redefined here:<list style="symbols"> | ||||
| <t>Network Operator</t> | ||||
| <t>Customer</t> | ||||
| <t>Service</t> | ||||
| <t>Data Model</t> | ||||
| <t>Service Model</t> | ||||
| <t>Network Element Module</t> | ||||
| </list></t> | ||||
| <t>In addition, the document makes use of the following terms: <list | ||||
| style="hanging"> | ||||
| <t hangText="Network Model:">Describes a network level abstraction | ||||
| (or a subset of aspects of a network infrastructure), including | (or a subset of aspects of a network infrastructure), including | |||
| devices and their subsystems, and relevant protocols operating at | devices and their subsystems, and relevant protocols operating at | |||
| the link and network layers across multiple devices. This model | the link and network layers across multiple devices. This model | |||
| corresponds to the network configuration model discussed in <xref | corresponds to the network configuration model discussed in <xref ta | |||
| target="RFC8309"></xref>.<vspace blankLines="1" />It can be used | rget="RFC8309" format="default"/>.</t> | |||
| <t>It can be used | ||||
| by a network operator to allocate resources (e.g., tunnel | by a network operator to allocate resources (e.g., tunnel | |||
| resource, topology resource) for the service or schedule resources | resource, topology resource) for the service or schedule resources | |||
| to meet the service requirements defined in a service model.</t> | to meet the service requirements defined in a service model.</t> | |||
| </dd> | ||||
| <t hangText="Network Domain:">Refers to a network partitioning | <dt>Network Domain:</dt> | |||
| <dd>Refers to a network partitioning | ||||
| that is usually followed by network operators to delimit parts of | that is usually followed by network operators to delimit parts of | |||
| their network. "access network" and "core network" are examples of | their network. "access network" and "core network" are examples of | |||
| network domains.</t> | network domains.</dd> | |||
| <dt>Device Model:</dt> | ||||
| <t hangText="Device Model:">Refers to the Network Element YANG | <dd> | |||
| data model described in <xref target="RFC8199"></xref> or the | <t>Refers to the Network Element YANG | |||
| device configuration model discussed in <xref | data model described in <xref target="RFC8199" format="default"/> or | |||
| target="RFC8309"></xref>.<vspace blankLines="1" />Device models | the | |||
| device configuration model discussed in <xref target="RFC8309" forma | ||||
| t="default"/>.</t> | ||||
| <t>Device models | ||||
| are also used to refer to model a function embedded in a device | are also used to refer to model a function embedded in a device | |||
| (e.g., Network Address Translation (NAT) <xref | (e.g., Network Address Translation (NAT) <xref target="RFC8512" form | |||
| target="RFC8512"></xref>, Access Control Lists (ACLs) <xref | at="default"/>, Access Control Lists (ACLs) <xref target="RFC8519" format="defau | |||
| target="RFC8519"></xref>).</t> | lt"/>).</t> | |||
| </dd> | ||||
| <t hangText="Pipe:">Refers to a communication scope where only | <dt>Pipe:</dt> | |||
| <dd>Refers to a communication scope where only | ||||
| one-to-one (1:1) communications are allowed. The scope can be | one-to-one (1:1) communications are allowed. The scope can be | |||
| identified between ingress and egress nodes, two service sites, | identified between ingress and egress nodes, two service sites, | |||
| etc.</t> | etc.</dd> | |||
| <dt>Hose:</dt> | ||||
| <t hangText="Hose:">Refers to a communication scope where | <dd>Refers to a communication scope where | |||
| one-to-many (1:N) communications are allowed (e.g., one site to | one-to-many (1:N) communications are allowed (e.g., one site to | |||
| multiple sites).</t> | multiple sites).</dd> | |||
| <dt>Funnel:</dt> | ||||
| <t hangText="Funnel:">Refers to a communication scope where | <dd>Refers to a communication scope where | |||
| many-to-one (N:1) communications are allowed.</t> | many-to-one (N:1) communications are allowed.</dd> | |||
| </list></t> | </dl> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Acronyms"> | <name>Abbreviations</name> | |||
| <t>The following acronyms are used in the document:<?rfc subcompact="yes | <t>The following abbreviations are used in the document:</t> | |||
| " ?></t> | <dl newline="false" spacing="compact" indent="8"> | |||
| <dt>ACL</dt> | ||||
| <t><list hangIndent="8" style="hanging"> | <dd>Access Control List</dd> | |||
| <t hangText="ACL">Access Control List</t> | <dt>AS</dt> | |||
| <dd>Autonomous System</dd> | ||||
| <t hangText="AS">Autonomous System</t> | <dt>AP</dt> | |||
| <dd>Access Point</dd> | ||||
| <t hangText="AP">Access Point</t> | <dt>CE</dt> | |||
| <dd>Customer Edge</dd> | ||||
| <t hangText="CE">Customer Edge</t> | <dt>DBE</dt> | |||
| <dd>Data Border Element</dd> | ||||
| <t hangText="DBE">Data Border Element</t> | <dt>E2E</dt> | |||
| <dd>End-to-End</dd> | ||||
| <t hangText="E2E">End-to-End</t> | <dt>ECA</dt> | |||
| <dd>Event Condition Action</dd> | ||||
| <t hangText="ECA">Event Condition Action</t> | <dt>L2VPN</dt> | |||
| <dd>Layer 2 Virtual Private Network</dd> | ||||
| <t hangText="L2VPN">Layer 2 Virtual Private Network</t> | <dt>L3VPN</dt> | |||
| <dd>Layer 3 Virtual Private Network</dd> | ||||
| <t hangText="L3VPN">Layer 3 Virtual Private Network</t> | <dt>L3SM</dt> | |||
| <dd>L3VPN Service Model</dd> | ||||
| <t hangText="L3SM">L3VPN Service Model</t> | <dt>L3NM</dt> | |||
| <dd>L3VPN Network Model</dd> | ||||
| <t hangText="L3NM">L3VPN Network Model</t> | <dt>NAT</dt> | |||
| <dd>Network Address Translation</dd> | ||||
| <t hangText="NAT">Network Address Translation</t> | <dt>OAM</dt> | |||
| <dd>Operations, Administration, and Maintenance</dd> | ||||
| <t hangText="OAM">Operations, Administration, and Maintenance</t> | <dt>OWD</dt> | |||
| <dd>One-Way Delay</dd> | ||||
| <t hangText="OWD">One-Way Delay</t> | <dt>PE</dt> | |||
| <dd>Provider Edge</dd> | ||||
| <t hangText="PE">Provider Edge</t> | <dt>PM</dt> | |||
| <dd>Performance Monitoring</dd> | ||||
| <t hangText="PM">Performance Monitoring</t> | <dt>QoS</dt> | |||
| <dd>Quality of Service</dd> | ||||
| <t hangText="QoS">Quality of Service</t> | <dt>RD</dt> | |||
| <dd>Route Distinguisher</dd> | ||||
| <t hangText="RD">Route Distinguisher</t> | <dt>RT</dt> | |||
| <dd>Route Target</dd> | ||||
| <t hangText="RT">Route Target</t> | <dt>SBE</dt> | |||
| <dd>Session Border Element</dd> | ||||
| <t hangText="SBE">Session Border Element</t> | <dt>SDN</dt> | |||
| <dd>Software-Defined Networking</dd> | ||||
| <t hangText="SDN">Software Defined Networking</t> | <dt>SP</dt> | |||
| <dd>Service Provider</dd> | ||||
| <t hangText="SP">Service Provider</t> | <dt>TE</dt> | |||
| <dd>Traffic Engineering</dd> | ||||
| <t hangText="TE">Traffic Engineering</t> | <dt>VN</dt> | |||
| <dd>Virtual Network</dd> | ||||
| <t hangText="VN">Virtual Network</t> | <dt>VPN</dt> | |||
| <dd>Virtual Private Network</dd> | ||||
| <t hangText="VPN">Virtual Private Network</t> | <dt>VRF</dt> | |||
| <dd>Virtual Routing and Forwarding</dd> | ||||
| <t hangText="VRF">Virtual Routing and Forwarding</t> | </dl> | |||
| </list></t> | <t/> | |||
| <t><?rfc subcompact="no" ?></t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="concept" numbered="true" toc="default"> | ||||
| <section anchor="concept" title="Architectural Concepts and Goals"> | <name>Architectural Concepts and Goals</name> | |||
| <section anchor="lay" title="Data Models: Layering and Representation"> | <section anchor="lay" numbered="true" toc="default"> | |||
| <t>As described in Section 2 of <xref target="RFC8199"></xref>, | <name>Data Models: Layering and Representation</name> | |||
| <t>As described in <xref target="RFC8199" | ||||
| sectionFormat="of" section="2"/>, | ||||
| layering of modules allows for better reusability of lower-layer | layering of modules allows for better reusability of lower-layer | |||
| modules by higher-level modules while limiting duplication of features | modules by higher-level modules while limiting duplication of features | |||
| across layers.</t> | across layers.</t> | |||
| <t>Data models in the context of network management can be classified | <t>Data models in the context of network management can be classified | |||
| into service, network, and device models. Different service models may | into service, network, and device models. Different service models may | |||
| rely on the same set of network and/or device models.</t> | rely on the same set of network and/or device models.</t> | |||
| <t>Service models traditionally follow a top-down approach and are | <t>Service models traditionally follow a top-down approach and are | |||
| mostly customer-facing YANG modules providing a common model construct | mostly customer-facing YANG modules providing a common model construct | |||
| for higher level network services (e.g., Layer 3 Virtual Private | for higher-level network services (e.g., Layer 3 Virtual Private | |||
| Network (L3VPN)). Such modules can be mapped to network | Network (L3VPN)). Such modules can be mapped to network | |||
| technology-specific modules at lower layers (e.g., tunnel, routing, | technology-specific modules at lower layers (e.g., tunnel, routing, | |||
| Quality of Service (QoS), security). For example, service models can | Quality of Service (QoS), security). For example, service models can | |||
| be used to characterise the network service(s) to be ensured between | be used to characterize the network service(s) to be ensured between | |||
| service nodes (ingress/egress) such as: <?rfc subcompact="yes" ?><list | service nodes (ingress/egress) such as: </t> | |||
| style="symbols"> | <ul spacing="compact"> | |||
| <t>the communication scope (pipe, hose, funnel, ...),</t> | ||||
| <t>the directionality (inbound/outbound),</t> | ||||
| <t>the traffic performance guarantees expressed using metrics such | ||||
| as One-Way Delay (OWD) <xref target="RFC7679"></xref> or One-Way | ||||
| Loss <xref target="RFC7680"></xref>; a summary of performance | ||||
| metrics maintained by IANA can be found in <xref | ||||
| target="IPPM"></xref>,</t> | ||||
| <t>link capacity <xref target="RFC5136"></xref> <xref | ||||
| target="I-D.ietf-ippm-capacity-metric-method"></xref>,</t> | ||||
| <t>etc.<?rfc subcompact="no" ?></t> | ||||
| </list></t> | ||||
| <t><xref target="service_ex"></xref> depicts the example of a VoIP | ||||
| service that relies upon connectivity services offered by a network | ||||
| operator. In this example, the VoIP service is offered to the network | ||||
| operator's customers by Service Provider (SP1). In order to provide | ||||
| global VoIP reachability, SP1 service site interconnects with other | ||||
| Service Providers service sites typically by interconnecting Session | ||||
| Border Elements (SBEs) and Data Border Elements (DBEs) <xref | ||||
| target="RFC5486"></xref><xref target="RFC6406"></xref>. For other VoIP | ||||
| destinations, sessions are forwarded over the Internet. These | ||||
| connectivity services can be captured in a YANG service model that | ||||
| reflects the service attributes that are shown in <xref | ||||
| target="service_ex2"></xref>. This example follows the IP Connectivity | ||||
| Provisioning Profile template defined in <xref | ||||
| target="RFC7297"></xref>.</t> | ||||
| <t>In reference to <xref target="service_ex2"></xref>, "Full traffic | <li>the communication scope (pipe, hose, funnel, etc.),</li> | |||
| performance guarantees class" refers to a service class where all | <li>the directionality (inbound/outbound),</li> | |||
| traffic performance metrics included in the service model (OWD, loss, | <li>the traffic performance guarantees expressed using metrics such | |||
| delay variation) are guaranteed, while "Delay traffic performance | as One-Way Delay (OWD) <xref target="RFC7679" format="default"/> or | |||
| guarantees class" refers to a service class where only OWD is | One-Way | |||
| guaranteed.</t> | Loss <xref target="RFC7680" format="default"/>; a summary of perform | |||
| ance | ||||
| metrics maintained by IANA can be found in <xref target="IPPM" forma | ||||
| t="default"/>,</li> | ||||
| <li>link capacity <xref target="RFC5136" format="default"/> <xref targ | ||||
| et="I-D.ietf-ippm-capacity-metric-method" format="default"/>,</li> | ||||
| <li>etc.</li> | ||||
| </ul> | ||||
| <t><xref target="service_ex" format="default"/> depicts the example of | ||||
| a Voice over IP (VoIP) service that relies upon connectivity services | ||||
| offered by a network operator. In this example, the VoIP service is | ||||
| offered to the network operator's customers by Service Provider 1 | ||||
| (SP1). In order to provide global VoIP reachability, SP1 Service Site | ||||
| interconnects with other Service Providers service sites typically by | ||||
| interconnecting Session Border Elements (SBEs) and Data Border | ||||
| Elements (DBEs) <xref target="RFC5486" format="default"/><xref | ||||
| target="RFC6406" format="default"/>. For other VoIP destinations, | ||||
| sessions are forwarded over the Internet. These connectivity services | ||||
| can be captured in a YANG service model that reflects the service | ||||
| attributes that are shown in <xref target="service_ex2"/>. This example | ||||
| follows | ||||
| the IP Connectivity Provisioning Profile template defined in <xref | ||||
| target="RFC7297" format="default"/>.</t> | ||||
| <t><figure anchor="service_ex" | <figure anchor="service_ex"> | |||
| title="An Example of Service Connectivity Components"> | <name>An Example of Service Connectivity Components</name> | |||
| <artwork align="center"><![CDATA[ ,--,--,--. | <artwork align="center" name="" type="" alt=""><![CDATA[ ,-- | |||
| ,--,--,--. | ,--,--. ,--,--,--. | |||
| ,-' SP1 `-. ,-' SP2 `-. | ,-' SP1 `-. ,-' SP2 `-. | |||
| ( Service Site ) ( Service Site ) | ( Service Site ) ( Service Site ) | |||
| `-. ,-' `-. ,-' | `-. ,-' `-. ,-' | |||
| `--'--'--' `--'--'--' | `--'--'--' `--'--'--' | |||
| x | o * * | | x | o * * | | |||
| (2)x | o * * | | (2)x | o * * | | |||
| ,x-,--o-*-. (1) ,--,*-,--. | ,x-,--o-*-. (1) ,--,*-,--. | |||
| ,-' x o * * * * * * * * * `-. | ,-' x o * * * * * * * * * `-. | |||
| ( x o +----( Internet ) | ( 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 | User---(x x x o o o o o o o o o o o o o o o o o o | |||
| `-. ,-' `-. ,-' (3) | `-. ,-' `-. ,-' (3) | |||
| `--'--'--' `--'--'--' | `--'--'--' `--'--'--' | |||
| Network Operator | Network Operator | |||
| **** (1) Inter-SP connectivity | **** (1) Inter-SP connectivity | |||
| xxxx (2) Customer to SP connectivity | xxxx (2) Customer-to-SP connectivity | |||
| oooo (3) SP to any destination connectivity | oooo (3) SP to any destination connectivity | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure></t> | </figure> | |||
| <t><figure align="center" anchor="service_ex2" | <t>In reference to <xref target="service_ex2"/>, "Full traffic | |||
| title="Sample Attributes Captured in a Service Model"> | performance guarantees class" refers to a service class where all | |||
| <artwork><![CDATA[Connectivity: Scope and Guarantees | traffic performance metrics included in the service model (OWD, loss, | |||
| delay variation) are guaranteed, while "Delay traffic performance | ||||
| guarantees class" refers to a service class where only OWD is | ||||
| guaranteed.</t> | ||||
| <figure anchor="service_ex2"> | ||||
| <name>Sample Attributes Captured in a Service Model</name> | ||||
| <sourcecode> | ||||
| <![CDATA[Connectivity: Scope and Guarantees | ||||
| (1) Inter-SP connectivity | (1) Inter-SP connectivity | |||
| - Pipe scope from the local to the remote SBE/DBE | - Pipe scope from the local to the remote SBE/DBE | |||
| - Full traffic performance guarantees class | - Full traffic performance guarantees class | |||
| (2) Customer to SP connectivity | (2) Customer-to-SP connectivity | |||
| - Hose/Funnel scope connecting the local SBE/DBE | - Hose/Funnel scope connecting the local SBE/DBE | |||
| to the customer access points | to the customer access points | |||
| - Full traffic performance guarantees class | - Full traffic performance guarantees class | |||
| (3) SP to any destination connectivity | (3) SP to any destination connectivity | |||
| - Hose/Funnel scope from the local SBE/DBE to the | - Hose/Funnel scope from the local SBE/DBE to the | |||
| Internet gateway | Internet gateway | |||
| - Delay traffic performance guarantees class | - Delay traffic performance guarantees class | |||
| Flow Identification | Flow Identification | |||
| * Destination IP address (SBE, DBE) | * Destination IP address (SBE, DBE) | |||
| * DSCP marking | * DSCP marking | |||
| Traffic Isolation | Traffic Isolation | |||
| * VPN | * VPN | |||
| Routing & Forwarding | Routing & Forwarding | |||
| * Routing rule to exclude some ASes from the inter-domain | * Routing rule to exclude some ASes from the inter-domain | |||
| paths | paths | |||
| Notifications (including feedback) | Notifications (including feedback) | |||
| * Statistics on aggregate traffic to adjust capacity | * Statistics on aggregate traffic to adjust capacity | |||
| * Failures | * Failures | |||
| * Planned maintenance operations | * Planned maintenance operations | |||
| * Triggered by thresholds | * Triggered by thresholds]]> | |||
| ]]></artwork> | </sourcecode> | |||
| </figure></t> | </figure> | |||
| <t>Network models are mainly network resource-facing modules; they | <t>Network models are mainly network-resource-facing modules; they | |||
| describe various aspects of a network infrastructure, including | describe various aspects of a network infrastructure, including | |||
| devices and their subsystems, and relevant protocols operating at the | devices and their subsystems, and relevant protocols operating at the | |||
| link and network layers across multiple devices (e.g., network | link and network layers across multiple devices (e.g., network | |||
| topology and traffic-engineering tunnel modules).</t> | topology and traffic-engineering tunnel modules).</t> | |||
| <t>Device (and function) models usually follow a bottom-up approach | <t>Device (and function) models usually follow a bottom-up approach | |||
| and are mostly technology-specific modules used to realize a service | and are mostly technology-specific modules used to realize a service | |||
| (e.g., BGP, ACL).</t> | (e.g., BGP, ACL).</t> | |||
| <t>Each level maintains a view of the supported YANG modules provided | <t>Each level maintains a view of the supported YANG modules provided | |||
| by lower levels (see for example, <xref target="app"></xref>). | by lower levels (see for example, <xref target="app" | |||
| Mechanisms such as YANG library <xref target="RFC8525"></xref> can be | format="default"/>). Mechanisms such as the YANG library <xref | |||
| used to expose which YANG modules are supported by nodes in lower | target="RFC8525" format="default"/> can be used to expose which YANG | |||
| levels.</t> | modules are supported by nodes in lower levels.</t> | |||
| <t><xref target="layering" format="default"/> illustrates the overall | ||||
| <t><xref target="layering"></xref> illustrates the overall layering | layering model. The reader may refer to <xref target="RFC8309" | |||
| model. The reader may refer to Section 4 of <xref | sectionFormat="of" section="4"/> for an overview of "Orchestrator" and | |||
| target="RFC8309"></xref> for an overview of "Orchestrator" and | ||||
| "Controller" elements. All these elements (i.e., Orchestrator(s), | "Controller" elements. All these elements (i.e., Orchestrator(s), | |||
| Controller(s), device(s)) are under the responsibility of the same | Controller(s), device(s)) are under the responsibility of the same | |||
| operator.</t> | operator.</t> | |||
| <figure anchor="layering"> | ||||
| <figure align="center" anchor="layering" | <name>Layering and Representation within a Network Operator</name> | |||
| title="Layering and Representation Within a Network Operator"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="center"><![CDATA[ +--------------------------------- | +-----------------------------------------------------------------+ | |||
| --------------------------------+ | | Hierarchy Abstraction | | |||
| | Hierarchy Abstraction | | | | | |||
| | | | | +-----------------------+ Service Model | | |||
| | +-----------------------+ Service Model | | | | Orchestrator | (Customer Oriented) | | |||
| | | Orchestrator | (Customer Oriented) | | | |+---------------------+| Scope: "1:1" Pipe model | | |||
| | |+---------------------+| Scope: "1:1" Pipe model | | | || Service Modeling || | | |||
| | || Service Modeling || | | | |+---------------------+| | | |||
| | |+---------------------+| | | | | | Bidirectional | | |||
| | | | Bidirectional | | | |+---------------------+| +-+ Capacity, OWD +-+ | | |||
| | |+---------------------+| +-+ Capacity, OWD +-+ | | | ||Service Orchestration|| | +----------------+ | | | |||
| | ||Service Orchestration|| | +----------------+ | | | | |+---------------------+| +-+ +-+ | | |||
| | |+---------------------+| +-+ +-+ | | | +-----------------------+ Ingress Egress | | |||
| | +-----------------------+ Ingress Egress | | | | | |||
| | | | | | | |||
| | | | | +-----------------------+ Network Model | | |||
| | +-----------------------+ Network Model | | | | Controller | (Operator Oriented) | | |||
| | | Controller | (Operator Oriented) | | | |+---------------------+| +-+ +--+ +---+ +-+ | | |||
| | |+---------------------+| +-+ +--+ +---+ +-+ | | | || Network Modeling || | | | | | | | | | | |||
| | || Network Modeling || | | | | | | | | | | | |+---------------------+| | o----o--o----o---o---o | | | |||
| | |+---------------------+| | o----o--o----o---o---o | | | | | | +-+ +--+ +---+ +-+ | | |||
| | | | +-+ +--+ +---+ +-+ | | | |+---------------------+| src dst | | |||
| | |+---------------------+| src dst | | | ||Network Orchestration|| L3VPN over TE | | |||
| | ||Network Orchestration|| L3VPN over TE | | | |+---------------------+| Instance Name/Access Interface | | |||
| | |+---------------------+| Instance Name/Access Interface | | | +-----------------------+ Protocol Type/Capacity/RD/RT/... | | |||
| | +-----------------------+ Protocol Type/Capacity/RD/RT/... | | | | | |||
| | | | | | | |||
| | | | | +-----------------------+ Device Model | | |||
| | +-----------------------+ Device Model | | | | Device | | | |||
| | | Device | | | | |+--------------------+ | | | |||
| | |+--------------------+ | | | | || Device Modeling | | Interface add, BGP Peer, | | |||
| | || Device Modeling | | Interface add, BGP Peer, | | | |+--------------------+ | Tunnel ID, QoS/TE, ... | | |||
| | |+--------------------+ | Tunnel ID, QoS/TE, ... | | | +-----------------------+ | | |||
| | +-----------------------+ | | +-----------------------------------------------------------------+]]></artwork> | |||
| +-----------------------------------------------------------------+]]></artwo | ||||
| rk> | ||||
| </figure> | </figure> | |||
| <t/> | ||||
| <t></t> | ||||
| <t>A composite service offered by a network operator may rely on | <t>A composite service offered by a network operator may rely on | |||
| services from other operators. In such case, the network operator acts | services from other operators. In such a case, the network operator acts | |||
| as a customer to request services from other networks. The operators | as a customer to request services from other networks. The operators | |||
| providing these services will then follow the layering depicted in | providing these services will then follow the layering depicted in | |||
| <xref target="layering"></xref>. The mapping between a composite | <xref target="layering" format="default"/>. The mapping between a | |||
| service and a third-party service is maintained at the orchestration | composite service and a third-party service is maintained at the | |||
| level. From a data plane perspective, appropriate traffic steering | orchestration level. From a data-plane perspective, appropriate | |||
| policies (e.g., Service Function Chaining <xref | traffic steering policies (e.g., Service Function Chaining <xref | |||
| target="RFC7665"></xref>) are managed by the network controllers to | target="RFC7665" format="default"/>) are managed by the network | |||
| guide how/when a third party service is invoked for flows bound to a | controllers to guide how/when a third-party service is invoked for | |||
| composite service.</t> | flows bound to a composite service.</t> | |||
| <t>The layering model depicted in <xref target="layering" format="defaul | ||||
| <t>The layering model depicted in <xref target="layering"></xref> does | t"/> does | |||
| not make any assumption about the location of the various entities | not make any assumption about the location of the various entities | |||
| (e.g., controller, orchestrator) within the network. As such, the | (e.g., Controller, Orchestrator) within the network. As such, the | |||
| architecture does not preclude deployments where, for example, the | architecture does not preclude deployments where, for example, the | |||
| controller is embedded on a device that hosts other functions that are | Controller is embedded on a device that hosts other functions that are | |||
| controlled via YANG modules.</t> | controlled via YANG modules.</t> | |||
| <t>In order to ease the mapping between layers and data reuse, this | <t>In order to ease the mapping between layers and data reuse, this | |||
| document focuses on service models that are modelled using YANG. | document focuses on service models that are modeled using YANG. | |||
| Nevertheless, fully compliant with Section 3 of <xref | Nevertheless, fully compliant with <xref target="RFC8309" | |||
| target="RFC8309"></xref>, <xref target="layering"></xref> does not | sectionFormat="of" section="3"/>, <xref target="layering" | |||
| preclude service models to be modelled using other data modelling | format="default"/> does not preclude service models to be modeled | |||
| languages than YANG.</t> | using data modeling languages other than YANG.</t> | |||
| </section> | </section> | |||
| <section anchor="del" numbered="true" toc="default"> | ||||
| <section anchor="del" title="Automation of Service Delivery Procedures"> | <name>Automation of Service Delivery Procedures</name> | |||
| <t>Service models can be used by a network operator to expose its | <t>Service models can be used by a network operator to expose its | |||
| services to its customers. Exposing such models allows to automate the | services to its customers. Exposing such models allows automation of the | |||
| activation of service orders and thus the service delivery. One or | activation of service orders and thus the service delivery. One or | |||
| more monolithic service models can be used in the context of a | more monolithic service models can be used in the context of a | |||
| composite service activation request (e.g., delivery of a caching | composite service activation request (e.g., delivery of a caching | |||
| infrastructure over a VPN). Such models are used to feed a | infrastructure over a VPN). Such models are used to feed a | |||
| decision-making intelligence to adequately accommodate customer's | decision-making intelligence to adequately accommodate customer n | |||
| needs.</t> | eeds.</t> | |||
| <t>Also, such models may be used jointly with services that require | <t>Also, such models may be used jointly with services that require | |||
| dynamic invocation. An example is provided by the service modules | dynamic invocation. An example is provided by the service modules | |||
| defined by the DOTS WG to dynamically trigger requests to handle | defined by the DOTS WG to dynamically trigger requests to handle | |||
| Distributed Denial-of-Service (DDoS) attacks <xref | Distributed Denial-of-Service (DDoS) attacks <xref target="RFC8783" | |||
| target="RFC8783"></xref>. The service filtering request modelled using | format="default"/>. The service filtering request modeled using <xref | |||
| <xref target="RFC8783"></xref> will be translated into device-specific | target="RFC8783" format="default"/> will be translated into | |||
| filtering (e.g., ACLs defined in <xref target="RFC8519"></xref>) that | device-specific filtering (e.g., ACLs defined in <xref | |||
| fulfils the service request.</t> | target="RFC8519" format="default"/>) that fulfills the service | |||
| request.</t> | ||||
| <t>Network models can be derived from service models and used to | ||||
| provision, monitor, instantiate the service, and provide lifecycle | ||||
| management of network resources. Doing so is meant to:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>expose network resources to customers (including other network | ||||
| operators) to provide service fulfillment and assurance.</t> | ||||
| <t>allow customers (or network operators) to dynamically adjust | <t> | |||
| the network resources based on service requirements as described | Network models can be derived from service models and used to provision, | |||
| in service models (e.g., <xref target="service_ex2"></xref>) and | monitor, and instantiate the service. Also, they are used to provide | |||
| the current network performance information described in the | life-cycle management of network resources. Doing so is meant to: | |||
| telemetry modules.</t> | </t> | |||
| </list></t> | ||||
| <ul spacing="normal"> | ||||
| <li>expose network resources to customers (including other network | ||||
| operators) to provide service fulfillment and assurance.</li> | ||||
| <li>allow customers (or network operators) to dynamically adjust the | ||||
| network resources based on service requirements as described in | ||||
| service models (e.g., <xref target="service_ex2" />) and the | ||||
| current network performance information described in the telemetry | ||||
| modules.</li> | ||||
| </ul> | ||||
| <t>Note that it is out of the scope of this document to elaborate on | <t>Note that it is out of the scope of this document to elaborate on | |||
| the communication protocols that are used to implement the interface | the communication protocols that are used to implement the interface | |||
| between the service ordering (customer) and service order handling | between the service ordering (customer) and service order handling | |||
| (provider).</t> | (provider).</t> | |||
| </section> | </section> | |||
| <section anchor="ful" numbered="true" toc="default"> | ||||
| <section anchor="ful" title="Service Fulfillment Automation"> | <name>Service Fulfillment Automation</name> | |||
| <t>To operate a service, the settings of the parameters in the device | <t>To operate a service, the settings of the parameters in the device | |||
| models are derived from service models and/or network models and are | models are derived from service models and/or network models and are | |||
| used to:</t> | used to:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Provision each involved network function/device with the proper | |||
| <t>Provision each involved network function/device with the proper | configuration information.</li> | |||
| configuration information.</t> | <li>Operate the network based on service requirements as described | |||
| in the service model(s) and local operational guidelines.</li> | ||||
| <t>Operate the network based on service requirements as described | </ul> | |||
| in the service model(s) and local operational guidelines.</t> | ||||
| </list></t> | ||||
| <t>In addition, the operational state including configuration that is | <t>In addition, the operational state including configuration that is | |||
| in effect together with statistics should be exposed to upper layers | in effect together with statistics should be exposed to upper layers | |||
| to provide better network visibility and assess to what extent the | to provide better network visibility and assess to what extent the | |||
| derived low level modules are consistent with the upper level | derived low-level modules are consistent with the upper-level | |||
| inputs.</t> | inputs.</t> | |||
| <t>Filters are enforced on the notifications that are communicated to | <t>Filters are enforced on the notifications that are communicated to | |||
| Service layers. The type and frequency of notifications may be agreed | Service layers. The type and frequency of notifications may be agreed | |||
| in the service model.</t> | upon in the service model.</t> | |||
| <t>Note that it is important to correlate telemetry data with | <t>Note that it is important to correlate telemetry data with | |||
| configuration data to be used for closed loops at the different stages | configuration data to be used for closed loops at the different stages | |||
| of service delivery, from resource allocation to service operation, in | of service delivery, from resource allocation to service operation, in | |||
| particular.</t> | particular.</t> | |||
| </section> | </section> | |||
| <section anchor="int" numbered="true" toc="default"> | ||||
| <section anchor="int" title="YANG Modules Integration"> | <name>YANG Module Integration</name> | |||
| <t>To support top-down service delivery, YANG modules at different | <t>To support top-down service delivery, YANG modules at different | |||
| levels or at the same level need to be integrated together for proper | levels or at the same level need to be integrated for proper | |||
| service delivery (including, proper network setup). For example, the | service delivery (including proper network setup). For example, the | |||
| service parameters captured in service models need to be decomposed | service parameters captured in service models need to be decomposed | |||
| into a set of configuration/notification parameters that may be | into a set of configuration/notification parameters that may be | |||
| specific to one or more technologies; these technology-specific | specific to one or more technologies; these technology-specific | |||
| parameters are grouped together to define technology-specific device | parameters are grouped together to define technology-specific | |||
| level models or network level models.</t> | device-level models or network-level models.</t> | |||
| <t>In addition, these technology-specific device or network models can | <t>In addition, these technology-specific device or network models can | |||
| be further integrated with each other using the schema mount mechanism | be further integrated with each other using the schema mount mechanism | |||
| <xref target="RFC8528"></xref> to provision each involved network | <xref target="RFC8528" format="default"/> to provision each involved net work | |||
| function/device or each involved network domain to support newly added | function/device or each involved network domain to support newly added | |||
| modules or features. A collection of device models integrated together | modules or features. A collection of integrated device models | |||
| can be loaded and validated during implementation.</t> | can be loaded and validated during implementation.</t> | |||
| <t>High-level policies can be defined at service or network models | <t>High-level policies can be defined at service or network models | |||
| (e.g., "Autonomous System Number (ASN) Exclude" in the example | (e.g., "Autonomous System Number (ASN) Exclude" in the example | |||
| depicted in <xref target="service_ex2"></xref>). Device models will be | depicted in <xref target="service_ex2"/>). Device models will be tweaked | |||
| tweaked accordingly to provide policy-based management. Policies can | accordingly | |||
| also be used for telemetry automation, e.g., policies that contain | to provide policy-based management. Policies can also be used for | |||
| conditions to trigger the generation and pushing of new telemetry | telemetry automation, e.g., policies that contain conditions to | |||
| data.</t> | trigger the generation and pushing of new telemetry data.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="compo" numbered="true" toc="default"> | ||||
| <section anchor="compo" title="Functional Blocks and Interactions"> | <name>Functional Blocks and Interactions</name> | |||
| <t>The architectural considerations described in <xref | <t>The architectural considerations described in <xref target="concept" | |||
| target="concept"></xref> lead to the lifecycle management architecture | format="default"/> lead to the life-cycle management architecture | |||
| illustrated in <xref target="arc"></xref> and described in the following | illustrated in <xref target="arc" format="default"/> and described in the | |||
| following | ||||
| subsections.</t> | subsections.</t> | |||
| <figure anchor="arc"> | ||||
| <name>Service and Network Life-Cycle Management</name> | ||||
| <figure anchor="arc" title="Service and Network Lifecycle Management"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="center"><![CDATA[ +------------------+ | ||||
| ................. | | | ||||
| 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 | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <section anchor="details" title="Service Lifecycle Management Procedure"> | +------------------+ | |||
| <t>Service lifecycle management includes end-to-end service lifecycle | ............... | | | |||
| management at the service level and technology specific network | Service level | | | |||
| lifecycle management at the network level.</t> | 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 | ||||
| ]]></artwork> | ||||
| <t>The end-to-end service lifecycle management is | </figure> | |||
| <section anchor="details" numbered="true" toc="default"> | ||||
| <name>Service Life-Cycle Management Procedure</name> | ||||
| <t>Service life-cycle management includes end-to-end service life-cycle | ||||
| management at the service level and technology-specific network | ||||
| life-cycle management at the network level.</t> | ||||
| <t>The end-to-end service life-cycle management is | ||||
| technology-independent service management and spans across multiple | technology-independent service management and spans across multiple | |||
| network domains and/or multiple layers while technology specific | network domains and/or multiple layers while technology-specific | |||
| service lifecycle management is technology domain specific or layer | service life-cycle management is technology domain-specific or | |||
| specific service lifecycle management.</t> | layer-specific service life-cycle management.</t> | |||
| <section anchor="expo" numbered="true" toc="default"> | ||||
| <section anchor="expo" title="Service Exposure"> | <name>Service Exposure</name> | |||
| <t>A service in the context of this document (sometimes called, | <t>A service in the context of this document (sometimes called | |||
| Network Service) is some form of connectivity between customer sites | "Network Service") is some form of connectivity between customer sites | |||
| and the Internet or between customer sites across the operator's | and the Internet or between customer sites across the operator's | |||
| network and across the Internet.</t> | network and across the Internet.</t> | |||
| <t>Service exposure is used to capture services offered to customers | <t>Service exposure is used to capture services offered to customers | |||
| (ordering and order handling). One example is that a customer can | (ordering and order handling). One example is that a customer can | |||
| use a L3VPN Service Model (L3SM) to request L3VPN service by | use an L3VPN Service Model (L3SM) to request L3VPN service by | |||
| providing the abstract technical characterization of the intended | providing the abstract technical characterization of the intended | |||
| service between customer sites.</t> | service between customer sites.</t> | |||
| <t>Service model catalogs can be created along to expose the various | <t>Service model catalogs can be created to expose the various | |||
| services and the information needed to invoke/order a given | services and the information needed to invoke/order a given | |||
| service.</t> | service.</t> | |||
| </section> | </section> | |||
| <section anchor="crea" numbered="true" toc="default"> | ||||
| <section anchor="crea" title="Service Creation/Modification"> | <name>Service Creation/Modification</name> | |||
| <t>A customer is usually unaware of the technology that the network | <t>A customer is usually unaware of the technology that the network | |||
| operator has available to deliver the service, so the customer does | operator has available to deliver the service, so the customer does | |||
| not make requests specific to the underlying technology but is | not make requests specific to the underlying technology but is | |||
| limited to making requests specific to the service that is to be | limited to making requests specific to the service that is to be | |||
| delivered. This service request can be filled using a service | delivered. This service request can be filled using a service | |||
| model.</t> | model.</t> | |||
| <t>Upon receiving a service request, and assuming that appropriate | <t>Upon receiving a service request, and assuming that appropriate | |||
| authentication and authorization checks have been made with success, | authentication and authorization checks have been made with success, | |||
| the service orchestrator/management system should verify whether the | the service Orchestrator/management system should verify whether the | |||
| service requirements in the service request can be met (i.e., | service requirements in the service request can be met (i.e., | |||
| whether there are sufficient resources that can be allocated with | whether there are sufficient resources that can be allocated with | |||
| the requested guarantees).</t> | the requested guarantees).</t> | |||
| <t>If the request is accepted, the service Orchestrator/management | ||||
| <t>If the request is accepted, the service orchestrator/management | system maps such a service request to its view. This view can be | |||
| system maps such service request to its view. This view can be | described as a technology-specific network model or a set of | |||
| described as a technology specific network model or a set of | technology-specific device models, and this mapping may include a | |||
| technology specific device models and this mapping may include a | ||||
| choice of which networks and technologies to use depending on which | choice of which networks and technologies to use depending on which | |||
| service features have been requested.</t> | service features have been requested.</t> | |||
| <t>In addition, a customer may require a change in the underlying | ||||
| <t>In addition, a customer may require to change the underlying | network infrastructure to adapt to new customers' needs and service | |||
| network infrastructure to adapt to new customer's needs and service | ||||
| requirements (e.g., service a new customer site, add a new access | requirements (e.g., service a new customer site, add a new access | |||
| link, provide disjoint paths). This service modification can be | link, or provide disjoint paths). This service modification can be | |||
| issued following the same service model used by the service | issued following the same service model used by the service | |||
| request.</t> | request.</t> | |||
| <t>Withdrawing a service is discussed in <xref target="decom" format=" | ||||
| <t>Withdrawing a service is discussed in <xref | default"/>.</t> | |||
| target="decom"></xref>.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Service Assurance</name> | ||||
| <section title="Service Assurance"> | <t>The performance measurement telemetry (<xref target="tele" | |||
| <t>The performance measurement telemetry (<xref | format="default"/>) can be used to provide service assurance at | |||
| target="fulm"></xref>) can be used to provide service assurance at | service and/or network levels. The performance measurement telemetry | |||
| Service and/or Network levels. Performance measurement telemetry | ||||
| model can tie with service or network models to monitor network | model can tie with service or network models to monitor network | |||
| performance or Service Level Agreement.</t> | performance or Service Level Agreements.</t> | |||
| </section> | </section> | |||
| <section anchor="optim" numbered="true" toc="default"> | ||||
| <section anchor="optim" title="Service Optimization"> | <name>Service Optimization</name> | |||
| <t>Service optimization is a technique that gets the configuration | <t>Service optimization is a technique that gets the configuration | |||
| of the network updated due to network changes, incident mitigation, | of the network updated due to network changes, incident mitigation, | |||
| or new service requirements. One example is once a tunnel or a VPN | or new service requirements. One example is once a tunnel or a VPN | |||
| is setup, Performance monitoring information or telemetry | is set up, performance monitoring information or telemetry | |||
| information per tunnel (or per VPN) can be collected and fed into | information per tunnel (or per VPN) can be collected and fed into | |||
| the management system. If the network performance doesn't meet the | the management system. If the network performance doesn't meet the | |||
| service requirements, the management system can create new VPN | service requirements, the management system can create new VPN | |||
| policies capturing network service requirements and populate them | policies capturing network service requirements and populate them | |||
| into the network.</t> | into the network.</t> | |||
| <t>Both network performance information and policies can be modeled | ||||
| <t>Both network performance information and policies can be modelled | ||||
| using YANG. With Policy-based management, self-configuration and | using YANG. With Policy-based management, self-configuration and | |||
| self-optimization behavior can be specified and implemented.</t> | self-optimization behavior can be specified and implemented.</t> | |||
| <t>The overall service optimization is managed at the service level, | <t>The overall service optimization is managed at the service level, | |||
| while the network level is responsible for the optimization of the | while the network level is responsible for the optimization of the | |||
| specific network services it provides.</t> | specific network services it provides.</t> | |||
| </section> | </section> | |||
| <section anchor="diag" numbered="true" toc="default"> | ||||
| <section anchor="diag" title="Service Diagnosis"> | <name>Service Diagnosis</name> | |||
| <t>Operations, Administration, and Maintenance (OAM) are important | <t>Operations, Administration, and Maintenance (OAM) are important | |||
| networking functions for service diagnosis that allow network | networking functions for service diagnosis that allow network | |||
| operators to:<list style="symbols"> | operators to:</t> | |||
| <t>monitor network communications (i.e., reachability | <ul spacing="normal"> | |||
| verification and Continuity Check)</t> | <li>monitor network communications (i.e., reachability | |||
| verification and Continuity Check)</li> | ||||
| <t>troubleshoot failures (i.e., fault verification and | <li>troubleshoot failures (i.e., fault verification and | |||
| localization)</t> | localization)</li> | |||
| <li>monitor service level agreements and performance (i.e., | ||||
| <t>monitor service-level agreements and performance (i.e., | performance management)</li> | |||
| performance management)</t> | </ul> | |||
| </list></t> | ||||
| <t>When the network is down, service diagnosis should be in place to | <t>When the network is down, service diagnosis should be in place to | |||
| pinpoint the problem and provide recommendations (or instructions) | pinpoint the problem and provide recommendations (or instructions) | |||
| for the network recovery.</t> | for network recovery.</t> | |||
| <t>The service diagnosis information can be modeled as | ||||
| <t>The service diagnosis information can be modelled as | ||||
| technology-independent Remote Procedure Call (RPC) operations for | technology-independent Remote Procedure Call (RPC) operations for | |||
| OAM protocols and technology-independent abstraction of key OAM | OAM protocols and technology-independent abstraction of key OAM | |||
| constructs for OAM protocols <xref target="RFC8531"></xref><xref | constructs for OAM protocols <xref target="RFC8531" format="default"/> | |||
| target="RFC8533"></xref>. These models can be used to provide | <xref target="RFC8533" format="default"/>. These models can be used to provide | |||
| consistent configuration, reporting, and presentation for the OAM | consistent configuration, reporting, and presentation for the OAM | |||
| mechanisms used to manage the network.</t> | mechanisms used to manage the network.</t> | |||
| <t>Refer to <xref target="dev-diag" format="default"/> for the device- | ||||
| <t>Refer to <xref target="dev-diag"></xref> for the device-specific | specific | |||
| side.</t> | side.</t> | |||
| </section> | </section> | |||
| <section anchor="decom" numbered="true" toc="default"> | ||||
| <section anchor="decom" title="Service Decommission"> | <name>Service Decommission</name> | |||
| <t>Service decommission allows a customer to stop the service by | <t>Service decommission allows a customer to stop the service by | |||
| removing the service from active status and thus releasing the | removing the service from active status, thus releasing the | |||
| network resources that were allocated to the service. Customers can | network resources that were allocated to the service. Customers can | |||
| also use the service model to withdraw the subscription to a | also use the service model to withdraw the subscription to a | |||
| service.</t> | service.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="fulm" numbered="true" toc="default"> | ||||
| <section anchor="fulm" title="Service Fullfillment Management Procedure"> | <name>Service Fulfillment Management Procedure</name> | |||
| <section anchor="intended" title="Intended Configuration Provision"> | <section anchor="intended" numbered="true" toc="default"> | |||
| <name>Intended Configuration Provision</name> | ||||
| <t>Intended configuration at the device level is derived from | <t>Intended configuration at the device level is derived from | |||
| network models at the network level or service model at the service | network models at the network level or service models at the service | |||
| level and represents the configuration that the system attempts to | level and represents the configuration that the system attempts to | |||
| apply. Take L3SM as a service model example to deliver a L3VPN | apply. Take L3SM as a service model example to deliver an L3VPN | |||
| service, there is a need to map the L3VPN service view defined in | service; there is a need to map the L3VPN service view defined in | |||
| the service model into a detailed intended configuration view | the service model into a detailed intended configuration view | |||
| defined by specific configuration models for network elements; the | defined by specific configuration models for network elements. The | |||
| configuration information includes:<list style="symbols"> | configuration information includes:</t> | |||
| <t>Virtual Routing and Forwarding (VRF) definition, including | <ul spacing="normal"> | |||
| VPN policy expression</t> | <li>Virtual Routing and Forwarding (VRF) definition, including | |||
| VPN policy expression</li> | ||||
| <t>Physical Interface(s)</t> | <li>Physical Interface(s)</li> | |||
| <li>IP layer (IPv4, IPv6)</li> | ||||
| <t>IP layer (IPv4, IPv6)</t> | <li>QoS features such as classification, profiles, etc.</li> | |||
| <li>Routing protocols: support of configuration of all protocols | ||||
| <t>QoS features such as classification, profiles, etc.</t> | ||||
| <t>Routing protocols: support of configuration of all protocols | ||||
| listed in a service request, as well as routing policies | listed in a service request, as well as routing policies | |||
| associated with those protocols.</t> | associated with those protocols</li> | |||
| <li>Multicast support</li> | ||||
| <t>Multicast support</t> | <li>Address sharing</li> | |||
| <li>Security (e.g., access control, authentication, | ||||
| <t>Address sharing</t> | encryption)</li> | |||
| </ul> | ||||
| <t>Security (e.g., access control, authentication, | ||||
| encryption)</t> | ||||
| </list></t> | ||||
| <t>These specific configuration models can be used to configure | <t>These specific configuration models can be used to configure | |||
| Provider Edge (PE) and Customer Edge (CE) devices within a site, | Provider Edge (PE) and Customer Edge (CE) devices within a site, | |||
| e.g., a BGP policy model can be used to establish VPN membership | e.g., a BGP policy model can be used to establish VPN membership | |||
| between sites and VPN Service Topology.</t> | between sites and VPN service topology.</t> | |||
| <t>Note that in networks with legacy devices (that support | <t>Note that in networks with legacy devices (that support | |||
| proprietary modules or do not support YANG at all), an adaptation | proprietary modules or do not support YANG at all), an adaptation | |||
| layer is likely to be required at the network level so that these | layer is likely to be required at the network level so that these | |||
| devices can be involved in the delivery of the network services.</t> | devices can be involved in the delivery of the network services.</t> | |||
| <t>This interface is also used to handle service withdrawal (<xref tar | ||||
| <t>This interface is also used to handle service withdrawal (<xref | get="decom" format="default"/>).</t> | |||
| target="decom"></xref>).</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Configuration Validation"> | <name>Configuration Validation</name> | |||
| <t>Configuration validation is used to validate intended | <t>Configuration validation is used to validate intended | |||
| configuration and ensure the configuration take effect.</t> | configuration and ensure the configuration takes effect.</t> | |||
| <t>For example, if a customer creates an interface "eth-0/0/0" but | <t>For example, if a customer creates an interface "eth-0/0/0" but | |||
| the interface does not physically exist at this point, then | the interface does not physically exist at this point, then | |||
| configuration data appears in the <intended> status but does | configuration data appears in the <intended> status but does | |||
| not appear in the <operational> datastore. More details about | not appear in the <operational> datastore. More details about | |||
| <intended> and <operational> datastores can be found in | <intended> and <operational> datastores can be found in | |||
| Section 5.1 of <xref target="RFC8342"></xref>.</t> | <xref target="RFC8342" sectionFormat="of" section="5.1"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="tele" numbered="true" toc="default"> | ||||
| <section anchor="tele" title="Performance Monitoring"> | <name>Performance Monitoring</name> <t>When a configuration is in | |||
| <t>When a configuration is in effect in a device, | effect in a device, the <operational> datastore holds the | |||
| <operational> datastore holds the complete operational state | complete operational state of the device, including learned, system, | |||
| of the device including learned, system, default configuration, and | default configuration, and system state. However, the configurations | |||
| system state. However, the configurations and state of a particular | and state of a particular device do not have visibility on the | |||
| device does not have the visibility on the whole network or how | whole network, nor can they show how packets are going to be | |||
| packets are going to be forwarded through the entire network. | forwarded through the entire network. Therefore, it becomes more | |||
| Therefore, it becomes more difficult to operate the entire network | difficult to operate the entire network without understanding the | |||
| without understanding the current status of the network.</t> | current status of the network.</t> | |||
| <t>The management system should subscribe to updates of a YANG | <t>The management system should subscribe to updates of a YANG | |||
| datastore in all the network devices for performance monitoring | datastore in all the network devices for performance monitoring | |||
| purposes and build a full topological visibility of the network by | purposes and build a full topological visibility of the network by | |||
| aggregating (and filtering) these operational state from different | aggregating (and filtering) these operational states from different | |||
| sources.</t> | sources.</t> | |||
| </section> | </section> | |||
| <section anchor="dev-diag" numbered="true" toc="default"> | ||||
| <section anchor="dev-diag" title="Fault Diagnostic"> | <name>Fault Diagnostic</name> | |||
| <t>When configuration is in effect in a device, some devices may be | <t>When configuration is in effect in a device, some devices may be | |||
| mis-configured (e.g., device links are not consistent in both sides | misconfigured (e.g., device links are not consistent in both sides | |||
| of the network connection) or network resources might be | of the network connection) or network resources might be | |||
| mis-allocated. Therefore, services may be negatively affected | misallocated. Therefore, services may be negatively affected | |||
| without knowing the root cause in the network.</t> | without knowing the root cause in the network.</t> | |||
| <t>Technology-dependent nodes and RPC commands are defined in | <t>Technology-dependent nodes and RPC commands are defined in | |||
| technology-specific YANG data models which can use and extend the | technology-specific YANG data models, which can use and extend the | |||
| base model described in <xref target="diag"></xref> to deal with | base model described in <xref target="diag" format="default"/> to deal | |||
| with | ||||
| these issues.</t> | these issues.</t> | |||
| <t>These RPC commands received in the technology-dependent node can | <t>These RPC commands received in the technology-dependent node can | |||
| be used to trigger technology-specific OAM message exchanges for | be used to trigger technology-specific OAM message exchanges for | |||
| fault verification and fault isolation. For example, TRILL Multicast | fault verification and fault isolation. | |||
| Tree Verification (MTV) RPC command <xref | ||||
| target="I-D.ietf-trill-yang-oam"></xref> can be used to trigger | For example, Transparent Interconnection of Lots of Links (TRILL) | |||
| Multi-Destination Tree Verification Message defined in <xref | Multi-destination Tree Verification (MTV) RPC command <xref | |||
| target="RFC7455"></xref> to verify TRILL distribution tree | target="I-D.ietf-trill-yang-oam" format="default"/> can be used to trigger | |||
| integrity.</t> | Multi-Destination Tree Verification Messages (MTVMs) defined in <xref | |||
| target="RFC7455" format="default"/> to verify TRILL distribution tree | ||||
| integrity.</t> | ||||
| </section> | </section> | |||
| </section> | ||||
| <section anchor="inter" title="Multi-Layer/Multi-Domain Service Mapping"> | </section> | |||
| <t>Multi-layer/Multi-domain Service Mapping allows to map an | <section anchor="inter" numbered="true" toc="default"> | |||
| <name>Multi-layer/Multi-domain Service Mapping</name> | ||||
| <t>Multi-layer/Multi-domain Service Mapping allows the mapping of an | ||||
| end-to-end abstract view of the service segmented at different layers | end-to-end abstract view of the service segmented at different layers | |||
| and/or different network domains into domain-specific views.</t> | and/or different network domains into domain-specific views.</t> | |||
| <t>One example is to map service parameters in the L3SM into | <t>One example is to map service parameters in the L3SM into | |||
| configuration parameters such as Route Distinguisher (RD), Route | configuration parameters such as Route Distinguisher (RD), Route | |||
| Target (RT), and VRF in the L3VPN Network Model (L3NM).</t> | Target (RT), and VRF in the L3VPN Network Model (L3NM).</t> | |||
| <t>Another example is to map service parameters in the L3SM into | <t>Another example is to map service parameters in the L3SM into | |||
| Traffic Engineered (TE) tunnel parameters (e.g., Tunnel ID) in TE | Traffic Engineered (TE) tunnel parameters (e.g., Tunnel ID) in TE | |||
| model and Virtual Network (VN) parameters (e.g., Access Point (AP) | model and Virtual Network (VN) parameters (e.g., Access Point (AP) | |||
| list, VN members) in the YANG data model for VN operation <xref | list and VN members) in the YANG data model for VN operation <xref | |||
| target="I-D.ietf-teas-actn-vn-yang"></xref>.</t> | target="I-D.ietf-teas-actn-vn-yang" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="dec" numbered="true" toc="default"> | ||||
| <section anchor="dec" title="Service Decomposition"> | <name>Service Decomposition</name> | |||
| <t>Service Decomposition allows to decompose service models at the | <t>Service Decomposition allows to decompose service models at the | |||
| service level or network models at the network level into a set of | 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 | device models at the device level. These device models may be tied to | |||
| specific device types or classified into a collection of related YANG | specific device types or classified into a collection of related YANG | |||
| modules based on service types and features offered, and load at the | modules based on service types and features offered, and they may load a t the | |||
| implementation time before configuration is loaded and validated.</t> | implementation time before configuration is loaded and validated.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="examples" numbered="true" toc="default"> | ||||
| <section anchor="examples" title="YANG Data Model Integration Examples"> | <name>YANG Data Model Integration Examples</name> | |||
| <t>The following subsections provide some YANG data models integration | <t>The following subsections provide some YANG data model integration | |||
| examples.</t> | examples.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="L2VPN/L3VPN Service Delivery"> | <name>L2VPN/L3VPN Service Delivery</name> | |||
| <t>In reference to <xref target="l3"></xref>, the following steps are | <t>In reference to <xref target="l3" format="default"/>, the following s | |||
| teps are | ||||
| performed to deliver the L3VPN service within the network management | performed to deliver the L3VPN service within the network management | |||
| automation architecture defined in <xref target="compo"></xref>: <list | automation architecture defined in <xref target="compo" format="default" | |||
| style="numbers"> | />: </t> | |||
| <ol spacing="normal" type="1"><li> | ||||
| <t>The Customer requests to create two sites (as per Service | <t>The Customer requests to create two sites (as per Service | |||
| Creation in <xref target="intended"></xref>) relying upon L3SM | Creation in <xref target="crea" format="default"/>) relying upon L3S M | |||
| with each site having one network access connectivity, for | with each site having one network access connectivity, for | |||
| example:<list style="symbols"> | example:</t> | |||
| <t>Site A: network-access A, link-capacity = 20 Mbps, class | <ul spacing="normal"> | |||
| <li>Site A: network-access A, link-capacity = 20 Mbps, class | ||||
| "foo", guaranteed-capacity-percent = 10, average-one-way-delay | "foo", guaranteed-capacity-percent = 10, average-one-way-delay | |||
| = 70 ms.</t> | = 70 ms.</li> | |||
| <li>Site B: network-access B, link-capacity = 30 Mbps, class | ||||
| <t>Site B: network-access B, link-capacity = 30 Mbps, class | ||||
| "foo1", guaranteed-capacity-percent = 15, | "foo1", guaranteed-capacity-percent = 15, | |||
| average-one-way-delay = 60 ms.</t> | average-one-way-delay = 60 ms.</li> | |||
| </list></t> | </ul> | |||
| </li> | ||||
| <t>The Orchestrator extracts the service parameters from the L3SM. | ||||
| Then, it uses them as input to the Service Mapping in <xref | ||||
| target="inter"></xref> to translate them into an orchestrated | ||||
| configuration parameters (e.g., RD, RT, VRF) that are part of the | ||||
| L3NM specified in <xref | ||||
| target="I-D.ietf-opsawg-l3sm-l3nm"></xref>.</t> | ||||
| <t>The Controller takes the orchestrated configuration parameters | <li>The Orchestrator extracts the service parameters from the L3SM. | |||
| in the L3NM and translates them into orchestrated (Service | Then, it uses them as input to the Service Mapping in <xref | |||
| Decomposition in <xref target="dec"></xref>) configuration of | target="inter" format="default"/> to translate them into | |||
| orchestrated configuration parameters (e.g., RD, RT, and VRF) that are | ||||
| part of the L3NM specified in <xref | ||||
| target="I-D.ietf-opsawg-l3sm-l3nm" format="default"/>.</li> | ||||
| <li>The Controller takes the orchestrated configuration parameters | ||||
| in the L3NM and translates them into an orchestrated (Service | ||||
| Decomposition in <xref target="dec" format="default"/>) configuratio | ||||
| n of | ||||
| network elements that are part of, e.g., BGP, QoS, Network | network elements that are part of, e.g., BGP, QoS, Network | |||
| Instance, IP management, and interface models.</t> | Instance, IP management, and interface models.</li> | |||
| </list></t> | </ol> | |||
| <t><xref target="I-D.ogondio-opsawg-uni-topology" format="default"/> can | ||||
| <t><xref target="I-D.ogondio-opsawg-uni-topology"></xref> can be used | be used | |||
| for representing, managing, and controlling the User Network Interface | for representing, managing, and controlling the User Network Interface | |||
| (UNI) topology.</t> | (UNI) topology.</t> | |||
| <figure anchor="l3"> | ||||
| <t><figure anchor="l3" | <name>L3VPN Service Delivery Example (Current)</name> | |||
| title="L3VPN Service Delivery Example (Current)"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="center"><![CDATA[ L3SM | | L3SM | | |||
| Service | | Service | | |||
| Model | | Model | | |||
| +------------------------+------------------------+ | +------------------------+------------------------+ | |||
| | +--------V--------+ | | | +--------V--------+ | | |||
| | | Service Mapping | | | | | Service Mapping | | | |||
| | +--------+--------+ | | | +--------+--------+ | | |||
| | Orchestrator | | | | Orchestrator | | | |||
| +------------------------+------------------------+ | +------------------------+------------------------+ | |||
| L3NM | ^ UNI Topology Model | L3NM | ^ UNI Topology Model | |||
| Network | | | Network | | | |||
| skipping to change at line 1041 ¶ | skipping to change at line 954 ¶ | |||
| +---------------++---------------++---------------+ | +---------------++---------------++---------------+ | |||
| || || | || || | |||
| || BGP, || | || BGP, || | |||
| || QoS, || | || QoS, || | |||
| || Interface, || | || Interface, || | |||
| +------------+| NI, |+------------+ | +------------+| NI, |+------------+ | |||
| | | IP | | | | | IP | | | |||
| +--+--+ +--+--+ +--+--+ +--+--+ | +--+--+ +--+--+ +--+--+ +--+--+ | |||
| | CE1 +-------+ PE1 | | PE2 +-------+ CE2 | | | CE1 +-------+ PE1 | | PE2 +-------+ CE2 | | |||
| +-----+ +-----+ +-----+ +-----+]]></artwork> | +-----+ +-----+ +-----+ +-----+]]></artwork> | |||
| </figure></t> | </figure> | |||
| <t>L3NM inherits some of the data elements from the L3SM. Nevertheless, | ||||
| <t>L3NM inherits some of data elements from the L3SM. Nevertheless, | the L3NM as designed in <xref target="I-D.ietf-opsawg-l3sm-l3nm" format= | |||
| the L3NM as currently designed in <xref | "default"/> does not expose some | |||
| target="I-D.ietf-opsawg-l3sm-l3nm"></xref> does not expose some | ||||
| information to the above layer such as the capabilities of an | information to the above layer such as the capabilities of an | |||
| underlying network (which can be used to drive service order handling) | underlying network (which can be used to drive service order handling) | |||
| or notifications (to notify subscribers about specific events or | or notifications (to notify subscribers about specific events or | |||
| degradations as per agreed SLAs). Some of this information can be | degradations as per agreed SLAs). Some of this information can be | |||
| provided using, e.g., <xref | provided using, e.g., <xref target="I-D.www-opsawg-yang-vpn-service-pm" | |||
| target="I-D.www-opsawg-yang-vpn-service-pm"></xref>. A target overall | format="default"/>. A target overall | |||
| model is depicted in <xref target="l3-target"></xref>.</t> | model is depicted in <xref target="l3-target" format="default"/>.</t> | |||
| <figure anchor="l3-target"> | ||||
| <t><figure anchor="l3-target" | <name>L3VPN Service Delivery Example (Target)</name> | |||
| title="L3VPN Service Delivery Example (Target)"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="center"><![CDATA[ L3SM | ^ | L3SM | ^ | |||
| Service | | Notifications | Service | | Notifications | |||
| Model | | | Model | | | |||
| +------------------------+------------------------+ | +------------------------+------------------------+ | |||
| | +--------V--------+ | | | +--------V--------+ | | |||
| | | Service Mapping | | | | | Service Mapping | | | |||
| | +--------+--------+ | | | +--------+--------+ | | |||
| | Orchestrator | | | | Orchestrator | | | |||
| +------------------------+------------------------+ | +------------------------+------------------------+ | |||
| L3NM | ^ UNI Topology Model | L3NM | ^ UNI Topology Model | |||
| Network| | L3NM Notifications | Network| | L3NM Notifications | |||
| skipping to change at line 1085 ¶ | skipping to change at line 994 ¶ | |||
| || || | || || | |||
| || BGP, || | || BGP, || | |||
| || QoS, || | || QoS, || | |||
| || Interface, || | || Interface, || | |||
| +------------+| NI, |+------------+ | +------------+| NI, |+------------+ | |||
| | | IP | | | | | IP | | | |||
| +--+--+ +--+--+ +--+--+ +--+--+ | +--+--+ +--+--+ +--+--+ +--+--+ | |||
| | CE1 +-------+ PE1 | | PE2 +-------+ CE2 | | | CE1 +-------+ PE1 | | PE2 +-------+ CE2 | | |||
| +-----+ +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ +-----+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure></t> | </figure> | |||
| <t>Note that a similar analysis can be performed for Layer 2 VPNs | <t>Note that a similar analysis can be performed for Layer 2 VPNs | |||
| (L2VPNs). A L2VPN Service Model (L2SM) is defined in <xref | (L2VPNs). An L2VPN Service Model (L2SM) is defined in <xref | |||
| target="RFC8466"></xref>, while the L2VPN Network YANG Model (L2NM) is | target="RFC8466" format="default"/>, while the YANG L2VPN Network | |||
| specified in <xref target="I-D.ietf-opsawg-l2nm"></xref>.</t> | Model (L2NM) is specified in <xref target="I-D.ietf-opsawg-l2nm" | |||
| format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section title="VN Lifecycle Management"> | <section numbered="true" toc="default"> | |||
| <t>In reference to <xref target="lc"></xref>, the following steps are | <name>VN Life-Cycle Management</name> | |||
| <t>In reference to <xref target="lc" format="default"/>, the following s | ||||
| teps are | ||||
| performed to deliver the VN service within the network management | performed to deliver the VN service within the network management | |||
| automation architecture defined in <xref target="compo"></xref>:<list | automation architecture defined in <xref target="compo" format="default" | |||
| style="numbers"> | />:</t> | |||
| <t>A customer makes a request (Service Exposure in <xref | <ol spacing="normal" type="1"><li>A customer makes a request (Service | |||
| target="expo"></xref>) to create a VN. The association between the | Exposure in <xref target="expo" format="default"/>) to create a | |||
| VN, APs, and VN members is defined in the VN YANG module <xref | VN. The association between the VN, APs, and VN members is defined in | |||
| target="I-D.ietf-teas-actn-vn-yang"></xref>.</t> | the VN YANG model <xref target="I-D.ietf-teas-actn-vn-yang" | |||
| format="default"/>.</li> | ||||
| <t>The Orchestrator creates the single abstract node topology | <li>The Orchestrator creates the single abstract node topology based | |||
| based on the information captured in the request.</t> | on the information captured in the request.</li> | |||
| <li>The customer exchanges with the Orchestrator the connectivity | ||||
| <t>The customer exchanges with the Orchestrator the connectivity | matrix on the abstract node topology and explicit paths using the TE | |||
| matrix on the abstract node topology and explicit paths using the | topology model <xref target="RFC8795" format="default"/>. This | |||
| TE topology model <xref target="RFC8795"></xref>. This information | information can be used to instantiate the VN and set up tunnels | |||
| can be used to instantiate the VN and setup tunnels between source | between source and destination endpoints (Service Creation in <xref | |||
| and destination endpoints (Service Creation in <xref | target="crea" format="default"/>).</li> | |||
| target="crea"></xref>).</t> | <li>In order to provide service assurance (Service Optimization in | |||
| <xref target="optim" format="default"/>), the telemetry model that | ||||
| <t>In order to provide service assurance (Service Optimization in | augments the VN model and corresponding TE tunnel model can be used | |||
| <xref target="optim"></xref>), the telemetry model which augments | by the Orchestrator to subscribe to performance measurement | |||
| the VN model and corresponding TE tunnel model can be used by the | data. The Controller will then notify the Orchestrator with all the | |||
| Orchestrator to subscribe to performance measurement data. The | parameter changes and network performance changes related to the VN | |||
| Controller will then notify the Orchestrator with all the | topology and the tunnels <xref | |||
| parameter changes and network performance changes related to the | target="I-D.ietf-teas-actn-pm-telemetry-autonomics" | |||
| VN topology and the tunnels <xref | format="default"/>.</li> | |||
| target="I-D.ietf-teas-actn-pm-telemetry-autonomics"></xref>.</t> | </ol> | |||
| </list></t> | <figure anchor="lc"> | |||
| <name>A VN Service Delivery Example</name> | ||||
| <t><figure anchor="lc" title="A VN Service Delivery Example"> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
| <artwork align="center"><![CDATA[ | | | | |||
| VN | | VN | | |||
| Service | | Service | | |||
| Model | | Model | | |||
| +----------------------|--------------------------+ | +----------------------|--------------------------+ | |||
| | Orchestrator | | | | Orchestrator | | | |||
| | +--------V--------+ | | | +--------V--------+ | | |||
| | | Service Mapping | | | | | Service Mapping | | | |||
| | +-----------------+ | | | +-----------------+ | | |||
| +----------------------+--------------------^-----+ | +----------------------+--------------------^-----+ | |||
| TE | Telemetry | | TE | Telemetry | | |||
| Tunnel | Model | | Tunnel | Model | | |||
| Model | | | Model | | | |||
| +----------------------V--------------------+-----+ | +----------------------V--------------------+-----+ | |||
| | Controller | | | Controller | | |||
| | | | | | | |||
| +-------------------------------------------------+ | +-------------------------------------------------+ | |||
| +-----+ +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ +-----+ | |||
| | CE1 +------+ PE1 | | PE2 +------+ CE2 | | | CE1 +------+ PE1 | | PE2 +------+ CE2 | | |||
| +-----+ +-----+ +-----+ +-----+]]></artwork> | +-----+ +-----+ +-----+ +-----+]]></artwork> | |||
| </figure></t> | </figure> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Event-based Telemetry in the Device Self Management"> | <name>Event-Based Telemetry in the Device Self Management</name> | |||
| <t>In reference to <xref target="event"></xref>, the following steps | <t>In reference to <xref target="event" format="default"/>, the | |||
| are performed to monitor state changes of managed resources in a | following steps are performed to monitor state changes of managed | |||
| network device and provide device self-management within the network | resources in a network device and provide device self management | |||
| management automation architecture defined in <xref | within the network management automation architecture defined in <xref | |||
| target="compo"></xref>: <list style="numbers"> | target="compo" format="default"/>: </t> | |||
| <t>To control which state a network device should be in or is | <ol spacing="normal" type="1"><li>To control which state a network | |||
| allowed to be in at any given time, a set of conditions and | device should be in or is allowed to be in at any given time, a set of | |||
| actions are defined and correlated with network events (e.g., | conditions and actions are defined and correlated with network events | |||
| allow the NETCONF server to send updates only when the value | (e.g., allow the NETCONF server to send updates only when the value | |||
| exceeds a certain threshold for the first time, but not again | exceeds a certain threshold for the first time, but not again until | |||
| until the threshold is cleared), which constitute an | the threshold is cleared), which constitute an Event Condition Action | |||
| Event/Condition/Action (ECA) policy or an event-driven policy | (ECA) policy or an event-driven policy control logic that can be | |||
| control logic that can be executed on the device (e.g., <xref | executed on the device (e.g., <xref target="I-D.wwx-netmod-event-yang" | |||
| target="I-D.wwx-netmod-event-yang"></xref>).</t> | format="default"/>).</li> | |||
| <li>To provide a rapid autonomic response that can exhibit | ||||
| <t>To provide rapid autonomic response that can exhibit | ||||
| self-management properties, the Controller pushes the ECA policy | self-management properties, the Controller pushes the ECA policy | |||
| to the network device and delegates the network control logic to | to the network device and delegates the network control logic to | |||
| the network device.</t> | the network device.</li> | |||
| <li>The network device uses the ECA model to subscribe to the event | ||||
| <t>The network device uses the ECA model to subscribe to the event | source, e.g., an event stream or datastore state data conveyed to | |||
| source, e.g., an event stream or datastore state data conveyed to | the server via YANG-Push subscription <xref target="RFC8641" | |||
| the server via YANG Push subscription <xref | format="default"/>, monitors state parameters, and takes simple and | |||
| target="RFC8641"></xref>, monitors state parameters, and takes | instant actions when an associated event condition on state | |||
| simple and instant actions when an associated event condition on | parameters is met. ECA notifications can be generated as the result | |||
| state parameters is met. ECA notifications can be generated as the | of actions based on event stream subscription or datastore | |||
| result of actions based on event stream subscription or datastore | subscription (model-driven telemetry operation discussed in <xref | |||
| subscription (model-driven telemetry operation discussed in <xref | target="tele" format="default"/>).</li> | |||
| target="tele"></xref>).</t> | </ol> | |||
| </list><figure anchor="event" title="Event-based Telemetry"> | <figure anchor="event"> | |||
| <artwork align="center"><![CDATA[ +----------------+ | <name>Event-Based Telemetry</name> | |||
| <artwork align="center" name="" type="" alt=""><![CDATA[ +-------- | ||||
| --------+ | ||||
| | <----+ | | <----+ | |||
| | Controller | | | | Controller | | | |||
| +-------+--------+ | | +-------+--------+ | | |||
| | | | | | | |||
| | | | | | | |||
| ECA | | ECA | ECA | | ECA | |||
| Model | | Notification | Model | | Notification | |||
| | | | | | | |||
| | | | | | | |||
| +------------V-------------+-----+ | +------------V-------------+-----+ | |||
| |Device | | | |Device | | | |||
| | +-------+ +---------+ +--+---+ | | | +-------+ +---------+ +--+---+ | | |||
| | | Event +-> Event +->Event | | | | | Event +-> Event +->Event | | | |||
| | | Source| |Condition| |Action| | | | | Source| |Condition| |Action| | | |||
| | +-------+ +---------+ +------+ | | | +-------+ +---------+ +------+ | | |||
| +--------------------------------+ | +--------------------------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure></t> | </figure> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <section title="Security Considerations"> | ||||
| <t>Many of the YANG modules cited in this document define schema for | <t>Many of the YANG modules cited in this document define schema for | |||
| data that are designed to be accessed via network management protocols | data that is designed to be accessed via network management protocols | |||
| such as NETCONF <xref target="RFC6241"></xref> or RESTCONF <xref | such as NETCONF <xref target="RFC6241" format="default"/> or RESTCONF <xre | |||
| target="RFC8040"></xref>. The lowest NETCONF layer is the secure | f target="RFC8040" format="default"/>. The lowest NETCONF layer is the secure | |||
| transport layer, and the mandatory-to-implement secure transport is | transport layer, and the mandatory-to-implement secure transport is | |||
| Secure Shell (SSH) <xref target="RFC6242"></xref>. The lowest RESTCONF | Secure Shell (SSH) <xref target="RFC6242" format="default"/>. The lowest R ESTCONF | |||
| layer is HTTPS, and the mandatory-to-implement secure transport is TLS | layer is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| <xref target="RFC8446"></xref>.</t> | <xref target="RFC8446" format="default"/>.</t> | |||
| <t>The NETCONF access control model <xref target="RFC8341" format="default | ||||
| <t>The NETCONF access control model <xref target="RFC8341"></xref> | "/> | |||
| provides the means to restrict access for particular NETCONF or RESTCONF | provides the means to restrict access for particular NETCONF or RESTCONF | |||
| users to a preconfigured subset of all available NETCONF or RESTCONF | users to a preconfigured subset of all available NETCONF or RESTCONF | |||
| protocol operations and content.</t> | protocol operations and content.</t> | |||
| <t>Security considerations specific to each of the technologies and | <t>Security considerations specific to each of the technologies and | |||
| protocols listed in the document are discussed in the specification | protocols listed in the document are discussed in the specification | |||
| documents of each of these protocols.</t> | documents of each of these protocols.</t> | |||
| <t>In order to prevent leaking sensitive information and the "confused | <t>In order to prevent leaking sensitive information and the "confused | |||
| deputy" problem <xref target="Hardy"></xref> in general, special care | deputy" problem <xref target="Hardy" format="default"/> in general, specia l care | |||
| should be considered when translating between the various layers in | should be considered when translating between the various layers in | |||
| <xref target="compo"></xref> or when aggregating data retrieved from | <xref target="compo" format="default"/> or when aggregating data retrieved from | |||
| various sources. Authorization and authentication checks should be | various sources. Authorization and authentication checks should be | |||
| performed to ensure that a data is available to an authorized entity. | performed to ensure that data is available to an authorized entity. | |||
| The network operator must enforce means to protect privacy-related | The network operator must enforce means to protect privacy-related | |||
| information included in customer-facing models.</t> | information included in customer-facing models.</t> | |||
| <t>To detect misalignment between layers that might be induced by | <t>To detect misalignment between layers that might be induced by | |||
| misbehaving nodes, upper layers should continuously monitor the | misbehaving nodes, upper layers should continuously monitor the | |||
| perceived service (<xref target="optim"></xref>) and should proceed with | perceived service (<xref target="optim" format="default"/>) and should pro ceed with | |||
| checks to assess that the provided service complies with the expected | checks to assess that the provided service complies with the expected | |||
| service and that the data reported by an underlying layer is matching | service and that the data reported by an underlying layer is matching | |||
| the perceived service by the above layer. Such checks are the | the perceived service by the above layer. Such checks are the | |||
| responsibility of the service diagnosis (<xref | responsibility of the service diagnosis (<xref target="diag" format="defau | |||
| target="diag"></xref>).</t> | lt"/>).</t> | |||
| <t>When a YANG module includes security-related parameters, it is | <t>When a YANG module includes security-related parameters, it is | |||
| recommended to include the relevant information as part of the service | recommended to include the relevant information as part of the service | |||
| assurance to track the correct functioning of the security | assurance to track the correct functioning of the security | |||
| mechanisms.</t> | mechanisms.</t> | |||
| <t>Additional considerations are discussed in the following | <t>Additional considerations are discussed in the following | |||
| subsections.</t> | subsections.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Service Level"> | <name>Service Level</name> | |||
| <t>A provider may rely on services offered by other providers to build | <t>A provider may rely on services offered by other providers to build | |||
| composite services. Appropriate mechanisms should be enabled by the | composite services. Appropriate mechanisms should be enabled by the | |||
| provider to monitor and detect a service disruption from these | provider to monitor and detect a service disruption from these | |||
| providers. The characterization of a service disruption (including, | providers. The characterization of a service disruption (including | |||
| mean time between failures, mean time to repair), the escalation | mean time between failures and mean time to repair), the escalation | |||
| procedure, and penalties are usually documented in contractual | procedure, and penalties are usually documented in contractual | |||
| agreements (e.g., as described in Section 2.1 of <xref | agreements (e.g., as described in <xref target="RFC4176" | |||
| target="RFC4176"></xref>). Misbehaving peer providers will thus be | sectionFormat="of" section="2.1"/>). Misbehaving peer providers will | |||
| identified and appropriate countermeasures will be applied.</t> | thus be identified and appropriate countermeasures will be | |||
| applied.</t> | ||||
| <t>The communication protocols that make use of a service model | <t>The communication protocols that make use of a service model | |||
| between a customer and an operator are out of scope. Relevant security | between a customer and an operator are out of scope. Relevant security | |||
| considerations should be discussed in the specification documents of | considerations should be discussed in the specification documents of | |||
| these protocols.</t> | these protocols.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Network Level"> | <name>Network Level</name> | |||
| <t>Security considerations specific to the network level are listed | <t>Security considerations specific to the network level are listed | |||
| below:<list style="symbols"> | below:</t> | |||
| <t>A controller may create forwarding loops by mis-configuring the | <ul spacing="normal"> | |||
| <li>A controller may create forwarding loops by misconfiguring the | ||||
| underlying network nodes. It is recommended to proceed with tests | underlying network nodes. It is recommended to proceed with tests | |||
| to check the status of forwarding paths regularly or whenever | to check the status of forwarding paths regularly or whenever | |||
| changes are made to routing or forwarding processes. Such checks | changes are made to routing or forwarding processes. Such checks | |||
| may be triggered from the service level owing to the means | may be triggered from the service level owing to the means | |||
| discussed in <xref target="diag"></xref>.</t> | discussed in <xref target="diag" format="default"/>.</li> | |||
| <li>Some service models may include a traffic isolation clause that | ||||
| <t>Some service models may include a traffic isolation clause that | is passed down to the network level so that appropriate | |||
| is passed down to the network level so that appropriate | technology-specific actions must be enforced at the underlying | |||
| technology-specific actions must be enforced at the underlying | network (and thus involved network devices) to avoid that such | |||
| network (and thus involved network devices) to avoid that such | traffic is accessible to non-authorized parties. In particular, | |||
| traffic is accessible to non-authorized parties. In particular, | network models may indicate whether encryption is enabled and, if so, | |||
| network models may indicate whether encryption is enabled and if | expose a list of supported encryption schemes and parameters. Refer, | |||
| so, expose a list of supported encryption schemes and parameters. | for example, to the encryption feature defined in <xref | |||
| Refer for example to the encryption feature defined in <xref | target="I-D.ietf-opsawg-vpn-common" format="default"/> and its use | |||
| target="I-D.ietf-opsawg-vpn-common"></xref> and its use in <xref | in <xref target="I-D.ietf-opsawg-l3sm-l3nm" format="default"/>.</li> | |||
| target="I-D.ietf-opsawg-l3sm-l3nm"></xref>.</t> | </ul> | |||
| </list></t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Device Level"> | <name>Device Level</name> | |||
| <t>Network operators should monitor and audit their networks to detect | <t>Network operators should monitor and audit their networks to detect | |||
| misbehaving nodes and abnormal behaviors. For example, OAM discussed | misbehaving nodes and abnormal behaviors. For example, OAM, as | |||
| in <xref target="diag"></xref> can be used for that purpose.</t> | discussed in <xref target="diag" format="default"/>, can be used for | |||
| that purpose.</t> | ||||
| <t>Access to some data requires specific access privilege levels. | <t>Access to some data requires specific access privilege levels. | |||
| Devices must check that a required access privilege is provided before | Devices must check that a required access privilege is provided before | |||
| granting access to specific data or performing specific actions.</t> | granting access to specific data or performing specific actions.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t>There are no IANA requests or assignments included in this | <t>This document has no IANA actions.</t> | |||
| document.</t> | ||||
| </section> | ||||
| <section anchor="ack" title="Acknowledgements"> | ||||
| <t>Thanks to Joe Clark, Greg Mirsky, Shunsuke Homma, Brian Carpenter, | ||||
| Adrian Farrel, Christian Huitema, Tommy Pauly, Ines Robles, and Olivier | ||||
| Augizeau for the review.</t> | ||||
| <t>Many thanks to Robert Wilton for the detailed AD review.</t> | ||||
| <t>Thanks to Éric Vyncke, Roman Danyliw, Erik Kline, and Benjamin | ||||
| Kaduk for the IESG review.</t> | ||||
| </section> | </section> | |||
| <section title="Contributors"> | ||||
| <figure> | ||||
| <artwork><![CDATA[ Christian Jacquenet | ||||
| Orange | ||||
| Rennes, 35000 | ||||
| France | ||||
| Email: Christian.jacquenet@orange.com | ||||
| Luis Miguel Contreras Murillo | ||||
| Telifonica | ||||
| Email: luismiguel.contrerasmurillo@telefonica.com | ||||
| Oscar Gonzalez de Dios | ||||
| Telefonica | ||||
| Madrid | ||||
| ES | ||||
| Email: oscar.gonzalezdedios@telefonica.com | ||||
| Weiqiang Cheng | ||||
| China Mobile | ||||
| Email: chengweiqiang@chinamobile.com | ||||
| Young Lee | ||||
| Sung Kyun Kwan University | ||||
| Email: younglee.tx@gmail.com]]></artwork> | ||||
| </figure> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | ||||
| <?rfc include='reference.RFC.7950'?> | ||||
| <?rfc include='reference.RFC.6241'?> | ||||
| <?rfc include='reference.RFC.8040'?> | ||||
| <?rfc include='reference.RFC.6242'?> | ||||
| <?rfc include='reference.RFC.8446'?> | ||||
| <?rfc include='reference.RFC.8341'?> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <?rfc include="reference.RFC.8199"?> | ||||
| <?rfc include='reference.I-D.ietf-opsawg-vpn-common'?> | ||||
| <?rfc include='reference.RFC.8525'?> | ||||
| <?rfc include='reference.RFC.8342'?> | ||||
| <?rfc include='reference.RFC.7665'?> | ||||
| <?rfc include='reference.RFC.4176'?> | ||||
| <?rfc include='reference.I-D.ietf-dots-rfc8782-bis'?> | ||||
| <?rfc include='reference.RFC.8791'?> | ||||
| <?rfc include='reference.RFC.5136'?> | ||||
| <?rfc include='reference.RFC.7680'?> | ||||
| <?rfc include="reference.RFC.8299"?> | ||||
| <?rfc include="reference.RFC.8309"?> | ||||
| <?rfc include="reference.RFC.7149"?> | ||||
| <?rfc include="reference.RFC.7297"?> | ||||
| <?rfc include="reference.RFC.8194"?> | ||||
| <?rfc include="reference.RFC.8349"?> | ||||
| <?rfc include="reference.RFC.8466"?> | ||||
| <?rfc include='reference.RFC.4364'?> | ||||
| <?rfc include="reference.RFC.8345"?> | ||||
| <?rfc include="reference.RFC.8346"?> | ||||
| <?rfc include="reference.RFC.8512"?> | ||||
| <?rfc include='reference.RFC.7276'?> | ||||
| <?rfc include='reference.RFC.8513'?> | ||||
| <?rfc include="reference.RFC.8528"?> | ||||
| <?rfc include="reference.RFC.8529"?> | ||||
| <?rfc include="reference.RFC.8530"?> | ||||
| <?rfc include='reference.RFC.8532'?> | ||||
| <?rfc include='reference.RFC.8533'?> | ||||
| <?rfc include='reference.RFC.7455'?> | ||||
| <?rfc include="reference.RFC.8519"?> | ||||
| <?rfc include="reference.RFC.8531"?> | ||||
| <?rfc include='reference.RFC.4664'?> | ||||
| <?rfc include='reference.RFC.8077'?> | ||||
| <?rfc include='reference.RFC.4762'?> | ||||
| <?rfc include='reference.RFC.4761'?> | ||||
| <?rfc include='reference.RFC.5880'?> | <displayreference target="I-D.ietf-opsawg-vpn-common" to="OPSAWG-VPN-COMMON"/> | |||
| <displayreference target="I-D.ietf-dots-rfc8782-bis" to="DOTS-DDOS"/> | ||||
| <?rfc include='reference.RFC.8676'?> | <displayreference target="I-D.ietf-ippm-capacity-metric-method" to="METRIC-METHO | |||
| D"/> | ||||
| <?rfc include='reference.RFC.8675'?> | <displayreference target="I-D.ietf-opsawg-l2nm" to="OPSAWG-L2NM"/> | |||
| <displayreference target="I-D.ietf-opsawg-l3sm-l3nm" to="OPSAWG-L3SM-L3NM"/> | ||||
| <?rfc include='reference.RFC.5486'?> | <displayreference target="I-D.www-opsawg-yang-vpn-service-pm" to="OPSAWG-YANG-VP | |||
| N"/> | ||||
| <?rfc include='reference.RFC.8632'?> | <displayreference target="I-D.ietf-teas-yang-te" to="TEAS-YANG-TE"/> | |||
| <displayreference target="I-D.ietf-teas-yang-rsvp-te" to="TEAS-YANG-RSVP"/> | ||||
| <?rfc include='reference.RFC.8783'?> | <displayreference target="I-D.ietf-teas-yang-path-computation" to="TEAS-YANG-PAT | |||
| H-COMP"/> | ||||
| <?rfc include='reference.RFC.6406'?> | <displayreference target="I-D.ietf-idr-bgp-model" to="IDR-BGP-MODEL"/> | |||
| <displayreference target="I-D.ietf-rtgwg-qos-model" to="QOS-MODEL"/> | ||||
| <?rfc include='reference.RFC.7679'?> | <displayreference target="I-D.ietf-pim-yang" to="PIM-YANG"/> | |||
| <displayreference target="I-D.ietf-pim-igmp-mld-snooping-yang" to="SNOOPING-YANG | ||||
| <?rfc include='reference.RFC.8652'?> | "/> | |||
| <displayreference target="I-D.ietf-teas-actn-vn-yang" to="ACTN-VN-YANG"/> | ||||
| <?rfc include='reference.RFC.8641'?> | <displayreference target="I-D.ietf-bess-evpn-yang" to="EVPN-YANG"/> | |||
| <displayreference target="I-D.ietf-bess-l3vpn-yang" to="L3VPN-YANG"/> | ||||
| <?rfc include='reference.I-D.ietf-ippm-capacity-metric-method'?> | <displayreference target="I-D.ietf-bess-l2vpn-yang" to="L2VPN-YANG"/> | |||
| <displayreference target="I-D.ietf-rtgwg-policy-model" to="RTGWG-POLICY"/> | ||||
| <displayreference target="I-D.ietf-bfd-yang" to="BFD-YANG"/> | ||||
| <displayreference target="I-D.ietf-spring-sr-yang" to="SPRING-SR-YANG"/> | ||||
| <displayreference target="I-D.ietf-trill-yang-oam" to="TRILL-YANG-OAM"/> | ||||
| <displayreference target="I-D.ogondio-opsawg-uni-topology" to="UNI-TOPOLOGY"/> | ||||
| <displayreference target="I-D.ietf-teas-actn-pm-telemetry-autonomics" to="TEAS-A | ||||
| CTN-PM"/> | ||||
| <displayreference target="I-D.ietf-ippm-stamp-yang" to="STAMP-YANG"/> | ||||
| <displayreference target="I-D.ietf-bess-mvpn-yang" to="MVPN-YANG"/> | ||||
| <displayreference target="I-D.wwx-netmod-event-yang" to="EVENT-YANG"/> | ||||
| <displayreference target="I-D.clacla-netmod-model-catalog" to="NETMOD-MODEL"/> | ||||
| <displayreference target="I-D.ietf-ippm-twamp-yang" to="TWAMP-DATA-MODEL"/> | ||||
| <?rfc include='reference.I-D.ietf-opsawg-l2nm'?> | <references> | |||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7950.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6241.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8040.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6242.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8446.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8341.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8199.xml"/> | ||||
| <?rfc include='reference.I-D.ietf-opsawg-l3sm-l3nm'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-opsawg-vpn-common.xml"/> | |||
| <?rfc include='reference.I-D.www-opsawg-yang-vpn-service-pm'?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.8525.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8342.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7665.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4176.xml"/> | ||||
| <?rfc include="reference.RFC.8795"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-dots-rfc8782-bis.xml"/> | |||
| <?rfc include="reference.I-D.ietf-teas-yang-te"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.8791.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5136.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7680.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8299.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8309.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7149.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7297.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8194.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8349.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8466.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4364.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8345.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8346.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8512.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7276.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8513.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8528.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8529.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8530.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8532.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8533.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7455.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8519.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8531.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4664.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8077.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4762.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4761.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5880.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8676.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8675.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.5486.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8632.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8783.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.6406.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7679.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8652.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8641.xml"/> | ||||
| <?rfc include="reference.I-D.ietf-teas-yang-rsvp-te"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-ippm-capacity-metric-method.xml"/> | |||
| <?rfc include="reference.I-D.ietf-teas-yang-path-computation"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-opsawg-l2nm.xml"/> | |||
| <?rfc include="reference.I-D.ietf-idr-bgp-model"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-opsawg-l3sm-l3nm.xml"/> | |||
| <?rfc include="reference.I-D.ietf-mpls-base-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .www-opsawg-yang-vpn-service-pm.xml"/> | |||
| <?rfc include="reference.I-D.ietf-rtgwg-qos-model"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R FC.8795.xml"/> | |||
| <?rfc include="reference.I-D.ietf-pim-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-teas-yang-te.xml"/> | |||
| <?rfc include="reference.I-D.ietf-pim-igmp-mld-snooping-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-teas-yang-rsvp-te.xml"/> | |||
| <?rfc include="reference.I-D.ietf-teas-actn-vn-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-teas-yang-path-computation.xml"/> | |||
| <?rfc include="reference.I-D.ietf-bess-evpn-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-idr-bgp-model.xml"/> | |||
| <?rfc include="reference.I-D.ietf-bess-l3vpn-yang"?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8960. xml"/> | |||
| <?rfc include="reference.I-D.ietf-bess-l2vpn-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-rtgwg-qos-model.xml"/> | |||
| <?rfc include="reference.I-D.ietf-rtgwg-policy-model"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-pim-yang.xml"/> | |||
| <?rfc include="reference.I-D.ietf-bfd-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-pim-igmp-mld-snooping-yang.xml"/> | |||
| <?rfc include="reference.I-D.ietf-spring-sr-yang"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-teas-actn-vn-yang.xml"/> | |||
| <?rfc include="reference.I-D.ietf-trill-yang-oam"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-bess-evpn-yang.xml"/> | |||
| <?rfc include='reference.I-D.ogondio-opsawg-uni-topology'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-bess-l3vpn-yang.xml"/> | |||
| <?rfc include='reference.I-D.ietf-teas-actn-pm-telemetry-autonomics'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-bess-l2vpn-yang.xml"/> | |||
| <?rfc include='reference.I-D.ietf-ippm-twamp-yang'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-rtgwg-policy-model.xml"/> | |||
| <?rfc include='reference.I-D.ietf-ippm-stamp-yang'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-bfd-yang.xml"/> | |||
| <?rfc include='reference.I-D.ietf-i2rs-yang-l2-network-topology'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-spring-sr-yang.xml"/> | |||
| <?rfc include='reference.I-D.ietf-bess-mvpn-yang'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-trill-yang-oam.xml"/> | |||
| <?rfc include='reference.I-D.wwx-netmod-event-yang'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ogondio-opsawg-uni-topology.xml"/> | |||
| <?rfc include='reference.I-D.ietf-netmod-module-tags'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-teas-actn-pm-telemetry-autonomics.xml"/> | |||
| <?rfc include='reference.I-D.clacla-netmod-model-catalog'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ip pm-twamp-yang.xml"/> | |||
| <?rfc include='reference.RFC.7224'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-ippm-stamp-yang.xml"/> | |||
| <?rfc include='reference.RFC.8348'?> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R FC.8944.xml"/> | |||
| <?rfc include='reference.RFC.7317'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .ietf-bess-mvpn-yang.xml"/> | |||
| <?rfc include='reference.RFC.8343'?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D .wwx-netmod-event-yang.xml"/> | |||
| <reference anchor="IPPM" | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8819. | |||
| target="https://www.iana.org/assignments/performance-metrics/pe | xml"/> | |||
| rformance-metrics.xhtml"> | ||||
| <front> | ||||
| <title>Performance Metrics</title> | ||||
| <author> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
| <organization>IANA</organization> | .clacla-netmod-model-catalog.xml"/> | |||
| </author> | ||||
| <date day="19" month="March" year="2020" /> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| </front> | FC.7224.xml"/> | |||
| </reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.8348.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.7317.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8343.xml"/> | ||||
| <reference anchor="Hardy" | <reference anchor="IPPM" target="https://www.iana.org/assignments/perfor | |||
| target="https://dl.acm.org/doi/10.1145/54289.871709"> | mance-metrics/performance-metrics.xhtml"> | |||
| <front> | <front> | |||
| <title>The Confused Deputy: (or why capabilities might have been | <title>Performance Metrics</title> | |||
| invented)</title> | <author> | |||
| <organization>IANA</organization> | ||||
| </author> | ||||
| <date month="March" year="2020"/> | ||||
| </front> | ||||
| </reference> | ||||
| <author fullname="Norm Hardy " surname="Hardy"> | <reference anchor="Hardy" target="https://dl.acm.org/doi/10.1145/54289.8 | |||
| <organization></organization> | 71709"> | |||
| </author> | <front> | |||
| <title>The Confused Deputy: (or why capabilities might have been | ||||
| invented)</title> | ||||
| <author fullname="Norm Hardy" surname="Hardy"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="1988"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.1145/54289.871709"/> | ||||
| </reference> | ||||
| <date month="October" year="1988" /> | </references> | |||
| </front> | ||||
| </reference> | ||||
| </references> | </references> | |||
| <section anchor="app" numbered="true" toc="default"> | ||||
| <section anchor="app" title="Layered YANG Modules Examples Overview"> | <name>Layered YANG Module Examples Overview</name> | |||
| <t>This appendix lists a set of YANG data models that can be used for | <t>This appendix lists a set of YANG data models that can be used for | |||
| the delivery of connectivity services. These models can be classified as | the delivery of connectivity services. These models can be classified as | |||
| service, network, or device models.</t> | service, network, or device models.</t> | |||
| <t>It is not the intent of this appendix to provide an inventory of | <t>It is not the intent of this appendix to provide an inventory of | |||
| tools and mechanisms used in specific network and service management | tools and mechanisms used in specific network and service management | |||
| domains; such inventory can be found in documents such as <xref | domains; such inventory can be found in documents such as <xref target="RF | |||
| target="RFC7276"></xref>.</t> | C7276" format="default"/>.</t> | |||
| <t>The reader may refer to the YANG Catalog (<<eref | ||||
| <t>The reader may refer to the YANG Catalog | target="https://www.yangcatalog.org"/>>) or the public Github YANG | |||
| (<https://www.yangcatalog.org>) or the public Github YANG | repository (<<eref target="https://github.com/YangModels/yang"/>>) t | |||
| repository (<https://github.com/YangModels/yang>) to query | o | |||
| existing YANG models. The YANG Catalog includes some metadata to | query existing YANG models. The YANG Catalog includes some metadata to | |||
| indicate the module type ('module-classification') <xref | indicate the module type ('module-classification') <xref | |||
| target="I-D.clacla-netmod-model-catalog"></xref>. Note that the | target="I-D.clacla-netmod-model-catalog" format="default"/>. Note that | |||
| mechanism defined in <xref target="I-D.ietf-netmod-module-tags"></xref> | the mechanism defined in <xref target="RFC8819" format="default"/> | |||
| allows to associate tags with YANG modules in order to help classifying | allows to associate tags with YANG modules in order to help classifying | |||
| the modules.</t> | the modules.</t> | |||
| <section anchor="ns" numbered="true" toc="default"> | ||||
| <section anchor="ns" title="Service Models: Definition and Samples"> | <name>Service Models: Definition and Samples</name> | |||
| <t>As described in <xref target="RFC8309"></xref>, the service is | ||||
| "some form of connectivity between customer sites and the Internet | ||||
| and/or between customer sites across the network operator's network | ||||
| and across the Internet". More concretely, an IP connectivity service | ||||
| can be defined as the IP transfer capability characterized by a | ||||
| (Source Nets, Destination Nets, Guarantees, Scope) tuple where "Source | ||||
| Nets" is a group of unicast IP addresses, "Destination Nets" is a | ||||
| group of IP unicast and/or multicast addresses, and "Guarantees" | ||||
| reflects the guarantees (expressed in terms of QoS, performance, and | ||||
| availability, for example) to properly forward traffic to the said | ||||
| "Destination" <xref target="RFC7297"></xref>.</t> | ||||
| <t>For example:<list style="symbols"> | ||||
| <t>The L3SM <xref target="RFC8299"></xref> defines the L3VPN | ||||
| service ordered by a customer from a network operator.</t> | ||||
| <t>The L2SM <xref target="RFC8466"></xref> defines the L2VPN | ||||
| service ordered by a customer from a network operator.</t> | ||||
| <t>The Virtual Network (VN) model <xref | <t>As described in <xref target="RFC8309" format="default"/>, the | |||
| target="I-D.ietf-teas-actn-vn-yang"></xref> provides a YANG data | service is "some form of connectivity between customer sites and the | |||
| model applicable to any mode of VN operation.</t> | Internet or between customer sites across the network operator's | |||
| </list></t> | network and across the Internet". More concretely, an IP connectivity | |||
| service can be defined as the IP transfer capability characterized by | ||||
| a (Source Nets, Destination Nets, Guarantees, Scope) tuple where | ||||
| "Source Nets" is a group of unicast IP addresses, "Destination Nets" | ||||
| is a group of IP unicast and/or multicast addresses, and "Guarantees" | ||||
| reflects the guarantees (expressed, for example, in terms of QoS, | ||||
| performance, and availability) to properly forward traffic to the said | ||||
| "Destination" <xref target="RFC7297" format="default"/>. The "Scope" | ||||
| denotes the network perimeter (e.g., between Provider Edge (PE) | ||||
| routers or Customer Nodes) where the said guarantees need to be | ||||
| provided.</t> | ||||
| <t>L2SM and L3SM are customer service models as per <xref | <t>For example:</t> | |||
| target="RFC8309"></xref>.</t> | <ul spacing="normal"> | |||
| <li>The L3SM <xref target="RFC8299" format="default"/> defines the L3V | ||||
| PN | ||||
| service ordered by a customer from a network operator.</li> | ||||
| <li>The L2SM <xref target="RFC8466" format="default"/> defines the L2V | ||||
| PN | ||||
| service ordered by a customer from a network operator.</li> | ||||
| <li>The Virtual Network (VN) model <xref | ||||
| target="I-D.ietf-teas-actn-vn-yang" format="default"/> provides a | ||||
| YANG data model applicable to any mode of VN operation.</li> | ||||
| </ul> | ||||
| <t>L2SM and L3SM are customer service models as per <xref target="RFC830 | ||||
| 9" format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Schema Mount"> | <name>Schema Mount</name> | |||
| <t>Modularity and extensibility were among the leading design | <t>Modularity and extensibility were among the leading design | |||
| principles of the YANG data modeling language. As a result, the same | principles of the YANG data modeling language. As a result, the same | |||
| YANG module can be combined with various sets of other modules and | YANG module can be combined with various sets of other modules and | |||
| thus form a data model that is tailored to meet the requirements of a | thus form a data model that is tailored to meet the requirements of a | |||
| specific use case. <xref target="RFC8528"></xref> defines a mechanism, | specific use case. <xref target="RFC8528" format="default"/> defines a m | |||
| denoted schema mount, that allows for mounting one data model | echanism, | |||
| denoted "schema mount", that allows for mounting one data model | ||||
| consisting of any number of YANG modules at a specified location of | consisting of any number of YANG modules at a specified location of | |||
| another (parent) schema.</t> | another (parent) schema.</t> | |||
| </section> | </section> | |||
| <section anchor="rm" numbered="true" toc="default"> | ||||
| <section anchor="rm" title="Network Models: Samples"> | <name>Network Models: Samples</name> | |||
| <t>L2NM <xref target="I-D.ietf-opsawg-l2nm"></xref> and L3NM <xref | <t>L2NM <xref target="I-D.ietf-opsawg-l2nm" format="default"/> and L3NM | |||
| target="I-D.ietf-opsawg-l3sm-l3nm"></xref> are examples of YANG | <xref target="I-D.ietf-opsawg-l3sm-l3nm" format="default"/> are examples of YANG | |||
| network models.</t> | network models.</t> | |||
| <t><xref target="rfn" format="default"/> depicts a set of additional net | ||||
| <t><xref target="rfn"></xref> depicts a set of additional network | work | |||
| models such as topology and tunnel models:</t> | models such as topology and tunnel models:</t> | |||
| <figure anchor="rfn"> | ||||
| <figure align="center" anchor="rfn" | <name>Sample Resource-Facing Network Models</name> | |||
| title="Sample Resource Facing Network Models"> | <artwork align="center" name="" type="" alt=""><![CDATA[+------------- | |||
| <artwork align="center"><![CDATA[+-------------------------------+---- | ------------------+-------------------------------+ | |||
| ---------------------------+ | ||||
| | Topology YANG modules | Tunnel YANG modules | | | Topology YANG modules | Tunnel YANG modules | | |||
| +-------------------------------+-------------------------------+ | +-------------------------------+-------------------------------+ | |||
| | +------------------+ | | | | +------------------+ | | | |||
| | |Network Topologies| | +------+ +-----------+ | | | |Network Topologies| | +------+ +-----------+ | | |||
| | | Model | | |Other | | TE Tunnel | | | | | Model | | |Other | | TE Tunnel | | | |||
| | +--------+---------+ | |Tunnel| +----+------+ | | | +--------+---------+ | |Tunnel| +----+------+ | | |||
| | | +---------+ | +------+ | | | | | +---------+ | +------+ | | | |||
| | +---+Service | | +----------+---------+ | | | +---+Service | | +----------+---------+ | | |||
| | | |Topology | | | | | | | | | |Topology | | | | | | | |||
| | | +---------+ | | | | | | | | +---------+ | | | | | | |||
| skipping to change at line 1643 ¶ | skipping to change at line 1479 ¶ | |||
| | | +---------+ | | | | | +---------+ | | | |||
| | +---+TE | | | | | +---+TE | | | | |||
| | | |Topology | | | | | | |Topology | | | | |||
| | | +---------+ | | | | | +---------+ | | | |||
| | | +---------+ | | | | | +---------+ | | | |||
| | +---+Layer 3 | | | | | +---+Layer 3 | | | | |||
| | |Topology | | | | | |Topology | | | | |||
| | +---------+ | | | | +---------+ | | | |||
| +-------------------------------+-------------------------------+ ]]></artwork> | +-------------------------------+-------------------------------+ ]]></artwork> | |||
| </figure> | </figure> | |||
| <t/> | ||||
| <t>Examples of topology YANG modules are listed below:</t> | ||||
| <t></t> | <dl newline="true"> | |||
| <t>Examples of topology YANG modules are listed below:</t> | <dt>Network Topologies Model: | |||
| </dt> | ||||
| <dd><xref target="RFC8345" format="default"/> defines a base model for network | ||||
| topology and inventories. Network topology data includes link, node, and | ||||
| terminate-point resources. | ||||
| </dd> | ||||
| <t><list style="symbols"> | <dt>TE Topology Model: | |||
| <t>Network Topologies Model: <xref target="RFC8345"></xref> | </dt> | |||
| defines a base model for network topology and inventories. Network | <dd><t><xref target="RFC8795" format="default"/> defines a YANG data model for | |||
| topology data include link, node, and terminate-point | representing and manipulating TE topologies. | |||
| resources.</t> | </t> | |||
| <t>TE Topology Model: <xref target="RFC8795"></xref> defines a | <t>This module is extended from the network topology model defined in <xref | |||
| YANG data model for representing and manipulating TE topologies. | target="RFC8345" format="default"/> and includes content related to TE | |||
| <vspace blankLines="1" />This module is extended from network | topologies. This model contains technology-agnostic TE topology building | |||
| topology model defined in <xref target="RFC8345"></xref> with TE | blocks that can be augmented and used by other technology-specific TE | |||
| topologies related content. This model contains | topology models.</t> | |||
| technology-agnostic TE Topology building blocks that can be | </dd> | |||
| augmented and used by other technology-specific TE topology | ||||
| models.</t> | ||||
| <t>Layer 3 Topology Model:<vspace blankLines="1" /><xref | <dt>Layer 3 Topology Model: | |||
| target="RFC8346"></xref> defines a YANG data model for | </dt> | |||
| representing and manipulating Layer 3 topologies. This model is | <dd> <t><xref target="RFC8346" format="default"/> defines a YANG data model | |||
| extended from the network topology model defined in <xref | for representing and manipulating Layer 3 topologies. This model is extended | |||
| target="RFC8345"></xref> with Layer 3 topologies specifics.</t> | from the network topology model defined in <xref target="RFC8345" | |||
| format="default"/> and includes content related to Layer 3 topology specifics.</ | ||||
| t> | ||||
| </dd> | ||||
| <t>Layer 2 Topology Model:<vspace blankLines="1" /><xref | <dt>Layer 2 Topology Model: | |||
| target="I-D.ietf-i2rs-yang-l2-network-topology"></xref> defines a | </dt> | |||
| YANG data model for representing and manipulating Layer 2 | <dd> <t><xref target="RFC8944" format="default"/> defines a YANG data model | |||
| topologies. This model is extended from the network topology model | for representing and manipulating Layer 2 topologies. This model is extended | |||
| defined in <xref target="RFC8345"></xref> with Layer 2 topology | from the network topology model defined in <xref target="RFC8345" | |||
| specifics.</t> | format="default"/> and includes content related to Layer 2 topology specifics.</ | |||
| </list></t> | t> | |||
| </dd> | ||||
| <t>Examples of tunnel YANG modules are provided below:<list | </dl> | |||
| style="symbols"> | ||||
| <t>Tunnel identities: <xref target="RFC8675"></xref> defines a | ||||
| collection of YANG identities used as interface types for tunnel | ||||
| interfaces.</t> | ||||
| <t>TE Tunnel Model:<vspace blankLines="1" /><xref | <t>Examples of tunnel YANG modules are provided below:</t> | |||
| target="I-D.ietf-teas-yang-te"></xref> defines a YANG module for | ||||
| the configuration and management of TE interfaces, tunnels, and | ||||
| LSPs.</t> | ||||
| <t>Segment Routing (SR) Traffic Engineering (TE) Tunnel | <dl newline="true"> | |||
| Model:<vspace blankLines="1" /><xref | ||||
| target="I-D.ietf-teas-yang-te"></xref> augments the TE generic and | ||||
| MPLS-TE model(s) and defines a YANG module for SR-TE specific | ||||
| data.</t> | ||||
| <t>MPLS-TE Model:<vspace blankLines="1" /><xref | <dt>Tunnel Identities: | |||
| target="I-D.ietf-teas-yang-te"></xref> augments the TE generic and | </dt> | |||
| MPLS-TE model(s) and defines a YANG module for MPLS-TE | <dd><xref target="RFC8675" format="default"/> defines a collection of YANG | |||
| configurations, state, RPC and notifications.</t> | identities used as interface types for tunnel interfaces. | |||
| </dd> | ||||
| <t>RSVP-TE MPLS Model:<vspace blankLines="1" /><xref | <dt>TE Tunnel Model: | |||
| target="I-D.ietf-teas-yang-rsvp-te"></xref> augments the RSVP-TE | </dt> | |||
| generic module with parameters to configure and manage signaling | <dd><xref target="I-D.ietf-teas-yang-te" format="default"/> defines a YANG | |||
| of MPLS RSVP-TE LSPs.</t> | module for the configuration and management of TE interfaces, tunnels, and | |||
| </list></t> | LSPs. | |||
| </dd> | ||||
| <t>Other sample network models are listed hereafter:<list | <dt>Segment Routing (SR) Traffic Engineering (TE) Tunnel Model: | |||
| style="symbols"> | </dt> | |||
| <t>Path Computation API Model:<vspace blankLines="1" /><xref | <dd><xref target="I-D.ietf-teas-yang-te" format="default"/> augments the TE | |||
| target="I-D.ietf-teas-yang-path-computation"></xref> YANG module | generic and MPLS-TE model(s) and defines a YANG module for SR-TE-specific | |||
| for a stateless RPC which complements the stateful solution | data. | |||
| defined in <xref target="I-D.ietf-teas-yang-te"></xref>.</t> | </dd> | |||
| <t>OAM Models (including Fault Management (FM) and Performance | <dt>MPLS-TE Model: | |||
| Monitoring):<vspace blankLines="1" /><xref | </dt> | |||
| target="RFC8532"></xref> defines a base YANG module for the | <dd><xref target="I-D.ietf-teas-yang-te" format="default"/> augments the TE | |||
| management of OAM protocols that use Connectionless | generic and MPLS-TE model(s) and defines a YANG module for MPLS-TE | |||
| Communications. <xref target="RFC8533"></xref> defines a retrieval | configurations, state, RPC, and notifications. | |||
| method YANG module for connectionless OAM protocols. <xref | </dd> | |||
| target="RFC8531"></xref> defines a base YANG module for connection | ||||
| oriented OAM protocols. These three models are intended to provide | ||||
| consistent reporting, configuration, and representation for | ||||
| connection-less OAM and Connection oriented OAM separately.<vspace | ||||
| blankLines="1" />Alarm monitoring is a fundamental part of | ||||
| monitoring the network. Raw alarms from devices do not always tell | ||||
| the status of the network services or necessarily point to the | ||||
| root cause. <xref target="RFC8632"></xref> defines a YANG module | ||||
| for alarm management.</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="Device Models: Samples"> | <dt>RSVP-TE MPLS Model: | |||
| <t>Network Element models (listed in <xref target="device"></xref>) | </dt> | |||
| are used to describe how a service can be implemented by activating | <dd><xref target="I-D.ietf-teas-yang-rsvp-te" format="default"/> augments the | |||
| and tweaking a set of functions (enabled in one or multiple devices, | RSVP-TE generic module with parameters to configure and manage signaling of | |||
| or hosted in cloud infrastructures) that are involved in the service | MPLS RSVP-TE LSPs. | |||
| delivery. For example, the L3VPN service will involve many PEs and | </dd> | |||
| require manipulating the following modules:</t> | ||||
| <t><list style="symbols"> | </dl> | |||
| <t>Routing management <xref target="RFC8349"></xref></t> | ||||
| <t>BGP <xref target="I-D.ietf-idr-bgp-model"></xref></t> | <t>Other sample network models are listed hereafter:</t> | |||
| <t>PIM <xref target="I-D.ietf-pim-yang"></xref></t> | <dl newline="true"> | |||
| <t>NAT management <xref target="RFC8512"></xref></t> | <dt>Path Computation API Model: | |||
| </dt> | ||||
| <t>QoS management <xref | <dd><xref target="I-D.ietf-teas-yang-path-computation" format="default"/> | |||
| target="I-D.ietf-rtgwg-qos-model"></xref></t> | defines a YANG module for a stateless RPC that complements the stateful | |||
| solution defined in <xref target="I-D.ietf-teas-yang-te" format="default"/>. | ||||
| </dd> | ||||
| <t>ACLs <xref target="RFC8519"></xref></t> | <dt>OAM Models (including Fault Management (FM) and Performance Monitoring): | |||
| </list><xref target="device"></xref> uses IETF-defined data models | </dt> | |||
| as an example.<figure anchor="device" | <dd> | |||
| title="Network Element Modules Overview"> | <t><xref target="RFC8532" format="default"/> defines a base YANG module for | |||
| <artwork><![CDATA[ +--------- | the management of OAM protocols that use Connectionless Communications. <xref | |||
| ---------------+ | target="RFC8533" format="default"/> defines a retrieval method YANG module | |||
| for connectionless OAM protocols. <xref target="RFC8531" format="default"/> | ||||
| defines a base YANG module for connection-oriented OAM protocols. These three | ||||
| models are intended to provide consistent reporting, configuration, and | ||||
| representation for connectionless OAM and connection-oriented OAM | ||||
| separately.</t> | ||||
| <t>Alarm monitoring is a fundamental part of monitoring the | ||||
| network. Raw alarms from devices do not always tell the status of | ||||
| the network services or necessarily point to the root cause. <xref | ||||
| target="RFC8632" format="default"/> defines a YANG module for | ||||
| alarm management.</t> | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>Device Models: Samples</name> | ||||
| <t>Network Element models (listed in <xref target="device" format="defau | ||||
| lt"/>) | ||||
| are used to describe how a service can be implemented by activating | ||||
| and tweaking a set of functions (enabled in one or multiple devices, | ||||
| or hosted in cloud infrastructures) that are involved in the service | ||||
| delivery. For example, the L3VPN service will involve many PEs and | ||||
| require manipulating the following modules:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>Routing management <xref target="RFC8349" format="default"/></li> | ||||
| <li>BGP <xref target="I-D.ietf-idr-bgp-model" format="default"/></li> | ||||
| <li>PIM <xref target="I-D.ietf-pim-yang" format="default"/></li> | ||||
| <li>NAT management <xref target="RFC8512" format="default"/></li> | ||||
| <li>QoS management <xref target="I-D.ietf-rtgwg-qos-model" format="def | ||||
| ault"/></li> | ||||
| <li>ACLs <xref target="RFC8519" format="default"/></li> | ||||
| </ul> | ||||
| <t><xref target="device" format="default"/> uses IETF-defined data model | ||||
| s | ||||
| as an example.</t> | ||||
| <figure anchor="device"> | ||||
| <name>Network Element Models Overview</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| +------------------------+ | ||||
| +-+ Device Model | | +-+ Device Model | | |||
| | +------------------------+ | | +------------------------+ | |||
| | +------------------------+ | | +------------------------+ | |||
| +---------------+ | | Logical Network | | +---------------+ | | Logical Network | | |||
| | | +-+ Element Model | | | | +-+ Element Model | | |||
| | Architecture | | +------------------------+ | | Architecture | | +------------------------+ | |||
| | | | +------------------------+ | | | | +------------------------+ | |||
| +-------+-------+ +-+ Network Instance Model | | +-------+-------+ +-+ Network Instance Model | | |||
| | | +------------------------+ | | | +------------------------+ | |||
| | | +------------------------+ | | | +------------------------+ | |||
| skipping to change at line 1800 ¶ | skipping to change at line 1661 ¶ | |||
| | +-------+ | | +-------+ | |||
| | +-------+ | | +-------+ | |||
| +-+SR/SRv6| | +-+SR/SRv6| | |||
| | +-------+ | | +-------+ | |||
| | +-------+ | | +-------+ | |||
| +-+ISIS-SR| | +-+ISIS-SR| | |||
| | +-------+ | | +-------+ | |||
| | +-------+ | | +-------+ | |||
| +-+OSPF-SR| | +-+OSPF-SR| | |||
| +-------+]]></artwork> | +-------+]]></artwork> | |||
| </figure></t> | </figure> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Model Composition</name> | ||||
| <section title="Model Composition"> | <dl newline="true"> | |||
| <t><list style="symbols"> | ||||
| <t>Logical Network Element Model<vspace blankLines="1" /><xref | ||||
| target="RFC8530"></xref> defines a logical network element | ||||
| module which 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.</t> | ||||
| <t>Network Instance Model<vspace blankLines="1" /><xref | <dt>Logical Network Element Model: | |||
| target="RFC8529"></xref> defines a network instance module. This | </dt> | |||
| module can be used to manage the virtual resource partitioning | <dd><xref target="RFC8530" format="default"/> defines a logical network | |||
| that may be present on a network device. Examples of common | element model that can be used to manage the logical resource partitioning | |||
| industry terms for virtual resource partitioning are VRF | that may be present on a network device. Examples of common industry terms for | |||
| instances and Virtual Switch Instances (VSIs).</t> | logical resource partitioning are Logical Systems or Logical Routers. | |||
| </list></t> | </dd> | |||
| </section> | ||||
| <section title="Device Management "> | <dt>Network Instance Model: | |||
| <t>The following list enumerates some YANG modules that can be used | </dt> | |||
| for device management:</t> | <dd><xref target="RFC8529" format="default"/> 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). | ||||
| </dd> | ||||
| <t><list style="symbols"> | </dl> | |||
| <t><xref target="RFC8348"></xref>: defines a YANG module for the | ||||
| management of hardware.</t> | ||||
| <t><xref target="RFC7317"></xref>: defines the "ietf-system" | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Device Management</name> | ||||
| <t>The following list enumerates some YANG modules that can be used | ||||
| for device management:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <xref target="RFC8348" format="default"/> defines a YANG module fo | ||||
| r the | ||||
| management of hardware.</li> | ||||
| <li> | ||||
| <xref target="RFC7317" format="default"/> defines the "ietf-system | ||||
| " | ||||
| YANG module that provides many features such as the | YANG module that provides many features such as the | |||
| configuration and the monitoring of system or system control | configuration and the monitoring of system or system control | |||
| operations (e.g., shutdown, restart, setting time) | operations (e.g., shutdown, restart, and setting time) | |||
| identification.</t> | identification.</li> | |||
| <li> | ||||
| <t><xref target="RFC8341"></xref>: defines a network | <xref target="RFC8341" format="default"/> defines a network | |||
| configuration access control YANG module.</t> | configuration access control YANG module.</li> | |||
| </list></t> | </ul> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Interface Management"> | <name>Interface Management</name> | |||
| <t>The following provides some YANG modules that can be used for | <t>The following provides some YANG modules that can be used for | |||
| interface management:</t> | interface management:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li> | |||
| <t><xref target="RFC7224"></xref>: defines a YANG module for | <xref target="RFC7224" format="default"/> defines a YANG module fo | |||
| interface type definitions.</t> | r | |||
| interface type definitions.</li> | ||||
| <t><xref target="RFC8343"></xref>: defines a YANG module for the | <li> | |||
| management of network interfaces.</t> | <xref target="RFC8343" format="default"/> defines a YANG module fo | |||
| </list></t> | r the | |||
| management of network interfaces.</li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="sample" numbered="true" toc="default"> | ||||
| <section anchor="sample" title="Some Device Model Examples"> | <name>Some Device Model Examples</name> | |||
| <t>The following provides an overview of some device models that can | <t>The following provides an overview of some device models that can | |||
| be used within a network. This list is not comprehensive.<list | be used within a network. This list is not comprehensive.</t> | |||
| hangIndent="11" style="hanging"> | <dl newline="true" spacing="normal"> | |||
| <t hangText="L2VPN:"><xref | <dt>L2VPN:</dt> | |||
| target="I-D.ietf-bess-l2vpn-yang"></xref> defines a YANG module | <dd> | |||
| for MPLS based Layer 2 VPN services (L2VPN) <xref | <xref target="I-D.ietf-bess-l2vpn-yang" format="default"/> | |||
| target="RFC4664"></xref> and includes switching between the | defines a YANG module for MPLS-based Layer 2 VPN services | |||
| local attachment circuits. The L2VPN model covers point-to-point | (L2VPN) <xref target="RFC4664" format="default"/> and includes | |||
| VPWS and Multipoint VPLS services. These services use signaling | switching between the local attachment circuits. The L2VPN model | |||
| of Pseudowires across MPLS networks using LDP <xref | covers point-to-point Virtual Private Wire Service (VPWS) and | |||
| target="RFC8077"></xref><xref target="RFC4762"></xref> or BGP | Multipoint Virtual Private LAN Service (VPLS). These | |||
| <xref target="RFC4761"></xref>.</t> | services use signaling of Pseudowires across MPLS networks using | |||
| LDP <xref target="RFC8077" format="default"/><xref | ||||
| <t hangText="EVPN:"><xref | target="RFC4762" format="default"/> or BGP <xref | |||
| target="I-D.ietf-bess-evpn-yang"></xref> defines a YANG module | target="RFC4761" format="default"/>.</dd> | |||
| for Ethernet VPN services. The model is agnostic of the | <dt>EVPN:</dt> | |||
| underlay. It applies to MPLS as well as to VxLAN encapsulation. | <dd> | |||
| <xref target="I-D.ietf-bess-evpn-yang" format="default"/> | ||||
| defines a YANG module for Ethernet VPN services. The model is | ||||
| agnostic of the underlay. It applies to MPLS as well as to | ||||
| Virtual eXtensible Local Area Network (VxLAN) encapsulation. | ||||
| The module is also agnostic to the services, including E-LAN, | The module is also agnostic to the services, including E-LAN, | |||
| E-LINE, and E-TREE services.</t> | E-LINE, and E-TREE services.</dd> | |||
| <dt>L3VPN:</dt> | ||||
| <t hangText="L3VPN:"><xref | <dd> | |||
| target="I-D.ietf-bess-l3vpn-yang"></xref> defines a YANG module | <xref target="I-D.ietf-bess-l3vpn-yang" format="default"/> | |||
| that can be used to configure and manage BGP L3VPNs <xref | defines a YANG module that can be used to configure and manage | |||
| target="RFC4364"></xref>. It contains VRF specific parameters as | BGP L3VPNs <xref target="RFC4364" format="default"/>. It | |||
| well as BGP specific parameters applicable for L3VPNs.</t> | contains VRF-specific parameters as well as BGP-specific | |||
| parameters applicable for L3VPNs.</dd> | ||||
| <t hangText="Core Routing:"><xref target="RFC8349"></xref> | <dt>Core Routing:</dt> | |||
| <dd> | ||||
| <xref target="RFC8349" format="default"/> | ||||
| defines the core routing YANG data model, which is intended as a | defines the core routing YANG data model, which is intended as a | |||
| basis for future data model development covering | basis for future data model development covering | |||
| more-sophisticated routing systems. It is expected that other | more-sophisticated routing systems. It is expected that other | |||
| Routing technology YANG modules (e.g., VRRP, RIP, ISIS, OSPF | Routing technology YANG modules (e.g., VRRP, RIP, ISIS, or OSPF | |||
| models) will augment the Core Routing base YANG module.</t> | models) will augment the Core Routing base YANG module.</dd> | |||
| <dt>MPLS:</dt> | ||||
| <t hangText="MPLS:"><xref | <dd> | |||
| target="I-D.ietf-mpls-base-yang"></xref> defines a base model | <xref target="RFC8960" format="default"/> defines a base model | |||
| for MPLS which serves as a base framework for configuring and | for MPLS that serves as a base framework for configuring and | |||
| managing an MPLS switching subsystem. It is expected that other | managing an MPLS switching subsystem. It is expected that other | |||
| MPLS technology YANG modules (e.g., MPLS LSP Static, LDP, or | MPLS technology YANG modules (e.g., MPLS LSP Static, LDP, or | |||
| RSVP-TE models) will augment the MPLS base YANG module.</t> | RSVP-TE models) will augment the MPLS base YANG module.</dd> | |||
| <dt>BGP:</dt> | ||||
| <t hangText="BGP:"><xref target="I-D.ietf-idr-bgp-model"></xref> | <dd> | |||
| <xref target="I-D.ietf-idr-bgp-model" format="default"/> | ||||
| defines a YANG module for configuring and managing BGP, | defines a YANG module for configuring and managing BGP, | |||
| including protocol, policy, and operational aspects based on | including protocol, policy, and operational aspects based on | |||
| data center, carrier, and content provider operational | data center, carrier, and content provider operational | |||
| requirements.</t> | requirements.</dd> | |||
| <dt>Routing Policy:</dt> | ||||
| <t hangText="Routing Policy:"><xref | <dd> | |||
| target="I-D.ietf-rtgwg-policy-model"></xref> defines a YANG | <xref target="I-D.ietf-rtgwg-policy-model" format="default"/> defi | |||
| nes a YANG | ||||
| module for configuring and managing routing policies based on | module for configuring and managing routing policies based on | |||
| operational practice. The module provides a generic policy | operational practice. The module provides a generic policy | |||
| framework which can be augmented with protocol-specific policy | framework that can be augmented with protocol-specific policy | |||
| configuration.</t> | configuration.</dd> | |||
| <dt>SR/SRv6:</dt> | ||||
| <t hangText="SR/SRv6:"><xref | <dd> | |||
| target="I-D.ietf-spring-sr-yang"></xref> a YANG module for | <t><xref target="I-D.ietf-spring-sr-yang" format="default"/> | |||
| segment routing configuration and operation. <vspace | defines a YANG module for segment routing configuration and | |||
| blankLines="1" /></t> | operation. </t> | |||
| <t/> | ||||
| <t hangText="BFD:">Bidirectional Forwarding Detection (BFD) | </dd> | |||
| <xref target="RFC5880"></xref> is a network protocol which is | <dt>BFD:</dt> | |||
| <dd>Bidirectional Forwarding Detection (BFD) | ||||
| <xref target="RFC5880" format="default"/> is a network protocol th | ||||
| at is | ||||
| used for liveness detection of arbitrary paths between systems. | used for liveness detection of arbitrary paths between systems. | |||
| <xref target="I-D.ietf-bfd-yang"></xref> defines a YANG module | <xref target="I-D.ietf-bfd-yang" format="default"/> defines a YANG | |||
| that can be used to configure and manage BFD.</t> | module | |||
| that can be used to configure and manage BFD.</dd> | ||||
| <t hangText="Multicast:"><xref | <dt>Multicast:</dt> | |||
| target="I-D.ietf-pim-yang"></xref> defines a YANG module that | <dd> | |||
| <t><xref target="I-D.ietf-pim-yang" format="default"/> defines a Y | ||||
| ANG module that | ||||
| can be used to configure and manage Protocol Independent | can be used to configure and manage Protocol Independent | |||
| Multicast (PIM) devices.<vspace blankLines="1" /><xref | Multicast (PIM) devices.</t> | |||
| target="RFC8652"></xref> defines a YANG module that can be used | <t><xref target="RFC8652" format="default"/> defines a YANG module | |||
| that can be used | ||||
| to configure and manage Internet Group Management Protocol | to configure and manage Internet Group Management Protocol | |||
| (IGMP) and Multicast Listener Discovery (MLD) devices.<vspace | (IGMP) and Multicast Listener Discovery (MLD) devices.</t> | |||
| blankLines="1" /><xref | <t><xref target="I-D.ietf-pim-igmp-mld-snooping-yang" format="defa | |||
| target="I-D.ietf-pim-igmp-mld-snooping-yang"></xref> defines a | ult"/> defines a | |||
| YANG module that can be used to configure and manage Internet | YANG module that can be used to configure and manage Internet | |||
| Group Management Protocol (IGMP) and Multicast Listener | Group Management Protocol (IGMP) and Multicast Listener | |||
| Discovery (MLD) Snooping devices.<vspace blankLines="1" /><xref | Discovery (MLD) snooping devices.</t> | |||
| target="I-D.ietf-bess-mvpn-yang"></xref> defines a YANG data | <t><xref target="I-D.ietf-bess-mvpn-yang" format="default"/> defin | |||
| es a YANG data | ||||
| model to configure and manage Multicast in MPLS/BGP IP VPNs | model to configure and manage Multicast in MPLS/BGP IP VPNs | |||
| (MVPNs).</t> | (MVPNs).</t> | |||
| </dd> | ||||
| <t hangText="PM:"><xref | <dt>PM:</dt> | |||
| target="I-D.ietf-ippm-twamp-yang"></xref> defines a YANG data | <dd> | |||
| <t><xref target="I-D.ietf-ippm-twamp-yang" format="default"/> defi | ||||
| nes a YANG data | ||||
| model for client and server implementations of the Two-Way | model for client and server implementations of the Two-Way | |||
| Active Measurement Protocol (TWAMP).<vspace | Active Measurement Protocol (TWAMP).</t> | |||
| blankLines="1" /><xref target="I-D.ietf-ippm-stamp-yang"></xref> | <t><xref target="I-D.ietf-ippm-stamp-yang" format="default"/> | |||
| defines the data model for implementations of Session-Sender and | defines the data model for implementations of Session-Sender and | |||
| Session-Reflector for Simple Two-way Active Measurement Protocol | Session-Reflector for Simple Two-way Active Measurement Protocol | |||
| (STAMP) mode using YANG. <vspace blankLines="1" /><xref | (STAMP) mode using YANG. </t> | |||
| target="RFC8194"></xref> defines a YANG data model for | <t><xref target="RFC8194" format="default"/> defines a YANG data m | |||
| odel for | ||||
| Large-Scale Measurement Platforms (LMAPs).</t> | Large-Scale Measurement Platforms (LMAPs).</t> | |||
| </dd> | ||||
| <t hangText="ACL:">Access Control List (ACL) is one of the basic | <dt>ACL:</dt> | |||
| elements used to configure device forwarding behavior. It is | <dd>An Access Control List (ACL) is one of the basic | |||
| used in many networking technologies such as Policy Based | elements used to configure device-forwarding behavior. It is | |||
| Routing, firewalls, etc. <xref target="RFC8519"></xref> | used in many networking technologies such as Policy-Based | |||
| describes a YANG data model of ACL basic building blocks.</t> | Routing, firewalls, etc. <xref target="RFC8519" format="default"/> | |||
| describes a YANG data model of ACL basic building blocks.</dd> | ||||
| <t hangText="QoS:"><xref | <dt>QoS:</dt> | |||
| target="I-D.ietf-rtgwg-qos-model"></xref> describes a YANG | <dd> | |||
| <xref target="I-D.ietf-rtgwg-qos-model" format="default"/> describ | ||||
| es a YANG | ||||
| module of Differentiated Services for configuration and | module of Differentiated Services for configuration and | |||
| operations.</t> | operations.</dd> | |||
| <dt>NAT:</dt> | ||||
| <t hangText="NAT:">For the sake of network automation and the | <dd> | |||
| need for programming Network Address Translation (NAT) function | <t>For the sake of network automation and the need for | |||
| in particular, a YANG data model for configuring and managing | programming the Network Address Translation (NAT) function in | |||
| the NAT is essential.<vspace blankLines="1" /><xref | particular, a YANG data model for configuring and managing the | |||
| target="RFC8512"></xref> defines a YANG module for the NAT | NAT is essential.</t> | |||
| <t><xref target="RFC8512" format="default"/> defines a YANG module | ||||
| for the NAT | ||||
| function covering a variety of NAT flavors such as Network | function covering a variety of NAT flavors such as Network | |||
| Address Translation from IPv4 to IPv4 (NAT44), Network Address | Address Translation from IPv4 to IPv4 (NAT44), Network Address | |||
| and Protocol Translation from IPv6 Clients to IPv4 Servers | and Protocol Translation from IPv6 Clients to IPv4 Servers | |||
| (NAT64), customer-side translator (CLAT), Stateless IP/ICMP | (NAT64), customer-side translator (CLAT), Stateless IP/ICMP | |||
| Translation (SIIT), Explicit Address Mappings (EAM) for SIIT, | Translation (SIIT), Explicit Address Mappings (EAMs) for SIIT, | |||
| IPv6-to-IPv6 Network Prefix Translation (NPTv6), and Destination | IPv6-to-IPv6 Network Prefix Translation (NPTv6), and Destination | |||
| NAT. <vspace blankLines="1" /><xref target="RFC8513"></xref> | NAT. </t> | |||
| specifies a DS-Lite YANG module.</t> | <t><xref target="RFC8513" format="default"/> | |||
| specifies a Dual-Stack Lite (DS-Lite) YANG module.</t> | ||||
| <t hangText="Stateless Address Sharing:"><xref | </dd> | |||
| target="RFC8676"></xref> specifies a YANG module for A+P address | <dt>Stateless Address Sharing:</dt> | |||
| sharing, including Lightweight 4over6, Mapping of Address and | <dd> | |||
| Port with Encapsulation (MAP-E), and Mapping of Address and Port | <xref target="RFC8676" format="default"/> specifies a YANG | |||
| using Translation (MAP-T) softwire mechanisms.</t> | module for Address plus Port (A+P) address sharing, including | |||
| </list></t> | Lightweight 4over6, Mapping of Address and Port with | |||
| Encapsulation (MAP-E), and Mapping of Address and Port using | ||||
| Translation (MAP-T) softwire mechanisms.</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="ack" numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>Thanks to <contact fullname="Joe Clark"/>, <contact fullname="Greg | ||||
| Mirsky"/>, <contact fullname="Shunsuke Homma"/>, <contact fullname="Brian | ||||
| Carpenter"/>, | ||||
| <contact fullname="Adrian Farrel"/>, <contact fullname="Christian | ||||
| Huitema"/>, <contact fullname="Tommy Pauly"/>, <contact fullname="Ines | ||||
| Robles"/>, and <contact fullname="Olivier | ||||
| Augizeau"/> for the review.</t> | ||||
| <t>Many thanks to <contact fullname="Robert Wilton"/> for the detailed AD | ||||
| review.</t> | ||||
| <t>Thanks to <contact fullname="Éric Vyncke"/>, <contact fullname="Roman | ||||
| Danyliw"/>, <contact fullname="Erik Kline"/>, and <contact fullname="Benja | ||||
| min | ||||
| Kaduk"/> for the IESG review.</t> | ||||
| </section> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Contributors</name> | ||||
| <contact fullname="Christian Jacquenet"> | ||||
| <organization>Orange</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <city>Rennes, 35000</city> | ||||
| <country>France</country> | ||||
| </postal> | ||||
| <email>Christian.jacquenet@orange.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Luis Miguel Contreras Murillo"> | ||||
| <organization>Telefonica</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>luismiguel.contrerasmurillo@telefonica.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Oscar Gonzalez de Dios"> | ||||
| <organization>Telefonica</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city>Madrid</city> | ||||
| <country>Spain</country> | ||||
| </postal> | ||||
| <email>oscar.gonzalezdedios@telefonica.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Weiqiang Cheng"> | ||||
| <organization>China Mobile</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>chengweiqiang@chinamobile.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Young Lee"> | ||||
| <organization>Sung Kyun Kwan University</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street></street> | ||||
| <city></city> | ||||
| <country></country> | ||||
| </postal> | ||||
| <email>younglee.tx@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 311 change blocks. | ||||
| 1267 lines changed or deleted | 1354 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||