rfc9181xml2.original.xml   rfc9181.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 "&#160;">
<!-- One method to get references from the online citation libraries. <!ENTITY zwsp "&#8203;">
There has to be one entity for each item to be referenced. <!ENTITY nbhy "&#8209;">
An alternate method (rfc include) is described in the references. --> <!ENTITY wj "&#8288;">
]> ]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors --> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-opsawg-vpn-c
<!-- For a complete list and description of processing instructions (PIs), ommon-12" number="9181" ipr="trust200902" obsoletes="" updates="" submissionType
please see http://xml.resource.org/authoring/README.html. --> ="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true" tocDepth
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds ="4" symRefs="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.10.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-vpn-common-12"
ipr="trust200902">
<front> <front>
<title abbrev="VPN Common YANG Model">A Layer 2/3 VPN Common YANG <title abbrev="VPN Common YANG Data Model">A Common YANG Data Model for Laye
Model</title> r 2 and Layer 3 VPNs</title>
<seriesInfo name="RFC" value="9181"/>
<author fullname="Samier Barguil" initials="S." surname="Barguil"> <author fullname="Samier Barguil" initials="S." surname="Barguil">
<organization>Telefonica</organization> <organization>Telefonica</organization>
<address> <address>
<postal> <postal>
<street></street>
<city>Madrid</city> <city>Madrid</city>
<region></region>
<code></code>
<country>Spain</country> <country>Spain</country>
</postal> </postal>
<phone></phone>
<facsimile></facsimile>
<email>samier.barguilgiraldo.ext@telefonica.com</email> <email>samier.barguilgiraldo.ext@telefonica.com</email>
<uri/>
<uri></uri>
</address> </address>
</author> </author>
<author fullname="Oscar Gonzalez de Dios" initials="O" role="editor" surname
<author fullname="Oscar Gonzalez de Dios" initials="O" role="editor" ="Gonzalez de Dios">
surname="Gonzalez de Dios">
<organization>Telefonica</organization> <organization>Telefonica</organization>
<address> <address>
<postal> <postal>
<street></street>
<!-- Reorder these if your country does things differently -->
<city>Madrid</city> <city>Madrid</city>
<region></region>
<code></code>
<country>Spain</country> <country>Spain</country>
</postal> </postal>
<phone></phone>
<email>oscar.gonzalezdedios@telefonica.com</email> <email>oscar.gonzalezdedios@telefonica.com</email>
<!-- uri and facsimile elements may also be added -->
</address> </address>
</author> </author>
<author fullname="Mohamed Boucadair" initials="M." role="editor" surname="Bo
<author fullname="Mohamed Boucadair" initials="M." role="editor" ucadair">
surname="Boucadair">
<organization>Orange</organization> <organization>Orange</organization>
<address> <address>
<postal> <postal>
<street></street>
<!-- Reorder these if your country does things differently -->
<city></city>
<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>
<!-- uri and facsimile elements may also be added -->
</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> <street>101 Software Avenue</street>
<street>Yuhua District</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>
<date year="2022" month="February"/>
<date />
<workgroup>opsawg</workgroup> <workgroup>opsawg</workgroup>
<keyword>service automation</keyword> <keyword>service automation</keyword>
<keyword>network automation</keyword> <keyword>network automation</keyword>
<keyword>service delivery</keyword> <keyword>service delivery</keyword>
<keyword>service provisioning</keyword> <keyword>service provisioning</keyword>
<keyword>Slice</keyword> <keyword>Slice</keyword>
<keyword>network slicing</keyword> <keyword>network slicing</keyword>
<keyword>vitalisation</keyword> <keyword>vitalisation</keyword>
<keyword>Automation</keyword> <keyword>Automation</keyword>
<keyword>Network Models</keyword> <keyword>Network Models</keyword>
<abstract> <abstract>
<t>This document defines a common YANG module that is meant to be reused <t>This document defines a common YANG module that is meant to be reused
by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN by various VPN-related modules such as Layer 3 VPN and Layer 2 VPN
network models.</t> network models.</t>
</abstract> </abstract>
<note title="Editorial Note (To be removed by RFC Editor)">
<t>Please update these statements within the document with the RFC
number to be assigned to this document:<list style="symbols">
<t>"This version of this YANG module is part of RFC XXXX;"</t>
<t>"RFC XXXX: A Layer 2/3 VPN Common YANG Model";</t>
<t>reference: RFC XXXX</t>
</list></t>
<t>Also, please update the "revision" date of the YANG module.</t>
</note>
</front> </front>
<middle> <middle>
<section anchor="intro" title="Introduction"> <section anchor="intro" numbered="true" toc="default">
<t>The IETF has specified YANG data modules for VPN services, e.g., <name>Introduction</name>
Layer 3 VPN Service Model (L3SM) <xref target="RFC8299"></xref> or Layer <t>The IETF has specified YANG modules for VPN services, e.g., the
2 VPN Service Model (L2SM) <xref target="RFC8466"></xref>. Other Layer 3 VPN Service Model (L3SM) <xref target="RFC8299" format="default"/>
relevant YANG models are the Layer 3 VPN Network Model (L3NM) <xref or the Layer
target="I-D.ietf-opsawg-l3sm-l3nm"></xref> and the Layer 2 VPN Network 2 VPN Service Model (L2SM) <xref target="RFC8466" format="default"/>. Othe
Model (L2NM) <xref target="I-D.ietf-opsawg-l2nm"></xref>. There are r
relevant YANG data models are the Layer 3 VPN Network Model (L3NM) <xref t
arget="RFC9182" format="default"/> and the Layer 2 VPN Network
Model (L2NM) <xref target="L2NM-YANG" format="default"/>. There are
common data nodes and structures that are present in all of these models common data nodes and structures that are present in all of these models
or at least a subset of them.</t> or at least a subset of them.</t>
<t>This document defines a common YANG module that is meant to be reused <t>This document defines a common YANG module that is meant to be reused
by various VPN-related modules such as L3NM <xref by various VPN-related modules such as the L3NM <xref target="RFC9182" for
target="I-D.ietf-opsawg-l3sm-l3nm"></xref> and L2NM <xref mat="default"/> and the L2NM <xref target="L2NM-YANG" format="default"/>: "ietf-
target="I-D.ietf-opsawg-l2nm"></xref>: "ietf-vpn-common" (<xref vpn-common" (<xref target="module" format="default"/>).</t>
target="module"></xref>).</t>
<t>The "ietf-vpn-common" module includes a set of identities, types, and <t>The "ietf-vpn-common" module includes a set of identities, types, and
groupings that are meant to be reused by other VPN-related YANG modules groupings that are meant to be reused by other VPN-related YANG modules
independently of their layer (e.g., Layer 2, Layer 3) and the type of independently of their layer (e.g., Layer 2, Layer 3) and the type of
the module (e.g., network model, service model) including possible the module (e.g., network model, service model), including possible
future revisions of existing models (e.g., L3SM <xref future revisions of existing models (e.g., the L3SM <xref target="RFC8299"
target="RFC8299"></xref> or L2SM <xref target="RFC8466"></xref>).</t> format="default"/> or the L2SM <xref target="RFC8466" format="default"/>).</t>
</section> </section>
<section anchor="terminology" numbered="true" toc="default">
<section anchor="terminology" title="Terminology"> <name>Terminology</name>
<t>The terminology for describing YANG modules is defined in <xref <t>The terminology for describing YANG modules is defined in <xref target=
target="RFC7950"></xref>.</t> "RFC7950" format="default"/>.</t>
<t>The meanings of the symbols in tree diagrams are defined in <xref targe
<t>The meaning of the symbols in tree diagrams is defined in <xref t="RFC8340" format="default"/>.</t>
target="RFC8340"></xref>.</t> <t>The reader may refer to <xref target="RFC4026" format="default"/> and <
xref target="RFC4176" format="default"/> for VPN-related terms.</t>
<t>The reader may refer to <xref target="RFC4026"></xref> and <xref <t>This document inherits many terms from <xref target="RFC8299" format="d
target="RFC4176"></xref> for VPN-related terms.</t> efault"/>
and <xref target="RFC8466" format="default"/> (e.g., Enhanced Mobile Broad
<t>The document inherits many terms from <xref target="RFC8299"></xref> band
and <xref target="RFC8466"></xref> (e.g., Enhanced Mobile Broadband
(eMBB), Ultra-Reliable and Low Latency Communications (URLLC), Massive (eMBB), Ultra-Reliable and Low Latency Communications (URLLC), Massive
Machine Type Communications (mMTC)).</t> Machine Type Communications (mMTC)).</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Description of the VPN Common YANG Module"> <name>Description of the VPN Common YANG Module</name>
<t>The "ietf-vpn-common" module defines a set of common VPN-related <t>The "ietf-vpn-common" module defines a set of common VPN-related
features, including: <list style="hanging"> features, including the following:</t>
<t hangText="Encapsulation features such as:"><list style="symbols"> <dl newline="false" spacing="normal">
<t>Dot1q <xref target="IEEE802.1Q"></xref>,</t> <dt>Encapsulation features, such as the following:</dt>
<dd>
<t>QinQ <xref target="IEEE802.1ad"></xref>,</t> <ul spacing="normal">
<li>dot1Q <xref target="IEEE802.1Q" format="default"/>,</li>
<t>link aggregation <xref target="IEEE802.1AX"></xref>, and</t> <li>QinQ <xref target="IEEE802.1ad" format="default"/>,</li>
<li>link aggregation <xref target="IEEE802.1AX" format="default"/>,
<t><xref target="RFC7348">Virtual eXtensible Local Area Network and</li>
(VXLAN)</xref>.</t> <li>
</list></t> <xref target="RFC7348" format="default">Virtual eXtensible Local A
rea Networks
<t hangText="Multicast [RFC6513]."></t> (VXLANs)</xref>.</li>
</ul>
<t hangText="Routing features such as:"><list style="symbols"> </dd>
<t>BGP <xref target="RFC4271"></xref>,</t> <dt>Multicast <xref target="RFC6513" format="default"/>.</dt>
<dd/>
<t>OSPF <xref target="RFC4577"></xref><xref <dt>Routing features, such as the following:</dt>
target="RFC6565"></xref>,</t> <dd>
<ul spacing="normal">
<t>IS-IS <xref target="ISO10589"></xref>,</t> <li>BGP <xref target="RFC4271" format="default"/>,</li>
<li>OSPF <xref target="RFC4577" format="default"/> <xref target="RFC
<t>RIP <xref target="RFC2080"></xref><xref 6565" format="default"/>,</li>
target="RFC2453"></xref>,</t> <li>IS-IS <xref target="ISO10589" format="default"/>,</li>
<li>RIP <xref target="RFC2080" format="default"/> <xref target="RFC2
<t>Bidirectional Forwarding Detection (BFD) <xref 453" format="default"/>,</li>
target="RFC5880"></xref><xref target="RFC7880"></xref>, and</t> <li>Bidirectional Forwarding Detection (BFD) <xref target="RFC5880"
format="default"/> <xref target="RFC7880" format="default"/>, and</li>
<t>Virtual Router Redundancy Protocol (VRRP) <xref <li>Virtual Router Redundancy Protocol (VRRP) <xref target="RFC5798"
target="RFC5798"></xref>.</t> format="default"/>.</li>
</list></t> </ul>
</list> Also, the module defines a set of identities, including:<list </dd>
style="hanging"> </dl>
<t hangText="'service-type':">Used to identify the VPN service type. <t> Also, the module defines a set of identities, including the following:
Examples of supported service types are: <list style="symbols"> </t>
<t>L3VPN,</t> <dl newline="false" spacing="normal">
<dt>'service-type':</dt>
<t>Virtual Private LAN Service (VPLS) using BGP <xref <dd>
target="RFC4761"></xref>,</t> <t>Used to identify the VPN service type.
Examples of supported service types are as follows: </t>
<t><xref target="RFC4762">VPLS using Label Distribution Protocol <ul spacing="normal">
(LDP)</xref>,</t> <li>L3VPN,</li>
<li>Virtual Private LAN Service (VPLS) using BGP <xref target="RFC47
<t><xref target="RFC8214">Virtual Private Wire Service 61" format="default"/>,</li>
(VPWS)</xref>,</t> <li>
<xref target="RFC4762" format="default">VPLS using the Label Distr
<t><xref target="RFC7432">BGP MPLS-Based Ethernet ibution Protocol
VPN</xref>,</t> (LDP)</xref>,</li>
<li>
<t><xref target="RFC8365">Ethernet VPN (EVPN)</xref>, and</t> <xref target="RFC8214" format="default">Virtual Private Wire Servi
ce
<t><xref target="RFC7623">Provider Backbone Bridging Combined (VPWS)</xref>,</li>
with Ethernet VPN (PBB-EVPN)</xref>.</t> <li>
</list></t> <xref target="RFC7432" format="default">BGP MPLS-Based Ethernet
VPN</xref>,</li>
<t hangText="'vpn-signaling-type':">Used to identify the signaling <li>
<xref target="RFC8365" format="default">Ethernet VPN (EVPN)</xref>
, and</li>
<li>
<xref target="RFC7623" format="default">Provider Backbone Bridging
Combined
with Ethernet VPN (PBB-EVPN)</xref>.</li>
</ul>
</dd>
<dt>'vpn-signaling-type':</dt>
<dd>
<t>Used to identify the signaling
mode used for a given service type. Examples of supported VPN mode used for a given service type. Examples of supported VPN
signaling types are: <list style="symbols"> signaling types are as follows: </t>
<t>L2VPNs using BGP <xref target="RFC6624"></xref>.</t> <ul spacing="normal">
<li>L2VPNs using BGP <xref target="RFC6624" format="default"/>,</li>
<t>LDP <xref target="RFC5036"></xref>, and</t> <li>LDP <xref target="RFC5036" format="default"/>, and</li>
<li>Layer Two Tunneling Protocol (L2TP) <xref target="RFC3931" forma
<t>Layer Two Tunneling Protocol (L2TP) <xref t="default"/>.</li>
target="RFC3931"></xref>.</t> </ul>
</list></t> </dd>
</list></t> </dl>
<t>The module covers both IPv4 <xref target="RFC0791" format="default"/> a
<t>The module covers both IPv4 <xref target="RFC0791"></xref> and IPv6 nd IPv6
<xref target="RFC8200"></xref> identities. It also includes multicast <xref target="RFC8200" format="default"/> identities. It also includes
related identities such as Internet Group Management Protocol version 1 multicast-related identities such as Internet Group Management Protocol ve
(IGMPv1) <xref target="RFC1112"></xref>, IGMPv2 <xref rsion 1
target="RFC2236"></xref>, IGMPv3 <xref target="RFC3376"></xref>, (IGMPv1) <xref target="RFC1112" format="default"/>, IGMPv2 <xref target="R
Multicast Listener Discovery version 1 (MLDv1) <xref FC2236" format="default"/>, IGMPv3 <xref target="RFC3376" format="default"/>,
target="RFC2710"></xref>, MLDv2 <xref target="RFC3810"></xref>, and Multicast Listener Discovery version 1 (MLDv1) <xref target="RFC2710" form
Protocol Independent Multicast (PIM) <xref target="RFC7761"></xref>.</t> at="default"/>, MLDv2 <xref target="RFC3810" format="default"/>, and
Protocol Independent Multicast (PIM) <xref target="RFC7761" format="defaul
<t>The reader should refer to <xref target="module"></xref> for the full t"/>.</t>
<t>The reader should refer to <xref target="module" format="default"/> for
the full
list of supported identities (identities related to address families, list of supported identities (identities related to address families,
VPN topologies, network access types, operational and administrative VPN topologies, network access types, operational and administrative
status, site or node roles, VPN service constraints, routing protocols, status, site or node role, VPN service constraints, routing protocols,
routes imports and exports, bandwidth and Quality of Service (QoS), route import and export policies, bandwidth, Quality of Service (QoS),
etc.).</t> etc.).</t>
<t>The "ietf-vpn-common" module also contains a set of reusable <t>The "ietf-vpn-common" module also contains a set of reusable
VPN-related groupings. The tree diagram of the "ietf-vpn-common" module VPN-related groupings. <xref target="ctree" format="default"/> provides th
that depicts the common groupings is provided in <xref e tree diagram that depicts the common groupings for the "ietf-vpn-common" modul
target="ctree"></xref>.</t> e.</t>
<figure anchor="ctree">
<t><figure align="center" anchor="ctree" title="VPN Common Tree"> <name>VPN Common Tree</name>
<artwork align="center"><![CDATA[module: ietf-vpn-common <sourcecode name="" type="yangtree"><![CDATA[module: ietf-vpn-common
grouping vpn-description:
grouping vpn-description
+-- vpn-id? vpn-id +-- vpn-id? vpn-id
+-- vpn-name? string +-- vpn-name? string
+-- vpn-description? string +-- vpn-description? string
+-- customer-name? string +-- customer-name? string
grouping vpn-profile-cfg grouping vpn-profile-cfg:
+-- valid-provider-identifiers +-- valid-provider-identifiers
+-- external-connectivity-identifier* [id] +-- external-connectivity-identifier* [id]
| {external-connectivity}? | {external-connectivity}?
| +-- id string | +-- id string
+-- encryption-profile-identifier* [id] +-- encryption-profile-identifier* [id]
| +-- id string | +-- id string
+-- qos-profile-identifier* [id] +-- qos-profile-identifier* [id]
| +-- id string | +-- id string
+-- bfd-profile-identifier* [id] +-- bfd-profile-identifier* [id]
| +-- id string | +-- id string
+-- forwarding-profile-identifier* [id] +-- forwarding-profile-identifier* [id]
| +-- id string | +-- id string
+-- routing-profile-identifier* [id] +-- routing-profile-identifier* [id]
+-- id string +-- id string
grouping oper-status-timestamp grouping oper-status-timestamp:
+--ro status? identityref +--ro status? identityref
+--ro last-change? yang:date-and-time +--ro last-change? yang:date-and-time
grouping service-status grouping service-status:
+-- status +-- status
+-- admin-status +-- admin-status
| +-- status? identityref | +-- status? identityref
| +-- last-change? yang:date-and-time | +-- last-change? yang:date-and-time
+-- 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
grouping underlay-transport grouping underlay-transport:
+-- (type)? +-- (type)?
+--:(abstract) +--:(abstract)
| +-- transport-instance-id? string | +-- transport-instance-id? string
| +-- instance-type? identityref
+--:(protocol) +--:(protocol)
+-- protocol* identityref +-- protocol* identityref
grouping vpn-route-targets grouping vpn-route-targets:
+-- vpn-target* [id] +-- vpn-target* [id]
| +-- id uint8 | +-- id uint8
| +-- route-targets* [route-target] | +-- route-targets* [route-target]
| | +-- route-target rt-types:route-target | | +-- route-target rt-types:route-target
| +-- route-target-type rt-types:route-target-type | +-- route-target-type rt-types:route-target-type
+-- vpn-policies +-- vpn-policies
+-- import-policy? string +-- import-policy? string
+-- export-policy? string +-- export-policy? string
grouping route-distinguisher grouping route-distinguisher:
... ...
grouping vpn-components-group grouping vpn-components-group:
+-- groups +-- groups
+-- group* [group-id] +-- group* [group-id]
+-- group-id string +-- group-id string
grouping placement-constraints grouping placement-constraints:
+-- constraint* [constraint-type] +-- constraint* [constraint-type]
+-- constraint-type? identityref +-- constraint-type? identityref
+-- target +-- target
+-- (target-flavor)? +-- (target-flavor)?
+--:(id) +--:(id)
| +-- group* [group-id] | +-- group* [group-id]
| +-- group-id string | +-- group-id string
+--:(all-accesses) +--:(all-accesses)
| +-- all-other-accesses? empty | +-- all-other-accesses? empty
+--:(all-groups) +--:(all-groups)
+-- all-other-groups? empty +-- all-other-groups? empty
grouping ports grouping ports:
... ...
grouping qos-classification-policy grouping qos-classification-policy:
... ...
]]></artwork> ]]></sourcecode>
</figure></t> </figure>
<t>The descriptions of the common groupings are provided below:</t>
<t>The description of the common groupings is provided below:</t> <dl newline="true" spacing="normal">
<dt>'vpn-description':</dt>
<t><list style="hanging"> <dd>A YANG grouping that provides common administrative VPN
<t hangText="'vpn-description':"><list style="empty">
<t>A YANG grouping that provides common administrative VPN
information such as an identifier, a name, a textual information such as an identifier, a name, a textual
description, and a customer name.</t> description, and a customer name.</dd>
</list></t> <dt>'vpn-profile-cfg':</dt>
<dd>
<t hangText="'vpn-profile-cfg':"><list style="empty">
<t>A YANG grouping that defines a set of valid profiles <t>A YANG grouping that defines a set of valid profiles
(encryption, routing, forwarding, etc.) that can be bound to a (encryption, routing, forwarding, etc.) that can be bound to a
Layer 2/3 VPN. This document does not make any assumption about Layer 2/3 VPN. This document does not make any assumptions about
the structure of such profiles, but allows "gluing" a VPN the structure of such profiles but allows "gluing" a VPN
service with other parameters that can be required locally to service with other parameters that can be required locally to
provide added value features to requesting customers. <vspace provide value-added features to requesting customers. </t>
blankLines="1" />For example, a service provider may provide an <t>For example, a service provider may provide
external connectivity to a VPN customer (e.g., to a private or external connectivity to a VPN customer (e.g., to a private or
public cloud, Internet). Such service may involve tweaking both public cloud, Internet). Such a service may involve tweaking both
filtering and NAT rules (e.g., bind a Virtual Routing and filtering and NAT rules (e.g., binding a Virtual Routing and
Forwarding (VRF) interface with a NAT instance as discussed in Forwarding (VRF) interface with a NAT instance as discussed in
Section 2.10 of <xref target="RFC8512"></xref>). These added <xref target="RFC8512" sectionFormat="of" section="2.10"/>). These
value features may be bound to all or a subset of network value-added features may be bound to all, or a subset of, network
accesses. Some of these added value features may be implemented accesses. Some of these value-added features may be implemented
in nodes other than PEs (e.g., a P node or even a dedicated node in nodes other than Provider Edges (PEs) (e.g., a P node or even a
that hosts the NAT function). <vspace blankLines="1" />It is out dedicated node
of the scope of this document to elaborate the structure of that hosts the NAT function). </t>
these profiles.</t> <t>Elaborating on the structure of these profiles is beyond the sc
</list></t> ope of this document.</t>
</dd>
<t hangText="'oper-status-timestamp':"><list style="empty"> <dt>'oper-status-timestamp':</dt>
<t>A YANG grouping that defines the operational status updates <dd>A YANG grouping that defines the operational status updates
of a VPN service or component.</t> of a VPN service or component.</dd>
</list></t> <dt>'service-status':</dt>
<dd>A YANG grouping that defines the administrative and
<t hangText="'service-status':"><list style="empty">
<t>A YANG grouping that defines the administrative and
operational status of a component. The grouping can be applied operational status of a component. The grouping can be applied
to the whole service or an endpoint.</t> to the whole service or an endpoint.</dd>
</list></t> <dt>'underlay-transport':</dt>
<dd>
<t hangText="'underlay-transport':"><list style="empty">
<t>A YANG grouping that defines the type of the underlay <t>A YANG grouping that defines the type of the underlay
transport for a VPN service or how that underlay is set. <vspace transport for a VPN service or how that underlay is set. </t>
blankLines="1" />The underlay transport can be expressed as an <t>The underlay transport can be expressed as an
abstract transport instance (e.g., an identifier of a VPN+ abstract transport instance (e.g., an identifier of a VPN+
instance <xref target="I-D.ietf-teas-enhanced-vpn"></xref>, a instance <xref target="I-D.ietf-teas-enhanced-vpn" format="default
virtual network identifier <xref "/>, a
target="I-D.ietf-teas-actn-vn-yang"></xref><xref virtual network identifier <xref target="ACTN-VN-YANG" format="def
target="RFC8453"></xref>, or a network slice name <xref ault"/> <xref target="RFC8453" format="default"/>, or a network slice name <xref
target="I-D.ietf-teas-ietf-network-slices"></xref>) or as an target="Network-Slices-Framework" format="default"/>) or as an
ordered list of the actual protocols to be enabled in the ordered list of the actual protocols to be enabled in the
network. <vspace blankLines="1" />The module supports a rich set network. </t>
of protocol identifiers that can be used, e.g., to refer to an <t>The module supports a rich set
underlay transport. Examples of supported protocols are:<list of protocol identifiers that can be used, for example, to refer to
style="symbols"> an
<t>IP-in-IP <xref target="RFC2003"></xref><xref underlay transport. Examples of supported protocols are as follows
target="RFC2473"></xref>,</t> :</t>
<ul spacing="normal">
<t>GRE <xref target="RFC1701"></xref><xref <li>IP in IP <xref target="RFC2003" format="default"/> <xref tar
target="RFC1702"></xref><xref target="RFC7676"></xref>,</t> get="RFC2473" format="default"/>,</li>
<li>Generic Routing Encapsulation (GRE) <xref target="RFC1701" f
<t>MPLS-in-UDP <xref target="RFC7510"></xref>,</t> ormat="default"/> <xref target="RFC1702" format="default"/> <xref target="RFC767
6" format="default"/>,</li>
<t>Generic Network Virtualization Encapsulation (GENEVE) <li>MPLS in UDP <xref target="RFC7510" format="default"/>,</li>
<xref target="RFC8926"></xref>,</t> <li>Generic Network Virtualization Encapsulation (Geneve)
<xref target="RFC8926" format="default"/>,</li>
<t>Segment Routing (SR) <xref target="RFC8660"></xref><xref <li>Segment Routing (SR) <xref target="RFC8660" format="default"
target="RFC8663"></xref><xref target="RFC8754"></xref>,</t> /> <xref target="RFC8663" format="default"/> <xref target="RFC8754" format="def
ault"/>,</li>
<t>Resource ReSerVation Protocol (RSVP) with traffic <li>Resource ReSerVation Protocol (RSVP) with traffic
engineering extensions <xref target="RFC3209"></xref>, engineering extensions <xref target="RFC3209" format="default"
and</t> />,
and</li>
<t>BGP with labeled prefixes <xref <li>BGP with labeled prefixes <xref target="RFC8277" format="def
target="RFC8277"></xref>.</t> ault"/>.</li>
</list></t> </ul>
</list></t> </dd>
<dt>'vpn-route-targets':</dt>
<t hangText="'vpn-route-targets':"><list style="empty"> <dd>A YANG grouping that defines Route Target (RT) import/export
<t>A YANG grouping that defines Route Target (RT) import/export
rules used in a BGP-enabled VPN. This grouping can be used for rules used in a BGP-enabled VPN. This grouping can be used for
both L3VPNs <xref target="RFC4364"></xref> and L2VPNs<xref both L3VPNs <xref target="RFC4364" format="default"/> and L2VPNs <
target="RFC4664"></xref>. Note that this is modelled as a list xref target="RFC4664" format="default"/>. Note that this is modeled as a list
to ease the reuse of this grouping in modules where an RT to ease the reuse of this grouping in modules where an RT
identifier is needed (e.g., associate an operator with RTs).</t> identifier is needed (e.g., associating an operator with RTs).</dd
</list></t> >
<dt>'route-distinguisher': </dt>
<t hangText="'route-distinguisher': "><list style="empty"> <dd>
<t>A YANG grouping that defines Route Distinguishers (RDs). <t>A YANG grouping that defines Route Distinguishers (RDs).</t>
<vspace blankLines="1" />As depicted in <xref <t>As depicted in <xref target="rtrd" format="default"/>, the modu
target="rtrd"></xref>, the module supports these RD assignment le supports the following RD assignment
modes: direct assignment, automatic assignment from a given modes: direct assignment, full automatic assignment, automatic ass
pool, automatic assignment, and no assignment. <vspace ignment from a given pool, and no assignment.</t>
blankLines="1" />Also, the module accommodates deployments where <t>Also, the module accommodates deployments where
only the Assigned Number subfield of RDs (Section 4.2 of <xref only the Assigned Number subfield of RDs (<xref target="RFC4364"
target="RFC4364"></xref>) is assigned from a pool while the sectionFormat="of" section="4.2"/>) is assigned from a pool while
Administrator subfield is set to, e.g., the router-id that is the
assigned to a VPN node. The module supports these modes for Administrator subfield is set to, for example, the Router ID that
is
assigned to a VPN node. The module supports three modes for
managing the Assigned Number subfield: explicit assignment, managing the Assigned Number subfield: explicit assignment,
auto-assignment from a pool, and full auto-assignment.<figure automatic assignment from a given pool, and full automatic assignm
align="center" anchor="rtrd" ent.</t>
title="Route Distinguisher Grouping Subtree">
<artwork align="center"><![CDATA[ grouping route-distinguishe <figure anchor="rtrd">
r <name>Route Distinguisher Grouping Subtree</name>
<sourcecode name="" type="yangtree"><![CDATA[ grouping route-distinguisher:
+-- (rd-choice)? +-- (rd-choice)?
+--:(directly-assigned) +--:(directly-assigned)
| +-- rd? rt-types:route-distinguisher | +-- rd? rt-types:route-distinguisher
+--:(directly-assigned-suffix) +--:(directly-assigned-suffix)
| +-- rd-suffix? uint16 | +-- rd-suffix? uint16
+--:(auto-assigned) +--:(auto-assigned)
| +-- rd-auto | +-- rd-auto
| +-- (auto-mode)? | +-- (auto-mode)?
| | +--:(from-pool) | | +--:(from-pool)
| | | +-- rd-pool-name? string | | | +-- rd-pool-name? string
| | +--:(full-auto) | | +--:(full-auto)
| | +-- auto? empty | | +-- auto? empty
| +--ro auto-assigned-rd? rt-types:route-distinguisher | +--ro auto-assigned-rd?
| | rt-types:route-distinguisher
+--:(auto-assigned-suffix) +--:(auto-assigned-suffix)
| +-- rd-auto-suffix | +-- rd-auto-suffix
| +-- (auto-mode)? | +-- (auto-mode)?
| | +--:(from-pool) | | +--:(from-pool)
| | | +-- rd-pool-name? string | | | +-- rd-pool-name? string
| | +--:(full-auto) | | +--:(full-auto)
| | +-- auto? empty | | +-- auto? empty
| +--ro auto-assigned-rd-suffix? uint16 | +--ro auto-assigned-rd-suffix? uint16
+--:(no-rd) +--:(no-rd)
+-- no-rd? empty +-- no-rd? empty
]]></artwork> ]]></sourcecode>
</figure></t> </figure>
</list></t> </dd>
<dt>'vpn-components-group':</dt>
<t hangText="'vpn-components-group':"><list style="empty"> <dd>A YANG grouping that is used to group VPN nodes, VPN network
<t>A YANG grouping that is used to group VPN nodes, VPN network
accesses, or sites. For example, diversity or redundancy accesses, or sites. For example, diversity or redundancy
constraints can be applied on a per-group basis.</t> constraints can be applied on a per-group basis.</dd>
</list></t> <dt>'placement-constraints':</dt>
<dd>A YANG grouping that is used to define the placement
<t hangText="'placement-constraints':"><list style="empty"> constraints of a VPN node, VPN network access, or site.</dd>
<t>A YANG grouping that is used to define the placement <dt>'ports': </dt>
constraints of a VPN node, VPN network access, or site.</t> <dd>
</list></t>
<t hangText="'ports': "><list style="empty">
<t>A YANG grouping that defines ranges of source and destination <t>A YANG grouping that defines ranges of source and destination
port numbers and operators. The subtree of this grouping is port numbers and operators. The subtree of this grouping is
depicted in <xref target="ports"></xref>.<figure align="center" depicted in <xref target="ports" format="default"/>.</t>
anchor="ports" title="Port Numbers Grouping Subtree"> <figure anchor="ports">
<artwork align="center"><![CDATA[ grouping ports <name>Port Numbers Grouping Subtree</name>
<sourcecode name="" type="yangtree"><![CDATA[ grouping ports:
+-- (source-port)? +-- (source-port)?
| +--:(source-port-range-or-operator) | +--:(source-port-range-or-operator)
| +-- source-port-range-or-operator | +-- source-port-range-or-operator
| +-- (port-range-or-operator)? | +-- (port-range-or-operator)?
| +--:(range) | +--:(range)
| | +-- lower-port inet:port-number | | +-- lower-port inet:port-number
| | +-- upper-port inet:port-number | | +-- upper-port inet:port-number
| +--:(operator) | +--:(operator)
| +-- operator? operator | +-- operator? operator
| +-- port inet:port-number | +-- port inet:port-number
+-- (destination-port)? +-- (destination-port)?
+--:(destination-port-range-or-operator) +--:(destination-port-range-or-operator)
+-- destination-port-range-or-operator +-- destination-port-range-or-operator
+-- (port-range-or-operator)? +-- (port-range-or-operator)?
+--:(range) +--:(range)
| +-- lower-port inet:port-number | +-- lower-port inet:port-number
| +-- upper-port inet:port-number | +-- upper-port inet:port-number
+--:(operator) +--:(operator)
+-- operator? operator +-- operator? operator
+-- port inet:port-number +-- port inet:port-number
]]></artwork> ]]></sourcecode>
</figure></t> </figure>
</list></t> </dd>
<dt>'qos-classification-policy':</dt>
<t hangText="'qos-classification-policy':"><list style="empty"> <dd>
<t>A YANG grouping that defines a set of QoS classification <t>A YANG grouping that defines a set of QoS classification
policies based on various match Layer 3/4 and application policies based on various Layer 3/4 and application match criteria
criteria. The subtree of this grouping is depicted in <xref .
target="qos"></xref>. <vspace blankLines="1" />The QoS match The subtree of this grouping is depicted in <xref target="qos" format="default"
/>. </t>
<t>The QoS match
criteria reuse groupings that are defined in the packet fields criteria reuse groupings that are defined in the packet fields
module "ietf-packet-fields" (Section 4.2 of <xref module "ietf-packet-fields" (<xref target="RFC8519" sectionFormat=
target="RFC8519"></xref>). <vspace blankLines="1" />Any layer 4 "of"
section="4.2"/>). </t>
<t>Any Layer 4
protocol can be indicated in the 'protocol' data node under protocol can be indicated in the 'protocol' data node under
'l3', but only TCP and UDP specific match criteria are 'l3', but only TCP- and UDP-specific match criteria are
elaborated in this version as these protocols are widely used in elaborated on in this version, as these protocols are widely used
in
the context of VPN services. Future revisions can be considered the context of VPN services. Future revisions can be considered
to add other Layer 4 specific parameters (e.g., Stream Control to add other Layer-4-specific parameters (e.g., the Stream Control
Transmission Protocol <xref target="RFC4960"></xref>), if Transmission Protocol <xref target="RFC4960" format="default"/>),
needed. <vspace blankLines="1" />Some transport protocols use if
existing protocols (e.g., TCP or UDP) as substrate. The match needed. </t>
<t>Some transport protocols use
existing protocols (e.g., TCP or UDP) as the substrate. The match
criteria for such protocols may rely upon the 'protocol' under criteria for such protocols may rely upon the 'protocol' under
'l3', TCP/UDP match criteria shown in <xref 'l3', TCP/UDP match criteria as shown in <xref target="qos" format
target="qos"></xref>, part of the TCP/UDP payload, or a ="default"/>, part of the TCP/UDP payload, or a
combination thereof. This version of the module does not support combination thereof. This version of the module does not support
such advanced match criteria. Future revisions of the module may such advanced match criteria. Future revisions of the module may
consider adding match criteria based on the transport protocol consider adding match criteria based on the transport protocol
payload (e.g., by means of a bitmask match). <figure payload (e.g., by means of a bitmask match). </t>
align="center" anchor="qos" <figure anchor="qos">
title="QoS Classification Subtree"> <name>QoS Classification Subtree</name>
<artwork align="center"><![CDATA[ grouping qos-classification <sourcecode name="" type="yangtree"><![CDATA[ grouping qos-classification-polic
-policy y:
+-- rule* [id] +-- rule* [id]
+-- id string +-- id string
+-- (match-type)? +-- (match-type)?
| +--:(match-flow) | +--:(match-flow)
| | +-- (l3)? | | +-- (l3)?
| | | +--:(ipv4) | | | +--:(ipv4)
| | | | +-- ipv4 | | | | +-- ipv4
| | | | +-- dscp? inet:dscp | | | | +-- dscp? inet:dscp
| | | | +-- ecn? uint8 | | | | +-- ecn? uint8
| | | | +-- length? uint16 | | | | +-- length? uint16
| | | | +-- ttl? uint8 | | | | +-- ttl? uint8
| | | | +-- protocol? uint8 | | | | +-- protocol? uint8
| | | | +-- ihl? uint8 | | | | +-- ihl? uint8
| | | | +-- flags? bits | | | | +-- flags? bits
| | | | +-- offset? uint16 | | | | +-- offset? uint16
| | | | +-- identification? uint16 | | | | +-- identification? uint16
| | | | +-- (destination-network)? | | | | +-- (destination-network)?
| | | | | +--:(destination-ipv4-network) | | | | | +--:(destination-ipv4-network)
| | | | | +-- destination-ipv4-network? | | | | | +-- destination-ipv4-network?
| | | | | inet:ipv4-prefix | | | | | inet:ipv4-prefix
| | | | +-- (source-network)? | | | | +-- (source-network)?
| | | | +--:(source-ipv4-network) | | | | +--:(source-ipv4-network)
| | | | +-- source-ipv4-network? | | | | +-- source-ipv4-network?
| | | | inet:ipv4-prefix | | | | inet:ipv4-prefix
| | | +--:(ipv6) | | | +--:(ipv6)
| | | +-- ipv6 | | | +-- ipv6
| | | +-- dscp? inet:dscp | | | +-- dscp? inet:dscp
| | | +-- ecn? uint8 | | | +-- ecn? uint8
| | | +-- length? uint16 | | | +-- length? uint16
| | | +-- ttl? uint8 | | | +-- ttl? uint8
| | | +-- protocol? uint8 | | | +-- protocol? uint8
| | | +-- (destination-network)? | | | +-- (destination-network)?
| | | | +--:(destination-ipv6-network) | | | | +--:(destination-ipv6-network)
| | | | +-- destination-ipv6-network? | | | | +-- destination-ipv6-network?
| | | | inet:ipv6-prefix | | | | inet:ipv6-prefix
| | | +-- (source-network)? | | | +-- (source-network)?
| | | | +--:(source-ipv6-network) | | | | +--:(source-ipv6-network)
| | | | +-- source-ipv6-network? | | | | +-- source-ipv6-network?
| | | | inet:ipv6-prefix | | | | inet:ipv6-prefix
| | | +-- flow-label? | | | +-- flow-label?
| | | inet:ipv6-flow-label | | | inet:ipv6-flow-label
| | +-- (l4)? | | +-- (l4)?
| | +--:(tcp) | | +--:(tcp)
| | | +-- tcp | | | +-- tcp
| | | +-- sequence-number? uint32 | | | +-- sequence-number? uint32
| | | +-- acknowledgement-number? uint32 | | | +-- acknowledgement-number? uint32
| | | +-- data-offset? uint8 | | | +-- data-offset? uint8
| | | +-- reserved? uint8 | | | +-- reserved? uint8
| | | +-- flags? bits | | | +-- flags? bits
| | | +-- window-size? uint16 | | | +-- window-size? uint16
| | | +-- urgent-pointer? uint16 | | | +-- urgent-pointer? uint16
| | | +-- options? binary | | | +-- options? binary
| | | +-- (source-port)? | | | +-- (source-port)?
| | | | +--:(source-port-range-or-operator) | | | | +--:(source-port-range-or-operator)
| | | | +-- source-port-range-or-operator | | | | +-- source-port-range-or-operator
| | | | +-- (port-range-or-operator)? | | | | +-- (port-range-or-operator)?
| | | | +--:(range) | | | | +--:(range)
| | | | | +-- lower-port | | | | | +-- lower-port
| | | | | | inet:port-number | | | | | | inet:port-number
| | | | | +-- upper-port | | | | | +-- upper-port
| | | | | inet:port-number | | | | | inet:port-number
| | | | +--:(operator) | | | | +--:(operator)
skipping to change at line 694 skipping to change at line 544
| | | +-- lower-port | | | +-- lower-port
| | | | inet:port-number | | | | inet:port-number
| | | +-- upper-port | | | +-- upper-port
| | | inet:port-number | | | inet:port-number
| | +--:(operator) | | +--:(operator)
| | +-- operator? operator | | +-- operator? operator
| | +-- port | | +-- port
| | inet:port-number | | inet:port-number
| +--:(match-application) | +--:(match-application)
| +-- match-application? identityref | +-- match-application? identityref
+-- target-class-id? string {qos}? +-- target-class-id? string
]]></artwork> ]]></sourcecode>
</figure></t> </figure>
</list></t> </dd>
</list></t> </dl>
<t></t>
</section> </section>
<section anchor="module" numbered="true" toc="default">
<name>Layer 2/3 VPN Common Module</name>
<t>This module uses types defined in <xref target="RFC6991" format="defaul
t"/>,
<xref target="RFC8294" format="default"/>, and <xref target="RFC8519" form
at="default"/>. It
also uses the extension defined in <xref target="RFC8341" format="default"
/>.</t>
<section anchor="module" title="Layer 2/3 VPN Common Module"> <sourcecode name="ietf-vpn-common@2022-02-11.yang" type="yang" markers="tr
<t>This module uses types defined in <xref target="RFC6991"></xref>, ue"><![CDATA[
<xref target="RFC8294"></xref>, and <xref target="RFC8519"></xref>. It
also uses the extension defined in <xref target="RFC8341"></xref>.</t>
<t><figure>
<artwork><![CDATA[<CODE BEGINS> file "ietf-vpn-common@2021-09-10.yang
"
module ietf-vpn-common { module ietf-vpn-common {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-vpn-common"; namespace "urn:ietf:params:xml:ns:yang:ietf-vpn-common";
prefix vpn-common; prefix vpn-common;
import ietf-netconf-acm { import ietf-netconf-acm {
prefix nacm; prefix nacm;
reference reference
"RFC 8341: Network Configuration Access Control Model"; "RFC 8341: Network Configuration Access Control Model";
} }
skipping to change at line 743 skipping to change at line 590
"RFC 8519: YANG Data Model for Network Access "RFC 8519: YANG Data Model for Network Access
Control Lists (ACLs)"; Control Lists (ACLs)";
} }
organization organization
"IETF OPSAWG (Operations and Management Area Working Group)"; "IETF OPSAWG (Operations and Management Area Working Group)";
contact contact
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> "WG Web: <https://datatracker.ietf.org/wg/opsawg/>
WG List: <mailto:opsawg@ietf.org> WG List: <mailto:opsawg@ietf.org>
Editor: Mohamed Boucadair Editor: Mohamed Boucadair
<mailto:mohamed.boucadair@orange.com> <mailto:mohamed.boucadair@orange.com>
Author: Samier Barguil Author: Samier Barguil
<mailto:samier.barguilgiraldo.ext@telefonica.com> <mailto:samier.barguilgiraldo.ext@telefonica.com>
Author: Oscar Gonzalez de Dios Editor: Oscar Gonzalez de Dios
<mailto:oscar.gonzalezdedios@telefonica.com> <mailto:oscar.gonzalezdedios@telefonica.com>
Author: Qin Wu Author: Qin Wu
<mailto:bill.wu@huawei.com>"; <mailto:bill.wu@huawei.com>";
description description
"This YANG module defines a common module that is meant "This YANG module defines a common module that is meant
to be reused by various VPN-related modules (e.g., to be reused by various VPN-related modules (e.g., the
Layer 3 VPN Service Model (L3SM), Layer 2 VPN Service Layer 3 VPN Service Model (L3SM), the Layer 2 VPN Service
Model (L2SM), Layer 3 VPN Network Model (L3NM), Layer 2 Model (L2SM), the Layer 3 VPN Network Model (L3NM), and
VPN Network Model (L2NM)). the Layer 2 VPN Network Model (L2NM)).
Copyright (c) 2021 IETF Trust and the persons identified as Copyright (c) 2022 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 without modification, is permitted pursuant to, and subject to
to the license terms contained in, the Simplified BSD License the license terms contained in, the Revised BSD License set
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
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC 9181; see the
the RFC itself for full legal notices."; RFC itself for full legal notices.";
revision 2021-09-10 { revision 2022-02-11 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A Layer 2/3 VPN Common YANG Model"; "RFC 9181: A Common YANG Data Model for Layer 2 and Layer 3
VPNs";
} }
/******** Collection of VPN-related Features ********/ /******** Collection of VPN-related features ********/
/* /*
* Features related to encapsulation schemes * Features related to encapsulation schemes
*/ */
feature dot1q { feature dot1q {
description description
"Indicates the support for the Dot1q encapsulation."; "Indicates support for dot1Q encapsulation.";
reference reference
"IEEE Std 802.1Q: Bridges and Bridged Networks"; "IEEE Std 802.1Q: IEEE Standard for Local and Metropolitan
Area Networks--Bridges and Bridged
Networks";
} }
feature qinq { feature qinq {
description description
"Indicates the support for the QinQ encapsulation."; "Indicates support for QinQ encapsulation.";
reference reference
"IEEE Std 802.1ad: Provider Bridges"; "IEEE Std 802.1ad: IEEE Standard for Local and Metropolitan
Area Networks---Virtual Bridged Local
Area Networks---Amendment 4: Provider
Bridges";
} }
feature vxlan { feature vxlan {
description description
"Indicates the support for the Virtual eXtensible "Indicates support for Virtual eXtensible Local Area
Local Area Network (VXLAN) encapsulation."; Network (VXLAN) encapsulation.";
reference reference
"RFC 7348: Virtual eXtensible Local Area Network (VXLAN): "RFC 7348: Virtual eXtensible Local Area Network (VXLAN):
A Framework for Overlaying Virtualized Layer 2 A Framework for Overlaying Virtualized Layer 2
Networks over Layer 3 Networks"; Networks over Layer 3 Networks";
} }
feature qinany { feature qinany {
description description
"Indicates the support for the QinAny encapsulation. "Indicates support for QinAny encapsulation.
The outer VLAN tag is set to a specific value but The outer VLAN tag is set to a specific value, but
the inner VLAN tag is set to any."; the inner VLAN tag is set to any.";
} }
feature lag-interface { feature lag-interface {
description description
"Indicates the support for Link Aggregation Group (LAG) "Indicates support for Link Aggregation Groups (LAGs)
between VPN network accesses."; between VPN network accesses.";
reference reference
"IEEE Std. 802.1AX: Link Aggregation"; "IEEE Std 802.1AX: IEEE Standard for Local and Metropolitan
Area Networks--Link Aggregation";
} }
/* /*
* Features related to multicast * Features related to multicast
*/ */
feature multicast { feature multicast {
description description
"Indicates multicast capabilities support in a VPN."; "Indicates support for multicast capabilities in a VPN.";
reference reference
"RFC 6513: Multicast in MPLS/BGP IP VPNs"; "RFC 6513: Multicast in MPLS/BGP IP VPNs";
} }
feature igmp { feature igmp {
description description
"Indicates support for Internet Group Management Protocol "Indicates support for the Internet Group Management
(IGMP)."; Protocol (IGMP).";
reference reference
"RFC 1112: Host Extensions for IP Multicasting "RFC 1112: Host Extensions for IP Multicasting
RFC 2236: Internet Group Management Protocol, Version 2 RFC 2236: Internet Group Management Protocol, Version 2
RFC 3376: Internet Group Management Protocol, Version 3"; RFC 3376: Internet Group Management Protocol, Version 3";
} }
feature mld { feature mld {
description description
"Indicates support for Multicast Listener Discovery (MLD)."; "Indicates support for Multicast Listener Discovery (MLD).";
reference reference
"RFC 2710: Multicast Listener Discovery (MLD) for IPv6 "RFC 2710: Multicast Listener Discovery (MLD) for IPv6
RFC 3810: Multicast Listener Discovery Version 2 (MLDv2) RFC 3810: Multicast Listener Discovery Version 2 (MLDv2)
for IPv6"; for IPv6";
} }
feature pim { feature pim {
description description
"Indicates support for Protocol Independent Multicast (PIM)."; "Indicates support for Protocol Independent Multicast
(PIM).";
reference reference
"RFC 7761: Protocol Independent Multicast - Sparse Mode "RFC 7761: Protocol Independent Multicast - Sparse Mode
(PIM-SM): Protocol Specification (Revised)"; (PIM-SM): Protocol Specification (Revised)";
} }
/* /*
* Features related to address family types * Features related to address family types
*/ */
feature ipv4 { feature ipv4 {
description description
"Indicates IPv4 support in a VPN. That is, IPv4 traffic "Indicates IPv4 support in a VPN. That is, IPv4 traffic
can be carried in the VPN, IPv4 addresses/prefixes can can be carried in the VPN, IPv4 addresses/prefixes can
be assigned to a VPN network access, IPv4 routes can be be assigned to a VPN network access, IPv4 routes can be
installed for the CE/PE link, etc."; installed for the Customer Edge to Provider Edge (CE-PE)
link, etc.";
reference reference
"RFC 791: Internet Protocol"; "RFC 791: Internet Protocol";
} }
feature ipv6 { feature ipv6 {
description description
"Indicates IPv6 support in a VPN. That is, IPv6 traffic "Indicates IPv6 support in a VPN. That is, IPv6 traffic
can be carried in the VPN, IPv6 addresses/prefixes can can be carried in the VPN, IPv6 addresses/prefixes can
be assigned to a VPN network access, IPv6 routes can be be assigned to a VPN network access, IPv6 routes can be
installed for the CE/PE link, etc."; installed for the CE-PE link, etc.";
reference reference
"RFC 8200: Internet Protocol, Version 6 (IPv6)"; "RFC 8200: Internet Protocol, Version 6 (IPv6)
Specification";
} }
/* /*
* Features related to routing protocols * Features related to routing protocols
*/ */
feature rtg-ospf { feature rtg-ospf {
description description
"Indicates support for the OSPF as the Provider Edge (PE)/ "Indicates support for OSPF as the Provider Edge to
Customer Edge (CE) routing protocol."; Customer Edge (PE-CE) routing protocol.";
reference reference
"RFC 4577: OSPF as the Provider/Customer Edge Protocol "RFC 4577: OSPF as the Provider/Customer Edge Protocol
for BGP/MPLS IP Virtual Private Networks (VPNs) for BGP/MPLS IP Virtual Private Networks (VPNs)
RFC 6565: OSPFv3 as a Provider Edge to Customer Edge RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
(PE-CE) Routing Protocol"; (PE-CE) Routing Protocol";
} }
feature rtg-ospf-sham-link { feature rtg-ospf-sham-link {
description description
"Indicates support for OSPF sham links."; "Indicates support for OSPF sham links.";
reference reference
"RFC 4577: OSPF as the Provider/Customer Edge Protocol "RFC 4577: OSPF as the Provider/Customer Edge Protocol
for BGP/MPLS IP Virtual Private Networks (VPNs), for BGP/MPLS IP Virtual Private Networks (VPNs),
Section 4.2.7 Section 4.2.7
RFC 6565: OSPFv3 as a Provider Edge to Customer Edge RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
(PE-CE) Routing Protocol, Section 5"; (PE-CE) Routing Protocol, Section 5";
} }
feature rtg-bgp { feature rtg-bgp {
description description
"Indicates support for BGP as the PE/CE routing protocol."; "Indicates support for BGP as the PE-CE routing protocol.";
reference reference
"RFC 4271: A Border Gateway Protocol 4 (BGP-4)"; "RFC 4271: A Border Gateway Protocol 4 (BGP-4)";
} }
feature rtg-rip { feature rtg-rip {
description description
"Indicates support for RIP as the PE/CE routing protocol."; "Indicates support for RIP as the PE-CE routing protocol.";
reference reference
"RFC 2453: RIP Version 2 "RFC 2453: RIP Version 2
RFC 2080: RIPng for IPv6"; RFC 2080: RIPng for IPv6";
} }
feature rtg-isis { feature rtg-isis {
description description
"Indicates support for IS-IS as the PE/CE routing protocol."; "Indicates support for IS-IS as the PE-CE routing
protocol.";
reference reference
"ISO10589: Intermediate System to Intermediate System intra- "ISO10589: Information technology - Telecommunications and
domain routeing information exchange protocol for information exchange between systems -
use in conjunction with the protocol for providing Intermediate System to Intermediate System
the connectionless-mode network service intra-domain routeing information exchange
(ISO 8473)"; protocol for use in conjunction with the protocol
for providing the connectionless-mode network
service (ISO 8473)";
} }
feature rtg-vrrp { feature rtg-vrrp {
description description
"Indicates support for the Virtual Router Redundancy "Indicates support for the Virtual Router Redundancy
Protocol (VRRP) in CE/PE link."; Protocol (VRRP) in the CE-PE link.";
reference reference
"RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
for IPv4 and IPv6"; Version 3 for IPv4 and IPv6";
} }
feature bfd { feature bfd {
description description
"Indicates support for Bidirectional Forwarding Detection (BFD) "Indicates support for Bidirectional Forwarding Detection
between the CE and the PE."; (BFD) between the CE and the PE.";
reference reference
"RFC 5880: Bidirectional Forwarding Detection (BFD)"; "RFC 5880: Bidirectional Forwarding Detection (BFD)";
} }
/* /*
* Features related to VPN service constraints * Features related to VPN service constraints
*/ */
feature bearer-reference { feature bearer-reference {
description description
"A bearer refers to properties of the CE-PE attachment that "A bearer refers to properties of the CE-PE attachment that
are below Layer 3. are below Layer 3.
This feature indicates support for the bearer reference access This feature indicates support for the bearer reference
constraint. That is, the reuse of a network connection that was access constraint, i.e., the reuse of a network connection
already ordered to the service provider apart from the IP VPN that was already ordered to the service provider apart from
site."; the IP VPN site.";
} }
feature placement-diversity { feature placement-diversity {
description description
"Indicates support for placement diversity constraints in the "Indicates support for placement diversity constraints in
customer premises. An example of these constraints may be to the customer premises. An example of these constraints
avoid connecting a site network access to the same Provider may be to avoid connecting a site network access to the
Edge as a target site network access."; same PE as a target site network access.";
} }
/* /*
* Features related to bandwidth and Quality of Service (QoS) * Features related to bandwidth and Quality of Service (QoS)
*/ */
feature qos { feature qos {
description description
"Indicates support for Classes of Service (CoSes) in the VPN."; "Indicates support for Classes of Service (CoSes) in
the VPN.";
} }
feature inbound-bw { feature inbound-bw {
description description
"Indicates support for the inbound bandwidth in a VPN. That is, "Indicates support for the inbound bandwidth in a VPN,
support for specifying the download bandwidth from the service i.e., support for specifying the download bandwidth from
provider network to the VPN site. Note that the L3SM uses the service provider network to the VPN site. Note that
'input' to identify the same feature. That terminology should the L3SM uses 'input' to identify the same feature.
be deprecated in favor of the one defined in this module."; That terminology should be deprecated in favor of
the terminology defined in this module.";
} }
feature outbound-bw { feature outbound-bw {
description description
"Indicates support for the outbound bandwidth in a VPN. That is, "Indicates support for the outbound bandwidth in a VPN,
support for specifying the upload bandwidth from the VPN site i.e., support for specifying the upload bandwidth from
to the service provider network. Note that the L3SM uses the VPN site to the service provider network. Note that
'output' to identify the same feature. That terminology should the L3SM uses 'output' to identify the same feature.
be deprecated in favor of the one defined in this module."; That terminology should be deprecated in favor of the
terminology defined in this module.";
} }
/* /*
* Features related to security and resilience * Features related to security and resilience
*/ */
feature encryption { feature encryption {
description description
"Indicates support for encryption in the VPN."; "Indicates support for encryption in the VPN.";
} }
skipping to change at line 1032 skipping to change at line 895
description description
"Indicates support for the VPN to provide external "Indicates support for the VPN to provide external
connectivity (e.g., Internet, private or public cloud)."; connectivity (e.g., Internet, private or public cloud).";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks "RFC 4364: BGP/MPLS IP Virtual Private Networks
(VPNs), Section 11"; (VPNs), Section 11";
} }
feature extranet-vpn { feature extranet-vpn {
description description
"Indicates support for extranet VPNs. That is, the capability of "Indicates support for extranet VPNs, i.e., the capability
a VPN to access a list of other VPNs."; of a VPN to access a list of other VPNs.";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks "RFC 4364: BGP/MPLS IP Virtual Private Networks
(VPNs), Section 1.1"; (VPNs), Section 1.1";
} }
feature carriers-carrier { feature carriers-carrier {
description description
"Indicates support for Carrier-of-Carrier VPNs."; "Indicates support for Carriers' Carriers in VPNs.";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks "RFC 4364: BGP/MPLS IP Virtual Private Networks
(VPNs), Section 9"; (VPNs), Section 9";
} }
/* /*
* Address family related identities * Identities related to address families
*/ */
identity address-family { identity address-family {
description description
"Defines a type for the address family."; "Defines a type for the address family.";
} }
identity ipv4 { identity ipv4 {
base address-family; base address-family;
description description
"Identity for IPv4 address family."; "Identity for an IPv4 address family.";
} }
identity ipv6 { identity ipv6 {
base address-family; base address-family;
description description
"Identity for IPv6 address family."; "Identity for an IPv6 address family.";
} }
identity dual-stack { identity dual-stack {
base address-family; base address-family;
description description
"Identity for IPv4 and IPv6 address family."; "Identity for IPv4 and IPv6 address families.";
} }
/* /*
* Identities related to VPN topology * Identities related to VPN topology
*/ */
identity vpn-topology { identity vpn-topology {
description description
"Base identity of the VPN topology."; "Base identity of the VPN topology.";
} }
identity any-to-any { identity any-to-any {
base vpn-topology; base vpn-topology;
description description
"Identity for any-to-any VPN topology. All VPN sites "Identity for any-to-any VPN topology. All VPN sites
can communicate with each other without any restrictions."; can communicate with each other without any restrictions.";
} }
identity hub-spoke { identity hub-spoke {
base vpn-topology; base vpn-topology;
description description
"Identity for Hub-and-Spoke VPN topology. All Spokes can "Identity for Hub-and-Spoke VPN topology. All Spokes can
communicate only with Hubs but not with each other. Hubs communicate with Hubs only and not with each other. Hubs
can communicate with each other."; can communicate with each other.";
} }
identity hub-spoke-disjoint { identity hub-spoke-disjoint {
base vpn-topology; base vpn-topology;
description description
"Identity for Hub-and-Spoke VPN topology where Hubs cannot "Identity for Hub-and-Spoke VPN topology where Hubs cannot
communicate with each other."; communicate with each other.";
} }
identity custom { identity custom {
base vpn-topology; base vpn-topology;
description description
"Identity for custom VPN topologies where the role of the nodes "Identity for custom VPN topologies where the role of the
is not strictly Hub or Spoke. The VPN topology is controlled by nodes is not strictly Hub or Spoke. The VPN topology is
the import/export policies. The custom topology reflects more controlled by the import/export policies. The custom
complex VPN nodes such as VPN node that acts as Hub for certain topology reflects more complex VPN nodes, such as a
nodes and Spoke to others."; VPN node that acts as a Hub for certain nodes and a Spoke
for others.";
} }
/* /*
* Identities related to network access types * Identities related to network access types
*/ */
identity site-network-access-type { identity site-network-access-type {
description description
"Base identity for site network access type."; "Base identity for site network access types.";
} }
identity point-to-point { identity point-to-point {
base site-network-access-type; base site-network-access-type;
description description
"Point-to-point access type."; "Point-to-point access type.";
} }
identity multipoint { identity multipoint {
base site-network-access-type; base site-network-access-type;
description description
"Multipoint access type."; "Multipoint access type.";
} }
identity irb { identity irb {
base site-network-access-type; base site-network-access-type;
description description
"Integrated Routing Bridge (IRB). "Integrated Routing and Bridging (IRB).
Identity for pseudowire connections."; Identity for pseudowire connections.";
} }
identity loopback { identity loopback {
base site-network-access-type; base site-network-access-type;
description description
"Loopback access type."; "Loopback access type.";
} }
/* /*
* Identities related to operational and administrative status * Identities related to operational and administrative status
*/ */
identity operational-status { identity operational-status {
description description
"Base identity for the operational status."; "Base identity for operational status.";
} }
identity op-up { identity op-up {
base operational-status; base operational-status;
description description
"Operational status is Up/Enabled."; "Operational status is Up/Enabled.";
} }
identity op-down { identity op-down {
base operational-status; base operational-status;
skipping to change at line 1196 skipping to change at line 1060
identity admin-down { identity admin-down {
base administrative-status; base administrative-status;
description description
"Administrative status is Down/Disabled."; "Administrative status is Down/Disabled.";
} }
identity admin-testing { identity admin-testing {
base administrative-status; base administrative-status;
description description
"Administrative status is up for testing purposes."; "Administrative status is Up for testing purposes.";
} }
identity admin-pre-deployment { identity admin-pre-deployment {
base administrative-status; base administrative-status;
description description
"Administrative status is pre-deployment phase. That is, "Administrative status reflects a pre-deployment phase,
prior to the actual deployment of a service."; i.e., prior to the actual deployment of a service.";
} }
/* /*
* Identities related to site or node role * Identities related to site or node roles
*/ */
identity role { identity role {
description description
"Base identity of a site or a node role."; "Base identity of a site or node role.";
} }
identity any-to-any-role { identity any-to-any-role {
base role; base role;
description description
"Any-to-any role."; "Any-to-any role.";
} }
identity spoke-role { identity spoke-role {
base role; base role;
skipping to change at line 1236 skipping to change at line 1100
identity hub-role { identity hub-role {
base role; base role;
description description
"A node or a site is acting as a Hub."; "A node or a site is acting as a Hub.";
} }
identity custom-role { identity custom-role {
base role; base role;
description description
"VPN node with custom or complex role in the VPN. For some "VPN node with a custom or complex role in the VPN. For
sources/destinations it can behave as a Hub, but for others it some sources/destinations, it can behave as a Hub, but for
can act as a Spoke depending on the configured policy."; others, it can act as a Spoke, depending on the configured
policy.";
} }
/* /*
* Identities related to VPN service constraints * Identities related to VPN service constraints
*/ */
identity placement-diversity { identity placement-diversity {
description description
"Base identity for access placement constraints."; "Base identity for access placement constraints.";
} }
skipping to change at line 1267 skipping to change at line 1132
identity pe-diverse { identity pe-diverse {
base placement-diversity; base placement-diversity;
description description
"PE diversity."; "PE diversity.";
} }
identity pop-diverse { identity pop-diverse {
base placement-diversity; base placement-diversity;
description description
"Point Of Presence (POP) diversity."; "Point of Presence (POP) diversity.";
} }
identity linecard-diverse { identity linecard-diverse {
base placement-diversity; base placement-diversity;
description description
"Linecard diversity."; "Linecard diversity.";
} }
identity same-pe { identity same-pe {
base placement-diversity; base placement-diversity;
skipping to change at line 1294 skipping to change at line 1159
description description
"Having sites connected using the same bearer."; "Having sites connected using the same bearer.";
} }
/* /*
* Identities related to service types * Identities related to service types
*/ */
identity service-type { identity service-type {
description description
"Base identity for service type."; "Base identity for service types.";
} }
identity l3vpn { identity l3vpn {
base service-type; base service-type;
description description
"L3VPN service."; "L3VPN service.";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)"; "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)";
} }
identity vpls { identity vpls {
base service-type; base service-type;
description description
"VPLS service."; "Virtual Private LAN Service (VPLS).";
reference reference
"RFC 4761: Virtual Private LAN Service (VPLS) Using BGP for "RFC 4761: Virtual Private LAN Service (VPLS) Using BGP for
Auto-Discovery and Signaling Auto-Discovery and Signaling
RFC 4762: Virtual Private LAN Service (VPLS) Using Label RFC 4762: Virtual Private LAN Service (VPLS) Using Label
Distribution Protocol (LDP) Signaling"; Distribution Protocol (LDP) Signaling";
} }
identity vpws { identity vpws {
base service-type; base service-type;
description description
"Virtual Private Wire Service (VPWS) service."; "Virtual Private Wire Service (VPWS).";
reference reference
"RFC 4664: Framework for Layer 2 Virtual Private Networks "RFC 4664: Framework for Layer 2 Virtual Private Networks
(L2VPNs), Section 3.1.1"; (L2VPNs), Section 3.1.1";
} }
identity vpws-evpn { identity vpws-evpn {
base service-type; base service-type;
description description
"EVPN used to support VPWS service."; "Ethernet VPN (EVPN) used to support VPWS.";
reference reference
"RFC 8214: Virtual Private Wire Service Support in Ethernet VPN"; "RFC 8214: Virtual Private Wire Service Support in
Ethernet VPN";
} }
identity pbb-evpn { identity pbb-evpn {
base service-type; base service-type;
description description
"Provider Backbone Bridging (PBB) EVPNs service."; "Provider Backbone Bridging (PBB) EVPN service.";
reference reference
"RFC 7623: Provider Backbone Bridging Combined with Ethernet VPN "RFC 7623: Provider Backbone Bridging Combined with
(PBB-EVPN)"; Ethernet VPN (PBB-EVPN)";
} }
identity mpls-evpn { identity mpls-evpn {
base service-type; base service-type;
description description
"MPLS-based EVPN service."; "MPLS-based EVPN service.";
reference reference
"RFC 7432: BGP MPLS-Based Ethernet VPN"; "RFC 7432: BGP MPLS-Based Ethernet VPN";
} }
identity vxlan-evpn { identity vxlan-evpn {
base service-type; base service-type;
description description
"VXLAN-based EVPN service."; "VXLAN-based EVPN service.";
reference reference
"RFC 8365: A Network Virtualization Overlay Solution Using "RFC 8365: A Network Virtualization Overlay Solution Using
Ethernet VPN (EVPN)"; Ethernet VPN (EVPN)";
} }
/* /*
* Identities related to VPN signaling type * Identities related to VPN signaling types
*/ */
identity vpn-signaling-type { identity vpn-signaling-type {
description description
"Base identity for VPN signaling types"; "Base identity for VPN signaling types.";
} }
identity bgp-signaling { identity bgp-signaling {
base vpn-signaling-type; base vpn-signaling-type;
description description
"Layer 2 VPNs using BGP signaling."; "Layer 2 VPNs using BGP signaling.";
reference reference
"RFC 6624: Layer 2 Virtual Private Networks Using BGP for "RFC 6624: Layer 2 Virtual Private Networks Using BGP for
Auto-Discovery and Signaling Auto-Discovery and Signaling
RFC 7432: BGP MPLS-Based Ethernet VPN"; RFC 7432: BGP MPLS-Based Ethernet VPN";
skipping to change at line 1400 skipping to change at line 1266
reference reference
"RFC 3931: Layer Two Tunneling Protocol - Version 3 (L2TPv3)"; "RFC 3931: Layer Two Tunneling Protocol - Version 3 (L2TPv3)";
} }
/* /*
* Identities related to routing protocols * Identities related to routing protocols
*/ */
identity routing-protocol-type { identity routing-protocol-type {
description description
"Base identity for routing protocol type."; "Base identity for routing protocol types.";
} }
identity static-routing { identity static-routing {
base routing-protocol-type; base routing-protocol-type;
description description
"Static routing protocol."; "Static routing protocol.";
} }
identity bgp-routing { identity bgp-routing {
if-feature "rtg-bgp"; if-feature "rtg-bgp";
skipping to change at line 1425 skipping to change at line 1291
"RFC 4271: A Border Gateway Protocol 4 (BGP-4)"; "RFC 4271: A Border Gateway Protocol 4 (BGP-4)";
} }
identity ospf-routing { identity ospf-routing {
if-feature "rtg-ospf"; if-feature "rtg-ospf";
base routing-protocol-type; base routing-protocol-type;
description description
"OSPF routing protocol."; "OSPF routing protocol.";
reference reference
"RFC 4577: OSPF as the Provider/Customer Edge Protocol "RFC 4577: OSPF as the Provider/Customer Edge Protocol
for BGP/MPLS IP Virtual Private Networks(VPNs) for BGP/MPLS IP Virtual Private Networks (VPNs)
RFC 6565: OSPFv3 as a Provider Edge to Customer Edge RFC 6565: OSPFv3 as a Provider Edge to Customer Edge
(PE-CE) Routing Protocol"; (PE-CE) Routing Protocol";
} }
identity rip-routing { identity rip-routing {
if-feature "rtg-rip"; if-feature "rtg-rip";
base routing-protocol-type; base routing-protocol-type;
description description
"RIP routing protocol."; "RIP routing protocol.";
reference reference
"RFC 2453: RIP Version 2 "RFC 2453: RIP Version 2
RFC 2080: RIPng for IPv6"; RFC 2080: RIPng for IPv6";
} }
identity isis-routing { identity isis-routing {
if-feature "rtg-isis"; if-feature "rtg-isis";
base routing-protocol-type; base routing-protocol-type;
description description
"IS-IS routing protocol."; "IS-IS routing protocol.";
reference reference
"ISO10589: Intermediate System to Intermediate System intra- "ISO10589: Information technology - Telecommunications and
domain routeing information exchange protocol for information exchange between systems -
use in conjunction with the protocol for providing Intermediate System to Intermediate System
the connectionless-mode network service intra-domain routeing information exchange
(ISO 8473)"; protocol for use in conjunction with the protocol
for providing the connectionless-mode network
service (ISO 8473)";
} }
identity vrrp-routing { identity vrrp-routing {
if-feature "rtg-vrrp"; if-feature "rtg-vrrp";
base routing-protocol-type; base routing-protocol-type;
description description
"VRRP protocol. "VRRP protocol.
This is to be used when LANs are directly connected to PEs."; This is to be used when LANs are directly connected to
PEs.";
reference reference
"RFC 5798: Virtual Router Redundancy Protocol (VRRP) Version 3 "RFC 5798: Virtual Router Redundancy Protocol (VRRP)
for IPv4 and IPv6"; Version 3 for IPv4 and IPv6";
} }
identity direct-routing { identity direct-routing {
base routing-protocol-type; base routing-protocol-type;
description description
"Direct routing. "Direct routing.
This is to be used when LANs are directly connected to PEs This is to be used when LANs are directly connected to PEs
and must be advertised in the VPN."; and must be advertised in the VPN.";
} }
identity any-routing { identity any-routing {
base routing-protocol-type; base routing-protocol-type;
description description
"Any routing protocol. "Any routing protocol.
This can be, e.g., used to set policies that apply to any For example, this can be used to set policies that apply
routing protocol in place."; to any routing protocol in place.";
} }
identity isis-level { identity isis-level {
if-feature "rtg-isis"; if-feature "rtg-isis";
description description
"Base identity for the IS-IS level."; "Base identity for the IS-IS level.";
reference reference
"ISO10589: Intermediate System to Intermediate System intra- "ISO10589: Information technology - Telecommunications and
domain routeing information exchange protocol for information exchange between systems -
use in conjunction with the protocol for providing Intermediate System to Intermediate System
the connectionless-mode network service intra-domain routeing information exchange
(ISO 8473)"; protocol for use in conjunction with the protocol
for providing the connectionless-mode network
service (ISO 8473)";
} }
identity level-1 { identity level-1 {
base isis-level; base isis-level;
description description
"IS-IS level 1."; "IS-IS Level 1.";
} }
identity level-2 { identity level-2 {
base isis-level; base isis-level;
description description
"IS-IS level 2."; "IS-IS Level 2.";
} }
identity level-1-2 { identity level-1-2 {
base isis-level; base isis-level;
description description
"IS-IS levels 1 and 2."; "IS-IS Levels 1 and 2.";
} }
identity bfd-session-type { identity bfd-session-type {
if-feature "bfd"; if-feature "bfd";
description description
"Base identity for the BFD session type."; "Base identity for the BFD session type.";
} }
identity classic-bfd { identity classic-bfd {
base bfd-session-type; base bfd-session-type;
skipping to change at line 1532 skipping to change at line 1403
"Classic BFD."; "Classic BFD.";
reference reference
"RFC 5880: Bidirectional Forwarding Detection (BFD)"; "RFC 5880: Bidirectional Forwarding Detection (BFD)";
} }
identity s-bfd { identity s-bfd {
base bfd-session-type; base bfd-session-type;
description description
"Seamless BFD."; "Seamless BFD.";
reference reference
"RFC 7880: Seamless Bidirectional Forwarding Detection (S-BFD)"; "RFC 7880: Seamless Bidirectional Forwarding Detection
(S-BFD)";
} }
/* /*
* Identities related to Routes Import and Export * Identities related to route import and export policies
*/ */
identity ie-type { identity ie-type {
description description
"Base identity for 'import/export' routing profiles. "Base identity for import/export routing profiles.
These profiles can be reused between VPN nodes."; These profiles can be reused between VPN nodes.";
} }
identity import { identity import {
base ie-type; base ie-type;
description description
"'Import' routing profile."; "Import routing profile.";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks "RFC 4364: BGP/MPLS IP Virtual Private Networks
(VPNs), Section 4.3.1"; (VPNs), Section 4.3.1";
} }
identity export { identity export {
base ie-type; base ie-type;
description description
"'Export' routing profile."; "Export routing profile.";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks "RFC 4364: BGP/MPLS IP Virtual Private Networks
(VPNs), Section 4.3.1"; (VPNs), Section 4.3.1";
} }
identity import-export { identity import-export {
base ie-type; base ie-type;
description description
"'Import/export' routing profile."; "Import/export routing profile.";
} }
/* /*
* Identities related to bandwidth and QoS * Identities related to bandwidth and QoS
*/ */
identity bw-direction { identity bw-direction {
description description
"Base identity for the bandwidth direction."; "Base identity for the bandwidth direction.";
} }
skipping to change at line 1601 skipping to change at line 1473
identity bw-type { identity bw-type {
description description
"Base identity for the bandwidth type."; "Base identity for the bandwidth type.";
} }
identity bw-per-cos { identity bw-per-cos {
if-feature "qos"; if-feature "qos";
base bw-type; base bw-type;
description description
"The bandwidth is per-CoS."; "The bandwidth is per CoS.";
} }
identity bw-per-port { identity bw-per-port {
base bw-type; base bw-type;
description description
"The bandwidth is per-site network access."; "The bandwidth is per a given site network access.";
} }
identity bw-per-site { identity bw-per-site {
base bw-type; base bw-type;
description description
"The bandwidth is per-site. It is applicable to all the site "The bandwidth is per site. It is applicable to all the
network accesses within a site."; site network accesses within a site.";
} }
identity bw-per-service { identity bw-per-service {
base bw-type; base bw-type;
description description
"The bandwidth is per-VPN service."; "The bandwidth is per VPN service.";
} }
identity qos-profile-direction { identity qos-profile-direction {
if-feature "qos"; if-feature "qos";
description description
"Base identity for the QoS profile direction."; "Base identity for the QoS profile direction.";
} }
identity site-to-wan { identity site-to-wan {
base qos-profile-direction; base qos-profile-direction;
description description
"Customer site to provider's network direction. "From the customer site to the provider's network.
This is typically the CE-to-PE direction."; This is typically the CE-to-PE direction.";
} }
identity wan-to-site { identity wan-to-site {
base qos-profile-direction; base qos-profile-direction;
description description
"Provider's network to customer site direction. "From the provider's network to the customer site.
This is typically the PE-to-CE direction."; This is typically the PE-to-CE direction.";
} }
identity both { identity both {
base qos-profile-direction; base qos-profile-direction;
description description
"Both WAN-to-Site and Site-to-WAN directions."; "Both the WAN-to-site direction and the site-to-WAN
direction.";
} }
/* /*
* Identities related to underlay transport instances * Identities related to underlay transport instances
*/ */
identity transport-instance-type { identity transport-instance-type {
description description
"Base identity for underlay transport instance type."; "Base identity for underlay transport instance types.";
} }
identity virtual-network { identity virtual-network {
base transport-instance-type; base transport-instance-type;
description description
"Virtual network."; "Virtual 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 transport-instance-type; base transport-instance-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 classical VPNs."; services require over and above classical VPNs.";
reference reference
"I-D.ietf-teas-enhanced-vpn: "draft-ietf-teas-enhanced-vpn-09:
A Framework for Enhanced Virtual Private Network A Framework for Enhanced Virtual Private Network
(VPN+) Services"; (VPN+) Services";
} }
identity ietf-network-slice { identity ietf-network-slice {
base transport-instance-type; base transport-instance-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
"I-D.ietf-teas-ietf-network-slices: "draft-ietf-teas-ietf-network-slices-05:
Framework for IETF Network Slices"; Framework for IETF Network Slices";
} }
/* /*
* Identities related to protocol types. These types are typically * Identities related to protocol types. These types are
* used to identify the underlay transport. * typically used to identify the underlay transport.
*/ */
identity protocol-type { identity protocol-type {
description description
"Base identity for Protocol Type."; "Base identity for protocol types.";
} }
identity ip-in-ip { identity ip-in-ip {
base protocol-type; base protocol-type;
description description
"Transport is based on IP-in-IP."; "Transport is based on IP in IP.";
reference reference
"RFC 2003: IP Encapsulation within IP "RFC 2003: IP Encapsulation within IP
RFC 2473: Generic Packet Tunneling in IPv6 Specification"; RFC 2473: Generic Packet Tunneling in IPv6 Specification";
} }
identity ip-in-ipv4 { identity ip-in-ipv4 {
base ip-in-ip; base ip-in-ip;
description description
"Transport is based on IP over IPv4."; "Transport is based on IP over IPv4.";
reference reference
skipping to change at line 1731 skipping to change at line 1604
base ip-in-ip; base ip-in-ip;
description description
"Transport is based on IP over IPv6."; "Transport is based on IP over IPv6.";
reference reference
"RFC 2473: Generic Packet Tunneling in IPv6 Specification"; "RFC 2473: Generic Packet Tunneling in IPv6 Specification";
} }
identity gre { identity gre {
base protocol-type; base protocol-type;
description description
"Transport is based on Generic Routing Encapsulation (GRE)."; "Transport is based on Generic Routing Encapsulation
(GRE).";
reference reference
"RFC 1701: Generic Routing Encapsulation (GRE) "RFC 1701: Generic Routing Encapsulation (GRE)
RFC 1702: Generic Routing Encapsulation over IPv4 networks RFC 1702: Generic Routing Encapsulation over IPv4 networks
RFC 7676: IPv6 Support for Generic Routing Encapsulation (GRE)"; RFC 7676: IPv6 Support for Generic Routing Encapsulation
(GRE)";
} }
identity gre-v4 { identity gre-v4 {
base gre; base gre;
description description
"Transport is based on GRE over IPv4."; "Transport is based on GRE over IPv4.";
reference reference
"RFC 1702: Generic Routing Encapsulation over IPv4 networks"; "RFC 1702: Generic Routing Encapsulation over IPv4
networks";
} }
identity gre-v6 { identity gre-v6 {
base gre; base gre;
description description
"Transport is based on GRE over IPv6."; "Transport is based on GRE over IPv6.";
reference reference
"RFC 7676: IPv6 Support for Generic Routing Encapsulation (GRE)"; "RFC 7676: IPv6 Support for Generic Routing Encapsulation
(GRE)";
} }
identity vxlan-trans { identity vxlan-trans {
base protocol-type; base protocol-type;
description description
"Transport is based on VXLAN."; "Transport is based on VXLANs.";
reference reference
"RFC 7348: Virtual eXtensible Local Area Network (VXLAN): "RFC 7348: Virtual eXtensible Local Area Network (VXLAN):
A Framework for Overlaying Virtualized Layer 2 A Framework for Overlaying Virtualized Layer 2
Networks over Layer 3 Networks"; Networks over Layer 3 Networks";
} }
identity geneve { identity geneve {
base protocol-type; base protocol-type;
description description
"Transport is based on Generic Network Virtualization "Transport is based on Generic Network Virtualization
Encapsulation (GENEVE)."; Encapsulation (Geneve).";
reference reference
"RFC 8926: Geneve: Generic Network Virtualization Encapsulation"; "RFC 8926: Geneve: Generic Network Virtualization
Encapsulation";
} }
identity ldp { identity ldp {
base protocol-type; base protocol-type;
description description
"Transport is based on LDP."; "Transport is based on LDP.";
reference reference
"RFC 5036: LDP Specification"; "RFC 5036: LDP Specification";
} }
identity mpls-in-udp { identity mpls-in-udp {
base protocol-type; base protocol-type;
description description
"Transport is MPLS in UDP."; "Transport is based on MPLS in UDP.";
reference reference
"RFC 7510: Encapsulating MPLS in UDP"; "RFC 7510: Encapsulating MPLS in UDP";
} }
identity sr { identity sr {
base protocol-type; base protocol-type;
description description
"Transport is based on Segment Routing (SR)."; "Transport is based on Segment Routing (SR).";
reference reference
"RFC 8660: Segment Routing with the MPLS Data Plane "RFC 8660: Segment Routing with the MPLS Data Plane
RFC 8663: MPLS Segment Routing over IP RFC 8663: MPLS Segment Routing over IP
RFC 8754: IPv6 Segment Routing Header (SRH)"; RFC 8754: IPv6 Segment Routing Header (SRH)";
} }
identity sr-mpls { identity sr-mpls {
base sr; base sr;
description description
"Transport is based on SR with MPLS."; "Transport is based on SR with the MPLS data plane.";
reference reference
"RFC 8660: Segment Routing with the MPLS Data Plane"; "RFC 8660: Segment Routing with the MPLS Data Plane";
} }
identity srv6 { identity srv6 {
base sr; base sr;
description description
"Transport is based on SR over IPv6."; "Transport is based on SR over IPv6.";
reference reference
"RFC 8754: IPv6 Segment Routing Header (SRH)"; "RFC 8754: IPv6 Segment Routing Header (SRH)";
skipping to change at line 1834 skipping to change at line 1712
base protocol-type; base protocol-type;
description description
"Transport setup relies upon RSVP-TE."; "Transport setup relies upon RSVP-TE.";
reference reference
"RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels"; "RFC 3209: RSVP-TE: Extensions to RSVP for LSP Tunnels";
} }
identity bgp-lu { identity bgp-lu {
base protocol-type; base protocol-type;
description description
"Transport setup relies upon BGP-LU."; "Transport setup relies upon BGP-based labeled prefixes.";
reference reference
"RFC 8277: Using BGP to Bind MPLS Labels to Address Prefixes"; "RFC 8277: Using BGP to Bind MPLS Labels to Address Prefixes";
} }
identity unknown { identity unknown {
base protocol-type; base protocol-type;
description description
"Not known protocol type."; "Unknown protocol type.";
} }
/* /*
* Identities related to encapsulations * Identities related to encapsulation types
*/ */
identity encapsulation-type { identity encapsulation-type {
description description
"Base identity for the encapsulation type."; "Base identity for encapsulation types.";
} }
identity priority-tagged { identity priority-tagged {
base encapsulation-type; base encapsulation-type;
description description
"Priority-tagged interface."; "Priority-tagged interface.";
} }
identity dot1q { identity dot1q {
if-feature "dot1q"; if-feature "dot1q";
base encapsulation-type; base encapsulation-type;
description description
"Dot1q encapsulation."; "dot1Q encapsulation.";
} }
identity qinq { identity qinq {
if-feature "qinq"; if-feature "qinq";
base encapsulation-type; base encapsulation-type;
description description
"QinQ encapsulation."; "QinQ encapsulation.";
} }
identity qinany { identity qinany {
if-feature "qinany"; if-feature "qinany";
base encapsulation-type; base encapsulation-type;
description description
"QinAny encapsulation."; "QinAny encapsulation.";
} }
identity vxlan { identity vxlan {
if-feature "vxlan"; if-feature "vxlan";
base encapsulation-type; base encapsulation-type;
description description
"VxLAN encapsulation."; "VXLAN encapsulation.";
} }
identity ethernet-type { identity ethernet-type {
base encapsulation-type; base encapsulation-type;
description description
"Ethernet encapsulation type."; "Ethernet encapsulation type.";
} }
identity vlan-type { identity vlan-type {
base encapsulation-type; base encapsulation-type;
skipping to change at line 1920 skipping to change at line 1798
} }
identity lag-int { identity lag-int {
if-feature "lag-interface"; if-feature "lag-interface";
base encapsulation-type; base encapsulation-type;
description description
"LAG interface type."; "LAG interface type.";
} }
/* /*
* Identities related to VLAN Tag * Identities related to VLAN tags
*/ */
identity tag-type { identity tag-type {
description description
"Base identity for the tag types."; "Base identity for VLAN tag types.";
} }
identity c-vlan { identity c-vlan {
base tag-type; base tag-type;
description description
"Indicates Customer VLAN (C-VLAN) tag, normally using "Indicates a Customer VLAN (C-VLAN) tag, normally using
the 0x8100 Ethertype."; the 0x8100 Ethertype.";
} }
identity s-vlan { identity s-vlan {
base tag-type; base tag-type;
description description
"Indicates Service VLAN (S-VLAN) tag."; "Indicates a Service VLAN (S-VLAN) tag.";
} }
identity s-c-vlan { identity s-c-vlan {
base tag-type; base tag-type;
description description
"Uses both an S-VLAN tag and a C-VLAN tag."; "Uses both an S-VLAN tag and a C-VLAN tag.";
} }
/* /*
* Identities related to VXLAN * Identities related to VXLANs
*/ */
identity vxlan-peer-mode { identity vxlan-peer-mode {
if-feature "vxlan"; if-feature "vxlan";
description description
"Base identity for the VXLAN peer mode."; "Base identity for VXLAN peer modes.";
} }
identity static-mode { identity static-mode {
base vxlan-peer-mode; base vxlan-peer-mode;
description description
"VXLAN access in the static mode."; "VXLAN access in the static mode.";
} }
identity bgp-mode { identity bgp-mode {
base vxlan-peer-mode; base vxlan-peer-mode;
skipping to change at line 1976 skipping to change at line 1854
"VXLAN access by BGP EVPN learning."; "VXLAN access by BGP EVPN learning.";
} }
/* /*
* Identities related to multicast * Identities related to multicast
*/ */
identity multicast-gp-address-mapping { identity multicast-gp-address-mapping {
if-feature "multicast"; if-feature "multicast";
description description
"Base identity for multicast group mapping type."; "Base identity for multicast group mapping types.";
} }
identity static-mapping { identity static-mapping {
base multicast-gp-address-mapping; base multicast-gp-address-mapping;
description description
"Static mapping, i.e., attach the interface to the "Static mapping, i.e., an interface is attached to the
multicast group as a static member."; multicast group as a static member.";
} }
identity dynamic-mapping { identity dynamic-mapping {
base multicast-gp-address-mapping; base multicast-gp-address-mapping;
description description
"Dynamic mapping, i.e., an interface is added to the "Dynamic mapping, i.e., an interface is added to the
multicast group as a result of snooping."; multicast group as a result of snooping.";
} }
identity multicast-tree-type { identity multicast-tree-type {
if-feature "multicast"; if-feature "multicast";
description description
"Base identity for multicast tree type."; "Base identity for multicast tree types.";
} }
identity ssm-tree-type { identity ssm-tree-type {
base multicast-tree-type; base multicast-tree-type;
description description
"Source-Specific Multicast (SSM) tree type."; "Source-Specific Multicast (SSM) tree type.";
} }
identity asm-tree-type { identity asm-tree-type {
base multicast-tree-type; base multicast-tree-type;
skipping to change at line 2020 skipping to change at line 1898
identity bidir-tree-type { identity bidir-tree-type {
base multicast-tree-type; base multicast-tree-type;
description description
"Bidirectional tree type."; "Bidirectional tree type.";
} }
identity multicast-rp-discovery-type { identity multicast-rp-discovery-type {
if-feature "multicast"; if-feature "multicast";
description description
"Base identity for Rendezvous Point (RP) discovery type."; "Base identity for Rendezvous Point (RP) discovery types.";
} }
identity auto-rp { identity auto-rp {
base multicast-rp-discovery-type; base multicast-rp-discovery-type;
description description
"Auto-RP discovery type."; "Auto-RP discovery type.";
} }
identity static-rp { identity static-rp {
base multicast-rp-discovery-type; base multicast-rp-discovery-type;
skipping to change at line 2044 skipping to change at line 1922
identity bsr-rp { identity bsr-rp {
base multicast-rp-discovery-type; base multicast-rp-discovery-type;
description description
"Bootstrap Router (BSR) discovery type."; "Bootstrap Router (BSR) discovery type.";
} }
identity group-management-protocol { identity group-management-protocol {
if-feature "multicast"; if-feature "multicast";
description description
"Base identity for multicast group management protocol."; "Base identity for multicast group management protocols.";
} }
identity igmp-proto { identity igmp-proto {
base group-management-protocol; base group-management-protocol;
description description
"IGMP."; "IGMP.";
reference reference
"RFC 1112: Host Extensions for IP Multicasting "RFC 1112: Host Extensions for IP Multicasting
RFC 2236: Internet Group Management Protocol, Version 2 RFC 2236: Internet Group Management Protocol, Version 2
RFC 3376: Internet Group Management Protocol, Version 3"; RFC 3376: Internet Group Management Protocol, Version 3";
skipping to change at line 2074 skipping to change at line 1952
for IPv6"; for IPv6";
} }
identity pim-proto { identity pim-proto {
if-feature "pim"; if-feature "pim";
base routing-protocol-type; base routing-protocol-type;
description description
"PIM."; "PIM.";
reference reference
"RFC 7761: Protocol Independent Multicast - Sparse Mode "RFC 7761: Protocol Independent Multicast - Sparse Mode
(PIM-SM): Protocol Specification (Revised)"; (PIM-SM): Protocol Specification (Revised)";
} }
identity igmp-version { identity igmp-version {
if-feature "igmp"; if-feature "igmp";
description description
"Base identity for IGMP version."; "Base identity for indicating the IGMP version.";
} }
identity igmpv1 { identity igmpv1 {
base igmp-version; base igmp-version;
description description
"IGMPv1."; "IGMPv1.";
reference reference
"RFC 1112: Host Extensions for IP Multicasting"; "RFC 1112: Host Extensions for IP Multicasting";
} }
skipping to change at line 2110 skipping to change at line 1988
base igmp-version; base igmp-version;
description description
"IGMPv3."; "IGMPv3.";
reference reference
"RFC 3376: Internet Group Management Protocol, Version 3"; "RFC 3376: Internet Group Management Protocol, Version 3";
} }
identity mld-version { identity mld-version {
if-feature "mld"; if-feature "mld";
description description
"Base identity for MLD version."; "Base identity for indicating the MLD version.";
} }
identity mldv1 { identity mldv1 {
base mld-version; base mld-version;
description description
"MLDv1."; "MLDv1.";
reference reference
"RFC 2710: Multicast Listener Discovery (MLD) for IPv6"; "RFC 2710: Multicast Listener Discovery (MLD) for IPv6";
} }
skipping to change at line 2136 skipping to change at line 2014
"RFC 3810: Multicast Listener Discovery Version 2 (MLDv2) "RFC 3810: Multicast Listener Discovery Version 2 (MLDv2)
for IPv6"; for IPv6";
} }
/* /*
* Identities related to traffic types * Identities related to traffic types
*/ */
identity tf-type { identity tf-type {
description description
"Base identity for the traffic type."; "Base identity for traffic types.";
} }
identity multicast-traffic { identity multicast-traffic {
base tf-type; base tf-type;
description description
"Multicast traffic."; "Multicast traffic.";
} }
identity broadcast-traffic { identity broadcast-traffic {
base tf-type; base tf-type;
skipping to change at line 2181 skipping to change at line 2059
identity mail { identity mail {
base customer-application; base customer-application;
description description
"Mail application."; "Mail application.";
} }
identity file-transfer { identity file-transfer {
base customer-application; base customer-application;
description description
"File transfer application (e.g., FTP, SFTP)."; "File transfer application (e.g., FTP, Secure FTP (SFTP)).";
} }
identity database { identity database {
base customer-application; base customer-application;
description description
"Database application."; "Database application.";
} }
identity social { identity social {
base customer-application; base customer-application;
skipping to change at line 2211 skipping to change at line 2089
identity p2p { identity p2p {
base customer-application; base customer-application;
description description
"Peer-to-peer application."; "Peer-to-peer application.";
} }
identity network-management { identity network-management {
base customer-application; base customer-application;
description description
"Management application (e.g., Telnet, syslog, "Management application (e.g., Telnet, syslog, SNMP).";
SNMP).";
} }
identity voice { identity voice {
base customer-application; base customer-application;
description description
"Voice application."; "Voice application.";
} }
identity video { identity video {
base customer-application; base customer-application;
description description
"Video conference application."; "Video-conference application.";
} }
identity embb { identity embb {
base customer-application; base customer-application;
description description
"Enhanced Mobile Broadband (eMBB) application. "Enhanced Mobile Broadband (eMBB) application.
Note that an eMBB application demands network performance with a Note that eMBB applications demand network performance
wide variety of characteristics, such as data rate, latency, with a wide variety of such characteristics as data rate,
loss rate, reliability, and many other parameters."; latency, loss rate, reliability, and many other
parameters.";
} }
identity urllc { identity urllc {
base customer-application; base customer-application;
description description
"Ultra-Reliable and Low Latency Communications "Ultra-Reliable and Low Latency Communications (URLLC)
(URLLC) application. Note that an URLLC application demands application. Note that URLLC applications demand
network performance with a wide variety of characteristics, such network performance with a wide variety of such
as latency, reliability, and many other parameters."; characteristics as latency, reliability, and many other
parameters.";
} }
identity mmtc { identity mmtc {
base customer-application; base customer-application;
description description
"Massive Machine Type Communications (mMTC) application. "Massive Machine Type Communications (mMTC) application.
Note that an mMTC application demands network performance with Note that mMTC applications demand network performance
a wide variety of characteristics, such as data rate, latency, with a wide variety of such characteristics as data rate,
loss rate, reliability, and many other parameters."; latency, loss rate, reliability, and many other
parameters.";
} }
/* /*
* Identities related to service bundling * Identities related to service bundling
*/ */
identity bundling-type { identity bundling-type {
description description
"The base identity for the bundling type. It supports a subset or "The base identity for the bundling type. It supports a
all CE-VLANs associated with an L2VPN service."; subset or all Customer Edge VLAN IDs (CE-VLAN IDs)
associated with an L2VPN service.";
} }
identity multi-svc-bundling { identity multi-svc-bundling {
base bundling-type; base bundling-type;
description description
"Multi-service bundling, i.e., multiple C-VLAN IDs "Multi-service bundling, i.e., multiple CE-VLAN IDs
can be associated with an L2VPN service at a site."; can be associated with an L2VPN service at a site.";
} }
identity one2one-bundling { identity one2one-bundling {
base bundling-type; base bundling-type;
description description
"One-to-one service bundling, i.e., each L2VPN can "One-to-one service bundling, i.e., each L2VPN can
be associated with only one C-VLAN ID at a site."; be associated with only one CE-VLAN ID at a site.";
} }
identity all2one-bundling { identity all2one-bundling {
base bundling-type; base bundling-type;
description description
"All-to-one bundling, i.e., all C-VLAN IDs are mapped "All-to-one bundling, i.e., all CE-VLAN IDs are mapped
to one L2VPN service."; to one L2VPN service.";
} }
/* /*
* Identities related to Ethernet Services * Identities related to Ethernet services
*/ */
identity control-mode { identity control-mode {
description description
"Base Identity for the type of control mode on Layer 2 "Base identity for the type of control mode used with the
Control Protocol (L2CP)."; Layer 2 Control Protocol (L2CP).";
} }
identity peer { identity peer {
base control-mode; base control-mode;
description description
"'peer' mode, i.e., participate in the protocol towards the CE. "'peer' mode, i.e., participate in the protocol towards
Peering is common for Link Aggregation Control Protocol (LACP) the CE. Peering is common for the Link Aggregation Control
and the Ethernet Local Management Interface (E-LMI) and, Protocol (LACP) and the Ethernet Local Management Interface
occasionally, for Link Layer Discovery Protocol (LLDP). (E-LMI) and, occasionally, for the Link Layer Discovery
For VPLSs and VPWSs, the subscriber can also request that the Protocol (LLDP). For VPLSs and VPWSs, the subscriber can
peer service provider enables spanning tree."; also request that the peer service provider enable
spanning tree.";
} }
identity tunnel { identity tunnel {
base control-mode; base control-mode;
description description
"'tunnel' mode, i.e., pass to the egress or destination site. For "'tunnel' mode, i.e., pass to the egress or destination
Ethernet Private Lines (EPLs), the expectation is that L2CP site. For Ethernet Private Lines (EPLs), the expectation
frames are tunnelled."; is that L2CP frames are tunneled.";
} }
identity discard { identity discard {
base control-mode; base control-mode;
description description
"'Discard' mode, i.e., discard the frame."; "'Discard' mode, i.e., discard the frame.";
} }
identity neg-mode { identity neg-mode {
description description
"Base identity for the negotiation mode."; "Base identity for the type of negotiation mode.";
} }
identity full-duplex { identity full-duplex {
base neg-mode; base neg-mode;
description description
"Full-duplex negotiation mode."; "Full-duplex negotiation mode.";
} }
identity auto-neg { identity auto-neg {
base neg-mode; base neg-mode;
description description
"Auto-negotiation mode."; "Auto-negotiation mode.";
} }
/******** Collection of VPN-related Types ********/ /******** VPN-related type ********/
typedef vpn-id { typedef vpn-id {
type string; type string;
description description
"Defines an identifier that is used with a VPN module. "Defines an identifier that is used with a VPN module.
This can be, for example, a service identifier, a node For example, this can be a service identifier, a node
identifier, etc."; identifier, etc.";
} }
/******* VPN-related reusable groupings *******/ /******* VPN-related reusable groupings *******/
grouping vpn-description { grouping vpn-description {
description description
"Provides common VPN information."; "Provides common VPN information.";
leaf vpn-id { leaf vpn-id {
type vpn-common:vpn-id; type vpn-common:vpn-id;
skipping to change at line 2380 skipping to change at line 2262
} }
leaf customer-name { leaf customer-name {
type string; type string;
description description
"Name of the customer that actually uses the VPN."; "Name of the customer that actually uses the VPN.";
} }
} }
grouping vpn-profile-cfg { grouping vpn-profile-cfg {
description description
"Grouping for VPN Profile configuration."; "Grouping for VPN profile configuration.";
container valid-provider-identifiers { container valid-provider-identifiers {
description description
"Container for valid provider profile identifiers."; "Container for valid provider profile identifiers.";
list external-connectivity-identifier { list external-connectivity-identifier {
if-feature "external-connectivity"; if-feature "external-connectivity";
key "id"; key "id";
description description
"List for profile identifiers that uniquely identify profiles "List of profile identifiers that uniquely identify
governing how external connectivity is provided to a VPN. profiles governing how external connectivity is
A profile indicates the type of external connectivity provided to a VPN. A profile indicates the type of
(Internet, cloud, etc.), the sites/nodes that are associated external connectivity (Internet, cloud, etc.), the
with a connectivity profile, etc. A profile can also indicate sites/nodes that are associated with a connectivity
filtering rules and/or address translation rules. Such profile, etc. A profile can also indicate filtering
features may involve PE, P, or dedicated nodes as a function rules and/or address translation rules. Such features
may involve PE, P, or dedicated nodes as a function
of the deployment."; of the deployment.";
leaf id { leaf id {
type string; type string;
description description
"Identification of an external connectivity profile. The "Identification of an external connectivity profile.
profile only has significance within the service provider's The profile only has significance within the service
administrative domain."; provider's administrative domain.";
} }
} }
list encryption-profile-identifier { list encryption-profile-identifier {
key "id"; key "id";
description description
"List for encryption profile identifiers."; "List of encryption profile identifiers.";
leaf id { leaf id {
type string; type string;
description description
"Identification of the encryption profile to be used. The "Identification of the encryption profile to be used.
profile only has significance within the service provider's The profile only has significance within the service
administrative domain."; provider's administrative domain.";
} }
} }
list qos-profile-identifier { list qos-profile-identifier {
key "id"; key "id";
description description
"List for QoS Profile Identifiers."; "List of QoS profile identifiers.";
leaf id { leaf id {
type string; type string;
description description
"Identification of the QoS profile to be used. The "Identification of the QoS profile to be used. The
profile only has significance within the service provider's profile only has significance within the service
administrative domain."; provider's administrative domain.";
} }
} }
list bfd-profile-identifier { list bfd-profile-identifier {
key "id"; key "id";
description description
"List for BFD profile identifiers."; "List of BFD profile identifiers.";
leaf id { leaf id {
type string; type string;
description description
"Identification of the BFD profile to be used. The "Identification of the BFD profile to be used. The
profile only has significance within the service provider's profile only has significance within the service
administrative domain."; provider's administrative domain.";
} }
} }
list forwarding-profile-identifier { list forwarding-profile-identifier {
key "id"; key "id";
description description
"List for forwarding profile identifiers."; "List of forwarding profile identifiers.";
leaf id { leaf id {
type string; type string;
description description
"Identification of the forwarding profile to be used. "Identification of the forwarding profile to be used.
The profile only has significance within the service The profile only has significance within the service
provider's administrative domain."; provider's administrative domain.";
} }
} }
list routing-profile-identifier { list routing-profile-identifier {
key "id"; key "id";
description description
"List for Routing Profile Identifiers."; "List of routing profile identifiers.";
leaf id { leaf id {
type string; type string;
description description
"Identification of the routing profile to be used by the "Identification of the routing profile to be used by
routing protocols within sites, vpn-network-accesses, or the routing protocols within sites, VPN network
vpn-nodes for refering VRF's import/export policies. accesses, or VPN nodes for referring to VRF's
import/export policies.
The profile only has significance within the service The profile only has significance within the service
provider's administrative domain."; provider's administrative domain.";
} }
} }
nacm:default-deny-write; nacm:default-deny-write;
} }
} }
grouping oper-status-timestamp { grouping oper-status-timestamp {
description description
"This grouping defines some operational parameters for the "This grouping defines some operational parameters for the
service."; service.";
leaf status { leaf status {
type identityref { type identityref {
base operational-status; base operational-status;
} }
config false; config false;
description description
"Operations status."; "Operational status.";
} }
leaf last-change { leaf last-change {
type yang:date-and-time; type yang:date-and-time;
config false; config false;
description description
"Indicates the actual date and time of the service status "Indicates the actual date and time of the service status
change."; change.";
} }
} }
skipping to change at line 2511 skipping to change at line 2395
leaf status { leaf status {
type identityref { type identityref {
base administrative-status; base administrative-status;
} }
description description
"Administrative service status."; "Administrative service status.";
} }
leaf last-change { leaf last-change {
type yang:date-and-time; type yang:date-and-time;
description description
"Indicates the actual date and time of the service status "Indicates the actual date and time of the service
change."; status change.";
} }
} }
container oper-status { container oper-status {
config false;
description description
"Operational service status."; "Operational service status.";
uses oper-status-timestamp; uses oper-status-timestamp;
} }
} }
} }
grouping underlay-transport { grouping underlay-transport {
description description
"This grouping defines the type of underlay transport for the "This grouping defines the type of underlay transport for
VPN service or how that underlay is set. It can include an the VPN service or how that underlay is set. It can
identifier to an abstract transport instance to which the VPN include an identifier for an abstract transport instance to
is grafted or indicate a technical implementation that is which the VPN is grafted or indicate a technical
expressed as an ordered list of protocols."; implementation that is expressed as an ordered list of
protocols.";
choice type { choice type {
description description
"A choice based on the type of underlay transport "A choice based on the type of underlay transport
constraints."; constraints.";
case abstract { case abstract {
description description
"Indicates that the transport constraint is an abstract "Indicates that the transport constraint is an abstract
concept."; concept.";
leaf transport-instance-id { leaf transport-instance-id {
type string; type string;
description description
"An optional identifier of the abstract transport instance."; "An optional identifier of the abstract transport
instance.";
} }
leaf instance-type { leaf instance-type {
type identityref { type identityref {
base transport-instance-type; base transport-instance-type;
} }
description description
"Indicates a transport instance type. For example, it can "Indicates a transport instance type. For example,
be a VPN+, an IETF network slice, a virtual network, etc."; it can be a VPN+, an IETF network slice, a virtual
network, etc.";
} }
} }
case protocol { case protocol {
description description
"Indicates a list of protocols."; "Indicates a list of protocols.";
leaf-list protocol { leaf-list protocol {
type identityref { type identityref {
base protocol-type; base protocol-type;
} }
ordered-by user; ordered-by user;
description description
"A client ordered list of transport protocols."; "A client-ordered list of transport protocols.";
} }
} }
} }
} }
grouping vpn-route-targets { grouping vpn-route-targets {
description description
"A grouping that specifies Route Target (RT) import-export rules "A grouping that specifies Route Target (RT) import/export
used in a BGP-enabled VPN."; rules used in a BGP-enabled VPN.";
reference reference
"RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs) "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs)
RFC 4664: Framework for Layer 2 Virtual Private Networks RFC 4664: Framework for Layer 2 Virtual Private Networks
(L2VPNs)"; (L2VPNs)";
list vpn-target { list vpn-target {
key "id"; key "id";
description description
"Route targets. AND/OR operations may be defined "RTs. AND/OR operations may be defined based on the
based on the RTs assigment."; assigned RTs.";
leaf id { leaf id {
type uint8; type uint8;
description description
"Identifies each VPN Target."; "Identifies each VPN target.";
} }
list route-targets { list route-targets {
key "route-target"; key "route-target";
description description
"List of RTs."; "List of RTs.";
leaf route-target { leaf route-target {
type rt-types:route-target; type rt-types:route-target;
description description
"Conveys an RT value."; "Conveys an RT value.";
} }
} }
leaf route-target-type { leaf route-target-type {
type rt-types:route-target-type; type rt-types:route-target-type;
mandatory true; mandatory true;
description description
"Import/export type of the RT."; "Import/export type of the RT.";
} }
} }
container vpn-policies { container vpn-policies {
description description
"VPN service policies. It contains references to the "VPN service policies. 'vpn-policies' contains references
import and export policies to be associated with the to the import and export policies to be associated with
VPN service."; the VPN service.";
leaf import-policy { leaf import-policy {
type string; type string;
description description
"Identifies the 'import' policy."; "Identifies the import policy.";
} }
leaf export-policy { leaf export-policy {
type string; type string;
description description
"Identifies the 'export' policy."; "Identifies the export policy.";
} }
} }
} }
grouping route-distinguisher { grouping route-distinguisher {
description description
"Grouping for route distinguisher (RD)."; "Grouping for Route Distinguishers (RDs).";
choice rd-choice { choice rd-choice {
description description
"Route distinguisher choice between several options "RD choice between several options for providing the RD
on providing the route distinguisher value."; value.";
case directly-assigned { case directly-assigned {
description description
"Explicitly assign an RD value."; "Explicitly assigns an RD value.";
leaf rd { leaf rd {
type rt-types:route-distinguisher; type rt-types:route-distinguisher;
description description
"Indicates an RD value that is explicitly "Indicates an RD value that is explicitly assigned.";
assigned.";
} }
} }
case directly-assigned-suffix { case directly-assigned-suffix {
description description
"The value of the Assigned Number subfield of the RD. "The value of the Assigned Number subfield of the RD.
The Administrator subfield of the RD will be The Administrator subfield of the RD will be
based on other configuration information such as based on other configuration information such as the
router-id or ASN."; Router ID or Autonomous System Number (ASN).";
leaf rd-suffix { leaf rd-suffix {
type uint16; type uint16;
description description
"Indicates the value of the Assigned Number "Indicates the value of the Assigned Number
subfield that is explicitly assigned."; subfield that is explicitly assigned.";
} }
} }
case auto-assigned { case auto-assigned {
description description
"The RD is auto-assigned."; "The RD is auto-assigned.";
container rd-auto { container rd-auto {
description description
"The RD is auto-assigned."; "The RD is auto-assigned.";
choice auto-mode { choice auto-mode {
description description
"Indicates the auto-assignment mode. RD can be "Indicates the auto-assignment mode. The RD can be
automatically assigned with or without automatically assigned with or without
indicating a pool from which the RD should be indicating a pool from which the RD should be
taken. taken.
For both cases, the server will auto-assign an RD For both cases, the server will auto-assign an RD
value 'auto-assigned-rd' and use that value value 'auto-assigned-rd' and use that value
operationally."; operationally.";
case from-pool { case from-pool {
leaf rd-pool-name { leaf rd-pool-name {
type string; type string;
description description
"The auto-assignment will be made from the pool "The auto-assignment will be made from the pool
identified by the rd-pool-name."; identified by 'rd-pool-name'.";
} }
} }
case full-auto { case full-auto {
leaf auto { leaf auto {
type empty; type empty;
description description
"Indicates an RD is fully auto-assigned."; "Indicates that an RD is fully auto-assigned.";
} }
} }
} }
leaf auto-assigned-rd { leaf auto-assigned-rd {
type rt-types:route-distinguisher; type rt-types:route-distinguisher;
config false; config false;
description description
"The value of the auto-assigned RD."; "The value of the auto-assigned RD.";
} }
} }
} }
case auto-assigned-suffix { case auto-assigned-suffix {
description description
"The value of the Assigned Number subfield will "The value of the Assigned Number subfield will be
be auto-assigned. The Administrator subfield auto-assigned. The Administrator subfield will be
will be based on other configuration information such as based on other configuration information such as the
router-id or ASN."; Router ID or ASN.";
container rd-auto-suffix { container rd-auto-suffix {
description description
"The Assigned Number subfield is auto-assigned."; "The Assigned Number subfield is auto-assigned.";
choice auto-mode { choice auto-mode {
description description
"Indicates the auto-assignment mode of the Assigned Number "Indicates the auto-assignment mode of the
subfield. This number can be automatically assigned Assigned Number subfield. This number can be
with or without indicating a pool from which the value automatically assigned with or without indicating a
should be taken. pool from which the value should be taken.
For both cases, the server will auto-assign For both cases, the server will auto-assign
'auto-assigned-rd-suffix' and use that value to build 'auto-assigned-rd-suffix' and use that value to
the RD that will be used operationally."; build the RD that will be used operationally.";
case from-pool { case from-pool {
leaf rd-pool-name { leaf rd-pool-name {
type string; type string;
description description
"The assignment will be made from the pool identified "The assignment will be made from the pool
by the rd-pool-name."; identified by 'rd-pool-name'.";
} }
} }
case full-auto { case full-auto {
leaf auto { leaf auto {
type empty; type empty;
description description
"Indicates that the Assigned Number is fully auto "Indicates that the Assigned Number subfield is
assigned."; fully auto-assigned.";
} }
} }
} }
leaf auto-assigned-rd-suffix { leaf auto-assigned-rd-suffix {
type uint16; type uint16;
config false; config false;
description description
"Includes the value of the Assigned Number subfield that "Includes the value of the Assigned Number subfield
is auto-assigned ."; that is auto-assigned.";
} }
} }
} }
case no-rd { case no-rd {
description description
"Use the empty type to indicate RD has no value and is not to "Uses the 'empty' type to indicate that the RD has no
be auto-assigned."; value and is not to be auto-assigned.";
leaf no-rd { leaf no-rd {
type empty; type empty;
description description
"No RD is assigned."; "No RD is assigned.";
} }
} }
} }
} }
grouping vpn-components-group { grouping vpn-components-group {
description description
"Grouping definition to assign group-ids to associate VPN nodes, "Grouping definition to assign group IDs to associate
sites, or network accesses."; VPN nodes, sites, or network accesses.";
container groups { container groups {
description description
"Lists the groups to which a VPN node, a site, or a network "Lists the groups to which a VPN node, a site, or a
access belongs to."; network access belongs.";
list group { list group {
key "group-id"; key "group-id";
description description
"List of group-ids."; "List of group IDs.";
leaf group-id { leaf group-id {
type string; type string;
description description
"Is the group-id to which a VPN node, a site, or a network "The group ID to which a VPN node, a site, or a
access belongs to."; network access belongs.";
} }
} }
} }
} }
grouping placement-constraints { grouping placement-constraints {
description description
"Constraints for placing a network access."; "Constraints related to placement of a network access.";
list constraint { list constraint {
key "constraint-type"; key "constraint-type";
description description
"List of constraints."; "List of constraints.";
leaf constraint-type { leaf constraint-type {
type identityref { type identityref {
base placement-diversity; base placement-diversity;
} }
description description
"Diversity constraint type."; "Diversity constraint type.";
} }
container target { container target {
description description
"The constraint will apply against this list of groups."; "The constraint will apply against this list of
groups.";
choice target-flavor { choice target-flavor {
description description
"Choice for the group definition."; "Choice for the group definition.";
case id { case id {
list group { list group {
key "group-id"; key "group-id";
description description
"List of groups."; "List of groups.";
leaf group-id { leaf group-id {
type string; type string;
description description
"The constraint will apply against this particular "The constraint will apply against this
group-id."; particular group ID.";
} }
} }
} }
case all-accesses { case all-accesses {
leaf all-other-accesses { leaf all-other-accesses {
type empty; type empty;
description description
"The constraint will apply against all other network "The constraint will apply against all other
accesses of a site."; network accesses of a site.";
} }
} }
case all-groups { case all-groups {
leaf all-other-groups { leaf all-other-groups {
type empty; type empty;
description description
"The constraint will apply against all other groups that "The constraint will apply against all other
the customer is managing."; groups managed by the customer.";
} }
} }
} }
} }
} }
} }
grouping ports { grouping ports {
description description
"Choice of specifying a source or destination port numbers."; "Choice of specifying source or destination port numbers.";
choice source-port { choice source-port {
description description
"Choice of specifying the source port or referring to a group "Choice of specifying the source port or referring to a
of source port numbers."; group of source port numbers.";
container source-port-range-or-operator { container source-port-range-or-operator {
description description
"Source port definition."; "Source port definition.";
uses packet-fields:port-range-or-operator; uses packet-fields:port-range-or-operator;
} }
} }
choice destination-port { choice destination-port {
description description
"Choice of specifying a destination port or referring to a group "Choice of specifying a destination port or referring to a
of destination port numbers."; group of destination port numbers.";
container destination-port-range-or-operator { container destination-port-range-or-operator {
description description
"Destination port definition."; "Destination port definition.";
uses packet-fields:port-range-or-operator; uses packet-fields:port-range-or-operator;
} }
} }
} }
grouping qos-classification-policy { grouping qos-classification-policy {
description description
skipping to change at line 2872 skipping to change at line 2760
choice match-type { choice match-type {
default "match-flow"; default "match-flow";
description description
"Choice for classification."; "Choice for classification.";
case match-flow { case match-flow {
choice l3 { choice l3 {
description description
"Either IPv4 or IPv6."; "Either IPv4 or IPv6.";
container ipv4 { container ipv4 {
description description
"Rule set that matches IPv4 header."; "Rule set that matches the IPv4 header.";
uses packet-fields:acl-ip-header-fields; uses packet-fields:acl-ip-header-fields;
uses packet-fields:acl-ipv4-header-fields; uses packet-fields:acl-ipv4-header-fields;
} }
container ipv6 { container ipv6 {
description description
"Rule set that matches IPv6 header."; "Rule set that matches the IPv6 header.";
uses packet-fields:acl-ip-header-fields; uses packet-fields:acl-ip-header-fields;
uses packet-fields:acl-ipv6-header-fields; uses packet-fields:acl-ipv6-header-fields;
} }
} }
choice l4 { choice l4 {
description description
"Includes Layer 4 specific information. "Includes Layer-4-specific information.
This version focuses on TCP and UDP."; This version focuses on TCP and UDP.";
container tcp { container tcp {
description description
"Rule set that matches TCP header."; "Rule set that matches the TCP header.";
uses packet-fields:acl-tcp-header-fields; uses packet-fields:acl-tcp-header-fields;
uses ports; uses ports;
} }
container udp { container udp {
description description
"Rule set that matches UDP header."; "Rule set that matches the UDP header.";
uses packet-fields:acl-udp-header-fields; uses packet-fields:acl-udp-header-fields;
uses ports; uses ports;
} }
} }
} }
case match-application { case match-application {
leaf match-application { leaf match-application {
type identityref { type identityref {
base customer-application; base customer-application;
} }
description description
"Defines the application to match."; "Defines the application to match.";
} }
} }
} }
leaf target-class-id { leaf target-class-id {
if-feature "qos";
type string; type string;
description description
"Identification of the class of service. This identifier is "Identification of the class of service. This
internal to the administration."; identifier is internal to the administration.";
} }
} }
} }
} }
<CODE ENDS>]]></artwork> ]]></sourcecode>
</figure></t>
</section>
<section anchor="Security" title="Security Considerations">
<t>The YANG modules specified in this document define schemas for data
that is designed to be accessed via network management protocols such as
NETCONF <xref target="RFC6241"></xref> or RESTCONF <xref
target="RFC8040"></xref>. The lowest NETCONF layer is the secure
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
target="RFC8341"></xref> provides the means to restrict access for
particular NETCONF or RESTCONF users to a preconfigured subset of all
available NETCONF or RESTCONF protocol operations and content.</t>
</section>
<section anchor="Security" 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 available NETCONF or RESTCONF protocol
operations and content.</t>
<t>The "ietf-vpn-common" module defines a set of identities, types, and <t>The "ietf-vpn-common" module defines a set of identities, types, and
groupings. These nodes are intended to be reused by other YANG modules. groupings. These nodes are intended to be reused by other YANG modules.
The module does not expose by itself any data nodes which are writable, The module by itself does not expose any data nodes that are writable,
contain read-only state, or RPCs. As such, there are no additional data nodes that contain read-only state, or RPCs. As such, there are no ad
security issues to be considered relating to the "ietf-vpn-common" ditional
module.</t> security issues related to the "ietf-vpn-common" module that need to be co
nsidered.</t>
<t>Modules that use the groupings that are defined in this document <t>Modules that use the groupings that are defined in this document
should identify the corresponding security considerations. For example, should identify the corresponding security considerations. For example,
reusing some of these groupings will expose privacy-related information reusing some of these groupings will expose privacy-related information
(e.g., customer-name). Disclosing such information may be considered as (e.g., 'customer-name'). Disclosing such information may be considered
a violation of the customer-provider trust relationship.</t> a violation of the customer-provider trust relationship.</t>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<section anchor="IANA" title="IANA Considerations"> <name>IANA Considerations</name>
<t>This document requests IANA to register the following URI in the "ns" <t>IANA has registered the following URI in the "ns"
subregistry within the "IETF XML Registry" <xref subregistry within the "IETF XML Registry" <xref target="RFC3688" format="
target="RFC3688"></xref>:</t> default"/>:</t>
<dl newline="false" spacing="compact">
<t><figure> <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-vpn-common</dd>
<artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-vpn-comm <dt>Registrant Contact:</dt><dd>The IESG.</dd>
on <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd>
Registrant Contact: The IESG. </dl>
XML: N/A; the requested URI is an XML namespace.]]></artwork> <t>IANA has registered the following YANG module in
</figure></t> the "YANG Module Names" subregistry <xref target="RFC6020" format="default
"/>
<t>This document requests IANA to register the following YANG module in
the "YANG Module Names" subregistry <xref target="RFC6020"></xref>
within the "YANG Parameters" registry.</t> within the "YANG Parameters" registry.</t>
<dl newline="false" spacing="compact">
<t><figure> <dt>Name:</dt><dd>ietf-vpn-common</dd>
<artwork><![CDATA[ name: ietf-vpn-common <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-vpn-common</dd>
namespace: urn:ietf:params:xml:ns:yang:ietf-vpn-common <dt>Maintained by IANA?</dt><dd>N</dd>
maintained by IANA: N <dt>Prefix:</dt><dd>vpn-common</dd>
prefix: vpn-common <dt>Reference:</dt><dd>RFC 9181</dd>
reference: RFC XXXX]]></artwork> </dl>
</figure></t>
</section>
<section anchor="ack" title="Acknowledgements">
<t>During the discussions of this work, helpful comments and reviews
were received from (listed alphabetically): Alejandro Aguado, Raul Arco,
Miguel Cros Cecilia, Joe Clarke, Dhruv Dhody, Adrian Farrel, Roque
Gagliano, Christian Jacquenet, Kireeti Kompella, Julian Lucek, Tom
Petch, Erez Segev, and Paul Sherratt. Many thanks to them.</t>
<t>This work is partially supported by the European Commission under
Horizon 2020 grant agreement number 101015857 Secured autonomic traffic
management for a Tera of SDN flows (Teraflow).</t>
<t>Many thanks to Radek Krejci for the yangdoctors review, Wesley Eddy
for the tsvart review, Ron Bonica and Victoria Pritchard for the Rtgdir
review, Joel Halpern for the genart review, Tim Wicinski for the opsdir
review, and Suresh Krishnan for the intdir review.</t>
<t>Special thanks to Robert Wilton for the AD review.</t>
<t>Thanks to Roman Danyliw, Lars Eagert, Warren Kumari, Erik Kline,
Zaheduzzaman Sarker, Benjamin Kaduk, and &Eacute;ric Vyncke for the IESG
review.</t>
</section>
<section title="Contributors">
<t><figure>
<artwork><![CDATA[ Italo Busi
Huawei Technologies
Email: Italo.Busi@huawei.com
Luis Angel Munoz
Vodafone
Email: luis-angel.munoz@vodafone.com
Victor Lopez Alvarez
Telefonica
Email: victor.lopezalvarez@telefonica.com]]></artwork>
</figure></t>
</section> </section>
</middle> </middle>
<!-- *****BACK MATTER ***** -->
<back> <back>
<references title="Normative References">
<?rfc include='reference.RFC.6991'?>
<?rfc include='reference.RFC.3688'?>
<?rfc include='reference.RFC.6020'?>
<?rfc include='reference.RFC.7950'?>
<?rfc include='reference.RFC.6241'?>
<?rfc include='reference.RFC.8040'?>
<?rfc include='reference.RFC.6242'?>
<?rfc include='reference.RFC.8446'?>
<?rfc include='reference.RFC.8341'?>
<?rfc include='reference.RFC.8294'?>
<?rfc include='reference.RFC.8519'?>
<?rfc include='reference.RFC.4364'?>
</references>
<references title="Informative References">
<?rfc include='reference.RFC.8340'?>
<?rfc include='reference.RFC.0791'?>
<?rfc include='reference.RFC.8200'?>
<?rfc include='reference.RFC.8512'?>
<?rfc include='reference.RFC.1112'?>
<?rfc include='reference.RFC.2236'?>
<?rfc include='reference.RFC.3376'?>
<?rfc include='reference.RFC.2710'?>
<?rfc include='reference.RFC.3810'?>
<?rfc include='reference.RFC.7761'?>
<?rfc include='reference.RFC.5798'?>
<?rfc include='reference.I-D.ietf-opsawg-l3sm-l3nm'?>
<?rfc include='reference.I-D.ietf-teas-enhanced-vpn'?>
<?rfc include='reference.I-D.ietf-teas-actn-vn-yang'?>
<?rfc include='reference.I-D.ietf-opsawg-l2nm'?>
<?rfc include='reference.RFC.8299'?>
<?rfc include='reference.RFC.8466'?>
<?rfc include='reference.RFC.7348'?>
<?rfc include='reference.RFC.6513'?>
<?rfc include='reference.RFC.4577'?>
<?rfc include='reference.RFC.6565'?>
<?rfc include='reference.RFC.5880'?>
<?rfc include='reference.RFC.1701'?>
<?rfc include='reference.RFC.1702'?>
<?rfc include='reference.RFC.7676'?>
<?rfc include='reference.RFC.8660'?>
<?rfc include='reference.RFC.8663'?>
<?rfc include='reference.RFC.8754'?>
<?rfc include='reference.RFC.8277'?>
<?rfc include='reference.RFC.6624'?>
<?rfc include='reference.RFC.7432'?>
<?rfc include='reference.RFC.5036'?>
<?rfc include='reference.RFC.4762'?>
<?rfc include='reference.RFC.4761'?> <displayreference target="I-D.ietf-teas-enhanced-vpn" to="Enhanced-VPN-Framework
"/>
<?rfc include='reference.RFC.8214'?>
<?rfc include='reference.RFC.7623'?>
<?rfc include='reference.RFC.4664'?>
<?rfc include='reference.RFC.8365'?>
<?rfc include='reference.RFC.3931'?>
<?rfc include='reference.RFC.2003'?>
<?rfc include='reference.RFC.2473'?>
<?rfc include='reference.RFC.8926'?>
<?rfc include='reference.RFC.7510'?>
<?rfc include='reference.RFC.3209'?>
<?rfc include='reference.RFC.4176'?>
<?rfc include='reference.RFC.4026'?>
<?rfc include='reference.RFC.8453'?>
<?rfc include='reference.RFC.4960'?>
<?rfc include='reference.RFC.4271'?>
<?rfc include='reference.RFC.2453'?>
<?rfc include='reference.RFC.2080'?>
<?rfc include='reference.RFC.7880'?>
<?rfc include='reference.I-D.ietf-teas-ietf-network-slices'?>
<reference anchor="IEEE802.1Q">
<front>
<title>Bridges and Bridged Networks</title>
<author>
<organization></organization>
</author>
<date day="06" month="July" year="2018" />
</front>
<seriesInfo name="IEEE" value="Std 802.1Q-2018" />
</reference>
<reference anchor="IEEE802.1ad"> <references>
<front> <name>References</name>
<title>Virtual Bridged Local Area Networks Amendment 4: Provider <references>
Bridges</title> <name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6991.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3688.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6020.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7950.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6241.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8040.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6242.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8446.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8341.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8294.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8519.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4364.xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8340.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.0791.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8200.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8512.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.1112.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2236.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3376.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2710.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3810.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7761.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5798.xml"/>
<author> <!-- draft-ietf-opsawg-l3sm-l3nm (RFC 9182) -->
<organization></organization> <reference anchor='RFC9182' target="https://www.rfc-editor.org/info/rfc9182">
</author> <front>
<title>A YANG Network Data Model for Layer 3 VPNs</title>
<author initials='S' surname='Barguil' fullname='Samier Barguil'>
<organization />
</author>
<author initials='O' surname='Gonzalez de Dios' fullname='Oscar Gonzalez de Dios
' role="editor">
<organization />
</author>
<author initials='M' surname='Boucadair' fullname='Mohamed Boucadair' role="edit
or">
<organization />
</author>
<author initials='L' surname='Munoz' fullname='Luis Munoz'>
<organization />
</author>
<author initials='A' surname='Aguado' fullname='Alejandro Aguado'>
<organization />
</author>
<date year='2022' month='February'/>
</front>
<seriesInfo name="RFC" value="9182"/>
<seriesInfo name="DOI" value="10.17487/RFC9182"/>
</reference>
<date month="" year="2006" /> <!-- draft-ietf-teas-enhanced-vpn (I-D Exists) -->
</front> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D
.ietf-teas-enhanced-vpn.xml"/>
<seriesInfo name="IEEE" value="Std 802.1ad-2005" /> <!-- draft-ietf-teas-actn-vn-yang (I-D Exists)
</reference> Long way; two editors -->
<reference anchor='ACTN-VN-YANG'>
<front>
<title>A YANG Data Model for VN Operation</title>
<author initials='Y' surname='Lee' fullname='Young Lee' role="editor">
<organization />
</author>
<author initials='D' surname='Dhody' fullname='Dhruv Dhody' role="editor">
<organization />
</author>
<author initials='D' surname='Ceccarelli' fullname='Daniele Ceccarelli'>
<organization />
</author>
<author initials='I' surname='Bryskin' fullname='Igor Bryskin'>
<organization />
</author>
<author initials='B' surname='Yoon' fullname='Bin-Yeong Yoon'>
<organization />
</author>
<date year='2021' month='October' day='23' />
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-teas-actn-vn-yang-13'/>
</reference>
<reference anchor="IEEE802.1AX"> <!-- draft-ietf-opsawg-l2nm (I-D Exists)
<front> Long way; two editors, plus a couple names messed up in original repo. file --
<title>Link Aggregation</title> >
<reference anchor='L2NM-YANG'>
<front>
<title>A Layer 2 VPN Network YANG Model</title>
<author initials='S' surname='Barguil' fullname='Samier Barguil'>
<organization />
</author>
<author initials='O' surname='Gonzalez de Dios' fullname='Oscar Gonzalez de Dios
' role="editor">
<organization />
</author>
<author initials='M' surname='Boucadair' fullname='Mohamed Boucadair' role="edit
or">
<organization />
</author>
<author initials='L' surname='Munoz' fullname='Luis Munoz'>
<organization />
</author>
<date year='2021' month='November' day='22' />
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-opsawg-l2nm-12'/>
</reference>
<author> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<organization></organization> FC.8299.xml"/>
</author> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8466.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7348.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6513.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4577.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6565.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5880.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.1701.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.1702.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7676.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8660.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8663.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8754.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8277.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6624.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7432.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5036.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4762.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4761.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8214.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7623.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4664.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8365.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3931.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2003.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2473.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8926.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7510.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3209.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4176.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4026.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8453.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4960.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4271.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2453.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2080.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7880.xml"/>
<date month="" year="2020" /> <!-- draft-ietf-teas-ietf-network-slices I-D Exists
</front> Long way; one author is editor -->
<reference anchor="Network-Slices-Framework">
<front>
<title>Framework for IETF Network Slices</title>
<author initials="A" surname="Farrel" fullname="Adrian Farrel" role="editor">
<organization/></author>
<author initials="E" surname="Gray" fullname="Eric Gray">
<organization/></author>
<author initials="J" surname="Drake" fullname="John Drake">
<organization/></author>
<author initials="R" surname="Rokui" fullname="Reza Rokui">
<organization/></author>
<author initials="S" surname="Homma" fullname="Shunsuke Homma">
<organization/></author>
<author initials="K" surname="Makhijani" fullname="Kiran Makhijani">
<organization/></author>
<author initials="LM" surname="Contreras" fullname="Luis M. Contreras">
<organization/></author>
<author initials="J" surname="Tantsura" fullname="Jeff Tantsura">
<organization/></author>
<date month='October' day='25' year='2021'/>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-teas-ietf-network-slices-05'
/>
</reference>
<seriesInfo name="IEEE" value="Std 802.1AX-2020" /> <reference anchor="IEEE802.1Q" target="https://standards.ieee.org/standa
</reference> rd/802_1Q-2018.html">
<front>
<title>IEEE Standard for Local and Metropolitan Area Networks--Bridg
es and Bridged Networks</title>
<author><organization>IEEE</organization></author>
<!-- <date day="06" month="July" year="2018"/> -->
</front>
</reference>
<reference anchor="ISO10589" <reference anchor="IEEE802.1ad" target="https://standards.ieee.org/stand
target="International Standard 10589:2002, Second Edition"> ard/802_1ad-2005.html">
<front> <front>
<title>Intermediate System to Intermediate System intra- domain <title>IEEE Standard for Local and Metropolitan Area Networks---Virt
routeing information exchange protocol for use in conjunction with ual Bridged Local Area Networks---Amendment 4: Provider Bridges</title>
the protocol for providing the connectionless-mode network service <author><organization>IEEE</organization></author>
(ISO 8473)</title> <!-- <date month="" year="2006"/> -->
</front>
</reference>
<author fullname="ISO"> <reference anchor="IEEE802.1AX" target="https://standards.ieee.org/stand
<organization></organization> ard/802_1AX-2020.html">
</author> <front>
<title>IEEE Standard for Local and Metropolitan Area Networks--Link
Aggregation</title>
<author><organization>IEEE</organization></author>
<!-- <date month="" year="2020"/> -->
</front>
</reference>
<date year="2002" /> <reference anchor="ISO10589" target="https://www.iso.org/standard/30932.
</front> html">
</reference> <front>
<title>Information technology - Telecommunications and information e
xchange between systems - Intermediate System to Intermediate System intra-domai
n routeing information exchange protocol for use in conjunction with the protoco
l for providing the connectionless-mode network service (ISO 8473)</title>
<author><organization>ISO</organization></author>
<date month="November" year="2002"/>
</front>
<refcontent>International Standard 10589:2002, Second Edition</refcont
ent>
</reference>
</references>
</references> </references>
<section anchor="app-ex" numbered="true" toc="default">
<section anchor="app-ex" <name>Example of Common Data Nodes in Early L2NM/L3NM Designs</name>
title="Example of Common Data Nodes in Early L2NM/L3NM Designs"> <t>In order to avoid duplication of data nodes and to ease passing data
<t>In order to avoid data nodes duplication and to ease passing data
among layers (i.e., from the service layer to the network layer and vice among layers (i.e., from the service layer to the network layer and vice
versa), early versions of the L3NM reused many of the data nodes that versa), early versions of the L3NM reused many of the data nodes that
are defined in the L3SM. Nevertheless, that approach was abandoned are defined in the L3SM. Nevertheless, that approach was abandoned
because that design was interpreted as if the deployment of L3NM depends because that design was interpreted as if the deployment of the L3NM depen
on L3SM, while this is not required. For example, a service provider may ds
on the L3SM, while this is not required. For example, a service provider m
ay
decide to use the L3NM to build its L3VPN services without exposing the decide to use the L3NM to build its L3VPN services without exposing the
L3SM to customers.</t> L3SM to customers.</t>
<t>Likewise, early versions of the L2NM reused many of the data nodes <t>Likewise, early versions of the L2NM reused many of the data nodes
that are defined in both L2SM and L3NM. An example of L3NM groupings that are defined in both the L2SM and the L3NM. An example of L3NM groupin
reused in L2NM is shown in <xref target="ex2"></xref>. Such data nodes gs
reuse was interpreted as if the deployment of the L2NM requires the reused in the L2NM is shown in <xref target="ex2" format="default"/>. Such
support of the L3NM; which is not required.</t> reuse of data nodes was interpreted as if the deployment of the L2NM requi
res
<t><figure align="left" anchor="ex2" support for the L3NM, which is not required.</t>
title="Excerpt from the L2NM YANG Module"> <figure anchor="ex2">
<artwork><![CDATA[module ietf-l2vpn-ntw { <name>Excerpt from the L2NM YANG Module</name>
<artwork name="" type="ascii-art" align="left" alt=""><![CDATA[module ie
tf-l2vpn-ntw {
... ...
import ietf-l3vpn-ntw { import ietf-l3vpn-ntw {
prefix l3vpn-ntw; prefix l3vpn-ntw;
reference reference
"RFC NNNN: A Layer 3 VPN Network YANG Model"; "RFC 9182: A YANG Network Data Model for Layer 3 VPNs";
} }
... ...
container l2vpn-ntw { container l2vpn-ntw {
... ...
container vpn-services { container vpn-services {
list vpn-service { list vpn-service {
... ...
uses l3vpn-ntw:service-status; uses l3vpn-ntw:service-status;
uses l3vpn-ntw:svc-transport-encapsulation; uses l3vpn-ntw:svc-transport-encapsulation;
... ...
} }
} }
... ...
} }
} }
]]></artwork> ]]></artwork>
</figure></t> </figure>
</section>
<section anchor="ack" numbered="false" toc="default">
<name>Acknowledgements</name>
<t>During the discussions of this work, helpful comments and reviews
were received from (listed alphabetically) <contact fullname="Alejandro Ag
uado"/>, <contact fullname="Raul Arco"/>,
<contact fullname="Miguel Cros Cecilia"/>, <contact fullname="Joe Clarke"/
>, <contact fullname="Dhruv Dhody"/>, <contact fullname="Adrian Farrel"/>, <cont
act fullname="Roque Gagliano"/>, <contact fullname="Christian Jacquenet"/>, <con
tact fullname="Kireeti Kompella"/>, <contact fullname="Julian Lucek"/>, <contact
fullname="Tom Petch"/>, <contact fullname="Erez Segev"/>, and <contact fullname
="Paul Sherratt"/>. Many thanks to them.</t>
<t>This work is partially supported by the European Commission under
Horizon 2020 Secured autonomic traffic management for a Tera of SDN flows
(Teraflow) project (grant agreement number 101015857).</t>
<t>Many thanks to <contact fullname="Radek Krejci"/> for the YANG Doctors
review, <contact fullname="Wesley Eddy"/>
for the tsvart review, <contact fullname="Ron Bonica"/> and <contact fulln
ame="Victoria Pritchard"/> for the RtgDir
review, <contact fullname="Joel Halpern"/> for the genart review, <contact
fullname="Tim Wicinski"/> for the opsdir
review, and <contact fullname="Suresh Krishnan"/> for the intdir review.</
t>
<t>Special thanks to <contact fullname="Robert Wilton"/> for the AD review
.</t>
<t>Thanks to <contact fullname="Roman Danyliw"/>, <contact fullname="Lars
Eggert"/>, <contact fullname="Warren Kumari"/>, <contact fullname="Erik Kline"/>
,
<contact fullname="Zaheduzzaman Sarker"/>, <contact fullname="Benjamin Kad
uk"/>, and <contact fullname="Éric Vyncke"/> for the IESG review.</t>
</section>
<section numbered="false" toc="default">
<name>Contributors</name>
<contact fullname="Italo Busi">
<organization>Huawei Technologies</organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<email>Italo.Busi@huawei.com</email>
</address>
</contact>
<t></t> <contact fullname="Luis Angel Munoz">
<organization>Vodafone</organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<email>luis-angel.munoz@vodafone.com</email>
</address>
</contact>
<contact fullname="Victor Lopez">
<organization>Nokia</organization>
<address>
<postal>
<street></street>
<city>Madrid</city>
<region></region>
<code></code>
<country>Spain</country>
</postal>
<email>victor.lopez@nokia.com</email>
</address>
</contact>
</section> </section>
</back> </back>
</rfc> </rfc>
 End of changes. 326 change blocks. 
1043 lines changed or deleted 1118 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/