| 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 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/ | ||||