rfc8916xml2.original.xml   rfc8916.xml 
<?xml version="1.0" encoding="iso-8859-1" ?> <?xml version='1.0' encoding='utf-8'?>
<!--<!DOCTYPE rfc SYSTEM "rfc4748.dtd"> --> <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' [
<!ENTITY rfc2629 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.2629.xml'>
<!ENTITY rfc2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.2119.xml'>
<!ENTITY rfc5925 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.5925.xml'>
<!ENTITY rfc3618 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.3618.xml'>
<!ENTITY rfc8407 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8407.xml'>
<!ENTITY rfc8342 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8342.xml'>
<!ENTITY rfc6991 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.6991.xml'>
<!ENTITY rfc8343 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8343.xml'>
<!ENTITY rfc8344 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8344.xml'>
<!ENTITY rfc8177 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8177.xml'>
<!ENTITY rfc6241 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.6241.xml'>
<!ENTITY rfc8040 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.8040.xml'>
<!ENTITY rfc6242 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.6242.xml'>
<!ENTITY rfc8446 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.8446.xml'>
<!ENTITY rfc8341 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.8341.xml'>
<!ENTITY rfc6020 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.6020.xml'>
<!ENTITY rfc3688 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.3688.xml'>
<!ENTITY rfc7951 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/r
eference.RFC.7951.xml'>
<!ENTITY rfc7950 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.7950.xml'>
<!ENTITY rfc8174 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.8174.xml'>
<!ENTITY rfc8294 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8294.xml'>
<!ENTITY rfc8340 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8340.xml'>
<!ENTITY rfc8349 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.8349.xml'>
<!ENTITY rfc8519 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.8519.xml'>
<!ENTITY rfc8639 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8639.xml'>
<!ENTITY rfc8641 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.8641.xml'>
<!ENTITY rfc4271 PUBLIC '' 'http://xml.resource.org/public/rfc/bi
bxml/reference.RFC.4271.xml'>
<!ENTITY rfc7761 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/refere
nce.RFC.7761.xml'>
<!ENTITY I-D.ietf-pim-yang PUBLIC '' 'http://xml.resource.org/public/rfc/bib
xml3/reference.I-D.ietf-pim-yang.xml'>
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std"
<?rfc symrefs="yes"?> docName="draft-ietf-pim-msdp-yang-18" number="8916" ipr="trust200902"
<?rfc sortrefs="yes"?> obsoletes="" updates="" submissionType="IETF" consensus="true"
<?rfc disable-output-escaping="yes"?> xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true"
version="3">
<rfc category="std" docName="draft-ietf-pim-msdp-yang-18" <!-- xml2rfc v2v3 conversion 2.45.3 -->
ipr="trust200902">
<!-- ***** FRONT MATTER ***** -->
<front> <front>
<title abbrev="MSDP YANG Model">A YANG Data Model for Multicast Source Disco very Protocol (MSDP)</title> <title abbrev="MSDP YANG Data Model">A YANG Data Model for the Multicast Sou rce Discovery Protocol (MSDP)</title>
<seriesInfo name="RFC" value="8916"/>
<author fullname="Xufeng Liu" initials="X" surname="Liu"> <author fullname="Xufeng Liu" initials="X" surname="Liu">
<organization>Volta Networks</organization> <organization>Volta Networks</organization>
<address> <address>
<postal> <postal>
<street></street> <street/>
<city></city> <city/>
<code></code> <code/>
<country></country> <country/>
</postal> </postal>
<email>xufeng.liu.ietf@gmail.com</email> <email>xufeng.liu.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Zheng Zhang" initials="Z" role="editor" surname="Zhang">
<author fullname="Zheng Zhang" initials="Z" role="editor" surname="Zhang"
>
<organization>ZTE Corporation</organization> <organization>ZTE Corporation</organization>
<address> <address>
<postal> <postal>
<street>No. 50 Software Ave, Yuhuatai Distinct</street> <street>No. 50 Software Avenue, Yuhuatai District</street>
<city>Nanjing</city> <city>Nanjing</city>
<region/>
<region></region> <code/>
<code></code>
<country>China</country> <country>China</country>
</postal> </postal>
<email>zhang.zheng@zte.com.cn</email>
<email>zzhang_ietf@hotmail.com</email>
</address> </address>
</author> </author>
<author fullname="Anish Peter" initials="A" surname="Peter">
<author fullname="Anish Peter" initials="A" surname="Peter"> <organization>Individual Contributor</organization>
<organization>Individual contributor</organization>
<address> <address>
<postal> <postal>
<street></street> <street/>
<city/>
<city></city> <region/>
<code/>
<region></region> <country/>
<code></code>
<country></country>
</postal> </postal>
<email>anish.ietf@gmail.com</email> <email>anish.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Mahesh Sivakumar" initials="M" surname="Sivakumar">
<author fullname="Mahesh Sivakumar" initials="M" surname="Sivakumar"> <organization>Juniper Networks</organization>
<organization>Juniper networks</organization>
<address> <address>
<postal> <postal>
<street>1133 Innovation Way</street> <street>1133 Innovation Way</street>
<city>Sunnyvale</city>
<city>Sunnyvale, CALIFORNIA 94089</city> <region>CA</region>
<code>94089</code>
<region></region> <country>United States of America</country>
<code></code>
<country>USA</country>
</postal> </postal>
<email>sivakumar.mahesh@gmail.com</email> <email>sivakumar.mahesh@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Feng Guo" initials="F" surname="Guo">
<author fullname="Feng Guo" initials="F" surname="Guo">
<organization>Huawei Technologies</organization> <organization>Huawei Technologies</organization>
<address> <address>
<postal> <postal>
<street>Huawei Bld., No.156 Beiqing Rd.</street> <street>Huawei Bldg., No. 156 Beiqing Rd.</street>
<city>Beijing</city>
<city>Beijing 100095</city> <region/>
<code>100095</code>
<region></region>
<code></code>
<country>China</country> <country>China</country>
</postal> </postal>
<email>guofeng@huawei.com</email> <email>guofeng@huawei.com</email>
</address> </address>
</author> </author>
<author fullname="Pete McAllister" initials="P" surname="McAllister"> <author fullname="Pete McAllister" initials="P" surname="McAllister">
<organization>Metaswitch Networks</organization> <organization>Metaswitch Networks</organization>
<address> <address>
<postal> <postal>
<street>100 Church Street</street> <street>100 Church Street</street>
<city>Enfield</city>
<city>Enfield EN2 6BQ</city>
<region></region> <region></region>
<code>EN2 6BQ</code>
<code></code> <country>United Kingdom</country>
<country>UK</country>
</postal> </postal>
<email>pete.mcallister@metaswitch.com</email> <email>pete.mcallister@metaswitch.com</email>
</address> </address>
</author> </author>
<date month="October" year="2020"/>
<date year="2020"/> <keyword>MSDP</keyword>
<area>Routing</area> <keyword>YANG</keyword>
<workgroup>PIM WG</workgroup>
<keyword>MSDP, YANG</keyword>
<abstract> <abstract>
<t> <t>
This document defines a YANG data model for the configuration and This document defines a YANG data model for the configuration and
management of Multicast Source Discovery Protocol (MSDP) Protocol. management of Multicast Source Discovery Protocol (MSDP) protocol
</t> operations.
</t>
</abstract> </abstract>
</front> </front>
<!-- ***** MIDDLE MATTER ***** -->
<middle> <middle>
<section title="Introduction"> <section numbered="true" toc="default">
<t><xref target="RFC3618"/> introduces the protocol definition of MSDP. <name>Introduction</name>
<t><xref target="RFC3618" format="default"/> introduces the protocol
definition of the Multicast Source Discovery Protocol (MSDP).
This document defines a YANG data model that can be used to configure This document defines a YANG data model that can be used to configure
and manage the MSDP protocol. The operational state data and and manage MSDP protocol operations. The operational state data and
statistics can also be retrieved by this model. statistics can also be retrieved by this model.
</t> </t>
<t> <t>
This model is designed to be used along with other multicast This model is designed to be used along with other multicast
YANG models such as PIM <xref target="I-D.ietf-pim-yang"/>, which are not YANG data models such as PIM <xref target="PIM-YANG" format="default"/>,
covered in this document. which are not covered in this document.
</t> </t>
<section numbered="true" toc="default">
<section title="Terminology"> <name>Terminology</name>
<t>The terminology for describing YANG data models is found in <t>The terminology for describing YANG data models is found in
<xref target="RFC6020"/> and <xref target="RFC7950"/>, including:</t> <xref target="RFC6020" format="default"/> and <xref target="RFC7950" for
<t> mat="default"/>, including:</t>
<list style="symbols"> <ul spacing="normal">
<t>action</t> <li>action</li>
<t>augment</t> <li>augment</li>
<t>container</t> <li>choice</li>
<t>choice</t> <li>container</li>
<t>data model</t> <li>data model</li>
<t>data node</t> <li>data node</li>
<t>grouping</t> <li>grouping</li>
<t>identity</t> <li>identity</li>
<t>leaf</t> <li>leaf</li>
<t>list</t> <li>list</li>
<t>module</t> <li>module</li>
<t>uses</t> <li>uses</li>
</list> </ul>
</t> <t>The following abbreviations are used in this document and the defined
<t>The following abbreviations are used in this document and the defined
model:</t> model:</t>
<t>MSDP: Multicast Source Discovery Protocol <xref target="RFC3618"/>.</t <t>MSDP: Multicast Source Discovery Protocol <xref target="RFC3618" form
> at="default"/></t>
<t>RP: Rendezvous Point <xref target="RFC7761"/></t> <t>RP: Rendezvous Point <xref target="RFC7761" format="default"/></t>
<t>RPF: Reverse Path Forwarding <xref target="RFC7761"/></t> <t>RPF: Reverse Path Forwarding <xref target="RFC7761" format="default"/
<t>SA: Source-Active <xref target="RFC3618"/>.</t> ></t>
</section> <t>SA: Source-Active <xref target="RFC3618" format="default"/></t>
</section>
<section title="Conventions Used in This Document"> <section numbered="true" toc="default">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", <name>Conventions Used in This Document</name>
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"OPTIONAL" in this document are to be interpreted as described in "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
when, and only when, they appear in all capitals, as shown here.</t> "<bcp14>SHOULD NOT</bcp14>",
</section> "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
<section title="Tree Diagrams"> are to be interpreted as described in BCP&nbsp;14
<t>Tree diagrams used in this document follow the notation defined in <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
<xref target="RFC8340"/>.</t> when, they appear in all capitals, as shown here.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Prefixes in Data Node Names"> <name>Tree Diagrams</name>
<t>In this document, names of data nodes, actions, and other data model <t>Tree diagrams used in this document follow the notation defined in
<xref target="RFC8340" format="default"/>.</t>
</section>
<section numbered="true" toc="default">
<name>Prefixes in Data Node Names</name>
<t>In this document, names of data nodes, actions, and other data model
objects are often used without a prefix, as long as it is clear from objects are often used without a prefix, as long as it is clear from
the context in which YANG module each name is defined. Otherwise, the context in which YANG module each name is defined. Otherwise,
names are prefixed using the standard prefix associated with the names are prefixed using the standard prefix associated with the
corresponding YANG module, as shown in Table 1.</t> corresponding YANG module, as shown in <xref target="TABLE_1"/>.</t>
<table anchor="TABLE_1" align="center">
<texttable anchor="TABLE_1" title=""> <thead>
<tr>
<ttcol align="left">Prefix</ttcol> <th align="left">Prefix</th>
<ttcol align="left">YANG module</ttcol> <th align="left">YANG module</th>
<ttcol align="left">Reference</ttcol> <th align="left">Reference</th>
</tr>
<c>yang</c> </thead>
<c>ietf-yang-types</c> <tbody>
<c><xref target="RFC6991"/></c> <tr>
<td align="left">yang</td>
<c>inet</c> <td align="left">ietf-yang-types</td>
<c>ietf-inet-types</c> <td align="left">
<c><xref target="RFC6991"/></c> <xref target="RFC6991" format="default"/></td>
</tr>
<c>rt</c> <tr>
<c>ietf-routing</c> <td align="left">inet</td>
<c><xref target="RFC8349"/></c> <td align="left">ietf-inet-types</td>
<td align="left">
<c>if</c> <xref target="RFC6991" format="default"/></td>
<c>ietf-interfaces</c> </tr>
<c><xref target="RFC8343"/></c> <tr>
<td align="left">rt</td>
<c>ip</c> <td align="left">ietf-routing</td>
<c>ietf-ip</c> <td align="left">
<c><xref target="RFC8344"/></c> <xref target="RFC8349" format="default"/></td>
</tr>
<c>key-chain</c> <tr>
<c>ietf-key-chain</c> <td align="left">if</td>
<c><xref target="RFC8177"/></c> <td align="left">ietf-interfaces</td>
<td align="left">
<c>rt-types</c> <xref target="RFC8343" format="default"/></td>
<c>ietf-routing-types</c> </tr>
<c><xref target="RFC8294"/></c> <tr>
<td align="left">ip</td>
<c>acl</c> <td align="left">ietf-ip</td>
<c>ietf-access-control-list</c> <td align="left">
<c><xref target="RFC8519"/></c> <xref target="RFC8344" format="default"/></td>
</texttable> </tr>
<tr>
</section> <td align="left">key-chain</td>
</section> <td align="left">ietf-key-chain</td>
<td align="left">
<section title="Design of the Data Model"> <xref target="RFC8177" format="default"/></td>
<section title="Scope of Model"> </tr>
<t>The model covers MSDP <xref target="RFC3618"/>.</t> <tr>
<td align="left">rt-types</td>
<t>This model can be used to configure and manage the <td align="left">ietf-routing-types</td>
MSDP protocol. The operational state data and statistics <td align="left">
<xref target="RFC8294" format="default"/></td>
</tr>
<tr>
<td align="left">acl</td>
<td align="left">ietf-access-control-list</td>
<td align="left">
<xref target="RFC8519" format="default"/></td>
</tr>
</tbody>
</table>
</section>
</section>
<section numbered="true" toc="default">
<name>Design of the Data Model</name>
<section numbered="true" toc="default">
<name>Scope of Model</name>
<t>The model covers MSDP <xref target="RFC3618" format="default"/>.</t>
<t>This model can be used to configure and manage MSDP protocol operatio
ns. The operational state data and statistics
can be retrieved by this model. Even though no protocol-specific can be retrieved by this model. Even though no protocol-specific
notifications are defined in this model, the subscription and push notifications are defined in this model, the subscription and push
mechanism defined in <xref target="RFC8639"/> mechanisms, as defined in <xref target="RFC8639" format="default"/>
and <xref target="RFC8641"/> can be implemented by and <xref target="RFC8641" format="default"/>, can be implemented by
the user to subscribe to notifications on the data nodes in this the user to subscribe to notifications on the data nodes in this
model.</t> model.</t>
<t>The model contains all the basic configuration parameters to operate
<t>The model contains all the basic configuration parameters to operate
the protocol. Depending on the implementation choices, the protocol. Depending on the implementation choices,
some systems may not allow some of the advanced parameters to be some systems may not allow some of the advanced parameters to be
configurable. The occasionally implemented parameters are modeled as configurable. The occasionally implemented parameters are modeled as
optional features in this model. optional features in this model.
This model can be extended, and it has been structured in a way that This model can be extended, and it has been structured in a way that
such extensions can be conveniently made.</t> such extensions can be conveniently made.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Specification"> <name>Specification</name>
<t> <t>
The configuration data nodes cover global The configuration data nodes cover global
configuration attributes and per peer configuration configuration attributes and per-peer configuration
attributes. The state data nodes include global, per peer, attributes. The state data nodes include global, per-peer,
and source-active information. The container "msdp" is the and SA information. The container "msdp" is the
top level container in this data model. The presence of top-level container in this data model. The presence of
this container is expected to enable MSDP protocol functionality. this container is expected to enable MSDP protocol functionality.
No notification is defined in this model.</t> No notification is defined in this model.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Module Structure"> <name>Module Structure</name>
<t> <t>
This model imports and augments the ietf-routing YANG model This model imports and augments the "ietf-routing" YANG data model
defined in <xref target="RFC8349"/>. Both configuration defined in <xref target="RFC8349" format="default"/>. Both configuration
data nodes and state data nodes of <xref target="RFC8349"/> data nodes and state data nodes as mentioned in <xref target="RFC8349" fo
rmat="default"/>
are augmented. are augmented.
</t> </t>
<t>The YANG data model defined in this document conforms to the Network
<t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA) <xref target="RFC8342" format="defau
Management Datastore Architecture (NMDA) <xref target="RFC8342"/>. lt"/>.
The operational state data is combined with the associated configuration The operational state data is combined with the associated configuration
data in the same hierarchy <xref target="RFC8407"/>.</t> data in the same hierarchy <xref target="RFC8407" format="default"/>.</t>
<figure align="center"> <sourcecode type="yangtree"><![CDATA[
<artwork align="center"><![CDATA[
module: ietf-msdp module: ietf-msdp
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol: /rt:control-plane-protocol:
+--rw msdp +--rw msdp
+--rw global +--rw global
| +--rw tcp-connection-source? if:interface-ref | +--rw tcp-connection-source? if:interface-ref
| +--rw default-peer* [peer-addr prefix-policy] | +--rw default-peer* [peer-addr prefix-policy]
{filter-policy}? {filter-policy}?
| | +--rw peer-addr -> ../../../peers/peer/address | | +--rw peer-addr -> ../../../peers/peer/address
| | +--rw prefix-policy -> /acl:acls/acl/name | | +--rw prefix-policy -> /acl:acls/acl/name
skipping to change at line 348 skipping to change at line 297
| | +--rw out? -> /acl:acls/acl/name | | +--rw out? -> /acl:acls/acl/name
| +--rw sa-limit? uint32 | +--rw sa-limit? uint32
| +--rw ttl-threshold? uint8 | +--rw ttl-threshold? uint8
+--rw peers +--rw peers
| +--rw peer* [address] | +--rw peer* [address]
| +--rw address inet:ipv4-address | +--rw address inet:ipv4-address
| +---x clear-peer | +---x clear-peer
| +--rw authentication {peer-authentication}? | +--rw authentication {peer-authentication}?
| | +--rw (authentication-type)? | | +--rw (authentication-type)?
| | +--:(key-chain) | | +--:(key-chain)
| | | +--rw key-chain? key-chain:key-chain-ref | | | +--rw key-chain?
key-chain:key-chain-ref
| | +--:(password) | | +--:(password)
| | +--rw key? string | | +--rw key? string
| | +--rw crypto-algorithm? identityref | | +--rw crypto-algorithm? identityref
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw tcp-connection-source? if:interface-ref | +--rw tcp-connection-source? if:interface-ref
| +--rw description? string | +--rw description? string
| +--rw mesh-group? string | +--rw mesh-group? string
| +--rw peer-as? inet:as-number | +--rw peer-as? inet:as-number
{peer-as-verification}? {peer-as-verification}?
| +--rw sa-filter | +--rw sa-filter
skipping to change at line 420 skipping to change at line 370
| +--ro peer-learned-from? inet:ipv4-address | +--ro peer-learned-from? inet:ipv4-address
| +--ro rpf-peer? inet:ipv4-address | +--ro rpf-peer? inet:ipv4-address
+---x clear +---x clear
+---w input +---w input
+---w entry! +---w entry!
| +---w group | +---w group
rt-types:ipv4-multicast-group-address rt-types:ipv4-multicast-group-address
| +---w source-addr? | +---w source-addr?
rt-types:ipv4-multicast-source-address rt-types:ipv4-multicast-source-address
+---w peer-address? inet:ipv4-address +---w peer-address? inet:ipv4-address
+---w peer-as? inet:as-number +---w peer-as? inet:as-number]]></sourcecode>
]]></artwork> <section numbered="true" toc="default">
<postamble></postamble> <name>MSDP Configuration</name>
</figure> <t>
<section title="MSDP Configuration">
<t>
MSDP operation requires configuration information that is distributed MSDP operation requires configuration information that is distributed
amongst several peers. Several peers may amongst several peers. Several peers may
be configured in a mesh-group. The Source-Active information may be filtered be configured in a mesh-group. The SA information may be filtered
by peers.</t> by peers.</t>
<t>The configuration modeling branch is composed of MSDP global and <t>The configuration modeling branch is composed of MSDP global and
peer configurations. peer configurations.
The two parts are the most important parts of MSDP.</t> These two parts are the most important parts of MSDP.</t>
<t>Besides the fundamental features of MSDP protocol, several optional featur <t>Besides the fundamental features of MSDP, several optional features
es are included in the model. These features help the control of MSDP.
are included in the model. These features help the control of MSDP protocol.
The peer features and SA features make the deployment and control easier. The The peer features and SA features make the deployment and control easier. The
connection parameters can be used to control the TCP connection because MSDP connection parameters can be used to control the TCP connection because MSDP
protocol is based on TCP. The authentication features make the protocol more is based on TCP. The authentication features make the protocol more
secure. The filter features selectively allow operators to prevent SA informa tion secure. The filter features selectively allow operators to prevent SA informa tion
from being forwarded to peers.</t> from being forwarded to peers.</t>
</section>
<section numbered="true" toc="default">
<name>MSDP States</name>
<t>MSDP states are composed of the MSDP global state, the MSDP peer stat
e, statistics
information, and SA cache information. The statistics information and SA
cache
information help the operator retrieve data regarding the protocol's con
dition.</t>
<t>YANG actions are defined to clear the connection of one specific MSDP
peer,
clear the connections of all MSDP peers, or clear some or all of the SA cach
es.</t>
</section>
</section> </section>
<section numbered="true" toc="default">
<name>MSDP YANG Data Model</name>
<t>This module references <xref target="RFC3618" format="default"/>, <xref
target="RFC4271" format="default"/>,
<xref target="RFC5925" format="default"/>, <xref target="RFC6991" format="defa
ult"/>, <xref target="RFC7761" format="default"/>,
<xref target="RFC8177" format="default"/>, <xref target="RFC8294" format
="default"/>, <xref target="RFC8343" format="default"/>,
<xref target="RFC8344" format="default"/>, <xref target="RFC8349"
format="default"/>, and <xref target="RFC8519" format="default"/>.</t>
<section title="MSDP State"> <sourcecode name="ietf-msdp@2020-09-15.yang" type="yang" markers="true"><!
<t>MSDP states are composed of MSDP global state, MSDP peer state, statistic [CDATA[
s
information and SA cache information. The statistics information and SA c
ache
information helps the operator to retrieve the protocol condition.</t>
<t>YANG actions are defined to clear the connection of one specific MSDP pee
r,
clear the connections of all MSDP peers, or clear some or all the SA caches.
</t>
</section>
</section>
<section title="MSDP YANG Model">
<t>This module references <xref target="RFC3618"/>, <xref target="RFC4271
"/>,
<xref target="RFC5925"/>, <xref target="RFC6991"/>, <xref target="RFC7761"/>,
<xref target="RFC8177"/>, <xref target="RFC8294"/>, <xref target="RFC8343
"/>,
<xref target="RFC8344"/>, <xref target="RFC8349"/>, <xref target="RFC8519"/>.
</t>
<figure align="center">
<artwork align="center"><![CDATA[
<CODE BEGINS> file "ietf-msdp@2020-04-15.yang"
module ietf-msdp { module ietf-msdp {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-msdp"; namespace "urn:ietf:params:xml:ns:yang:ietf-msdp";
prefix msdp; prefix msdp;
import ietf-yang-types { import ietf-yang-types {
prefix "yang"; prefix "yang";
reference "RFC 6991: Common YANG Data Types"; reference
"RFC 6991: Common YANG Data Types";
} }
import ietf-inet-types { import ietf-inet-types {
prefix "inet"; prefix "inet";
reference "RFC 6991: Common YANG Data Types"; reference
"RFC 6991: Common YANG Data Types";
} }
import ietf-routing { import ietf-routing {
prefix "rt"; prefix "rt";
reference "RFC 8349: A YANG Data Model for Routing Management reference
(NMDA Version)"; "RFC 8349: A YANG Data Model for Routing Management
(NMDA Version)";
} }
import ietf-interfaces { import ietf-interfaces {
prefix "if"; prefix "if";
reference "RFC 8343: A YANG Data Model for Interface Management"; reference
"RFC 8343: A YANG Data Model for Interface Management";
} }
import ietf-ip { import ietf-ip {
prefix "ip"; prefix "ip";
reference "RFC 8344: A YANG Data Model for IP Management"; reference
"RFC 8344: A YANG Data Model for IP Management";
} }
import ietf-key-chain { import ietf-key-chain {
prefix "key-chain"; prefix "key-chain";
reference "RFC 8177: YANG Data Model for Key Chains"; reference
"RFC 8177: YANG Data Model for Key Chains";
} }
import ietf-routing-types { import ietf-routing-types {
prefix "rt-types"; prefix "rt-types";
reference "RFC 8294: Common YANG Data Types for the Routing reference
Area"; "RFC 8294: Common YANG Data Types for the Routing Area";
} }
import ietf-access-control-list { import ietf-access-control-list {
prefix acl; prefix acl;
reference reference
"RFC 8519: YANG Data Model for Network Access Control Lists "RFC 8519: YANG Data Model for Network Access Control Lists
(ACLs)"; (ACLs)";
} }
organization organization
"IETF PIM (Protocols for IP Multicast) Working Group"; "IETF Protocols for IP Multicast (pim) Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/pim/> "WG Web: <https://datatracker.ietf.org/wg/pim/>
WG List: <mailto:pim@ietf.org> WG List: <mailto:pim@ietf.org>
Editor: Xufeng Liu Editor: Xufeng Liu
<mailto:xufeng.liu.ietf@gmail.com> <mailto:xufeng.liu.ietf@gmail.com>
Editor: Zheng Zhang Editor: Zheng Zhang
<mailto:zzhang_ietf@hotmail.com> <mailto:zhang.zheng@zte.com.cn>
Editor: Anish Peter Editor: Anish Peter
<mailto:anish.ietf@gmail.com> <mailto:anish.ietf@gmail.com>
Editor: Mahesh Sivakumar Editor: Mahesh Sivakumar
<mailto:sivakumar.mahesh@gmail.com> <mailto:sivakumar.mahesh@gmail.com>
Editor: Feng Guo Editor: Feng Guo
<mailto:guofeng@huawei.com> <mailto:guofeng@huawei.com>
Editor: Pete McAllister Editor: Pete McAllister
<mailto:pete.mcallister@metaswitch.com>"; <mailto:pete.mcallister@metaswitch.com>";
// RFC Ed.: replace XXXX with actual RFC number and remove
// this note
description description
"The module defines the YANG model definitions for "This module defines the YANG data model definitions for the
Multicast Source Discovery Protocol (MSDP). Multicast Source Discovery Protocol (MSDP).
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.
Copyright (c) 2020 IETF Trust and the persons identified as Copyright (c) 2020 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 the license terms contained in, the Simplified BSD License set
License set forth in Section 4.c of the IETF Trust's Legal forth in Section 4.c of the IETF Trust's Legal Provisions
Provisions Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX This version of this YANG module is part of RFC 8916; see the
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC RFC itself for full legal notices.";
itself for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',
'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED',
'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document
are to be interpreted as described in BCP 14 (RFC 2119)
(RFC 8174) when, and only when, they appear in all
capitals, as shown here.";
revision 2020-04-15 { revision 2020-09-15 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for MSDP."; "RFC 8916: A YANG Data Model for the Multicast Source
Discovery Protocol (MSDP)";
} }
/* /*
* Features * Features
*/ */
feature filter-policy { feature filter-policy {
description description
"Support policy configuration of peer/message filtering."; "Support policy configuration of peer/message filtering.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)"; Lists (ACLs)";
} }
feature peer-as-verification { feature peer-as-verification {
description description
"Support configuration of peer AS number."; "Support configuration of a peer's Autonomous System Number
(ASN).";
reference reference
"RFC 4271: A Border Gateway Protocol 4 (BGP-4)"; "RFC 4271: A Border Gateway Protocol 4 (BGP-4)";
} }
feature peer-authentication { feature peer-authentication {
description description
"Support configuration of peer authentication."; "Support configuration of peer authentication.";
reference reference
"RFC 8177: YANG Data Model for Key Chains."; "RFC 8177: YANG Data Model for Key Chains";
} }
/* /*
* Identities * Identities
*/ */
identity msdp { identity msdp {
base rt:control-plane-protocol; base rt:control-plane-protocol;
description "Identity for the Multicast Source Discovery description
Protocol (MSDP)."; "Identity for the Multicast Source Discovery Protocol (MSDP).";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP)"; "RFC 3618: Multicast Source Discovery Protocol (MSDP)";
} }
/* /*
* Groupings * Groupings
*/ */
grouping authentication-container { grouping authentication-container {
description description
"Authentication attributes."; "Authentication attributes.";
skipping to change at line 628 skipping to change at line 576
if-feature peer-authentication; if-feature peer-authentication;
description description
"A container defining authentication attributes."; "A container defining authentication attributes.";
choice authentication-type { choice authentication-type {
case key-chain { case key-chain {
leaf key-chain { leaf key-chain {
type key-chain:key-chain-ref; type key-chain:key-chain-ref;
description description
"Reference to a key-chain."; "Reference to a key-chain.";
reference reference
"RFC 8177: YANG Data Model for Key Chains."; "RFC 8177: YANG Data Model for Key Chains";
} }
} }
case password { case password {
leaf key { leaf key {
type string; type string;
description description
"This leaf specifies the authentication key."; "This leaf specifies the authentication key.";
} }
leaf crypto-algorithm { leaf crypto-algorithm {
type identityref { type identityref {
base key-chain:crypto-algorithm; base key-chain:crypto-algorithm;
} }
must "derived-from-or-self(., 'key-chain:md5')" { must "derived-from-or-self(., 'key-chain:md5')" {
error-message error-message
"Only the md5 algorithm can be used for MSDP."; "Only the md5 algorithm can be used for MSDP.";
description "Check for crypto-algorithm."; description
"Check for crypto-algorithm.";
} }
description description
"Cryptographic algorithm associated with key. "Cryptographic algorithm associated with a key.
Only the md5 algorithm can be used for MSDP. Only the md5 algorithm can be used for MSDP.
When 'md5' is specified, MSDP control messages When 'md5' is specified, MSDP control messages
are secured by TCP MD5 signatures as described are secured by TCP MD5 signatures as described
in RFC 3618 and RFC 5925. Both peers of a in RFCs 3618 and 5925. Both peers of a
connection SHOULD be configured to the same connection SHOULD be configured to the same
algorithm for the connection to be established. algorithm for the connection to be established.
When this leaf is not configured, unauthenticated When this leaf is not configured, unauthenticated
TCP is used."; TCP is used.";
reference reference
"RFC 8177: YANG Data Model for Key Chains. "RFC 3618: Multicast Source Discovery Protocol (MSDP)
RFC 5925: The TCP Authentication Option."; RFC 5925: The TCP Authentication Option
RFC 8177: YANG Data Model for Key Chains";
} }
} }
description description
"Choice of authentication."; "Choice of authentication.";
} }
} }
} // authentication-container } // authentication-container
grouping tcp-connect-source { grouping tcp-connect-source {
description description
"Attribute to configure peer TCP connection source."; "Attribute to configure a peer TCP connection source.";
leaf tcp-connection-source { leaf tcp-connection-source {
type if:interface-ref; type if:interface-ref;
must "/if:interfaces/if:interface[if:name = current()]/" must "/if:interfaces/if:interface[if:name = current()]/"
+ "ip:ipv4/ip:enabled != 'false'" { + "ip:ipv4/ip:enabled != 'false'" {
error-message "The interface must have IPv4 enabled."; error-message
"The interface must have IPv4 enabled.";
description description
"The interface must have IPv4 enabled."; "The interface must have IPv4 enabled.";
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
description description
"The interface is to be the source for the TCP "The interface is to be the source for the TCP
connection. It is a reference to an entry in the global connection. It is a reference to an entry in the global
interface list."; interface list.";
} }
} // tcp-connect-source } // tcp-connect-source
grouping global-config-attributes { grouping global-config-attributes {
description "Global MSDP configuration."; description
"Global MSDP configuration.";
uses tcp-connect-source; uses tcp-connect-source;
list default-peer { list default-peer {
if-feature filter-policy; if-feature filter-policy;
key "peer-addr prefix-policy"; key "peer-addr prefix-policy";
description description
"The default peer accepts all MSDP SA messages. "The default peer accepts all MSDP Source-Active (SA)
A default peer is needed in topologies where MSDP peers messages. A default peer is needed in topologies where
do not coexist with BGP peers. The reverse path MSDP peers do not coexist with BGP peers. The Reverse Path
forwarding (RPF) check on SA messages will fail, and no Forwarding (RPF) check on SA messages will fail, and no
SA messages will be accepted. In these cases, you can SA messages will be accepted. In these cases, you can
configure the peer as a default peer and bypass RPF checks."; configure the peer as a default peer and bypass
RPF checks.";
leaf peer-addr { leaf peer-addr {
type leafref { type leafref {
path "../../../peers/peer/address"; path "../../../peers/peer/address";
} }
mandatory true; mandatory true;
description description
"Reference to a peer that is in the peer list."; "Reference to a peer that is in the peer list.";
} }
leaf prefix-policy { leaf prefix-policy {
type leafref { type leafref {
path "/acl:acls/acl:acl/acl:name"; path "/acl:acls/acl:acl/acl:name";
} }
description description
"If specified, only those SA entries whose RP is "If specified, only those SA entries whose Rendezvous
permitted in the prefix list are allowed; Point (RP) is permitted in the prefix list are allowed;
if not specified, all SA messages from the default if not specified, all SA messages from the default
peer are accepted."; peer are accepted.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 7761: Protocol Independent Multicast - Sparse Mode
(PIM-SM): Protocol Specification (Revised)
RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)"; Lists (ACLs)";
} }
} // default-peer } // default-peer
container originating-rp { container originating-rp {
description description
"The container of Originating RP."; "The container of the originating RP.";
leaf interface { leaf interface {
type if:interface-ref; type if:interface-ref;
must "/if:interfaces/if:interface[if:name = current()]/" must "/if:interfaces/if:interface[if:name = current()]/"
+ "ip:ipv4/ip:enabled != 'false'" { + "ip:ipv4/ip:enabled != 'false'" {
error-message "The interface must have IPv4 enabled."; error-message
"The interface must have IPv4 enabled.";
description description
"The interface must have IPv4 enabled."; "The interface must have IPv4 enabled.";
reference reference
"RFC 8343: A YANG Data Model for Interface Management"; "RFC 8343: A YANG Data Model for Interface Management";
} }
description description
"Reference to an entry in the global interface "Reference to an entry in the global interface list.
list. The IP address of the interface used in the RP field of
IP address of the interface used in the RP field of an SA message entry. When anycast RPs are used, all RPs
an SA message entry. When Anycast RPs are used, all use the same IP address. This parameter can be used to
RPs use the same IP address. This parameter can be define a unique IP address for the RP of each MSDP peer.
used to define a unique IP address for the RP of each
MSDP peer.
By default, the software uses the RP address of the By default, the software uses the RP address of the
local system."; local system.";
} }
} // originating-rp } // originating-rp
uses sa-filter-container; uses sa-filter-container;
leaf sa-limit { leaf sa-limit {
type uint32; type uint32;
description description
"A limit on the number of SA entries accepted. "A limit on the number of SA entries accepted.
By default, there is no limit."; If not configured or the value is 0, there is no limit.";
} }
uses ttl-threshold; uses ttl-threshold;
} // global-config-attributes } // global-config-attributes
grouping peer-config-attributes { grouping peer-config-attributes {
description "Per peer configuration for MSDP."; description
"Per-peer configuration for MSDP.";
uses authentication-container; uses authentication-container;
leaf enabled { leaf enabled {
type boolean; type boolean;
description description
"'true' if peer is enabled; "'true' if the peer is enabled;
'false' if peer is disabled."; 'false' if the peer is disabled.";
} }
uses tcp-connect-source; uses tcp-connect-source;
leaf description { leaf description {
type string; type string;
description description
"The peer description."; "The peer description.";
} }
leaf mesh-group { leaf mesh-group {
type string; type string;
description description
"The name of mesh-group which this peer belongs to."; "The name of the mesh-group to which this peer belongs.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP), "RFC 3618: Multicast Source Discovery Protocol (MSDP),
section 10.2."; Section 10.2";
} }
leaf peer-as { leaf peer-as {
if-feature peer-as-verification; if-feature peer-as-verification;
type inet:as-number; type inet:as-number;
description description
"Peer's autonomous system number (ASN). Using peer-as to "The peer's ASN. Using peer-as to perform the verification
do verification can provide more controlled ability. can provide more controlled ability. The value can be
The value can be compared with the BGP peer AS. If they compared with the BGP peer's ASN. If they are different,
are different, the SA comes from this peer may be rejected. the SA information that comes from this peer may be
If the AS number is the same as the local AS, then the rejected. If the ASN is the same as the local ASN, then
peer is within the same domain; otherwise, this peer is the peer is within the same domain; otherwise, this peer
external to the domain. Like the definition and usage is external to the domain. This is comparable to the
in BGP."; definition and usage in BGP; see RFC 4271.";
reference reference
"RFC 4271: A Border Gateway Protocol 4 (BGP-4)"; "RFC 4271: A Border Gateway Protocol 4 (BGP-4)";
} }
uses sa-filter-container; uses sa-filter-container;
leaf sa-limit { leaf sa-limit {
type uint32; type uint32;
description description
"A limit on the number of SA entries accepted from this "A limit on the number of SA entries accepted from this
peer. By default, there is no limit."; peer.
If not configured or the value is 0, there is no limit.";
} }
container timer { container timer {
description "Timer attributes."; description
"Timer attributes.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP), "RFC 3618: Multicast Source Discovery Protocol (MSDP),
section 5."; Section 5";
leaf connect-retry-interval { leaf connect-retry-interval {
type uint16; type uint16;
units seconds; units seconds;
default 30; default 30;
description "Peer timer for connect-retry. description
By default, MSDP peers wait 30 seconds after "The peer timer for connect-retry. By default, MSDP peers
session is reset."; wait 30 seconds after the session is reset.";
} }
leaf holdtime-interval { leaf holdtime-interval {
type uint16 { type uint16 {
range "3..65535"; range "3..65535";
} }
units seconds; units seconds;
default 75; default 75;
description "The SA hold down period of this MSDP peer."; description
"The SA hold-down period of this MSDP peer.";
} }
leaf keepalive-interval { leaf keepalive-interval {
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
units seconds; units seconds;
must '. < ../holdtime-interval' { must '. < ../holdtime-interval' {
error-message error-message
"The keepalive interval must be smaller than the "The keepalive interval must be smaller than the "
hold time interval"; + "hold-time interval.";
} }
default 60; default 60;
description "The keepalive timer of this MSDP peer."; description
"The keepalive timer of this MSDP peer.";
} }
} // timer } // timer
uses ttl-threshold; uses ttl-threshold;
} // peer-config-attributes } // peer-config-attributes
grouping peer-state-attributes { grouping peer-state-attributes {
description "Per peer state attributes for MSDP."; description
"Per-peer state attributes for MSDP.";
leaf session-state { leaf session-state {
type enumeration { type enumeration {
enum disabled { enum disabled {
description "Disabled."; description
"Disabled.";
} }
enum inactive { enum inactive {
description "Inactive."; description
"Inactive.";
} }
enum listen { enum listen {
description "Listen."; description
"Listen.";
} }
enum connecting { enum connecting {
description "Connecting."; description
"Connecting.";
} }
enum established { enum established {
description "Established."; description
"Established.";
} }
} }
config false; config false;
description description
"Peer session state."; "The peer's session state.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol (MSDP), "RFC 3618: Multicast Source Discovery Protocol (MSDP),
section 11."; Section 11";
} }
leaf elapsed-time { leaf elapsed-time {
type yang:gauge32; type yang:gauge32;
units seconds; units seconds;
config false; config false;
description "Elapsed time for being in a state."; description
"Elapsed time for being in a state.";
} }
leaf connect-retry-expire { leaf connect-retry-expire {
type uint32; type uint32;
units seconds; units seconds;
config false; config false;
description "Connect retry expire time of peer connection."; description
"Connect retry expire time of a peer connection.";
} }
leaf hold-expire { leaf hold-expire {
type uint16; type uint16;
units seconds; units seconds;
config false; config false;
description "Hold expire time of peer connection."; description
"Hold expire time of a peer connection.";
} }
leaf is-default-peer { leaf is-default-peer {
type boolean; type boolean;
config false; config false;
description "'true' if this peer is one of the default peer."; description
"'true' if this peer is one of the default peers.";
} }
leaf keepalive-expire { leaf keepalive-expire {
type uint16; type uint16;
units seconds; units seconds;
config false; config false;
description "Keepalive expire time of this peer."; description
"Keepalive expire time of this peer.";
} }
leaf reset-count { leaf reset-count {
type yang:zero-based-counter32; type yang:zero-based-counter32;
config false; config false;
description "The reset count of this peer."; description
"The reset count of this peer.";
} }
container statistics { container statistics {
config false; config false;
description description
"A container defining statistics attributes."; "A container defining statistics attributes.";
leaf discontinuity-time { leaf discontinuity-time {
type yang:date-and-time; type yang:date-and-time;
description description
"The time on the most recent occasion at which any one "The time on the most recent occasion at which any one
or more of the statistic counters suffered a or more of the statistics counters suffered a
discontinuity. If no such discontinuities have occurred discontinuity. If no such discontinuities have occurred
since the last re-initialization of the local since the last re-initialization of the local
management subsystem, then this node contains the time management subsystem, then this node contains the time
the local management subsystem re-initialized itself."; the local management subsystem re-initialized itself.";
} }
container error { container error {
description description
"A grouping defining error statistics attributes."; "A grouping defining error statistics attributes.";
leaf rpf-failure { leaf rpf-failure {
type uint32; type uint32;
description "Number of RPF failures."; description
"The number of RPF failures.";
} }
} }
container queue { container queue {
description description
"A container includes queue statistics attributes."; "A container that includes queue statistics attributes.";
leaf size-in { leaf size-in {
type uint32; type uint32;
description description
"The number of messages received from the peer "The number of messages received from the peer
currently queued."; currently queued.";
} }
leaf size-out { leaf size-out {
type uint32; type uint32;
description description
"The number of messages queued to be sent to the peer."; "The number of messages queued to be sent to the peer.";
} }
} }
container received { container received {
description "Received message counters."; description
"Received message counters.";
uses statistics-sent-received; uses statistics-sent-received;
} }
container sent { container sent {
description "Sent message counters."; description
"Sent message counters.";
uses statistics-sent-received; uses statistics-sent-received;
} }
} // statistics } // statistics
} // peer-state-attributes } // peer-state-attributes
grouping sa-filter-container { grouping sa-filter-container {
description "A container defining SA filters."; description
"A container defining SA filters.";
container sa-filter { container sa-filter {
description description
"Specifies an access control list (ACL) to filter source "Specifies an Access Control List (ACL) to filter SA messages
active (SA) messages coming in to or going out of the coming into or going out of the peer.";
peer.";
leaf in { leaf in {
type leafref { type leafref {
path "/acl:acls/acl:acl/acl:name"; path "/acl:acls/acl:acl/acl:name";
} }
description description
"Filters incoming SA messages only. "Filters incoming SA messages only.
The value is the name to uniquely identify a The value is the name to uniquely identify a
policy that contains one or more rules used to policy that contains one or more rules used to
accept or reject MSDP SA messages. accept or reject MSDP SA messages.
If the policy is not specified, all MSDP SA messages are If the policy is not specified, all MSDP SA messages are
skipping to change at line 1005 skipping to change at line 979
If the policy is not specified, all MSDP SA messages are If the policy is not specified, all MSDP SA messages are
sent."; sent.";
reference reference
"RFC 8519: YANG Data Model for Network Access Control "RFC 8519: YANG Data Model for Network Access Control
Lists (ACLs)"; Lists (ACLs)";
} }
} // sa-filter } // sa-filter
} // sa-filter-container } // sa-filter-container
grouping ttl-threshold { grouping ttl-threshold {
description "Attribute to configure TTL threshold."; description
"Attribute to configure the TTL threshold.";
leaf ttl-threshold { leaf ttl-threshold {
type uint8 { type uint8 {
range 1..255; range 1..255;
} }
description "Maximum number of hops data packets can description
traverse before being dropped."; "The maximum number of hops data packets can traverse
before being dropped.";
} }
} // ttl-threshold } // ttl-threshold
grouping statistics-sent-received { grouping statistics-sent-received {
description description
"A grouping defining sent and received statistics attributes."; "A grouping defining sent and received statistics attributes.";
leaf keepalive { leaf keepalive {
type yang:counter64; type yang:counter64;
description description
"The number of keepalive messages."; "The number of keepalive messages.";
skipping to change at line 1054 skipping to change at line 1030
type yang:counter64; type yang:counter64;
description description
"The number of total messages."; "The number of total messages.";
} }
} // statistics-sent-received } // statistics-sent-received
/* /*
* Data nodes * Data nodes
*/ */
augment "/rt:routing/rt:control-plane-protocols/" augment "/rt:routing/rt:control-plane-protocols/"
+ "rt:control-plane-protocol" { + "rt:control-plane-protocol" {
when "derived-from-or-self(rt:type, 'msdp:msdp')" { when "derived-from-or-self(rt:type, 'msdp:msdp')" {
description description
"This augmentation is only valid for a routing protocol "This augmentation is only valid for a routing protocol
instance of MSDP."; instance of MSDP.";
} }
description description
"MSDP augmentation to routing control-plane protocol "MSDP augmentation to routing control-plane protocol
configuration and state."; configuration and state.";
container msdp { container msdp {
description description
"MSDP configuration and operational state data."; "MSDP configuration and operational state data.";
container global { container global {
description description
"Global attributes."; "Global attributes.";
uses global-config-attributes; uses global-config-attributes;
} }
container peers { container peers {
description description
"Containing a list of peers."; "Contains a list of peers.";
list peer { list peer {
key "address"; key "address";
description description
"List of MSDP peers."; "A list of MSDP peers.";
leaf address { leaf address {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The address of the peer"; "The address of the peer.";
} }
action clear-peer { action clear-peer {
description description
"Clears the TCP connection to the peer."; "Clears the TCP connection to the peer.";
} }
uses peer-config-attributes; uses peer-config-attributes;
uses peer-state-attributes; uses peer-state-attributes;
} }
} }
action clear-all-peers { action clear-all-peers {
description description
"'All peers' TCP connection are cleared."; "All peers' TCP connections are cleared.";
} }
container sa-cache { container sa-cache {
config false; config false;
description description
"The SA cache information."; "The SA cache information.";
list entry { list entry {
key "group source-addr"; key "group source-addr";
description "A list of SA cache entries."; description
"A list of SA cache entries.";
leaf group { leaf group {
type rt-types:ipv4-multicast-group-address; type rt-types:ipv4-multicast-group-address;
description "The group address of this SA cache."; description
"The group address of this SA cache.";
} }
leaf source-addr { leaf source-addr {
type rt-types:ipv4-multicast-source-address; type rt-types:ipv4-multicast-source-address;
description "Source IPv4 address."; description
"Source IPv4 address.";
} }
list origin-rp { list origin-rp {
key "rp-address"; key "rp-address";
description "Origin RP information."; description
"Information regarding the originating RP.";
leaf rp-address { leaf rp-address {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The RP address. IP address used in the RP field "The RP address. This is the IP address used in the
of an SA message entry."; RP field of an SA message entry.";
} }
leaf is-local-rp { leaf is-local-rp {
type boolean; type boolean;
description description
"'true' if the RP is local; "'true' if the RP is local;
'false' if The RP is not local."; 'false' if the RP is not local.";
} }
leaf sa-adv-expire { leaf sa-adv-expire {
type uint32; type uint32;
units seconds; units seconds;
description description
"The remaining time duration before expiration "The remaining time duration before expiration
of the periodic SA advertisement timer on a of the periodic SA advertisement timer on a
local RP."; local RP.";
} }
} }
container state-attributes { container state-attributes {
description "SA cache state attributes for MSDP."; description
"SA cache state attributes for MSDP.";
leaf up-time { leaf up-time {
type yang:gauge32; type yang:gauge32;
units seconds; units seconds;
description description
"Indicates the duration time when this SA entry is "Indicates the duration time when this SA entry is
created in the cache. MSDP is a periodic protocol, created in the cache. MSDP is a periodic protocol;
the value can be used to check the state of the value can be used to check the state of the
SA cache."; SA cache.";
} }
leaf expire { leaf expire {
type yang:gauge32; type yang:gauge32;
units seconds; units seconds;
description description
"Indicates the duration time when this SA entry in "Indicates the duration time when this SA entry in
the cache times out. MSDP is a periodic protocol, the cache times out. MSDP is a periodic protocol;
the value can be used to check the state of the value can be used to check the state of the
SA cache."; SA cache.";
} }
leaf holddown-interval { leaf holddown-interval {
type uint32; type uint32;
units seconds; units seconds;
description description
"Hold-down timer value for SA forwarding."; "Hold-down timer value for SA forwarding.";
reference reference
"RFC 3618: Multicast Source Discovery Protocol "RFC 3618: Multicast Source Discovery Protocol
(MSDP), section 5.3."; (MSDP), Section 5.3";
} }
leaf peer-learned-from { leaf peer-learned-from {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The address of the peer that we learned this "The address of the peer from which we learned this
SA from."; SA information.";
} }
leaf rpf-peer { leaf rpf-peer {
type inet:ipv4-address; type inet:ipv4-address;
description description
"The address is the SA's originating RP."; "The address is the SA's originating RP.";
} }
} // state-attributes } // state-attributes
} // entry } // entry
action clear { action clear {
description description
"Clears MSDP source active (SA) cache entries."; "Clears MSDP SA cache entries.";
input { input {
container entry { container entry {
presence "If a particular entry is cleared."; presence "If a particular entry is cleared.";
description description
"The SA cache (S,G) or (*,G) entry to be cleared. If "The SA cache (S,G) or (*,G) entry to be cleared.
this is not provided, all entries are cleared."; If this is not provided, all entries are cleared.";
leaf group { leaf group {
type rt-types:ipv4-multicast-group-address; type rt-types:ipv4-multicast-group-address;
mandatory true; mandatory true;
description "The group address"; description
"The group address.";
} }
leaf source-addr { leaf source-addr {
type rt-types:ipv4-multicast-source-address; type rt-types:ipv4-multicast-source-address;
description description
"Address of multicast source to be cleared. If this "The address of the multicast source to be cleared.
is not provided then all entries related to the If this is not provided, then all entries related
given group are cleared."; to the given group are cleared.";
} }
} }
leaf peer-address { leaf peer-address {
type inet:ipv4-address; type inet:ipv4-address;
description description
"Peer IP address from which MSDP SA cache entries have "The peer IP address from which MSDP SA cache entries
been learned. If this is not provided, entries learned have been learned. If this is not provided, entries
from all peers are cleared."; learned from all peers are cleared.";
} }
leaf peer-as { leaf peer-as {
type inet:as-number; type inet:as-number;
description description
"ASN from which MSDP SA cache entries have been learned. "The ASN from which MSDP SA cache entries have been
If this is not provided, entries learned from all AS's learned. If this is not provided, entries learned
are cleared."; from all ASes are cleared.";
} }
} }
} // clear } // clear
} // sa-cache } // sa-cache
} // msdp } // msdp
} // augment } // augment
} }]]></sourcecode>
<CODE ENDS>
]]></artwork>
<postamble></postamble>
</figure>
</section>
<section title="Security Considerations"> </section>
<t>The YANG module specified in this document defines a schema for data <section 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 that is designed to be accessed via network management protocols such
as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. as NETCONF <xref target="RFC6241" format="default"/> or RESTCONF <xref target ="RFC8040" format="default"/>.
The lowest NETCONF layer is the secure transport layer, and the The lowest NETCONF layer is the secure transport layer, and the
mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="R FC6242"/>. mandatory-to-implement secure transport is Secure Shell (SSH) <xref target="R FC6242" format="default"/>.
The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure The lowest RESTCONF layer is HTTPS, and the mandatory-to-implement secure
transport is TLS <xref target="RFC8446"/>.</t> transport is TLS <xref target="RFC8446" format="default"/>.</t>
<t>The Network Configuration Access Control Model (NACM) <xref
<t>The NETCONF access control model <xref target="RFC8341"/> provides target="RFC8341"/> provides the means to restrict access for particular
the means to NETCONF or RESTCONF users to a preconfigured subset of all available
restrict access for particular NETCONF or RESTCONF users to a NETCONF or RESTCONF protocol operations and content.</t>
preconfigured subset of all available NETCONF or RESTCONF protocol <t>There are a number of data nodes defined in this YANG module that are
operations and content.</t>
<t>There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., config true, which is the writable/creatable/deletable (i.e., config true, which is the
default). These data nodes may be considered sensitive or vulnerable default). These data nodes may be considered sensitive or vulnerable
in some network environments. Write operations (e.g., edit-config) in some network environments. Write operations (e.g., edit-config)
to these data nodes without proper protection can have a negative to these data nodes without proper protection can have a negative
effect on network operations. These are the subtrees and data nodes effect on network operations. These are the subtrees and data nodes
and their sensitivity/vulnerability:</t> and their sensitivity/vulnerability:</t>
<t>Under /rt:routing/rt:control-plane-protocols/msdp:</t>
<t>Under /rt:routing/rt:control-plane-protocols/msdp,</t> <t indent="3">msdp:global</t>
<t>msdp:global
<list style="simblos">
<t>This subtree specifies the configuration for the MSDP attributes
at the global level. Modifying the configuration can cause MSDP default
peers to be deleted or the connection to be rebuilt, and unexpected fil
tering of the SA.</t>
</list>
</t>
<t>msdp:peers <t indent="6">This subtree specifies the configuration for the MSDP attributes
<list style="simblos"> at the global level. Modifying the configuration can cause MSDP
<t>This subtree specifies the configuration for the MSDP attributes default peers to be deleted or the connection to be rebuilt and can
also cause unexpected filtering of the SA.</t>
<t indent="3">msdp:peers</t>
<t indent="6">This subtree specifies the configuration for the MSDP attributes
at the peer level. Modifying the configuration will allow at the peer level. Modifying the configuration will allow
unexpected MSDP peer establishment and unexpected MSDP peer establishment and
unexpected SA information learning and advertisement.</t> unexpected SA information learning and advertisement.</t>
<t>The key field writability should be controlled strictly.
The key misoperation will break the existing MSDP connection, <t indent="6">The writability of the "key" field should be strictly controlled.
Misoperation of the key will break the existing MSDP connection,
and the associated SA caches will also be deleted.</t> and the associated SA caches will also be deleted.</t>
</list>
</t>
<t>Some of the readable data nodes in this YANG module may be considered <t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or important to control read access (e.g., via get, get-config, or
notification) to these data nodes. These is msdp subtree and key data notification) to these data nodes. These are the subtrees and data
node and their sensitivity/vulnerability:</t> nodes and their sensitivity/vulnerability:</t>
<t>/rt:routing/rt:control-plane-protocols/msdp,</t> <t>/rt:routing/rt:control-plane-protocols/msdp:</t>
<t>Unauthorized access to any data node of the above subtree can
disclose the operational state information of MSDP on this
device. For example, the peer information disclosure may lead to a forged
connection attack, the ACL nodes' uncorrected modification may lead to the fi
lter errors.
</t>
<t>The "key" <t indent="3">Unauthorized access to any data node of the above subtree can
field is also a sensitive readable configuration. Unauthorized disclose the operational state information of MSDP on this device. For
reading may lead to the password leaking. Modification example, disclosure of the peer information may lead to a forged connection
will allow the unexpected rebuilding of connected peers.</t> attack, and uncorrected modification of the ACL nodes may lead to filter
<t>Authentication configuration is supported via the errors.</t>
specification of key-chains <xref target="RFC8177"/> or the direct specificat
ion of <t indent="3">The "key" field is also a sensitive readable configuration.
key and authentication algorithm. Hence, authentication Unauthorized reading of this field may lead to leaking of the password.
Modification will allow the unexpected rebuilding of connected peers.</t>
<t>Authentication configuration is supported via the
specification of key-chains <xref target="RFC8177" format="default"/> or
the direct specification of the
key and the authentication algorithm. Hence, authentication
configuration in the configuration in the
"authentication" container inherits the security considerations of "authentication" container inherits the security considerations discussed in
<xref target="RFC8177"/>. This includes the considerations with respect to t <xref target="RFC8177" format="default"/>. This includes the considerations
he with respect to the
local storage and handling of authentication keys.</t> local storage and handling of authentication keys.</t>
<t>Some of the RPC operations in this YANG module may be considered <t>Some of the RPC operations in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus sensitive or vulnerable in some network environments. It is thus
important to control access to these operations. These are the important to control access to these operations. These are the
operations and their sensitivity/vulnerability: operations and their sensitivity/vulnerability:
</t> </t>
<t>/rt:routing/rt:control-plane-protocols/msdp:clear-peer,</t>
<t>/rt:routing/rt:control-plane-protocols/msdp:clear-sa-cache,</t>
<t>Unauthorized access to any of the above action operations can lead to
the MSDP peers connection rebuilding or delete SA records on this device.
</t>
</section>
<section title="IANA Considerations">
<t>RFC Ed.: Please replace all occurrences of 'XXXX' with the
actual RFC number (and remove this note).</t>
<t> The IANA is requested to assign one new URI from the IETF XML
registry <xref target="RFC3688"/>. Authors are suggesting the following URI:
</t>
<t>URI: urn:ietf:params:xml:ns:yang:ietf-msdp</t>
<t>Registrant Contact: The IESG</t>
<t>XML: N/A, the requested URI is an XML namespace</t>
<t>This document also requests one new YANG module name in the YANG
Module Names registry <xref target="RFC6020"/> with the following suggestion:
</t>
<t>name: ietf-msdp</t> <t>/rt:routing/rt:control-plane-protocols/msdp:clear-peer</t>
<t>namespace: urn:ietf:params:xml:ns:yang:ietf-msdp</t> <t>/rt:routing/rt:control-plane-protocols/msdp:clear-sa-cache</t>
<t>prefix: msdp</t>
<t>reference: RFC XXXX</t>
</section>
<section title="Contributors"> <t indent="3">Unauthorized access to either of the above action
<t>The authors would like to thank Yisong Liu (liuyisong@huawei.com), operations can lead to rebuilding of the MSDP peers' connections or
Benchong Xu (xu.benchong@zte.com.cn), deletion of SA records on this device.
Tanmoy Kundu (tanmoy.kundu@alcatel-lucent.com) for their valuable </t>
contributions.</t>
</section>
<section title="Acknowledgement"> </section>
<t>The authors would like to thank Stig Venaas, Jake Holland for their va
luable
comments and suggestions.</t>
</section>
<section numbered="true" toc="default">
<name>IANA Considerations</name>
<t>IANA has registered the following URI in the "ns" subregistry within
the "IETF XML Registry" <xref target="RFC3688" format="default"/>:</t>
<dl newline="false" spacing="compact">
<dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-msdp</dd>
<dt>Registrant Contact:</dt><dd>The IESG.</dd>
<dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd>
</dl>
<t>IANA has registered the following YANG module in the "YANG Module
Names" subregistry <xref target="RFC6020" format="default"/> within the
"YANG Parameters" registry:</t>
<dl newline="false" spacing="compact">
<dt>Name:</dt><dd>ietf-msdp</dd>
<dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-msdp</dd>
<dt>Prefix:</dt><dd>msdp</dd>
<dt>Reference:</dt><dd>RFC 8916</dd>
</dl>
</section>
</middle> </middle>
<!-- *****BACK MATTER ***** -->
<back> <back>
<references>
<name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3618.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4271.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5925.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6020.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6241.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6242.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6991.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7950.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7951.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8040.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8177.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8294.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8340.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8341.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8342.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8343.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8344.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8349.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8446.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8519.
xml"/>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3688.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7761.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8407.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8639.
xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8641.
xml"/>
<references title='Normative References'> <!-- draft-ietf-pim-yang (MISSREF) (Needs to be "long way";
&rfc2119; fangwei hu (lc in XML) needs to be init-capped -->
&rfc3618; <reference anchor="PIM-YANG" target="https://tools.ietf.org/html/draft-i
&rfc4271; etf-pim-yang-17">
&rfc5925; <front>
&rfc6020; <title>A YANG Data Model for Protocol Independent Multicast (PIM)</t
&rfc6241; itle>
&rfc6242; <author initials="X" surname="Liu" fullname="Xufeng Liu">
&rfc6991; <organization/>
&rfc7950; </author>
&rfc7951; <author initials="P" surname="McAllister" fullname="Pete McAllister"
&rfc8040; >
&rfc8174; <organization/>
&rfc8177; </author>
&rfc8294; <author initials="A" surname="Peter" fullname="Anish Peter">
&rfc8340; <organization/>
&rfc8341; </author>
&rfc8342; <author initials="M" surname="Sivakumar" fullname="Mahesh Sivakumar"
&rfc8343; >
&rfc8344; <organization/>
&rfc8349; </author>
&rfc8446; <author initials="Y" surname="Liu" fullname="Yisong Liu">
&rfc8519; <organization/>
</references> </author>
<author initials="F" surname="Hu" fullname="Fangwei Hu">
<references title='Informative References'> <organization/>
&rfc3688; </author>
&rfc7761; <date month="May" day="19" year="2018"/>
&rfc8407; </front>
&rfc8639; <seriesInfo name="Internet-Draft" value="draft-ietf-pim-yang-17"/>
&rfc8641; </reference>
&I-D.ietf-pim-yang; </references>
</references> </references>
<section anchor="data-tree-example" numbered="true" toc="default">
<section title="Data Tree Example"> <name>Data Tree Example</name>
<t>This section contains an example of an instance data tree in JSON <t>This appendix contains an example of an instance data tree in JSON
encoding <xref target="RFC7951"/>, containing configuration data.</t> encoding <xref target="RFC7951" format="default"/>, containing configuration
data.</t>
<section title="The global and peer configuration example"> <section numbered="true" toc="default">
<figure align="center"> <name>The Global and Peer Configuration Example</name>
<artwork align="center"><![CDATA[ <sourcecode type="json"><![CDATA[
{ {
"ietf-interfaces:interfaces": { "ietf-interfaces:interfaces": {
"interface": [ "interface": [
{ {
"name": "eth1", "name": "eth1",
"description": "An interface with MSDP enabled.", "description": "An interface with MSDP enabled.",
"type": "iana-if-type:ethernetCsmacd", "type": "iana-if-type:ethernetCsmacd",
"ietf-ip:ipv4": { "ietf-ip:ipv4": {
"forwarding": true, "forwarding": true,
"address": [ "address": [
skipping to change at line 1452 skipping to change at line 1442
"peer-addr": "198.51.100.8", "peer-addr": "198.51.100.8",
"prefix-policy": "msdp-default-peer-policy" "prefix-policy": "msdp-default-peer-policy"
} }
], ],
"originating-rp": { "originating-rp": {
"interface": "eth1" "interface": "eth1"
}, },
"sa-limit": 0, "sa-limit": 0,
"ttl-threshold": 1 "ttl-threshold": 1
}, },
"peers":{ "peers": {
"peer":[ "peer": [
{ {
"address": "198.51.100.8", "address": "198.51.100.8",
"enabled": true, "enabled": true,
"tcp-connection-source": "eth1", "tcp-connection-source": "eth1",
"description": "x", "description": "x",
"mesh-group": "x", "mesh-group": "x",
"peer-as": 100, "peer-as": 100,
"sa-limit": 0, "sa-limit": 0,
"timer":{ "timer": {
"connect-retry-interval": 0, "connect-retry-interval": 0,
"holdtime-interval": 3, "holdtime-interval": 3,
"keepalive-interval": 1 "keepalive-interval": 1
}, },
"ttl-threshold": 1 "ttl-threshold": 1
} }
] ]
} }
} }
} }
] ]
} }
} }
} }]]></sourcecode>
]]></artwork> </section>
<postamble></postamble> <section numbered="true" toc="default">
</figure> <name>The State Example</name>
</section> <sourcecode type="json"><![CDATA[
<section title="The state example">
<figure align="center">
<artwork align="center"><![CDATA[
{ {
"ietf-interfaces:interfaces": { "ietf-interfaces:interfaces": {
"interface": [ "interface": [
{ {
"name": "eth1", "name": "eth1",
"description": "An interface with MSDP enabled.", "description": "An interface with MSDP enabled.",
"type": "iana-if-type:ethernetCsmacd", "type": "iana-if-type:ethernetCsmacd",
"phys-address": "00:00:5e:00:53:01", "phys-address": "00:00:5e:00:53:01",
"oper-status": "up", "oper-status": "up",
"statistics": { "statistics": {
skipping to change at line 1536 skipping to change at line 1522
} }
] ]
}, },
"ietf-routing:routing": { "ietf-routing:routing": {
"router-id": "203.0.113.1", "router-id": "203.0.113.1",
"control-plane-protocols": { "control-plane-protocols": {
"control-plane-protocol": [ "control-plane-protocol": [
{ {
"type": "ietf-msdp:msdp", "type": "ietf-msdp:msdp",
"name": "msdp-1", "name": "msdp-1",
"ietf-msdp:msdp":{ "ietf-msdp:msdp": {
"global":{ "global": {
"tcp-connection-source": "eth1", "tcp-connection-source": "eth1",
"default-peer": [ "default-peer": [
{ {
"peer-addr": "198.51.100.8", "peer-addr": "198.51.100.8",
"prefix-policy": "msdp-default-peer-policy" "prefix-policy": "msdp-default-peer-policy"
} }
], ],
"originating-rp": { "originating-rp": {
"interface": "eth1" "interface": "eth1"
}, },
"sa-limit": 0, "sa-limit": 0,
"ttl-threshold": 1 "ttl-threshold": 1
}, },
"peers":{ "peers": {
"peer":[ "peer": [
{ {
"address": "198.51.100.8", "address": "198.51.100.8",
"enabled": true, "enabled": true,
"tcp-connection-source": "eth1", "tcp-connection-source": "eth1",
"description": "x", "description": "x",
"mesh-group": "x", "mesh-group": "x",
"peer-as": 100, "peer-as": 100,
"sa-limit": 0, "sa-limit": 0,
"timer":{ "timer": {
"connect-retry-interval": 0, "connect-retry-interval": 0,
"holdtime-interval": 3, "holdtime-interval": 3,
"keepalive-interval": 1 "keepalive-interval": 1
}, },
"ttl-threshold": 1, "ttl-threshold": 1,
"session-state": "established", "session-state": "established",
"elapsed-time": 5, "elapsed-time": 5,
"is-default-peer": true, "is-default-peer": true,
"keepalive-expire": 1, "keepalive-expire": 1,
"reset-count": 1, "reset-count": 1,
"statistics": { "statistics": {
"discontinuity-time": "2020-02-22T12:22:33+02:00" "discontinuity-time": "2020-02-22T12:22:33+02:00"
} }
} }
] ]
}, },
"sa-cache": { "sa-cache": {
"entry": [ "entry": [
{ {
"group": "233.252.0.23", "group": "233.252.0.23",
"source-addr": "198.51.100.8", "source-addr": "192.0.2.50",
"origin-rp": [ "origin-rp": [
{ {
"rp-address": "203.0.113.10", "rp-address": "203.0.113.10",
"is-local-rp": false, "is-local-rp": false,
"sa-adv-expire": 150 "sa-adv-expire": 50
} }
], ],
"state-attributes": { "state-attributes": {
"up-time": 20, "up-time": 1000,
"expire": 120, "expire": 120,
"holddown-interval": 150, "holddown-interval": 150,
"peer-learned-from": "203.0.113.10", "peer-learned-from": "198.51.100.8",
"rpf-peer": "203.0.113.10" "rpf-peer": "198.51.100.8"
} }
} }
] ]
} }
} }
} }
] ]
} }
} }
} }]]></sourcecode>
]]></artwork> </section>
<postamble></postamble> <section numbered="true" toc="default">
</figure> <name>The Actions Example</name>
</section> <t>This example shows the input data (in JSON) for executing an "sa&nbhy
;cache clear"
<section title="The actions example"> action to clear the cache of all entries that match the group address of 233.2
<t>This example shows the input data (in JSON) for executing an "sa-cache clea 52.0.23.</t>
r" <sourcecode type="json"><![CDATA[
action to clear the cache of all entries which match the group address of 233.
252.0.23.</t>
<figure align="center">
<artwork align="left"><![CDATA[
{ {
"ietf-msdp:sa-cache":{ "ietf-msdp:sa-cache": {
"input":{ "input": {
"entry":{ "entry": {
"group":"233.252.0.23" "group": "233.252.0.23"
} }
} }
} }
} }]]></sourcecode>
]]></artwork> </section>
<postamble></postamble> </section>
</figure> <section numbered="false" toc="default">
</section> <name>Acknowledgements</name>
<t>The authors would like to thank <contact fullname="Stig Venaas"/> and
</section> <contact fullname="Jake Holland"/> for their valuable comments and
suggestions.</t>
</section>
<section numbered="false" toc="default">
<name>Contributors</name>
<t>The authors would like to thank the following people
for their valuable contributions.</t>
</back> <contact fullname="Yisong Liu">
<organization></organization>
<address>
<postal>
<street/>
<city/>
<region/>
<code/>
<country/>
</postal>
<email>liuyisong@chinamobile.com</email>
</address>
</contact>
<contact fullname="Benchong Xu">
<organization></organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<country></country>
</postal>
<email>xu.benchong@zte.com.cn</email>
</address>
</contact>
<contact fullname="Tanmoy Kundu">
<organization></organization>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<country></country>
</postal>
<email>tanmoy.kundu@alcatel-lucent.com</email>
</address>
</contact>
</section>
</back>
</rfc> </rfc>
 End of changes. 184 change blocks. 
659 lines changed or deleted 687 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/