rfc9408xml2.original.xml | rfc9408.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!-- This template is for creating an Internet Draft using xml2rfc, | ||||
which is available here: http://xml.resource.org. --> | <!DOCTYPE rfc [ | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!ENTITY nbsp " "> | |||
<!-- One method to get references from the online citation libraries. | <!ENTITY zwsp "​"> | |||
There has to be one entity for each item to be referenced. | <!ENTITY nbhy "‑"> | |||
An alternate method (rfc include) is described in the references. --> | <!ENTITY wj "⁠"> | |||
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.2119.xml"> | ||||
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.6241.xml"> | ||||
<!ENTITY RFC7950 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.7950.xml"> | ||||
<!ENTITY RFC7149 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.7149.xml"> | ||||
<!ENTITY RFC7426 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.7426.xml"> | ||||
<!ENTITY RFC8299 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.8299.xml"> | ||||
<!ENTITY RFC8309 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.8309.xml"> | ||||
<!ENTITY RFC8340 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.8340.xml"> | ||||
<!ENTITY RFC8453 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.8453.xml"> | ||||
<!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.8174.xml"> | ||||
<!ENTITY RFC8345 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
.8345.xml"> | ||||
]> | ]> | |||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
<!-- used by XSLT processors --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
<!-- For a complete list and description of processing instructions (PIs), | std" consensus="true" docName="draft-ietf-opsawg-sap-15" number="9408" ipr="trus | |||
please see http://xml.resource.org/authoring/README.html. --> | t200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" sy | |||
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | mRefs="true" sortRefs="true" version="3"> | |||
might want to use. | ||||
(Here they are set differently than their defaults in xml2rfc v1.32) --> | <!-- xml2rfc v2v3 conversion 3.16.0 --> | |||
<?rfc strict="yes" ?> | ||||
<!-- give errors regarding ID-nits and DTD validation --> | ||||
<!-- control the table of contents (ToC) --> | ||||
<?rfc toc="yes"?> | ||||
<!-- generate a ToC --> | ||||
<?rfc tocdepth="4"?> | ||||
<!-- the number of levels of subsections in ToC. default: 3 --> | ||||
<!-- control references --> | ||||
<?rfc symrefs="yes"?> | ||||
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
<?rfc sortrefs="yes" ?> | ||||
<!-- sort the reference entries alphabetically --> | ||||
<!-- control vertical white space | ||||
(using these PIs as follows is recommended by the RFC Editor) --> | ||||
<?rfc compact="yes" ?> | ||||
<!-- do not start each main section on a new page --> | ||||
<?rfc subcompact="no" ?> | ||||
<!-- keep one blank line between list items --> | ||||
<!-- end of list of popular I-D processing instructions --> | ||||
<rfc category="std" docName="draft-ietf-opsawg-sap-15" ipr="trust200902"> | ||||
<front> | <front> | |||
<title abbrev="A YANG Model for SAPs">A YANG Network Model for Service | <title abbrev="A YANG Network Data Model for SAPs">A YANG Network Data Model for Service | |||
Attachment Points (SAPs)</title> | Attachment Points (SAPs)</title> | |||
<seriesInfo name="RFC" value="9408"/> | ||||
<author fullname="Mohamed Boucadair" initials="M." role="editor" | <author fullname="Mohamed Boucadair" initials="M." role="editor" surname="Bo | |||
surname="Boucadair"> | ucadair"> | |||
<organization>Orange</organization> | <organization>Orange</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city/> | ||||
<city></city> | <region/> | |||
<code/> | ||||
<region></region> | ||||
<code></code> | ||||
<country>France</country> | <country>France</country> | |||
</postal> | </postal> | |||
<phone></phone> | ||||
<email>mohamed.boucadair@orange.com</email> | <email>mohamed.boucadair@orange.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Oscar Gonzalez de Dios" initials="O" surname="Gonzalez de | ||||
<author fullname="Oscar Gonzalez de Dios" initials="O" | Dios"> | |||
surname="Gonzalez de Dios"> | ||||
<organization>Telefonica</organization> | <organization>Telefonica</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city>Madrid</city> | <city>Madrid</city> | |||
<region/> | ||||
<region></region> | <code/> | |||
<code></code> | ||||
<country>Spain</country> | <country>Spain</country> | |||
</postal> | </postal> | |||
<phone></phone> | ||||
<email>oscar.gonzalezdedios@telefonica.com</email> | <email>oscar.gonzalezdedios@telefonica.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Samier Barguil" initials="S." surname="Barguil"> | <author fullname="Samier Barguil" initials="S." surname="Barguil"> | |||
<organization>Nokia</organization> | <organization>Nokia</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city>Madrid</city> | <city>Madrid</city> | |||
<region/> | ||||
<region></region> | <code/> | |||
<code></code> | ||||
<country>Spain</country> | <country>Spain</country> | |||
</postal> | </postal> | |||
<phone></phone> | ||||
<facsimile></facsimile> | ||||
<email>samier.barguil_giraldo@nokia.com</email> | <email>samier.barguil_giraldo@nokia.com</email> | |||
<uri></uri> | ||||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Qin Wu" initials="Q." surname="Wu"> | <author fullname="Qin Wu" initials="Q." surname="Wu"> | |||
<organization>Huawei</organization> | <organization>Huawei</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>101 Software Avenue, Yuhua District</street> | <extaddr>Yuhua District</extaddr> | |||
<street>101 Software Avenue</street> | ||||
<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="Victor Lopez" initials="V." surname="Lopez"> | <author fullname="Victor Lopez" initials="V." surname="Lopez"> | |||
<organization>Nokia</organization> | <organization>Nokia</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> | |||
<phone></phone> | ||||
<facsimile></facsimile> | ||||
<email>victor.lopez@nokia.com</email> | <email>victor.lopez@nokia.com</email> | |||
<uri></uri> | ||||
</address> | </address> | |||
</author> | </author> | |||
<date year="2023" month="June" /> | ||||
<date year="" /> | ||||
<area>ops</area> | <area>ops</area> | |||
<workgroup>opsawg</workgroup> | ||||
<workgroup>OPSAWG</workgroup> | ||||
<keyword>Service Infrastructure</keyword> | <keyword>Service Infrastructure</keyword> | |||
<keyword>User Network Interface</keyword> | <keyword>User Network Interface</keyword> | |||
<keyword>UNI</keyword> | <keyword>UNI</keyword> | |||
<keyword>NNI</keyword> | <keyword>NNI</keyword> | |||
<keyword>Network-to-Network Interface</keyword> | <keyword>Network-to-Network Interface</keyword> | |||
<keyword>Inter-AS VPN</keyword> | <keyword>Inter-AS VPN</keyword> | |||
<keyword>CE</keyword> | <keyword>CE</keyword> | |||
<keyword>PE</keyword> | <keyword>PE</keyword> | |||
<keyword>Attachment Circuit</keyword> | <keyword>Attachment Circuit</keyword> | |||
<keyword>Service Delivery Point</keyword> | <keyword>Service Delivery Point</keyword> | |||
<keyword>Automation</keyword> | <keyword>Automation</keyword> | |||
<keyword>Service Delivery</keyword> | <keyword>Service Delivery</keyword> | |||
<abstract> | <abstract> | |||
<t>This document defines a YANG data model for representing an abstract | <t>This document defines a YANG data model for representing an abstract | |||
view of the provider network topology that contains the points from | view of the provider network topology that contains the points from | |||
which its services can be attached (e.g., basic connectivity, VPN, | which its services can be attached (e.g., basic connectivity, VPN, | |||
network slices). Also, the model can be used to retrieve the points | network slices). Also, the model can be used to retrieve the points | |||
where the services are actually being delivered to customers (including | where the services are actually being delivered to customers (including | |||
peer networks).</t> | peer networks).</t> | |||
<t>This document augments the 'ietf-network' data model defined in RFC 834 | ||||
<t>This document augments the 'ietf-network' data model by adding the | 5 | |||
concept of Service Attachment Points (SAPs). The SAPs are the network | by adding the concept of Service Attachment Points (SAPs). The SAPs are th | |||
reference points to which network services, such as Layer 3 Virtual | e | |||
network reference points to which network services, such as Layer 3 Virtua | ||||
l | ||||
Private Network (L3VPN) or Layer 2 Virtual Private Network (L2VPN), can | Private Network (L3VPN) or Layer 2 Virtual Private Network (L2VPN), can | |||
be attached. One or multiple services can be bound to the same SAP. Both | be attached. One or multiple services can be bound to the same SAP. Both | |||
User-Network Interface (UNI) and Network-to-Network Interface (NNI) are | User-to-Network Interface (UNI) and Network-to-Network Interface (NNI) are | |||
supported in the SAP data model.</t> | supported in the SAP data model.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="Introduction" title="Introduction"> | <section anchor="Introduction" numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<t>Service providers offer a variety of network services to their | <t>Service providers offer a variety of network services to their | |||
customers. Such services include, but are not limited to, Virtual | customers. Such services include, but are not limited to, Virtual | |||
Private Networks (VPNs), Software-Defined Wide Area Network (SDWAN) | Private Networks (VPNs), Software-Defined Wide-Area Network (SD-WAN) overl | |||
<xref target="I-D.ietf-bess-bgp-sdwan-usage"></xref>, and network slices | ay networks | |||
<xref target="I-D.ietf-teas-ietf-network-slices"></xref>. In order to | <xref target="BGP-SDWAN-USAGE" format="default"/>, and network slices | |||
<xref target="IETF-NETWORK-SLICES" format="default"/>. In order to | ||||
rationalize the overall service operations and allow for more automated | rationalize the overall service operations and allow for more automated | |||
service provisioning procedures, service providers need to maintain a | service provisioning procedures, service providers need to maintain a | |||
view on where services can be delivered to customers. Such a view can be | view on where services can be delivered to customers. For example, such a | |||
used, e.g., to feed an intelligence that is responsible for service | view can be | |||
used to feed an intelligence entity that is responsible for service | ||||
order handling, service feasibility checks, tracking per-service | order handling, service feasibility checks, tracking per-service | |||
coverage, etc. (e.g., Section 3.2 of <xref target="RFC8969"></xref>). To | coverage, etc. (e.g., <xref target="RFC8969" sectionFormat="of" section="3 .2"/>). To | |||
that aim, this document introduces the concept of Service Attachment | that aim, this document introduces the concept of Service Attachment | |||
Points (SAPs).</t> | Points (SAPs).</t> | |||
<t>The SAPs represent the network reference points where network | <t>The SAPs represent the network reference points where network | |||
services can be delivered to customers. For example, this concept is | services can be delivered to customers. For example, this concept is | |||
used to decide where to attach and, thus, deliver the service in the | used to decide where to attach and thus deliver the service in the | |||
Layer 3 VPN Service Model (L3SM) <xref target="RFC8299"></xref> and the | Layer 3 VPN Service Model (L3SM) <xref target="RFC8299" format="default"/> | |||
Layer 2 VPN Service Model (L2SM) <xref target="RFC8466"></xref>. It can | and the | |||
Layer 2 VPN Service Model (L2SM) <xref target="RFC8466" format="default"/> | ||||
. It can | ||||
also be used to retrieve where such services are delivered to customers | also be used to retrieve where such services are delivered to customers | |||
through the network configuration described in the Layer 3 VPN Network | through the network configuration described in the Layer 3 VPN Network | |||
Model (L3NM) <xref target="RFC9182"></xref> and the Layer 2 VPN Network | Model (L3NM) <xref target="RFC9182" format="default"/> and the Layer 2 VPN | |||
Model (L2NM) <xref target="RFC9291"></xref>.</t> | Network | |||
Model (L2NM) <xref target="RFC9291" format="default"/>.</t> | ||||
<t>This document defines a YANG network model (<xref | <t>This document defines a YANG network model (<xref target="mod" format=" | |||
target="mod"></xref>) for representing, managing, and controlling the | default"/>) for representing, managing, and controlling the | |||
SAPs. The data model augments the 'ietf-network' module <xref | SAPs. The data model augments the 'ietf-network' module <xref target="RFC8 | |||
target="RFC8345"></xref> by adding the concept of SAPs. <xref | 345" format="default"/> by adding the concept of SAPs. <xref target="usage" form | |||
target="usage"></xref> provides a sample usage of the model. This | at="default"/> provides a sample usage of the model. This | |||
document explains the scope and purpose of a SAP network model and its | document explains the scope and purpose of a SAP network model and its | |||
relation with other models (<xref target="rel"></xref>).</t> | relationship to other models (<xref target="rel" format="default"/>).</t> | |||
<t>A network may support multiple services, potentially of different | <t>A network may support multiple services, potentially of different | |||
types. Whether a SAP topology is dedicated to services of a specific | types. Whether a SAP topology is dedicated to services of a specific | |||
service type, an individual service, or shared among many services of | service type or an individual service, or is shared among many services of | |||
different types is deployment specific. This document supports all of | different types, is deployment specific. This document supports all of | |||
these deployment schemes.</t> | these deployment schemes.</t> | |||
<t>This document does not make any assumptions about the services | ||||
<t>This document does not make any assumption about the services | ||||
provided by a network to its users. VPN services (e.g., Layer 3 Virtual | provided by a network to its users. VPN services (e.g., Layer 3 Virtual | |||
Private Network (L3VPN) or Layer 2 Virtual Private Network (L2VPN)) | Private Network (L3VPN) or Layer 2 Virtual Private Network (L2VPN)) | |||
<xref target="RFC4026"></xref> are used for illustration purposes | <xref target="RFC4026" format="default"/> are used for illustration purpos | |||
(Appendices <xref format="counter" target="app1"></xref> and <xref | es | |||
format="counter" target="sample"></xref>).</t> | (Appendices <xref format="counter" target="app1"/> and <xref format=" | |||
counter" target="sample"/>).</t> | ||||
<t>Given that User-Network Interface (UNI) and Network-to-Network | <t>Given that User-to-Network Interface (UNI) and Network-to-Network | |||
Interface (NNI) are reference points that are widely used by operators | Interface (NNI) are reference points that are widely used by operators | |||
to indicate the demarcation points when delivering services, both UNI | to indicate the demarcation points when delivering services, both UNI | |||
and NNI SAPs are supported in the document. The reader may refer, e.g., | and NNI SAPs are supported in this document. The reader may refer | |||
to <xref target="MEF6"></xref>, <xref target="MEF17"></xref>, <xref | to <xref target="MEF6" format="default"/>, <xref target="MEF17" format="de | |||
target="RFC6004"></xref>, or <xref target="RFC6215"></xref> for a | fault"/>, <xref target="RFC6004" format="default"/>, or <xref target="RFC6215" f | |||
discussion on the use of UNI and NNI reference points. An example of NNI | ormat="default"/> for examples of | |||
usage in a VPN context is provided in <xref target="nniapp"></xref>.</t> | discussions regarding the use of UNI and NNI reference points. An example | |||
of NNI | ||||
<t>The YANG data model in <xref target="mod"></xref> conforms to the | usage in a VPN context is provided in <xref target="nniapp" format="defaul | |||
Network Management Datastore Architecture (NMDA) <xref | t"/>.</t> | |||
target="RFC8342"></xref>.</t> | <t>The YANG data model in <xref target="mod" format="default"/> conforms t | |||
o the | ||||
Network Management Datastore Architecture (NMDA) <xref target="RFC8342" fo | ||||
rmat="default"/>.</t> | ||||
</section> | </section> | |||
<section anchor="terminology" numbered="true" toc="default"> | ||||
<section anchor="terminology" title="Terminology"> | <name>Terminology</name> | |||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
"OPTIONAL" in this document are to be interpreted as described in BCP 14 | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
<xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and | "<bcp14>SHOULD NOT</bcp14>", | |||
only when, they appear in all capitals, as shown here.</t> | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | ||||
are to be interpreted as described in BCP 14 | ||||
<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
when, they appear in all capitals, as shown here.</t> | ||||
<t>This document assumes that the reader is familiar with the contents | <t>This document assumes that the reader is familiar with the contents | |||
of <xref target="RFC6241"></xref>, <xref target="RFC7950"></xref>, <xref | of <xref target="RFC6241" format="default"/>, <xref target="RFC7950" forma | |||
target="RFC8345"></xref>, and <xref target="RFC8309"></xref>. The | t="default"/>, <xref target="RFC8345" format="default"/>, and <xref target="RFC8 | |||
document uses terms from those documents.</t> | 309" format="default"/>, as it uses terms from those RFCs.</t> | |||
<t>The meanings of the symbols in tree diagrams are defined in <xref targe | ||||
<t>The meanings of the symbols in tree diagrams are defined in <xref | t="RFC8340" format="default"/>.</t> | |||
target="RFC8340"></xref>.</t> | <t>This document uses the term "network model" as defined in | |||
<xref target="RFC8969" sectionFormat="of" section="2.1"/>.</t> | ||||
<t>This document uses the term "network model" defined in Section 2.1 of | <t>This document uses the following terms:</t> | |||
<xref target="RFC8969"></xref>.</t> | <dl newline="false" spacing="normal"> | |||
<dt>Service provider: </dt> | ||||
<t>This document uses the following terms:<list style="hanging"> | <dd>The organization responsible for | |||
<t hangText="Service provider: ">The organization responsible for | ||||
operating the network that offers a service (e.g., a VPN) to | operating the network that offers a service (e.g., a VPN) to | |||
customers.</t> | customers.</dd> | |||
<dt>Attachment Circuit (AC):</dt> | ||||
<t hangText="Attachment Circuit (AC):">A channel that connects a | <dd>A channel that connects a | |||
Customer Edge (CE) to a Provider Edge (PE). The AC may be a physical | Customer Edge (CE) to a Provider Edge (PE).</dd> | |||
or logical link (Section 6.1 of <xref target="RFC4026"></xref>).</t> | <dt>Customer Edge (CE): </dt> | |||
<dd>Equipment that is dedicated to a | ||||
<t hangText="Customer Edge (CE): ">Equipment that is dedicated to a | ||||
particular customer and is directly connected to one or more PEs via | particular customer and is directly connected to one or more PEs via | |||
ACs. A CE is usually located at the customer premises. A CE may be | ACs. A CE is usually located at the customer premises. A CE may be | |||
dedicated to a single service (e.g., L3VPN), although it may support | dedicated to a single service (e.g., an L3VPN), although it may suppor | |||
multiple VPNs if each one has separate attachment circuits. A CE can | t | |||
be a router, a bridge, a switch, etc.</t> | multiple VPNs if each one has separate ACs. A CE can | |||
be a router, a bridge, a switch, etc.</dd> | ||||
<t hangText="Provider Edge (PE): ">Equipment owned and managed by | <dt>Provider Edge (PE): </dt> | |||
<dd>Equipment owned and managed by | ||||
the service provider that can support multiple services (e.g., VPNs) | the service provider that can support multiple services (e.g., VPNs) | |||
for different customers. A PE is directly connected to one or more | for different customers. A PE is directly connected to one or more | |||
CEs via ACs.</t> | CEs via ACs.</dd> | |||
<dt>Service Attachment Points (SAPs):</dt> | ||||
<t hangText="Service Attachment Points (SAPs):">An abstraction of | <dd>An abstraction of | |||
the network reference points (e.g., PE side of an AC, CE side of an | the network reference points (e.g., the PE side of an AC, or the CE si | |||
de of an | ||||
AC for a provider-managed CE) where network services can be | AC for a provider-managed CE) where network services can be | |||
delivered and/or are delivered to customers. A SAP can be bound to | delivered and/or are delivered to customers. A SAP can be bound to | |||
one or multiple ACs.</t> | one or multiple ACs.</dd> | |||
</list></t> | </dl> | |||
</section> | </section> | |||
<section anchor="usage" numbered="true" toc="default"> | ||||
<section anchor="usage" title="Sample SAP Network Model Usage"> | <name>Sample SAP Network Model Usage</name> | |||
<t>Management operations of a service provider network can be automated | <t>A service provider network's management operations can be automated | |||
using a variety of means such as interfaces based on YANG modules <xref | using a variety of means such as interfaces based on YANG modules <xref ta | |||
target="RFC8969"></xref><xref target="RFC6241"></xref><xref | rget="RFC8969" format="default"/> <xref target="RFC6241" format="default"/> <xre | |||
target="RFC8040"></xref>. From that standpoint, and considering the | f target="RFC8040" format="default"/>. From that standpoint, and considering the | |||
architecture depicted in <xref target="fi1"></xref>, a goal of this | architecture depicted in <xref target="fi1" format="default"/>, a goal of | |||
document is to provide a mechanism to show via a YANG-based interface an | this | |||
document is to provide a mechanism to show, via a YANG-based interface, an | ||||
abstracted network view from the network controller to the service | abstracted network view from the network controller to the service | |||
orchestration layer with a focus on where a service can be delivered to | orchestration layer with a focus on where a service can be delivered to | |||
customers. The model is also used to retrieve the network reference | customers. The model is also used to retrieve the network reference | |||
points where a service is being delivered to customers. For services | points where a service is being delivered to customers. For services | |||
that require resources from peer networks, the module can also be used | that require resources from peer networks, the model can also be used | |||
to expose NNIs.</t> | to expose NNIs.</t> | |||
<figure anchor="fi1"> | ||||
<figure align="center" anchor="fi1" title="SAP Network Model Usage"> | <name>SAP Network Model Usage</name> | |||
<artwork align="left"><![CDATA[ +------------ | <artwork align="left" name="" type="" alt=""><![CDATA[ | |||
-----+ | +-----------------+ | |||
| Customer | | | Customer | | |||
+--------+--------+ | +--------+--------+ | |||
Customer Service Models | | Customer Service Models | | |||
(e.g., L3SM, L2SM) | | (e.g., L3SM, L2SM) | | |||
+--------+--------+ | +--------+--------+ | |||
| Service | | | Service | | |||
| Orchestration | | | Orchestration | | |||
+------+---+------+ | +------+---+------+ | |||
Network Models | | SAP Network Model | Network Models | | SAP Network Model | |||
(e.g., L3NM, L2NM) | | | (e.g., L3NM, L2NM) | | | |||
+------+---+------+ | +------+---+------+ | |||
| Network | | | Network | | |||
| Controller | | | Controller | | |||
+--------+--------+ | +--------+--------+ | |||
| | | | |||
+---------------------+---------------------+ | +---------------------+---------------------+ | |||
| Network | | | Network | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
]]></artwork> | ]]></artwork></figure> | |||
</figure> | <t>The reader may refer to <xref target="RFC4026" sectionFormat="of" secti | |||
on="5"/> for an overview of the building blocks that are usually invoked when | ||||
<t>The reader may refer to Section 5 of <xref target="RFC4026"></xref> | ||||
for an overview of the building blocks that are usually invoked when | ||||
characterizing a service provider network.</t> | characterizing a service provider network.</t> | |||
<t>The service orchestration layer does not need to know about all the | <t>The service orchestration layer does not need to know about all the | |||
internals of the underlying network (e.g., P nodes). <xref | internals of the underlying network (e.g., P nodes (<xref target="RFC4026" | |||
target="fi2a"></xref> shows the abstract network view as seen by a | sectionFormat="of" section="5.3.1"/>)). <xref target="fi2a" format="default"/> | |||
shows the abstract network view as seen by a | ||||
service orchestrator. However, this view is not enough to provide to the | service orchestrator. However, this view is not enough to provide to the | |||
service orchestration layer the information to create services in the | service orchestration layer the information to create services in the | |||
network. The service topology need is to be able to expose the set of | network. The service topology needs to be able to expose the set of | |||
nodes and the attachment points associated with the nodes from which | nodes and the attachment points associated with the nodes from which | |||
network services can be grafted (delivered).</t> | network services can be grafted (delivered).</t> | |||
<figure anchor="fi2a"> | ||||
<t><figure align="center" anchor="fi2a" | <name>Abstract Network Topology</name> | |||
title="Abstract Network Topology"> | <artwork align="center" name="" type="" alt=""><![CDATA[.---------. | |||
<artwork align="center"><![CDATA[.---------. .---------. | .---------. | |||
| PE1 | | PE2 | | | PE1 | | PE2 | | |||
'---------' '---------' | '---------' '---------' | |||
\ / | \ / | |||
\------/ | \------/ | |||
( ) | ( ) | |||
( ) | ( ) | |||
( ) | ( ) | |||
/------\ | /------\ | |||
/ \ | / \ | |||
.---------. .---------. | .---------. .---------. | |||
| PE3 | | PE4 | | | PE3 | | PE4 | | |||
'---------' '---------']]></artwork> | '---------' '---------' | |||
</figure></t> | ]]></artwork></figure> | |||
<t>Typically, and focusing on the UNIs, the service orchestration layer | <t>Typically, and focusing on the UNIs, the service orchestration layer | |||
would see a set of PEs and a set of client-facing interfaces (physical | would see a set of PEs and a set of client-facing interfaces (physical | |||
or logical) to which CEs can be connected (or are actually connected). | or logical) to which CEs can be connected (or are actually connected). | |||
Such interfaces are also referred to as UNI-N (User-to-Network | Such interfaces are also referred to as UNI-N (User-to-Network | |||
Interface, Network side) <xref target="RFC6215"></xref>. The service | Interface, Network side) <xref target="RFC6215" format="default"/>. The se rvice | |||
orchestration layer can use these interfaces to set up the requested | orchestration layer can use these interfaces to set up the requested | |||
services or to commit the delivery of a service. <xref | services or to commit the delivery of a service. <xref target="fi3" format | |||
target="fi3"></xref> depicts a sample SAP network topology that is | ="default"/> depicts a sample SAP network topology that is | |||
maintained by the network controller and exposed to the service | maintained by the network controller and exposed to the service | |||
orchestration.</t> | orchestration.</t> | |||
<figure anchor="fi3"> | ||||
<figure align="center" anchor="fi3" title="A SAP Network Topology"> | <name>A SAP Network Topology</name> | |||
<artwork align="center"><![CDATA[ .-+-. .-+-. .-+-. | <artwork align="center" name="" type="" alt=""><![CDATA[ .-+-. | |||
.-+-. .-+-. | .-+-. .-+-. .-+-. .-+-. | |||
.-|sap|-|sap|-|sap|-. .-|sap|-------|sap|-. | .-|sap|-|sap|-|sap|-. .-|sap|-------|sap|-. | |||
| '---' '---' '---' | | '---' '---' | | | '---' '---' '---' | | '---' '---' | | |||
.---. | | | | .---. | | | | |||
|sap| PE1 | | PE2 | | |sap| PE1 | | PE2 | | |||
'---' | | | | '---' | | | | |||
| | | | | | | | | | |||
'-------------------' '-------------------' | '-------------------' '-------------------' | |||
.-------------------. .-------------------. | .-------------------. .-------------------. | |||
| | | | | | | | | | |||
| | | .---. | | | | .---. | |||
| PE3 | | PE4 |sap| | | PE3 | | PE4 |sap| | |||
| | | '---' | | | | '---' | |||
| .---. .---. .---. | | .---. .---. .---. | | | .---. .---. .---. | | .---. .---. .---. | | |||
'-|sap|-|sap|-|sap|-' '-|sap|-|sap|-|sap|-' | '-|sap|-|sap|-|sap|-' '-|sap|-|sap|-|sap|-' | |||
'-+-' '-+-' '-+-' '-+-' '-+-' '-+-' | '-+-' '-+-' '-+-' '-+-' '-+-' '-+-' | |||
]]></artwork> | ]]></artwork></figure> | |||
</figure> | ||||
<t>A single SAP network topology can be used for one or multiple service | <t>A single SAP network topology can be used for one or multiple service | |||
types (e.g., L3VPN, Ethernet VPN (EVPN)). The network controller can, | types (e.g., L3VPN, Ethernet VPN (EVPN)). The network controller can | |||
then, expose the service types and associated interfaces via the | then expose the service types and associated interfaces via the | |||
SAPs.</t> | SAPs.</t> | |||
<t>As shown in <xref target="fi3a" format="default"/>, the service orchest | ||||
<t>As shown in <xref target="fi3a"></xref>, the service orchestration | ration | |||
layer will have also access to a set of customer service model (e.g., | layer will also have access to a set of customer service models (e.g., | |||
the L3SM or the L2SM) in the customer-facing interface and a set of | the L3SM or the L2SM) in the customer-facing interface and a set of | |||
network models (e.g., the L3NM and network topology data models) in the | network models (e.g., the L3NM and network topology data models) in the | |||
resource-facing interface. In this use case, it is assumed that the | resource-facing interface. In this use case, it is assumed that the | |||
network controller is unaware of what happens beyond the PEs towards the | network controller is unaware of what happens beyond the PEs towards the | |||
CEs; it is only responsible for the management and control of the SAPs | CEs; it is only responsible for the management and control of the SAPs | |||
and the network between PEs. In order to correlate between delivery | and the network between PEs. In order to correlate between delivery | |||
points expressed in service requests and SAPs, the SAP model may include | points expressed in service requests and SAPs, the SAP model may include | |||
a peer customer point identifier. That identifier can be a CE | a peer customer point identifier. That identifier can be a CE | |||
identifier, a site identifier, etc.</t> | identifier, a site identifier, etc.</t> | |||
<figure anchor="fi3a"> | ||||
<name>Network Topology with CEs and ACs</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
.---. | ||||
|CE2| | ||||
'-+-' | ||||
| | ||||
.-+-. .-+-. .-+-. .-+-. .-+-. | ||||
.-|sap|-|sap|-|sap|-. .-|sap|-------|sap|-. | ||||
| '---' '---' '---' | | '---' '---' | | ||||
.---. .---. | | | | ||||
|CE1+--+sap| PE1 | | PE2 | | ||||
'---' '---' | | | | ||||
| | | | | ||||
'-------------------' '-------------------' | ||||
<t><figure align="center" anchor="fi3a" | .-------------------. .-------------------. | |||
title="Network Topology with CEs and ACs"> | | | | | | |||
<artwork align="center"><![CDATA[ | | | | .---. .---. | |||
.---. | | PE3 | | PE4 |sap+--+CE5| | |||
|CE2| | | | | '---' '---' | |||
'-+-' | | .---. .---. .---. | | .---. .---. .---. | | |||
| | '-|sap|-|sap|-|sap|-' '-|sap|-|sap|-|sap|-' | |||
.-+-. .-+-. .-+-. .-+-. .-+-. | '-+-' '-+-' '-+-' '-+-' '-+-' '-+-' | |||
.-|sap|-|sap|-|sap|-. .-|sap|-------|sap|-. | | | | | |||
| '---' '---' '---' | | '---' '---' | | .-+-. | .-+-. | |||
.---. .---. | | | | |CE3+---------------' |CE4| | |||
|CE1+--+sap| PE1 | | PE2 | | '---' '---' | |||
'---' '---' | | | | ]]></artwork></figure> | |||
| | | | | <t>Refer to <xref target="app1" format="default"/> for an example echoing | |||
'-------------------' '-------------------' | the | |||
topology depicted in <xref target="fi3a" format="default"/>.</t> | ||||
.-------------------. .-------------------. | ||||
| | | | | ||||
| | | .---. .---. | ||||
| PE3 | | PE4 |sap+--+CE5| | ||||
| | | '---' '---' | ||||
| .---. .---. .---. | | .---. .---. .---. | | ||||
'-|sap|-|sap|-|sap|-' '-|sap|-|sap|-|sap|-' | ||||
'-+-' '-+-' '-+-' '-+-' '-+-' '-+-' | ||||
| | | | ||||
.-+-. | .-+-. | ||||
|CE3+----------------' |CE4| | ||||
'---' '---' | ||||
]]></artwork> | ||||
</figure></t> | ||||
<t>Refer to <xref target="app1"></xref> for an example echoing the | ||||
topology depicted in <xref target="fi3a"></xref>.</t> | ||||
</section> | </section> | |||
<section anchor="rel" numbered="true" toc="default"> | ||||
<section anchor="rel" title="Relationship to Other YANG Data Models"> | <name>Relationship to Other YANG Data Models</name> | |||
<t>The SAP network model can be seen as inventory data associated with | <t>The SAP network model can be seen as inventory data associated with | |||
SAPs. The model maintains an inventory of customer-facing nodes | SAPs. The model maintains an inventory of customer-facing nodes | |||
contained in a network relying upon <xref target="RFC8345"></xref>.</t> | contained in a network relying upon <xref target="RFC8345" format="default | |||
"/>.</t> | ||||
<figure align="center" anchor="fig5" | <t><xref target="fig5" format="default"/> depicts the relationship of the | |||
title="Relation of SAP Network Model to Other Models"> | SAP | |||
<artwork align="center"><![CDATA[ +---------------------- | network model to other models. The SAP network model augments the | |||
---+ | network model defined in <xref target="RFC8345" format="default"/> and imp | |||
orts the network | ||||
topology model defined in <xref target="RFC8345" format="default"/>, while | ||||
other technology-specific topology models (e.g., the | ||||
model for Traffic Engineering (TE) topologies <xref target="RFC8795" forma | ||||
t="default"/> | ||||
or the model for Layer 3 topologies <xref target="RFC8346" format="default | ||||
"/>) augment the | ||||
network topology model defined in <xref target="RFC8345" format="default"/ | ||||
>. | ||||
</t> | ||||
<figure anchor="fig5"> | ||||
<name>Relationship of SAP Network Model to Other Models</name> | ||||
<artwork align="center" name="" type="" alt=""><![CDATA[ | ||||
+-------------------------+ | ||||
| | | | | | |||
| Abstract Network Model | | | Abstract Network Model | | |||
| | | | | | |||
+------------+------------+ | +------------+------------+ | |||
| | | | |||
+---------+---------+ | +---------+---------+ | |||
| | | | | | |||
+------V------+ +------V------+ | +------V------+ +------V------+ | |||
| Abstract | | Inventory | | | Abstract | | Inventory | | |||
| Network | | Models | | | Network | | Models | | |||
| Topology | | e.g., SAP | | | Topology | | (e.g., SAP | | |||
| Model | | Network | | | Model | | Network | | |||
| | | Model | | | | | Model) | | |||
+-----+-------+ +-------------+ | +-----+-------+ +-------------+ | |||
| | | | |||
+-----------+-----------+ | +-----------+-----------+ | |||
| | | | | | | | |||
+----V----+ +----V----+ +----V----+ | +----V----+ +----V----+ +----V----+ | |||
|TE Topo | |L3 Topo | |L2 Topo | | |TE Topo | |L3 Topo | |L2 Topo | | |||
| Model | | Model | | Model | ... | | Model | | Model | | Model | ... | |||
+---------+ +---------+ +---------+]]></artwork> | +---------+ +---------+ +---------+ | |||
</figure> | ]]></artwork></figure> | |||
<t><xref target="fig5"></xref> depicts the relationship of the SAP | ||||
network model to other models. The SAP network model augments the | ||||
Network model <xref target="RFC8345"></xref> and imports the Network | ||||
Topology model, while other technology-specific topology models (e.g., | ||||
Traffic Engineering (TE) Topologies model <xref target="RFC8795"></xref> | ||||
or Layer 3 Topologies model <xref target="RFC8346"></xref>) augment the | ||||
Network Topology model.</t> | ||||
<t>SAPs can be seen as customer-facing termination points (TPs) with | <t>SAPs can be seen as customer-facing termination points (TPs) with | |||
specific service provisions. However, a difference between SAPs and TPs | specific service provisions. However, one difference between SAPs and TPs | |||
is that links are terminated by a single TP (Section 4.4.6 of <xref | is that links are terminated by a single TP (<xref target="RFC8345" sectio | |||
target="RFC8345"></xref>) while an AC can be terminated by multiple | nFormat="of" section="4.4.6"/>) while an AC can be terminated by multiple | |||
SAPs. Also, a SAP is not a tunnel termination point (TTP) (Section 3.6 | SAPs. Also, a SAP is neither a tunnel termination point (TTP) (<xref targe | |||
of <xref target="RFC8795"></xref>) nor a link.</t> | t="RFC8795" sectionFormat="of" section="3.6"/>) nor a link.</t> | |||
<t>In the context of Software-Defined Networking (SDN) <xref target="RFC71 | ||||
<t>In the context of Software-Defined Networking (SDN) <xref | 49" format="default"/> <xref target="RFC7426" format="default"/>, the SAP YANG | |||
target="RFC7149"></xref><xref target="RFC7426"></xref>, the SAP YANG | ||||
data model can be used to exchange information between control elements, | data model can be used to exchange information between control elements, | |||
so as to support VPN service provision and resource management discussed | so as to support VPN service provision and resource management as discusse | |||
in <xref target="RFC9182"></xref><xref target="RFC9291"></xref>. Through | d | |||
in <xref target="RFC9182" format="default"/> and <xref target="RFC9291" fo | ||||
rmat="default"/>. Through | ||||
this data model, the service orchestration layer can learn the available | this data model, the service orchestration layer can learn the available | |||
endpoints (i.e., SAPs) of interconnection resources of the underlying | endpoints (i.e., SAPs) of interconnection resources of the underlying | |||
network. The service orchestration layer can determine which | network. The service orchestration layer can determine which | |||
interconnection endpoints to add to an L2VPN or L3VPN service. With the | interconnection endpoints to add to an L2VPN or L3VPN service. With the | |||
help of other data models (e.g., L3SM <xref target="RFC8299"></xref> or | help of other data models (e.g., the L3SM <xref target="RFC8299" format="d | |||
L2SM <xref target="RFC8466"></xref>), hierarchical control elements can | efault"/> or the | |||
also assess the feasibility of an end-to-end IP connectivity or L2VPN | L2SM <xref target="RFC8466" format="default"/>), hierarchical control elem | |||
connectivity and, therefore, derive the sequence of domains and the | ents can | |||
also assess the feasibility of end-to-end IP connectivity or L2VPN | ||||
connectivity and therefore can derive the sequence of domains and the | ||||
points of interconnection to use.</t> | points of interconnection to use.</t> | |||
<t>Advanced interface-specific data nodes are not included in the SAP | <t>Advanced interface-specific data nodes are not included in the SAP | |||
model. The interface identifiers listed in the SAP model can be used as | model. The interface identifiers listed in the SAP model can be used as | |||
filters to set or get such data using device models (e.g., <xref | filters to set or get such data using device models (e.g., <xref target="R | |||
target="RFC7224"></xref>).</t> | FC7224" format="default"/>).</t> | |||
</section> | </section> | |||
<section anchor="tree" numbered="true" toc="default"> | ||||
<section anchor="tree" title="SAP Module Tree Structure"> | <name>SAP Module Tree Structure</name> | |||
<t>The SAP network model 'ietf-sap-ntw' builds on the 'ietf-network' | <t>The SAP network model 'ietf-sap-ntw' builds on the 'ietf-network' | |||
module <xref target="RFC8345" /> by augmenting the nodes with SAPs.</t> | module <xref target="RFC8345" format="default"/> by augmenting the nodes w | |||
ith SAPs.</t> | ||||
<t>The structure of the 'ietf-sap-ntw' module is shown in <xref | <t>The structure of the 'ietf-sap-ntw' module is shown in <xref target="fi | |||
target="fi4" />.</t> | 4" format="default"/>.</t> | |||
<figure anchor="fi4"> | ||||
<figure align="center" anchor="fi4" | <name>SAP YANG Module Tree Structure</name> | |||
title="SAP YANG Module Tree Structure"> | <sourcecode name="" type="yangtree"><![CDATA[module: ietf-sap-ntw | |||
<artwork align="center"><![CDATA[module: ietf-sap-ntw | ||||
augment /nw:networks/nw:network/nw:network-types: | augment /nw:networks/nw:network/nw:network-types: | |||
+--rw sap-network! | +--rw sap-network! | |||
+--rw service-type* identityref | +--rw service-type* identityref | |||
augment /nw:networks/nw:network/nw:node: | augment /nw:networks/nw:network/nw:node: | |||
+--rw service* [service-type] | +--rw service* [service-type] | |||
+--rw service-type identityref | +--rw service-type identityref | |||
+--rw sap* [sap-id] | +--rw sap* [sap-id] | |||
+--rw sap-id string | +--rw sap-id string | |||
+--rw description? string | +--rw description? string | |||
+--rw parent-termination-point? nt:tp-id | +--rw parent-termination-point? nt:tp-id | |||
skipping to change at line 577 ¶ | skipping to change at line 435 ¶ | |||
+--ro sap-status | +--ro sap-status | |||
| +--ro status? identityref | | +--ro status? identityref | |||
| +--ro last-change? yang:date-and-time | | +--ro last-change? yang:date-and-time | |||
+--rw service-status | +--rw service-status | |||
+--rw admin-status | +--rw admin-status | |||
| +--rw status? identityref | | +--rw status? identityref | |||
| +--rw last-change? yang:date-and-time | | +--rw last-change? yang:date-and-time | |||
+--ro oper-status | +--ro oper-status | |||
+--ro status? identityref | +--ro status? identityref | |||
+--ro last-change? yang:date-and-time | +--ro last-change? yang:date-and-time | |||
]]></sourcecode></figure> | ||||
]]></artwork> | ||||
</figure> | ||||
<t /> | ||||
<t>A SAP network topology can be used for one or multiple service types | <t>A SAP network topology can be used for one or multiple service types | |||
('service-type'). Examples of supported service types are as | ('service-type'). Examples of supported service types are as | |||
follows:<list style="symbols"> | follows:</t> | |||
<t>L3VPN <xref target="RFC4364" />,</t> | <ul spacing="normal"> | |||
<li>L3VPN <xref target="RFC4364" format="default"/></li> | ||||
<t>Virtual Private LAN Service (VPLS) <xref target="RFC4761" /><xref | <li>Virtual Private LAN Service (VPLS) <xref target="RFC4761" format="de | |||
target="RFC4762" />,</t> | fault"/> <xref target="RFC4762" format="default"/></li> | |||
<li> | ||||
<t><xref target="RFC8214">Virtual Private Wire Service | <xref target="RFC8214" format="default">Virtual Private Wire Service | |||
(VPWS)</xref>,</t> | (VPWS)</xref></li> | |||
<li> | ||||
<t><xref target="RFC7432">BGP MPLS-Based Ethernet VPN</xref>,</t> | <xref target="RFC7432" format="default">BGP MPLS-based Ethernet VPN</x | |||
ref></li> | ||||
<t><xref target="RFC8214">VPWS in Ethernet VPN</xref>,</t> | <li> | |||
<xref target="RFC8214" format="default">VPWS in Ethernet VPN</xref></l | ||||
<t><xref target="RFC7623">Provider Backbone Bridging Combined with | i> | |||
Ethernet VPN (PBB-EVPN)</xref>,</t> | <li> | |||
<xref target="RFC7623" format="default">Provider Backbone Bridging com | ||||
<t>VXLAN-based EVPN <xref target="RFC8365" />,</t> | bined with | |||
Ethernet VPN (PBB-EVPN)</xref></li> | ||||
<t>Virtual Networks <xref target="RFC8453" />,</t> | <li>VXLAN-based EVPN <xref target="RFC8365" format="default"/> ("VXLAN" | |||
stands for "Virtual eXtensible Local Area Network")</li> | ||||
<t>Enhanced VPN (VPN+) <xref | <li>Virtual Network <xref target="RFC8453" format="default"/></li> | |||
target="I-D.ietf-teas-enhanced-vpn" />,</t> | <li>Enhanced VPN (VPN+) <xref target="I-D.ietf-teas-enhanced-vpn" format | |||
="default"/></li> | ||||
<t>Network slice <xref | <li>Network slice service <xref target="IETF-NETWORK-SLICES" format="def | |||
target="I-D.ietf-teas-ietf-network-slices" />,</t> | ault"/></li> | |||
<li>SD-WAN <xref target="BGP-SDWAN-USAGE" format="default"/></li> | ||||
<t>SDWAN <xref target="I-D.ietf-bess-bgp-sdwan-usage" />, and</t> | <li>Basic IP connectivity</li> | |||
</ul> | ||||
<t>Basic IP connectivity.</t> | ||||
</list></t> | ||||
<t>These service types build on the types that are already defined in | <t>These service types build on the types that are already defined in | |||
<xref target="RFC9181" /> and additional types that are defined in this | <xref target="RFC9181" format="default"/> and additional types that are de fined in this | |||
document. Other service types can be defined in future YANG modules | document. Other service types can be defined in future YANG modules | |||
(including future revisions of the YANG module defined in this | (including future revisions of the YANG module defined in this | |||
document), if needed.</t> | document), if needed.</t> | |||
<aside> | ||||
<aside pn="section-5"> | <t>Leveraging the service types defined in | |||
<t indent="0" pn="section-5.1">Leveraging the service types defined in | <xref target="RFC9181" format="default"/> is meant to ease the correlati | |||
<xref target="RFC9181" /> is meant to ease the correlation between the | on between the | |||
SAP topology and the corresponding network modules that are used to | SAP topology and the corresponding network models that are used to | |||
provision a specific service over a provider's network.</t> | provision a specific service over a provider's network.</t> | |||
</aside> | </aside> | |||
<t>Filters based on the service type can be used to access per-service | <t>Filters based on the service type can be used to access per-service | |||
SAP topology. An example is depicted in <xref | SAP topology. An example is depicted in <xref target="app-ex-res-body-filt | |||
target="app-ex-res-body-filter" />.</t> | er" format="default"/> in <xref target="sample"/>.</t> | |||
<t>A node in the topology can support one or multiple service types | <t>A node in the topology can support one or multiple service types | |||
('service-type') among those listed under the 'sap-network' container. A | ('service-type') among those listed under the 'sap-network' container. A | |||
list of SAPs are then bound to each service type that is supported by a | list of SAPs is then bound to each service type that is supported by a | |||
given node. Each SAP is characterized as follows:<list style="hanging"> | given node. Each SAP is characterized as follows:</t> | |||
<t hangText="'sap-id':">Includes an identifier that uniquely | <dl newline="false" spacing="normal"> | |||
identifies a SAP within a node. <vspace blankLines="1" />The same | <dt>'sap-id':</dt> | |||
<dd> | ||||
<t>Includes an identifier that uniquely | ||||
identifies a SAP within a node. </t> | ||||
<t>The same | ||||
SAP may appear under distinct service types. In such a case, the | SAP may appear under distinct service types. In such a case, the | |||
same identifier is used for these service types in | same identifier is used for a shared SAP for each of these service typ | |||
association.<vspace blankLines="1" />SAPs that are associated with | es.</t> | |||
<t>SAPs that are associated with | ||||
the interfaces that are directly hosting services, interfaces that | the interfaces that are directly hosting services, interfaces that | |||
are ready to host per-service sub-interfaces (but not yet | are ready to host per-service sub-interfaces (but are not yet | |||
activated), or services that are already instantiated on | activated), or services that are already instantiated on | |||
sub-interfaces are listed as SAPs. For illustration purposes, <xref | sub-interfaces are listed as SAPs. For illustration purposes, <xref ta | |||
target="app-ex-res-body" /> depicts how to indicate interfaces that | rget="app-ex-res-body" format="default"/> in <xref target="sample"/> depicts how | |||
are capable for hosting per-service sub-interfaces.<vspace | to indicate interfaces that | |||
blankLines="1" />For example, 'sap-id' may be the VPN network access | are capable of hosting per-service sub-interfaces.</t> | |||
identifier in Section 7.6 of <xref target="RFC9182" />. An example | <t>For example, 'sap-id' may be the VPN network access | |||
to illustrate the use of this attribute during service creation is | identifier defined in <xref target="RFC9182" sectionFormat="of" sectio | |||
provided in <xref target="servicesap" />.</t> | n="7.6"/>. An example | |||
that illustrates the use of this attribute during service creation is | ||||
<t hangText="'description':">Includes a textual description of the | provided in <xref target="servicesap" format="default"/>.</t> | |||
SAP.</t> | </dd> | |||
<dt>'description':</dt> | ||||
<t hangText="'parent-termination-point':">Includes a reference to | <dd>Includes a textual description of the | |||
SAP.</dd> | ||||
<dt>'parent-termination-point':</dt> | ||||
<dd> | ||||
<t>Includes a reference to | ||||
the parent termination point to which the SAP is bound. As per | the parent termination point to which the SAP is bound. As per | |||
Section 4.2 of <xref target="RFC8345" />, a termination point | <xref target="RFC8345" sectionFormat="of" section="4.2"/>, a terminati on point | |||
terminates a link in a node. A termination point can be a physical | terminates a link in a node. A termination point can be a physical | |||
port, an interface, etc. <vspace blankLines="1" />The referenced | port, an interface, etc. </t> | |||
<t>The referenced | ||||
parent termination point is expected to be a customer-facing | parent termination point is expected to be a customer-facing | |||
termination point, not a core-facing termination point.<vspace | termination point, not a core-facing termination point.</t> | |||
blankLines="1" />This attribute is used, e.g., to associate an | <t>For example, this attribute is used to associate an | |||
interface with its sub-interfaces as all these interfaces may be | interface with its sub-interfaces, as all these interfaces may be | |||
listed under the SAPs of a node. It is also used to link a SAP with | listed under the SAPs of a node. It is also used to link a SAP with | |||
the physical topology. <vspace blankLines="1" />For example, this | the physical topology. </t> | |||
data node can be used to map the IETF Network Slice endpoints (<xref | <t>For example, this | |||
target="I-D.ietf-teas-ietf-network-slices" />) to the | data node can be used to map the IETF Network Slice endpoints <xref ta | |||
rget="IETF-NETWORK-SLICES" format="default"/> to the | ||||
service/tunnel/path endpoints in the underlay network.</t> | service/tunnel/path endpoints in the underlay network.</t> | |||
</dd> | ||||
<t hangText="'attachment-interface':">Indicates a reference to the | <dt>'attachment-interface':</dt> | |||
<dd> | ||||
<t>Indicates a reference to the | ||||
interface to which the SAP is bound. The same interface may host | interface to which the SAP is bound. The same interface may host | |||
multiple services. <vspace blankLines="1" />Whether the attachment | multiple services. </t> | |||
<t>Whether the attachment | ||||
identifier echoes the content of the attachment interface is | identifier echoes the content of the attachment interface is | |||
deployment specific. <vspace blankLines="1" />For example, this | deployment specific. </t> | |||
<t>For example, this | ||||
reference may be any of the identifiers ('l2-termination-point', | reference may be any of the identifiers ('l2-termination-point', | |||
'local-bridge-reference', 'bearer-reference', or 'lag-interface-id') | 'local-bridge-reference', 'bearer-reference', or 'lag-interface-id') | |||
defined in Section 7.6.1 of <xref target="RFC9182" /> or | defined in <xref target="RFC9182" sectionFormat="of" section="7.6.1"/> | |||
'l3-termination-point' defined in Section 7.6.2 of <xref | or | |||
target="RFC9182" />. It is the responsibility of the controller to | 'l3-termination-point' as defined in <xref target="RFC9182" sectionFor | |||
ensure that consistent references are used in the SAP and underlying | mat="of" section="7.6.2"/>. The controller is responsible for | |||
device modes or any other device inventory mechanism.</t> | ensuring that consistent references are used in the SAP and underlying | |||
device models or any other device inventory mechanism.</t> | ||||
<t hangText="'interface-type':">Indicates whether a SAP is bound to | </dd> | |||
<dt>'interface-type':</dt> | ||||
<dd> | ||||
<t>Indicates whether a SAP is bound to | ||||
a physical port, a loopback interface, a Link Aggregation Group | a physical port, a loopback interface, a Link Aggregation Group | |||
(LAG) interface <xref target="IEEE802.1AX" />, an Integrated Routing | (LAG) interface <xref target="IEEE802.1AX" format="default"/>, an Inte | |||
Bridge (IRB) (e.g., <xref target="RFC9135" />), a local bridge | grated Routing and Bridging (IRB) interface (e.g., <xref target="RFC9135" format | |||
reference, etc. <vspace blankLines="1" />The mapping to the detailed | ="default"/>), a local bridge | |||
interface types as per <xref target="RFC7224" /> is maintained by | reference, etc.</t> | |||
<t>The mapping to the detailed | ||||
interface types as per <xref target="RFC7224" format="default"/> is ma | ||||
intained by | ||||
the controller. That mapping is used, for example, when the | the controller. That mapping is used, for example, when the | |||
controller translates this SAP network module into device modules | controller translates this SAP network model into device models | |||
(Section 4.4 of <xref target="RFC8969" />).</t> | (<xref target="RFC8969" sectionFormat="of" section="4.4"/>).</t> | |||
</dd> | ||||
<t hangText="'encapsulation-type':">Indicates the encapsulation type | <dt>'encapsulation-type':</dt> | |||
<dd> | ||||
<t>Indicates the encapsulation type | ||||
for the interface indicated in the 'attachment-interface' attribute. | for the interface indicated in the 'attachment-interface' attribute. | |||
The types are taken from <xref target="RFC9181" />. <vspace | The types are taken from <xref target="RFC9181" format="default"/>. </ | |||
blankLines="1" />This data node can be used, for example, to decide | t> | |||
<t>This data node can be used, for example, to decide | ||||
whether an existing SAP can be (re)used to host a service or if a | whether an existing SAP can be (re)used to host a service or if a | |||
new sub-interface has to be instantiated.</t> | new sub-interface has to be instantiated.</t> | |||
</dd> | ||||
<t hangText="'role':">Specifies the role of a SAP (e.g., a UNI or | <dt>'role':</dt> | |||
NNI). <vspace blankLines="1" />A SAP inherits the role of its parent | <dd> | |||
<t>Specifies the role of a SAP (e.g., a UNI or | ||||
NNI). </t> | ||||
<t>A SAP inherits the role of its parent | ||||
interface ('parent-termination-point').</t> | interface ('parent-termination-point').</t> | |||
</dd> | ||||
<t hangText="'allows-child-saps':">When set to 'true', this data | <dt>'allows-child-saps':</dt> | |||
node indicates that the attachment interface for this SAP is capable | <dd> | |||
of hosting per-service sub-interfaces. <vspace | <t>When set to 'true', indicates that the attachment interface for | |||
blankLines="1" />Whether a service can be directly attached to the | this SAP is capable of hosting per-service sub-interfaces. </t> | |||
<t>Whether a service can be directly attached to the | ||||
parent SAP in addition to child SAPs depends on the service.</t> | parent SAP in addition to child SAPs depends on the service.</t> | |||
</dd> | ||||
<t hangText="'peer-sap-id':">Includes references to the remote | <dt>'peer-sap-id':</dt> | |||
endpoints of an attachment circuit. This identifier may or may not | <dd> | |||
<t>Includes references to the remote | ||||
endpoints of an AC. This identifier may or may not | ||||
be the same as the SAP identifier used in the peer's configuration. | be the same as the SAP identifier used in the peer's configuration. | |||
Note that the use of identical identifiers eases correlating between | Note that the use of identical identifiers eases the correlation betwe | |||
a peer's service request with a local SAP. <vspace | en | |||
blankLines="1" />Examples of such a reference are: a site identifier | a peer's service request and a local SAP. </t> | |||
(Section 6.3 of <xref target="RFC8299" />), a Service Demarcation | <t>Examples of such a reference are a site identifier | |||
Point (SDP) identifier (Section 2.1 of <xref | (<xref target="RFC8299" sectionFormat="of" section="6.3"/>), a Service | |||
target="I-D.ietf-teas-ietf-network-slices" />), and the IP address | Demarcation | |||
Point (SDP) identifier (Section <xref target="IETF-NETWORK-SLICES | ||||
" section="3.2" sectionFormat="bare">"Core Terminology"</xref> of <xref target=" | ||||
IETF-NETWORK-SLICES"/>), and the IP address | ||||
of a peer Autonomous System Border Router (ASBR).</t> | of a peer Autonomous System Border Router (ASBR).</t> | |||
</dd> | ||||
<t hangText="'sap-status':">Indicates the operational status of a | <dt>'sap-status':</dt> | |||
SAP. Values are taken from the values defined in <xref | <dd> | |||
target="RFC9181" />.<vspace blankLines="1" />When both a | <t>Indicates the operational status of a | |||
sub-interface and its parent interface are present, but the parent | SAP. Values are taken from the values defined in <xref target="RFC9181 | |||
" format="default"/>.</t> | ||||
<t>When both a | ||||
sub-interface and its parent interface are present but the parent | ||||
interface is disabled, the status of the parent interface takes | interface is disabled, the status of the parent interface takes | |||
precedence over the status indicated for the sub-interface.</t> | precedence over the status indicated for the sub-interface.</t> | |||
</dd> | ||||
<t hangText="'service-status':">Indicates the administrative and | <dt>'service-status':</dt> | |||
<dd> | ||||
<t>Indicates the administrative and | ||||
operational status of the service for a given SAP. This information | operational status of the service for a given SAP. This information | |||
is particularly useful when many services are provisioned for the | is particularly useful when many services are provisioned for the | |||
same SAP, but only a subset of these services are activated. As | same SAP but only a subset of these services is activated. As | |||
such, the administrative 'service-status' MUST NOT be influenced by | such, the administrative 'service-status' <bcp14>MUST NOT</bcp14> be i | |||
the value of the operational 'sap-status'. <vspace | nfluenced by | |||
blankLines="1" />The service 'oper-status' reflects the operational | the value of the operational 'sap-status'. </t> | |||
<t>The service 'oper-status' reflects the operational | ||||
status of the service only as observed at a specific SAP, not the | status of the service only as observed at a specific SAP, not the | |||
overall network level status of the service connecting many SAPs. | overall network-level status of the service connecting many SAPs. | |||
The network level service status can be retrieved using specific | The network-level service status can be retrieved using specific | |||
network models, e.g., Section 7.3 of <xref target="RFC9182" /> or | network models, e.g., those listed in <xref target="RFC9182" sectionFo | |||
Section 7.3 of <xref target="RFC9291" />. <vspace | rmat="of" section="7.3"/> or | |||
blankLines="1" />In order to assess the service delivery status for | <xref target="RFC9291" sectionFormat="of" section="7.3"/>. </t> | |||
<t>In order to assess the service delivery status for | ||||
a given SAP, it is recommended to check both the administrative and | a given SAP, it is recommended to check both the administrative and | |||
operational service status ('service-status') in addition to the | operational service status ('service-status') in addition to the | |||
'sap-status'. In doing so, a network controller (or operator) can | 'sap-status'. In doing so, a network controller (or operator) can | |||
detect anomalies. For example, if a service is administratively | detect anomalies. For example, if a service is administratively | |||
enabled for a SAP and the 'sap-status' of that SAP is reported as | enabled for a SAP and the 'sap-status' of that SAP is reported as | |||
being down, the service 'oper-status' is also expected to be down. | being down, the service 'oper-status' is also expected to be down. | |||
Retrieving a distinct service operational status under these | Retrieving a distinct service operational status under these | |||
conditions can be used as a trigger to detect an anomaly. Likewise, | conditions can be used as a trigger to detect an anomaly. Likewise, | |||
administrative status and operational status can be compared to | administrative status and operational status can be compared to | |||
detect service-specific SAP activation anomalies. For example, a | detect service-specific SAP activation anomalies. For example, a | |||
service that is administratively declared as inactive for a SAP but | service that is administratively declared as inactive for a SAP but | |||
reported as operationally active for that SAP is an indication that | reported as operationally active for that SAP is an indication that | |||
some service provision actions are needed to align the observed | some service provision actions are needed to align the observed | |||
service status with the expected service status.</t> | service status with the expected service status.</t> | |||
</list></t> | </dd> | |||
</dl> | ||||
<t /> | ||||
</section> | </section> | |||
<section anchor="mod" numbered="true" toc="default"> | ||||
<section anchor="mod" title="SAP YANG Module"> | <name>SAP YANG Module</name> | |||
<t>This module imports types from <xref target="RFC6991"></xref>, <xref | <t>This module imports types from <xref target="RFC6991" format="default"/ | |||
target="RFC8343"></xref>, <xref target="RFC8345"></xref>, and <xref | >, <xref target="RFC8345" format="default"/>, and <xref target="RFC9181" format= | |||
target="RFC9181"></xref>.</t> | "default"/>.</t> | |||
<t>The 'sap-entry' and 'sap-list' are defined as groupings for the reuse | <t>The 'sap-entry' and 'sap-list' are defined as groupings for the reuse | |||
of these nodes in service-specific YANG modules.</t> | of these nodes in service-specific YANG modules.</t> | |||
<sourcecode name="ietf-sap-ntw@2023-05-22.yang" type="yang" markers="true" | ||||
<figure> | ><![CDATA[ | |||
<artwork><![CDATA[<CODE BEGINS> file "ietf-sap-ntw@2023-01-09.yang" | ||||
module ietf-sap-ntw { | module ietf-sap-ntw { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-sap-ntw"; | namespace "urn:ietf:params:xml:ns:yang:ietf-sap-ntw"; | |||
prefix sap; | prefix sap; | |||
import ietf-network-topology { | import ietf-network-topology { | |||
prefix nt; | prefix nt; | |||
reference | reference | |||
"RFC 8345: A YANG Data Model for Network | "RFC 8345: A YANG Data Model for Network | |||
Topologies, Section 6.2"; | Topologies, Section 6.2"; | |||
skipping to change at line 819 ¶ | skipping to change at line 674 ¶ | |||
Author: Oscar Gonzalez de Dios | Author: Oscar Gonzalez de Dios | |||
<mailto:oscar.gonzalezdedios@telefonica.com> | <mailto:oscar.gonzalezdedios@telefonica.com> | |||
Author: Samier Barguil | Author: Samier Barguil | |||
<mailto:samier.barguil_giraldo@nokia.com> | <mailto:samier.barguil_giraldo@nokia.com> | |||
Author: Qin Wu | Author: Qin Wu | |||
<mailto:bill.wu@huawei.com> | <mailto:bill.wu@huawei.com> | |||
Author: Victor Lopez | Author: Victor Lopez | |||
<victor.lopez@nokia.com>"; | <mailto:victor.lopez@nokia.com>"; | |||
description | description | |||
"This YANG module defines a model for representing, managing, | "This YANG module defines a model for representing, managing, | |||
and controlling the Service Attachment Points (SAPs) in the | and controlling the Service Attachment Points (SAPs) in the | |||
network topology. | network topology. | |||
Copyright (c) 2023 IETF Trust and the persons identified as | Copyright (c) 2023 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Revised BSD License set | the license terms contained in, the Revised BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX | This version of this YANG module is part of RFC 9408; see the | |||
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | RFC itself for full legal notices."; | |||
for full legal notices."; | ||||
revision 2023-01-09 { | revision 2023-05-22 { | |||
description | description | |||
"Initial version"; | "Initial version."; | |||
reference | reference | |||
"RFC XXXX: A YANG Network Model for Service Attachment | "RFC 9408: A YANG Network Data Model for Service Attachment | |||
Points (SAPs)"; | Points (SAPs)"; | |||
} | } | |||
identity virtual-network { | identity virtual-network { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
description | description | |||
"Virtual network. Refers to a logical network instance | "Virtual network. Refers to a logical network instance | |||
that is built over a physical network."; | that is built over a physical network."; | |||
reference | reference | |||
"RFC 8453: Framework for Abstraction and Control of TE | "RFC 8453: Framework for Abstraction and Control of TE | |||
Networks (ACTN)"; | Networks (ACTN)"; | |||
} | } | |||
identity enhanced-vpn { | identity enhanced-vpn { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
description | description | |||
"Enhanced VPN (VPN+). VPN+ is an approach that is | "Enhanced VPN (VPN+). VPN+ is an approach that is | |||
based on existing VPN and Traffic Engineering (TE) | based on existing VPN and Traffic Engineering (TE) | |||
technologies but adds characteristics that specific | technologies but adds characteristics that specific | |||
services require over and above conventional VPNs."; | services require over and above conventional VPNs."; | |||
reference | reference | |||
"draft-ietf-teas-enhanced-vpn: | "draft-ietf-teas-enhanced-vpn: | |||
A Framework for Enhanced Virtual Private Network | A Framework for Enhanced Virtual Private Network | |||
(VPN+) Services"; | (VPN+)"; | |||
} | } | |||
identity network-slice { | identity network-slice { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
description | description | |||
"IETF network slice. An IETF network slice | "IETF Network Slice. An IETF Network Slice | |||
is a logical network topology connecting a number of | is a logical network topology connecting a number of | |||
endpoints using a set of shared or dedicated network | endpoints using a set of shared or dedicated network | |||
resources that are used to satisfy specific service | resources that are used to satisfy specific service | |||
objectives."; | objectives."; | |||
reference | reference | |||
"draft-ietf-teas-ietf-network-slices: | "draft-ietf-teas-ietf-network-slices: | |||
A Framework for IETF Network Slices"; | A Framework for IETF Network Slices"; | |||
} | } | |||
identity sdwan { | identity sdwan { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
description | description | |||
"PE-based Software-Defined Wide Area Network (SDWAN)."; | "PE-based Software-Defined Wide-Area Network (SD-WAN)."; | |||
reference | reference | |||
"draft-ietf-bess-bgp-sdwan-usage: BGP Usage for SDWAN | "draft-ietf-bess-bgp-sdwan-usage: | |||
Overlay Network"; | BGP Usage for SD-WAN Overlay Networks"; | |||
} | } | |||
identity basic-connectivity { | identity basic-connectivity { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
description | description | |||
"Basic IP connectivity. This is, for example, a plain | "Basic IP connectivity. This is, for example, a plain | |||
connectivity offered to Enterprises over a dedicated | form of connectivity offered to enterprises over a | |||
or shared MPLS infrastructure."; | dedicated or shared MPLS infrastructure."; | |||
} | } | |||
identity interface-role { | identity interface-role { | |||
description | description | |||
"Base identity for the network role of an interface."; | "Base identity for the network role of an interface."; | |||
} | } | |||
identity uni { | identity uni { | |||
base interface-role; | base interface-role; | |||
description | description | |||
"User-Network Interface (UNI)."; | "User-to-Network Interface (UNI)."; | |||
} | } | |||
identity nni { | identity nni { | |||
base interface-role; | base interface-role; | |||
description | description | |||
"Network-to-Network Interface (NNI)."; | "Network-to-Network Interface (NNI)."; | |||
} | } | |||
identity interface-type { | identity interface-type { | |||
description | description | |||
skipping to change at line 943 ¶ | skipping to change at line 797 ¶ | |||
identity lag { | identity lag { | |||
base interface-type; | base interface-type; | |||
description | description | |||
"Link Aggregation Group (LAG) interface."; | "Link Aggregation Group (LAG) interface."; | |||
} | } | |||
identity irb { | identity irb { | |||
base interface-type; | base interface-type; | |||
description | description | |||
"Integrated Routing Bridge (IRB). An IRB typically | "Integrated Routing and Bridging (IRB) interface. An IRB | |||
connects an IP-VRF to a bridge domain."; | interface typically connects an IP Virtual Routing and | |||
Forwarding (IP-VRF) entity to a bridge domain."; | ||||
} | } | |||
identity local-bridge { | identity local-bridge { | |||
base interface-type; | base interface-type; | |||
description | description | |||
"A local bridge reference to accommodate, e.g., | "A local bridge reference to accommodate (for example) | |||
implementations that require internal bridging. | implementations that require internal bridging. | |||
When such a type is used, a reference to a local | When such a type is used, a reference to a local | |||
bridge domain is used to identify the interface."; | bridge domain is used to identify the interface."; | |||
} | } | |||
identity logical { | identity logical { | |||
base interface-type; | base interface-type; | |||
description | description | |||
"Refers to a logical sub-interface that is typically | "Refers to a logical sub-interface that is typically | |||
used to bind a service. This type is used only | used to bind a service. This type is used only | |||
if none of the other more specific types (i.e., | if none of the other more specific types (i.e., | |||
loopback, lag, irb, or local-bridge) can be used."; | 'loopback', 'lag', 'irb', or 'local-bridge') can be used."; | |||
} | } | |||
grouping sap-entry { | grouping sap-entry { | |||
description | description | |||
"Service Attachment Point (SAP) entry information."; | "Service Attachment Point (SAP) entry information."; | |||
leaf sap-id { | leaf sap-id { | |||
type string; | type string; | |||
description | description | |||
"Indicates an identifier that uniquely identifies | "Indicates an identifier that uniquely identifies | |||
a SAP."; | a SAP."; | |||
} | } | |||
leaf description { | leaf description { | |||
type string; | type string; | |||
description | description | |||
"A textual description of the SAP."; | "A textual description of the SAP."; | |||
} | } | |||
leaf parent-termination-point { | leaf parent-termination-point { | |||
type nt:tp-id; | type nt:tp-id; | |||
description | description | |||
"Indicates the parent termination point to | "Indicates the parent termination point to | |||
which the SAP is attached to. A termination | which the SAP is attached. A termination | |||
point can be a physical port, an interface, etc."; | point can be a physical port, an interface, etc."; | |||
} | } | |||
leaf attachment-interface { | leaf attachment-interface { | |||
type string; | type string; | |||
description | description | |||
"Indicates the interface to which the SAP is bound."; | "Indicates the interface to which the SAP is bound."; | |||
} | } | |||
leaf interface-type { | leaf interface-type { | |||
type identityref { | type identityref { | |||
base interface-type; | base interface-type; | |||
skipping to change at line 1023 ¶ | skipping to change at line 878 ¶ | |||
leaf allows-child-saps { | leaf allows-child-saps { | |||
type boolean; | type boolean; | |||
description | description | |||
"Indicates whether the attachment interface of this | "Indicates whether the attachment interface of this | |||
SAP is capable of hosting per-service sub-interfaces."; | SAP is capable of hosting per-service sub-interfaces."; | |||
} | } | |||
leaf-list peer-sap-id { | leaf-list peer-sap-id { | |||
type string; | type string; | |||
description | description | |||
"Indicates an identifier of the peer's termination | "Indicates an identifier of the peer's termination | |||
identifier (e.g., Customer Edge (CE)). This | identifier (e.g., a Customer Edge (CE)). This | |||
information can be used for correlation purposes, | information can be used for correlation purposes, | |||
such as identifying the SAP that is attached to | such as identifying the SAP that is attached to | |||
an endpoint that is provided in a service request."; | an endpoint that is provided in a service request."; | |||
} | } | |||
} | } | |||
grouping sap-list { | grouping sap-list { | |||
description | description | |||
"Service Attachment Point (SAP) information."; | "SAP information."; | |||
list sap { | list sap { | |||
key "sap-id"; | key "sap-id"; | |||
description | description | |||
"The Service Attachment Points are abstraction of | "The SAPs are an abstraction of the points to which | |||
the points where network services such as L3VPNs, | network services such as L3VPNs, L2VPNs, or network | |||
L2VPNs, or network slices can be attached to."; | slices can be attached."; | |||
uses sap-entry; | uses sap-entry; | |||
container sap-status { | container sap-status { | |||
config false; | config false; | |||
description | description | |||
"Indicates the operational status of the SAP, | "Indicates the operational status of the SAP, | |||
independent of any service provisioned over it."; | independent of any service provisioned over it."; | |||
uses vpn-common:oper-status-timestamp; | uses vpn-common:oper-status-timestamp; | |||
} | } | |||
container service-status { | container service-status { | |||
skipping to change at line 1082 ¶ | skipping to change at line 937 ¶ | |||
"Operational status of the service provisioned | "Operational status of the service provisioned | |||
at the SAP."; | at the SAP."; | |||
uses vpn-common:oper-status-timestamp; | uses vpn-common:oper-status-timestamp; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
augment "/nw:networks/nw:network/nw:network-types" { | augment "/nw:networks/nw:network/nw:network-types" { | |||
description | description | |||
"Introduces a new network type for SAP network."; | "Introduces a new network type for a SAP network."; | |||
container sap-network { | container sap-network { | |||
presence "Indicates SAP network type."; | presence "Indicates the SAP network type."; | |||
description | description | |||
"The presence of the container node indicates the | "The presence of the container node indicates the | |||
SAP network type."; | SAP network type."; | |||
leaf-list service-type { | leaf-list service-type { | |||
type identityref { | type identityref { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
} | } | |||
description | description | |||
"Indicates the set of supported service types."; | "Indicates the set of supported service types."; | |||
} | } | |||
skipping to change at line 1121 ¶ | skipping to change at line 976 ¶ | |||
type identityref { | type identityref { | |||
base vpn-common:service-type; | base vpn-common:service-type; | |||
} | } | |||
description | description | |||
"Indicates a service type."; | "Indicates a service type."; | |||
} | } | |||
uses sap-list; | uses sap-list; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS>]]></artwork> | ]]></sourcecode> | |||
</figure> | ||||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<t>This document registers the following namespace URI in the "ns" | <t>This document registers the following namespace URI in the "ns" | |||
subregistry within the "IETF XML Registry" <xref | subregistry within the "IETF XML Registry" <xref target="RFC3688" format=" | |||
target="RFC3688"></xref>: <figure> | default"/>: </t> | |||
<artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-sap-ntw | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
]]></artwork> | ||||
</figure></t> | ||||
<t>This document registers the following YANG module in the YANG Module | ||||
Names registry <xref target="RFC6020"></xref> within the "YANG | ||||
Parameters" registry: <figure> | ||||
<artwork><![CDATA[ name: ietf-sap-ntw | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-sap-ntw | ||||
maintained by IANA? N | ||||
prefix: sap | ||||
reference: RFC XXXX | ||||
]]></artwork> | ||||
</figure></t> | ||||
</section> | ||||
<section anchor="scecurity" title="Security Considerations"> | <dl newline="false" spacing="compact"> | |||
<t>The YANG module specified in this document defines schema for data | <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-sap-ntw</dd> | |||
that is designed to be accessed via network management protocols such as | <dt>Registrant Contact:</dt><dd>The IESG.</dd> | |||
NETCONF <xref target="RFC6241"></xref> or RESTCONF <xref | <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | |||
target="RFC8040"></xref>. The lowest NETCONF layer is the secure | </dl> | |||
transport layer, and the mandatory-to-implement secure transport is | ||||
Secure Shell (SSH) <xref target="RFC6242"></xref>. The lowest RESTCONF | ||||
layer is HTTPS, and the mandatory-to-implement secure transport is TLS | ||||
<xref target="RFC8446"></xref>.</t> | ||||
<t>The Network Configuration Access Control Model (NACM) <xref | <t>This document registers the following YANG module in the "YANG Module | |||
target="RFC8341"></xref> provides the means to restrict access for | Names" subregistry <xref target="RFC6020" format="default"/> within the "Y | |||
ANG | ||||
Parameters" registry: </t> | ||||
<dl newline="false" spacing="compact"> | ||||
<dt>Name:</dt><dd>ietf-sap-ntw</dd> | ||||
<dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-sap-ntw</dd> | ||||
<dt>Maintained by IANA?</dt><dd>N</dd> | ||||
<dt>Prefix:</dt><dd>sap</dd> | ||||
<dt>Reference:</dt><dd>RFC 9408</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="scecurity" numbered="true" toc="default"> | ||||
<name>Security Considerations</name> | ||||
<t>The YANG module specified in this document defines a schema for data | ||||
that is designed to be accessed via network management protocols such | ||||
as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. | ||||
The lowest NETCONF layer is the secure transport layer, and the | ||||
mandatory-to-implement secure transport is Secure Shell (SSH) | ||||
<xref target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the | ||||
mandatory-to-implement secure transport is TLS <xref target="RFC8446"/>.</ | ||||
t> | ||||
<t>The Network Configuration Access Control Model (NACM) | ||||
<xref target="RFC8341"/> provides the means to restrict access for | ||||
particular NETCONF or RESTCONF users to a preconfigured subset of all | particular NETCONF or RESTCONF users to a preconfigured subset of all | |||
available NETCONF or RESTCONF protocol operations and content.</t> | available NETCONF or RESTCONF protocol operations and content.</t> | |||
<t>There are a number of data nodes defined in this YANG module that are | <t>There are a number of data nodes defined in this YANG module that are | |||
writable/creatable/deletable (i.e., config true, which is the default). | writable/creatable/deletable (i.e., config true, which is the default). Th | |||
These data nodes may be considered sensitive or vulnerable in some | ese | |||
network environments. Write operations (e.g., edit-config) to these data | data nodes may be considered sensitive or vulnerable in some network | |||
nodes without proper protection can have a negative effect on network | environments. Write operations (e.g., edit-config) to these data nodes | |||
operations. These are the subtrees and data nodes and their | without proper protection can have a negative effect on network operations | |||
sensitivity/vulnerability: <list style="symbols"> | . | |||
<t>/nw:networks/nw:network/nw:node/sap:service/sap:sap<vspace | These are the subtrees and data nodes and their | |||
blankLines="1" />This subtree specifies the configurations of the | sensitivity/vulnerability:</t> | |||
<dl newline="true" spacing="normal"> | ||||
<dt>/nw:networks/nw:network/nw:node/sap:service/sap:sap</dt> | ||||
<dd>This subtree specifies the configurations of the | ||||
nodes in a SAP network model. Unexpected changes to this subtree | nodes in a SAP network model. Unexpected changes to this subtree | |||
(e.g., associating a SAP with another parent termination point) | (e.g., associating a SAP with another parent termination point) | |||
could lead to service disruption and/or network misbehavior. Such | could lead to service disruption and/or network misbehavior. Such | |||
network misbehavior results mainly from a network configuration that | network misbehavior results mainly from a network configuration that | |||
is inconsistent with the intended behavior as defined by the | is inconsistent with the intended behavior as defined by the | |||
operator (e.g., Section 4.2.1 of <xref | operator (e.g., <xref target="RFC8969" sectionFormat="of" section="4.2 | |||
target="RFC8969"></xref>).</t> | .1"/>).</dd> | |||
</list></t> | </dl> | |||
<t>Some of the readable data nodes in this YANG module may be considered | <t>Some of the readable data nodes in this YANG module may be considered | |||
sensitive or vulnerable in some network environments. It is thus | sensitive or vulnerable in some network environments. It is thus important | |||
important to control read access (e.g., via get, get-config, or | to | |||
notification) to these data nodes. These are the subtrees and data nodes | control read access (e.g., via get, get-config, or notification) to these | |||
and their sensitivity/vulnerability:<list style="symbols"> | data nodes. These are the subtrees and data nodes and their | |||
<t>/nw:networks/nw:network/nw:node/sap:service/sap:sap<vspace | sensitivity/vulnerability:</t> | |||
blankLines="1" />Unauthorized access to this subtree can disclose | <dl newline="true" spacing="normal"> | |||
<dt>/nw:networks/nw:network/nw:node/sap:service/sap:sap</dt> | ||||
<dd>Unauthorized access to this subtree can disclose | ||||
the operational state information of the nodes in a SAP network | the operational state information of the nodes in a SAP network | |||
model (e.g., disclose the identity of a customer 'peer-sap-id').</t> | model (e.g., can disclose the identity of a customer 'peer-sap-id').</ | |||
</list></t> | dd> | |||
</dl> | ||||
<t></t> | ||||
</section> | ||||
<section anchor="Acknowledgements" title="Acknowledgements"> | ||||
<t>Thanks to Adrian Farrell, Daniel King, Dhruv Dhody, Benoit Claise, Bo | ||||
Wu, Erez Segev, Raul Arco, Joe Clarke, Riyas Valiyapalathingal, Tom | ||||
Petch, Olga Havel, and Richard Roberts for the comments.</t> | ||||
<t>Thanks to Martin Björklund for the YANG Doctors review, Menachem | ||||
Dodge for the opsdir review, Mach Chen for the rtgdir review, Linda | ||||
Dunbar for the genart review, and Ivaylo Petrov for the secdir | ||||
review.</t> | ||||
<t>Special thanks to Adrian Farrel for the Shepherd review and Rob | ||||
Wilton for the careful AD review.</t> | ||||
<t>Thanks to Lars Eggert, Roman Danyliw, and Zaheduzzaman Sarker for the | ||||
comments during the IESG review.</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | ||||
<?rfc include="reference.RFC.3688"?> | ||||
<?rfc include="reference.RFC.6020"?> | <displayreference target="I-D.ietf-teas-enhanced-vpn" to="ENHANCED-VPN"/> | |||
<?rfc include="reference.RFC.6241"?> | ||||
<?rfc include="reference.RFC.6242"?> | ||||
<?rfc include="reference.RFC.7950"?> | ||||
<?rfc include="reference.RFC.8040"?> | ||||
<?rfc include="reference.RFC.8341"?> | ||||
<?rfc include="reference.RFC.8345"?> | ||||
<?rfc include="reference.RFC.8346"?> | ||||
<?rfc include="reference.RFC.8446"?> | ||||
<?rfc include="reference.RFC.8795"?> | ||||
<?rfc include='reference.RFC.9181'?> | ||||
<?rfc include='reference.RFC.6991'?> | ||||
<?rfc include='reference.RFC.2119'?> | ||||
<?rfc include='reference.RFC.8174'?> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include="reference.RFC.7149"?> | ||||
<?rfc include="reference.RFC.7426"?> | ||||
<?rfc include="reference.RFC.8299"?> | ||||
<?rfc include='reference.RFC.8466'?> | ||||
<?rfc include="reference.RFC.8309"?> | ||||
<?rfc include="reference.RFC.8340"?> | ||||
<?rfc include="reference.RFC.8342"?> | ||||
<?rfc include="reference.RFC.8343"?> | ||||
<?rfc include='reference.RFC.9182'?> | ||||
<?rfc include='reference.RFC.9291'?> | ||||
<?rfc include='reference.RFC.8969'?> | ||||
<?rfc include='reference.I-D.ietf-teas-ietf-network-slices'?> | ||||
<?rfc include='reference.I-D.ietf-teas-enhanced-vpn'?> | ||||
<?rfc include='reference.I-D.ietf-bess-bgp-sdwan-usage'?> | ||||
<?rfc include='reference.RFC.4364'?> | ||||
<?rfc include='reference.RFC.4761'?> | ||||
<?rfc include='reference.RFC.4762'?> | ||||
<?rfc include='reference.RFC.8214'?> | ||||
<?rfc include='reference.RFC.7623'?> | ||||
<?rfc include='reference.RFC.7432'?> | ||||
<?rfc include='reference.RFC.8365'?> | ||||
<?rfc include='reference.RFC.8453'?> | ||||
<?rfc include='reference.RFC.7224'?> | ||||
<?rfc include='reference.RFC.4026'?> | ||||
<?rfc include='reference.RFC.9135'?> | ||||
<?rfc include='reference.RFC.6004'?> | <references> | |||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
688.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
020.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
241.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
242.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
950.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
040.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
341.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
345.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
346.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
446.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
795.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
181.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
991.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
149.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
426.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
951.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
299.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
466.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
309.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
340.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
342.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
182.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
291.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
969.xml"/> | ||||
<?rfc include='reference.RFC.6215'?> | <!-- draft-ietf-teas-ietf-network-slices (AD Evaluation::Revised I-D Needed) | |||
("long way"/"Ed." designations were missing) --> | ||||
<reference anchor="IETF-NETWORK-SLICES"> | ||||
<front> | ||||
<title>A Framework for IETF Network Slices</title> | ||||
<author initials="A." surname="Farrel" fullname="Adrian Farrel" role="edit | ||||
or"> | ||||
</author> | ||||
<author initials="J." surname="Drake" fullname="John Drake" role="editor"> | ||||
</author> | ||||
<author initials="R." surname="Rokui" fullname="Reza Rokui"> | ||||
</author> | ||||
<author initials="S." surname="Homma" fullname="Shunsuke Homma"> | ||||
</author> | ||||
<author initials="K." surname="Makhijani" fullname="Kiran Makhijani"> | ||||
</author> | ||||
<author initials="L.M." surname="Contreras" fullname="Luis M. Contreras"> | ||||
</author> | ||||
<author initials="J." surname="Tantsura" fullname="Jeff Tantsura"> | ||||
</author> | ||||
<date month="January" day="21" year="2023" /> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-teas-ietf-network-slices- | ||||
19" /> | ||||
</reference> | ||||
<reference anchor="IEEE802.1AX"> | <!-- draft-ietf-teas-enhanced-vpn (I-D Exists) --> | |||
<front> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | |||
<title>Link Aggregation</title> | .ietf-teas-enhanced-vpn.xml"/> | |||
<author> | <!-- draft-ietf-bess-bgp-sdwan-usage (I-D Exists) | |||
<organization></organization> | ("long way"/A. Banerjee was missing) --> | |||
</author> | <reference anchor="BGP-SDWAN-USAGE"> | |||
<front> | ||||
<title>BGP Usage for SD-WAN Overlay Networks</title> | ||||
<author initials="L." surname="Dunbar" fullname="Linda Dunbar"> | ||||
</author> | ||||
<author initials="J." surname="Guichard" fullname="Jim Guichard"> | ||||
</author> | ||||
<author initials="A." surname="Sajassi" fullname="Ali Sajassi"> | ||||
</author> | ||||
<author initials="J." surname="Drake" fullname="John Drake"> | ||||
</author> | ||||
<author initials="B." surname="Najem" fullname="Basil Najem"> | ||||
</author> | ||||
<author initials="A." surname="Banerjee" fullname="Ayan Banerjee"> | ||||
</author> | ||||
<author initials="D." surname="Carrel" fullname="David Carrel"> | ||||
</author> | ||||
<date month="April" day="7" year="2023" /> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-bess-bgp-sdwan-usage-09" | ||||
/> | ||||
</reference> | ||||
<date month="" year="2020" /> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
</front> | 364.xml"/> | |||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
761.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
762.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
214.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
623.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
432.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
365.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
453.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
224.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
026.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
135.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
004.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
215.xml"/> | ||||
<seriesInfo name="IEEE" value="Std 802.1AX-2020" /> | <reference anchor="IEEE802.1AX"> | |||
</reference> | <front> | |||
<title>IEEE Standard for Local and Metropolitan Area Networks--Link Ag | ||||
gregation</title> | ||||
<author> | ||||
<organization>IEEE</organization> | ||||
</author> | ||||
<date year="2020"/> | ||||
</front> | ||||
<seriesInfo name='IEEE Std' value='802.1AX-2020' /> | ||||
<seriesInfo name='DOI' value='10.1109/IEEESTD.2020.9105034' /> | ||||
</reference> | ||||
<reference anchor="MEF6" | <reference anchor="MEF6" target="https://www.mef.net/Assets/Technical_Sp | |||
target="https://www.mef.net/Assets/Technical_Specifications/PDF | ecifications/PDF/MEF_6.pdf"> | |||
/MEF_6.pdf"> | <front> | |||
<front> | <title>Technical Specification MEF 6, Ethernet Services Definitions | |||
<title>Technical Specification MEF 6, Ethernet Services Definitions | ||||
- Phase I</title> | - Phase I</title> | |||
<author> | ||||
<organization>The Metro Ethernet Forum</organization> | ||||
</author> | ||||
<date month="June" year="2004"/> | ||||
</front> | ||||
</reference> | ||||
<author fullname=""> | <reference anchor="MEF17" target="https://www.mef.net/wp-content/uploads | |||
<organization>The Metro Ethernet Forum</organization> | /2015/04/MEF-17.pdf"> | |||
</author> | <front> | |||
<title>Technical Specification MEF 17, Service OAM Requirements | ||||
<date month="June" year="2004" /> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MEF17" | ||||
target="https://www.mef.net/wp-content/uploads/2015/04/MEF-17.p | ||||
df"> | ||||
<front> | ||||
<title>Technical Specification MEF 17, Service OAM Requirements | ||||
& Framework - Phase 1</title> | & Framework - Phase 1</title> | |||
<author> | ||||
<author fullname=""> | <organization>The Metro Ethernet Forum</organization> | |||
<organization>The Metro Ethernet Forum</organization> | </author> | |||
</author> | <date month="April" year="2007"/> | |||
</front> | ||||
<date month="April" year="2007" /> | </reference> | |||
</front> | </references> | |||
</reference> | ||||
</references> | </references> | |||
<section anchor="app1" numbered="true" toc="default"> | ||||
<section anchor="app1" title="A Simplified SAP Network Example"> | <name>A Simplified SAP Network Example</name> | |||
<t>An example of a SAP topology that is reported by a network controller | <t>An example of a SAP topology that is reported by a network controller | |||
is depicted in <xref target="ex1"></xref>. This example echoes the | is depicted in <xref target="ex1" format="default"/>. This example echoes | |||
topology shown in <xref target="fi3a"></xref>. Only a minimum set of | the | |||
information is provided for each SAP. Particularly, | topology shown in <xref target="fi3a" format="default"/>. Only a minimum | |||
information set is provided for each SAP. Particularly, | ||||
'parent-termination-point', 'attachment-interface', 'interface-type', | 'parent-termination-point', 'attachment-interface', 'interface-type', | |||
'encapsulation-type', and 'role' are not shown in the example. SAPs that | 'encapsulation-type', and 'role' are not shown in the example. SAPs that | |||
are capable of hosting a service, but not yet activated, are identified | are capable of hosting a service but are not yet activated are identified | |||
by the 'sap-status/status' set to 'ietf-vpn-common:op-down' and | by 'sap-status/status' set to 'ietf-vpn-common:op-down' and | |||
'service-status/admin-status/status' set to | 'service-status/admin-status/status' set to | |||
'ietf-vpn-common:admin-down'. SAPs that are enabled to deliver a service | 'ietf-vpn-common:admin-down'. SAPs that are enabled to deliver a service | |||
are identified by 'service-status/admin-status/status' set to | are identified by 'service-status/admin-status/status' set to | |||
'ietf-vpn-common:admin-up' and 'service-status/oper-status/status' set | 'ietf-vpn-common:admin-up' and 'service-status/oper-status/status' set | |||
to 'ietf-vpn-common:op-up'. Note that none of the anomalies discussed in | to 'ietf-vpn-common:op-up'. Note that none of the anomalies discussed in | |||
<xref target="tree"></xref> are detected for these SAPs.</t> | <xref target="tree" format="default"/> are detected for these SAPs. | |||
The message body depicted in the figures below is encoded following the | ||||
<t><figure anchor="ex1" title="A Simplified SAP Network Example"> | JSON encoding of YANG-modeled data as per <xref target="RFC7951"/>.</t> | |||
<artwork><![CDATA[{ | <figure anchor="ex1"> | |||
<name>A Simplified SAP Network Example</name> | ||||
<sourcecode type="json"><![CDATA[{ | ||||
"ietf-network:networks": { | "ietf-network:networks": { | |||
"network": [ | "network": [ | |||
{ | { | |||
"network-types": { | "network-types": { | |||
"ietf-sap-ntw:sap-network": { | "ietf-sap-ntw:sap-network": { | |||
"service-type": [ | "service-type": [ | |||
"ietf-vpn-common:l3vpn", | "ietf-vpn-common:l3vpn", | |||
"ietf-vpn-common:vpls" | "ietf-vpn-common:vpls" | |||
] | ] | |||
} | } | |||
skipping to change at line 1585 ¶ | skipping to change at line 1426 ¶ | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
}]]></artwork> | } | |||
</figure></t> | ]]></sourcecode></figure> | |||
<t></t> | ||||
</section> | </section> | |||
<section anchor="sample" numbered="true" toc="default"> | ||||
<section anchor="sample" | <name>A Simple Example of the SAP Network Model: Node Filter</name> | |||
title="A Simple Example of SAP Network Model: Node Filter"> | <t>In the example shown in <xref target="app-ex" format="default"/>, PE1 ( | |||
<t>In the example shown in <xref target="app-ex"></xref>, PE1 (with a | with a | |||
"node-id" set to "example:pe1") has two physical interfaces "GE0/6/1" | "node-id" set to "example:pe1", as shown in <xref target="ex1"/>) has two | |||
physical interfaces "GE0/6/1" | ||||
and "GE0/6/4". Two sub-interfaces "GE0/6/4.1" and "GE0/6/4.2" are | and "GE0/6/4". Two sub-interfaces "GE0/6/4.1" and "GE0/6/4.2" are | |||
associated with the physical interface "GE0/6/4". Let us consider that | associated with the physical interface "GE0/6/4". Let us consider that | |||
four SAPs are exposed to the service orchestrator and mapped to these | four SAPs are exposed to the service orchestrator and mapped to these | |||
physical interfaces and sub-interfaces.</t> | physical interfaces and sub-interfaces.</t> | |||
<figure anchor="app-ex"> | ||||
<t><figure align="center" anchor="app-ex" | <name>An Example of a PE and Its Physical/Logical Interfaces</name> | |||
title="An Example of a PE and its Physical/Logical Interfaces"> | <artwork align="center" name="" type="" alt=""><![CDATA[ .------------ | |||
<artwork align="center"><![CDATA[ .-------------------------. | -------------. | |||
| GE0/6/4 | | | GE0/6/4 | | |||
| PE1 .----+----. | | PE1 .----+----. | |||
| |sap#2 |GE0/6/4.1 | | |sap#2 |GE0/6/4.1 | |||
| | .--+--. | | | .--+--. | |||
| | |sap#3| | | | |sap#3| | |||
| | '--+--' | | | '--+--' | |||
| | |GE0/6/4.2 | | | |GE0/6/4.2 | |||
| | .--+--. | | | .--+--. | |||
| | |sap#4| | | | |sap#4| | |||
| | '--+--' | | | '--+--' | |||
| | | | | | | | |||
| +----+----+ | | +----+----+ | |||
| | | | | | |||
| GE0/6/1| | | GE0/6/1| | |||
| .----+----. | | .----+----. | |||
| |sap#1 | | | |sap#1 | | |||
| '----+----' | | '----+----' | |||
| | | | | | |||
'-------------------------' | '-------------------------' | |||
]]></artwork> | ]]></artwork></figure> | |||
</figure></t> | ||||
<t>Let us assume that no service is enabled yet for the SAP associated | <t>Let us assume that no service is enabled yet for the SAP associated | |||
with the physical interface "GE0/6/1". Also, let us assume that, for the | with the physical interface "GE0/6/1". Also, let us assume that, for the | |||
SAPs that are associated with the physical interface "GE0/6/4", VPLS and | SAPs that are associated with the physical interface "GE0/6/4", VPLS and | |||
L3VPN services are activated on the two sub-interfaces "GE0/6/4.1" and | L3VPN services are activated on the two sub-interfaces "GE0/6/4.1" and | |||
"GE0/6/4.2", respectively. Both "sap#1" and "sap#2" are tagged as being | "GE0/6/4.2", respectively. Both "sap#1" and "sap#2" are tagged as being | |||
capable of hosting per-service sub-interfaces ('allows-child-saps' is | capable of hosting per-service sub-interfaces ('allows-child-saps' is | |||
set to 'true').</t> | set to 'true').</t> | |||
<t>For example, a service orchestrator can query what services are provide | ||||
<t>A service orchestrator can query what services are provided on which | d on which | |||
SAPs of PE1 from the network controller by sending, e.g., a GET RESTCONF | SAPs of PE1 from the network controller by sending a RESTCONF GET | |||
request. <xref target="app-ex-res-body"></xref> shows an example of the | request. <xref target="app-ex-res-body" format="default"/> shows an exampl | |||
e of the | ||||
body of the RESTCONF response that is received from the network | body of the RESTCONF response that is received from the network | |||
controller.</t> | controller.</t> | |||
<figure anchor="app-ex-res-body"> | ||||
<t><figure anchor="app-ex-res-body" | <name>An Example of a Response Body to a Request with a Node Filter</nam | |||
title="An Example of a Response Body to a Request with a Node Filter"> | e> | |||
<artwork><![CDATA[{ | <sourcecode type="json"><![CDATA[{ | |||
"ietf-sap-ntw:service": [ | "ietf-sap-ntw:service": [ | |||
{ | { | |||
"service-type": "ietf-vpn-common:l3vpn", | "service-type": "ietf-vpn-common:l3vpn", | |||
"sap": [ | "sap": [ | |||
{ | { | |||
"sap-id": "sap#1", | "sap-id": "sap#1", | |||
"description": "Ready to host SAPs", | "description": "Ready to host SAPs", | |||
"attachment-interface": "GE0/6/1", | "attachment-interface": "GE0/6/1", | |||
"interface-type": "ietf-sap-ntw:phy", | "interface-type": "ietf-sap-ntw:phy", | |||
"role": "ietf-sap-ntw:uni", | "role": "ietf-sap-ntw:uni", | |||
skipping to change at line 1737 ¶ | skipping to change at line 1570 ¶ | |||
}, | }, | |||
"oper-status": { | "oper-status": { | |||
"status": "ietf-vpn-common:op-up" | "status": "ietf-vpn-common:op-up" | |||
} | } | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
]]></artwork> | ]]></sourcecode></figure> | |||
</figure></t> | <t><xref target="app-ex-res-body-filter" format="default"/> shows an examp | |||
le of the | ||||
<t><xref target="app-ex-res-body-filter"></xref> shows an example of the | ||||
response message body that is received from the network controller if | response message body that is received from the network controller if | |||
the request includes a filter on the service type for a particular | the request includes a filter on the service type for a particular | |||
node:</t> | node:</t> | |||
<figure anchor="app-ex-res-body-filter"> | ||||
<t><figure anchor="app-ex-res-body-filter" | <name>An Example of a Response Body to a Request with a Service Filter</ | |||
title="An Example of a Response Body to a Request with a Service Filte | name> | |||
r"> | <sourcecode type="json"><![CDATA[{ | |||
<artwork><![CDATA[{ | ||||
"ietf-sap-ntw:service": [ | "ietf-sap-ntw:service": [ | |||
{ | { | |||
"service-type": "ietf-vpn-common:l3vpn", | "service-type": "ietf-vpn-common:l3vpn", | |||
"sap": [ | "sap": [ | |||
{ | { | |||
"sap-id": "sap#1", | "sap-id": "sap#1", | |||
"description": "Ready to host SAPs", | "description": "Ready to host SAPs", | |||
"attachment-interface": "GE0/6/1", | "attachment-interface": "GE0/6/1", | |||
"interface-type": "ietf-sap-ntw:phy", | "interface-type": "ietf-sap-ntw:phy", | |||
"role": "ietf-sap-ntw:uni", | "role": "ietf-sap-ntw:uni", | |||
skipping to change at line 1797 ¶ | skipping to change at line 1627 ¶ | |||
}, | }, | |||
"oper-status": { | "oper-status": { | |||
"status": "ietf-vpn-common:op-up" | "status": "ietf-vpn-common:op-up" | |||
} | } | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
]]></artwork> | ]]></sourcecode></figure> | |||
</figure></t> | ||||
<t></t> | ||||
</section> | </section> | |||
<section anchor="nniapp" numbered="true" toc="default"> | ||||
<section anchor="nniapp" | <name>An Example of an NNI SAP: Inter-AS VPN Option A</name> | |||
title="An Example of NNI SAP: Inter-AS VPN Option A"> | <t><xref target="RFC4364" sectionFormat="of" section="10"/> | |||
<t>Section 10 of <xref target="RFC4364"></xref> discuses several options | discusses several options | |||
to extend a VPN service beyond the scope of a single Autonomous System | to extend a VPN service beyond the scope of a single Autonomous System | |||
(AS). For illustration purposes, this section focuses on the so-called | (AS). For illustration purposes, this section focuses on the so-called | |||
"Option A" but similar examples can be considered for other options.</t> | "Option A", but similar examples can be considered for other options.</t> | |||
<t>In this option, an AS Border Router (ASBR) of an AS is directly connect | ||||
<t>In this option, an ASBR of an AS is directly connected to an ASBR of | ed to an ASBR of | |||
a neighboring AS. These two ASBRs are connected by multiple physical or | a neighboring AS. These two ASBRs are connected by multiple physical or | |||
logical interfaces. Also, at least one sub-interface is maintained by | logical interfaces. Also, at least one sub-interface is maintained by | |||
these ASBRs for each of the VPNs that require their routes to be passed | these ASBRs for each of the VPNs that require their routes to be passed | |||
from one AS to the other AS. Each ASBR behaves as a PE and treats the | from one AS to the other AS. Each ASBR behaves as a PE and treats the | |||
other as if it were a CE.</t> | other as if it were a CE.</t> | |||
<t><xref target="optiona" format="default"/> shows a simplified (excerpt) | ||||
<t><xref target="optiona"></xref> shows a simplified (excerpt) topology | topology | |||
of two ASes A and B with a focus on the interconnection links between | of two ASes A and B with a focus on the interconnection links between | |||
these two ASes.</t> | these two ASes.</t> | |||
<figure anchor="optiona"> | ||||
<t><figure align="center" anchor="optiona" | <name>An Example of an Inter-AS VPN (Option A)</name> | |||
title="An Example of Inter-AS VPN (Option A)"> | <artwork align="center" name="" type="" alt=""><![CDATA[.--------------- | |||
<artwork align="center"><![CDATA[.--------------------. | -----. .--------------------. | |||
.--------------------. | ||||
| | | | | | | | | | |||
| A .--+--. .--+--. A | | | A .--+--. .--+--. A | | |||
| S | +================+ | S | | | S | +================+ | S | | |||
| B | (VRF1)----(VPN1)----(VRF1) | B | | | B | (VRF1)----(VPN1)----(VRF1) | B | | |||
| R | | | | R | | | R | | | | R | | |||
| | (VRF2)----(VPN2)----(VRF2) | | | | | (VRF2)----(VPN2)----(VRF2) | | | |||
| a | +================+ | b | | | a | +================+ | b | | |||
| 1 '--+--' '--+--' 1 | | | 1 '--+--' '--+--' 1 | | |||
| AS A | | AS B | | | AS A | | AS B | | |||
| A .--+--. .--+--. A | | | A .--+--. .--+--. A | | |||
| S | +================+ | S | | | S | +================+ | S | | |||
| B | (VRF1)----(VPN1)----(VRF1) | B | | | B | (VRF1)----(VPN1)----(VRF1) | B | | |||
| R | | | | R | | | R | | | | R | | |||
| | (VRF2)----(VPN2)----(VRF2) | | | | | (VRF2)----(VPN2)----(VRF2) | | | |||
| a | +================+ | b | | | a | +================+ | b | | |||
| 2 '--+--' '--+--' 2 | | | 2 '--+--' '--+--' 2 | | |||
| | | | | | | | | | |||
'--------------------' '--------------------']]></artwork> | '--------------------' '--------------------' | |||
</figure></t> | ]]></artwork> </figure> | |||
<t><xref target="nniex1" format="default"/> shows an example of a message | ||||
<t><xref target="nniex1"></xref> shows an example of a message body that | body that | |||
is received from the network controller of AS A (with a focus on the | is received from the network controller of AS A (with a focus on the | |||
NNIs shown in <xref target="optiona"></xref>).</t> | NNIs shown in <xref target="optiona" format="default"/>).</t> | |||
<figure anchor="nniex1"> | ||||
<t><figure anchor="nniex1" title="An Example of SAP Usage for NNI"> | <name>An Example of SAP Usage for an NNI</name> | |||
<artwork><![CDATA[{ | <sourcecode type="json"><![CDATA[{ | |||
"ietf-network:networks": { | "ietf-network:networks": { | |||
"network": [ | "network": [ | |||
{ | { | |||
"network-types": { | "network-types": { | |||
"ietf-sap-ntw:sap-network": { | "ietf-sap-ntw:sap-network": { | |||
"service-type": [ | "service-type": [ | |||
"ietf-vpn-common:l3vpn" | "ietf-vpn-common:l3vpn" | |||
] | ] | |||
} | } | |||
}, | }, | |||
skipping to change at line 1994 ¶ | skipping to change at line 1817 ¶ | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
] | ] | |||
} | } | |||
}]]></artwork> | } | |||
</figure></t> | ]]></sourcecode></figure> | |||
<t></t> | ||||
</section> | </section> | |||
<section anchor="servicesap" numbered="true" toc="default"> | ||||
<section anchor="servicesap" | <name>Examples of Using the SAP Network Model in Service Creation</name> | |||
title="Examples of Using the SAP Network Model in Service Creation" | <t>This section describes examples that illustrate the use of the SAP | |||
> | ||||
<t>This section describes an example to illustrate the use of the SAP | ||||
model for service creation purposes.</t> | model for service creation purposes.</t> | |||
<t>An example of a SAP topology is presented in <xref target="ex1" format= | ||||
<t>An example of a SAP topology is presented in <xref | "default"/>. This example includes four PEs with their SAPs, as | |||
target="ex1"></xref>. This example includes four PEs with their SAPs, as | ||||
well as the customer information.</t> | well as the customer information.</t> | |||
<t>Let us assume that an operator wants to create an L3VPN service | <t>Let us assume that an operator wants to create an L3VPN service | |||
between two PEs (PE3 and PE4) that are servicing two CEs (CE6 and CE7). | between two PEs (PE3 and PE4) that are servicing two CEs (CE6 and CE7). | |||
To that aim, the operator would query the SAP topology and would obtain | To that aim, the operator would query the SAP topology and would obtain | |||
a response similar to what is depicted in <xref target="ex1"></xref>. | a response similar to what is depicted in <xref target="ex1" format="defau lt"/>. | |||
That response indicates that the SAPs having "sap#31" and "sap#43" as | That response indicates that the SAPs having "sap#31" and "sap#43" as | |||
attachment identifiers do not have any installed services. This is | attachment identifiers do not have any installed services. This is | |||
particularly inferred from the administrative 'service-status' which is | particularly inferred from (1) the administrative 'service-status' that is | |||
set to 'ietf-vpn-common:admin-down' for all the services that are | set to 'ietf-vpn-common:admin-down' for all the services that are | |||
supported by these two SAPs and that none of the anomalies discussed in | supported by these two SAPs and (2) the absence of the anomalies discussed | |||
<xref target="tree"></xref> are detected. Once the "free" SAPs are | in <xref target="tree"/>. Note that none of the anomalies discussed in | |||
<xref target="tree" format="default"/> are detected. Once the "free" SAPs | ||||
are | ||||
identified, the 'interface-type' and 'encapsulation-type' are checked to | identified, the 'interface-type' and 'encapsulation-type' are checked to | |||
see if the requested L3VPN service is compatible with the SAP | see if the requested L3VPN service is compatible with the SAP | |||
characteristics. If they are compatible, the 'attachment-id' value can | characteristics. If they are compatible, the 'attachment-id' value can | |||
be used as the VPN network access identifier in an L3NM create | be used as the VPN network access identifier in an L3NM "create" | |||
query.</t> | query.</t> | |||
<t>A similar process can be followed for creating the so-called | <t>A similar process can be followed for creating the so-called | |||
"Inter-AS VPN Option A" services. Unlike the previous example, let us | "Inter-AS VPN Option A" services. Unlike the previous example, let us | |||
assume that an operator wants to create an L3VPN service between two PEs | assume that an operator wants to create an L3VPN service between two PEs | |||
(PE3 and PE4) but these PEs are not in the same AS: PE3 belongs to AS A | (PE3 and PE4) but these PEs are not in the same AS: PE3 belongs to AS A | |||
while PE4 belongs to AS B. The NNIs between these ASes are represented | while PE4 belongs to AS B. The NNIs between these ASes are represented | |||
in <xref target="optiona"></xref>. The operator of AS A would query, via | in <xref target="optiona" format="default"/>. The operator of AS A would q uery, via | |||
the controller of its AS, the SAP topology and would obtain not only the | the controller of its AS, the SAP topology and would obtain not only the | |||
information that is depicted in <xref target="ex1"></xref>, but also the | information that is depicted in <xref target="ex1" format="default"/> but | |||
information shown in <xref target="nniex1"></xref> representing the | also the | |||
information shown in <xref target="nniex1" format="default"/> representing | ||||
the | ||||
NNIs. The operator would create the service in the AS A between PE3 and | NNIs. The operator would create the service in the AS A between PE3 and | |||
a free, compatible SAP in the ASBR A1. The same procedure is followed by | a free, compatible SAP in the ASBR A1. The same procedure is followed by | |||
the operator of AS B to create the service in the AS B between a free, | the operator of AS B to create the service in the AS B between a free, | |||
compatible SAP in the ASBR B1 and PE4. The services can be provisioned | compatible SAP in the ASBR B1 and PE4. The services can be provisioned | |||
in each of these ASes using the L3NM.</t> | in each of these ASes using the L3NM.</t> | |||
<t>Let us now assume that, instead of the L3VPN service, the operator | <t>Let us now assume that, instead of the L3VPN service, the operator | |||
wants to set up an L2VPN service. If the 'interface-type' is a physical | wants to set up an L2VPN service. If the 'interface-type' is a physical | |||
port, a new logical SAP can be created using the SAP model to cope with | port, a new logical SAP can be created using the SAP model to cope with | |||
the service needs (e.g., the 'encapsulation-type' attribute can be set | the service's needs (e.g., the 'encapsulation-type' attribute can be set | |||
to 'ietf-vpn-common:vlan-type'). Once the logical SAP is created, the | to 'ietf-vpn-common:vlan-type'). Once the logical SAP is created, the | |||
'attachment-id' of the new SAP is used to create an L2NM instance | 'attachment-id' of the new SAP is used to create an L2NM instance | |||
(Section 7.6 of <xref target="RFC9291"></xref>).</t> | (<xref target="RFC9291" sectionFormat="of" section="7.6"/>).</t> | |||
</section> | ||||
<section anchor="Acknowledgements" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>Thanks to <contact fullname="Adrian Farrel"/>, | ||||
<contact fullname="Daniel King"/>, <contact fullname="Dhruv Dhody"/>, | ||||
<contact fullname="Benoit Claise"/>, <contact fullname="Bo Wu"/>, | ||||
<contact fullname="Erez Segev"/>, <contact fullname="Raul Arco"/>, | ||||
<contact fullname="Joe Clarke"/>, | ||||
<contact fullname="Riyas Valiyapalathingal"/>, | ||||
<contact fullname="Tom Petch"/>, <contact fullname="Olga Havel"/>, and | ||||
<contact fullname="Richard Roberts"/> for their comments.</t> | ||||
<t>Thanks to <contact fullname="Martin Björklund"/> for the YANG Doctors | ||||
review, <contact fullname="Menachem Dodge"/> for the opsdir review, | ||||
<contact fullname="Mach Chen"/> for the rtgdir review, | ||||
<contact fullname="Linda Dunbar"/> for the genart review, and | ||||
<contact fullname="Ivaylo Petrov"/> for the secdir | ||||
review.</t> | ||||
<t>Special thanks to <contact fullname="Adrian Farrel"/> for the Shepherd | ||||
review and <contact fullname="Rob Wilton"/> for the careful AD review.</t> | ||||
<t>Thanks to <contact fullname="Lars Eggert"/>, | ||||
<contact fullname="Roman Danyliw"/>, and | ||||
<contact fullname="Zaheduzzaman Sarker"/> for their | ||||
comments during the IESG review.</t> | ||||
</section> | </section> | |||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 205 change blocks. | ||||
813 lines changed or deleted | 792 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |