rfc9468xml2.original.xml | rfc9468.xml | |||
---|---|---|---|---|
<?xml version="1.0"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc [ | |||
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <!ENTITY nbsp " "> | |||
.2119.xml"> | <!ENTITY zwsp "​"> | |||
<!ENTITY RFC5082 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | <!ENTITY nbhy "‑"> | |||
.5082.xml"> | <!ENTITY wj "⁠"> | |||
<!ENTITY RFC5880 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5880.xml"> | ||||
<!ENTITY RFC5881 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5881.xml"> | ||||
<!ENTITY RFC5883 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.5883.xml"> | ||||
<!ENTITY RFC4271 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.4271.xml"> | ||||
<!ENTITY RFC7880 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.7880.xml"> | ||||
<!ENTITY RFC7911 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.7911.xml"> | ||||
<!ENTITY RFC7947 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.7947.xml"> | ||||
<!ENTITY RFC8446 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8446.xml"> | ||||
<!ENTITY RFC6241 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.6241.xml"> | ||||
<!ENTITY RFC6242 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.6242.xml"> | ||||
<!ENTITY RFC8341 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8341.xml"> | ||||
<!ENTITY RFC8040 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8040.xml"> | ||||
<!ENTITY RFC8174 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8174.xml"> | ||||
<!ENTITY RFC3688 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.3688.xml"> | ||||
<!ENTITY RFC6020 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.6020.xml"> | ||||
<!ENTITY RFC8340 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8340.xml"> | ||||
<!ENTITY RFC8342 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8342.xml"> | ||||
<!ENTITY RFC8349 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.8349.xml"> | ||||
<!ENTITY RFC9314 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC | ||||
.9314.xml"> | ||||
<!-- <!ENTITY RFC8174 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/referenc | ||||
e.RFC.9314.xml"> --> | ||||
]> | ]> | |||
<?rfc comments="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc inline="yes"?> | ||||
<?rfc sortrefs="yes"?> | ||||
<?rfc subcompact="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc toc="yes"?> | ||||
<?rfc tocdepth="3"?> | ||||
<?rfc tocindent="yes"?> | ||||
<?rfc tocompact="yes"?> | ||||
<rfc category="std" ipr="trust200902" docName="draft-ietf-bfd-unsolicited-16" su | ||||
bmissionType="IETF"> | ||||
<front> | ||||
<title>Unsolicited BFD for Sessionless Applications</title> | ||||
<author fullname="Enke Chen" initials="E." surname="Chen"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
<organization>Palo Alto Networks</organization> | -ietf-bfd-unsolicited-16" number="9468" submissionType="IETF" category="std" con | |||
<address> | sensus="true" obsoletes="" updates="" xml:lang="en" sortRefs="true" symRefs="tru | |||
<postal> | e" tocInclude="true" tocDepth="3" version="3"> | |||
<street></street> | ||||
<city></city> | ||||
<region></region> | ||||
<code></code> | ||||
<country></country> | ||||
</postal> | ||||
<email>enchen@paloaltonetworks.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Naiming Shen" initials="N." surname="Shen"> | <!-- xml2rfc v2v3 conversion 3.17.1 --> | |||
<organization>Zededa</organization> | <front> | |||
<address> | <title abbrev="Unsolicited BFD for Sessionless Applications">Unsolicited Bid | |||
<email>naiming@zededa.com</email> | irectional Forwarding Detection (BFD) for Sessionless Applications</title> | |||
</address> | <seriesInfo name="RFC" value="9468"/> | |||
</author> | <author fullname="Enke Chen" initials="E." surname="Chen"> | |||
<author fullname='Robert Raszuk' initials='R' surname='Raszuk'> | <organization>Palo Alto Networks</organization> | |||
<organization>Arrcus</organization> | <address> | |||
<address> | ||||
<postal> | <postal> | |||
<street>2077 Gateway Place</street> | <street>3000 Tannery Way</street> | |||
<city>San Jose</city> | <city>Santa Clara</city> | |||
<region>CA</region> | <region>CA</region> | |||
<code>95110</code> | <code>95054</code> | |||
<country>USA</country> | <country>United States of America</country> | |||
</postal> | ||||
<email>enchen@paloaltonetworks.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Naiming Shen" initials="N." surname="Shen"> | ||||
<organization>Zededa</organization> | ||||
<address> | ||||
<postal> | ||||
<street>160 W Santa Clara Street</street> | ||||
<city>San Jose</city> | ||||
<region>CA</region> | ||||
<code>95113</code> | ||||
<country>United States of America</country> | ||||
</postal> | ||||
<email>naiming@zededa.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Robert Raszuk" initials="R." surname="Raszuk"> | ||||
<organization>Arrcus</organization> | ||||
<address> | ||||
<postal> | ||||
<street>2077 Gateway Place</street> | ||||
<city>San Jose</city> | ||||
<region>CA</region> | ||||
<code>95110</code> | ||||
<country>United States of America</country> | ||||
</postal> | </postal> | |||
<email>robert@raszuk.net</email> | <email>robert@raszuk.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Reshad Rahman" initials="R." surname="Rahman"> | <author fullname="Reshad Rahman" initials="R." surname="Rahman"> | |||
<organization>Graphiant</organization> | <organization>Equinix</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city></city> | <city/> | |||
<region></region> | <region/> | |||
<code></code> | <code/> | |||
<country>Canada</country> | <country>Canada</country> | |||
</postal> | </postal> | |||
<email>reshad@yahoo.com</email> | <email>reshad@yahoo.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2023" /> | <date year="2023" month="August"/> | |||
<area>rtg</area> | ||||
<abstract> | <workgroup>bfd</workgroup> | |||
<t> | <abstract> | |||
<t> | ||||
For operational simplification of "sessionless" applications | For operational simplification of "sessionless" applications | |||
using Bidirectional Forwarding Detection (BFD), in this document we p resent procedures | using Bidirectional Forwarding Detection (BFD), in this document, we present procedures | |||
for "unsolicited BFD" that allow a BFD session to be initiated | for "unsolicited BFD" that allow a BFD session to be initiated | |||
by only one side, and established without explicit per-session | by only one side and established without explicit per-session | |||
configuration or registration by the other side (subject to certain | configuration or registration by the other side (subject to certain | |||
per-interface or global policies). | per-interface or global policies). | |||
</t> | </t> | |||
<t> | <t> | |||
We also introduce a new YANG module | We also introduce a new YANG module | |||
to configure and manage "unsolicited BFD". The YANG module in this d ocument | to configure and manage "unsolicited BFD". The YANG module in this d ocument | |||
is based on YANG 1.1 as defined in RFC 7950 and conforms to the Netw | is based on YANG 1.1, as defined in RFC 7950, and conforms to the Ne | |||
ork Management | twork Management | |||
Datastore Architecture (NMDA) as described in RFC 8342. This documen | Datastore Architecture (NMDA), as described in RFC 8342. This docume | |||
t augments RFC 9314. | nt augments RFC 9314. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | ||||
<note title="Requirements Language"> | <middle> | |||
<t> | <section anchor="intro" numbered="true" toc="default"> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <name>Introduction</name> | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | <t> | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> whe | ||||
n, and only when, they | ||||
appear in all capitals, as shown here. | ||||
</t> | ||||
</note> | ||||
</front> | ||||
<middle> | ||||
<section anchor="intro" title="Introduction"> | ||||
<t> | ||||
The current implementation and deployment practice for BFD | The current implementation and deployment practice for BFD | |||
(<xref target="RFC5880"/> and <xref target="RFC5881"/>) | (<xref target="RFC5880" format="default"/> and <xref target="RFC5881 | |||
usually requires BFD sessions be explicitly | " format="default"/>) | |||
usually requires that BFD sessions be explicitly | ||||
configured or registered on both sides. This requirement is | configured or registered on both sides. This requirement is | |||
not an issue when an application like BGP <xref target="RFC4271"/> | not an issue when an application like BGP <xref target="RFC4271" for mat="default"/> | |||
has the concept of a "session" that involves both sides for its | has the concept of a "session" that involves both sides for its | |||
establishment. | establishment. | |||
However, this requirement can be operationally challenging | However, this requirement can be operationally challenging | |||
when the prerequisite "session" does not | when the prerequisite "session" does not | |||
naturally exist between two endpoints in an application. | naturally exist between two endpoints in an application. | |||
Simultaneous configuration and coordination | Simultaneous configuration and coordination | |||
may be required on both sides for BFD to take effect. For example: | may be required on both sides for BFD to take effect. For example: | |||
</t> | </t> | |||
<ul spacing="normal"> | ||||
<t> | <li> | |||
<list style="symbols"> | When BFD is used to keep track of the "liveness" of the next hop | |||
<t> | ||||
When BFD is used to keep track of the "liveness" of the nexthop | ||||
of static routes. Although only one side may need the BFD | of static routes. Although only one side may need the BFD | |||
functionality, currently both sides need to be involved in | functionality, currently, both sides need to be involved in | |||
specific configuration and coordination and in some cases | specific configuration and coordination, and in some cases, | |||
static routes are created unnecessarily just for BFD. | static routes are created unnecessarily just for BFD. | |||
</t> | </li> | |||
<li> | ||||
<t> | ||||
When BFD is used to keep track of the "liveness" of the | When BFD is used to keep track of the "liveness" of the | |||
third-pary nexthop of BGP routes received from the Route Server | third-party next hop of BGP routes received from the Route Server | |||
<xref target="RFC7947"/> at an Internet Exchange Point (IXP). As t | <xref target="RFC7947" format="default"/> at an Internet Exchange P | |||
he | oint (IXP). As the | |||
third-party nexthop is different from the peering address of | third-party next hop is different from the peering address of | |||
the Route Server, for BFD to work, currently two routers peering | the Route Server, for BFD to work, currently, two routers peering | |||
with the Route Server need to have routes and nexthops from each | with the Route Server need to have routes and next hops from each | |||
other (although indirectly via the Route Server). | other (although indirectly via the Route Server). | |||
</t> | </li> | |||
</list> | </ul> | |||
</t> | <t> | |||
Clearly, it is beneficial and desirable to reduce or eliminate | ||||
<t> | ||||
Clearly it is beneficial and desirable to reduce or eliminate | ||||
unnecessary configurations and coordination in these | unnecessary configurations and coordination in these | |||
"sessionless" applications using BFD. | "sessionless" applications using BFD. | |||
</t> | </t> | |||
<t> | ||||
<t> | In this document, we present procedures | |||
In this document we present procedures | ||||
for "unsolicited BFD" that allow a BFD session to be initiated | for "unsolicited BFD" that allow a BFD session to be initiated | |||
by only one side, and established without explicit per-session | by only one side and established without explicit per-session | |||
configuration or registration by the other side (subject to certain | configuration or registration by the other side (subject to certain | |||
per-interface or global policies). | per-interface or global policies). | |||
</t> | </t> | |||
<t>Unsolicited BFD impacts only the initiation of BFD sessions. There is | <t>Unsolicited BFD impacts only the initiation of BFD sessions. There is n | |||
no change to all the other procedures specified in | o change to all the other procedures specified in | |||
<xref target="RFC5880"/> such as, but not limited to, the Echo functio | <xref target="RFC5880" format="default"/>, such as, but not limited to | |||
n and Demand mode.</t> | , the Echo function and Demand mode.</t> | |||
<t> | ||||
<t> | With "unsolicited BFD", there is potential risk for | |||
With "unsolicited BFD" there is potential risk for | ||||
excessive resource usage by BFD from "unexpected" remote systems. | excessive resource usage by BFD from "unexpected" remote systems. | |||
To mitigate such risks, | To mitigate such risks, | |||
several mechanisms are recommended in the Security Considerations | several mechanisms are recommended in the Security Considerations | |||
section. | section. | |||
</t> | </t> | |||
<t>The procedure described in this document could be applied to BFD | <t>The procedure described in this document could be applied to BFD for mu | |||
for Multihop paths <xref target="RFC5883"/>. | ltihop paths <xref target="RFC5883" format="default"/>. | |||
However, because of security risks, this document applies only to | However, because of security risks, this document applies only to | |||
BFD for single IP hops <xref target="RFC5881"/>.</t> | BFD for single IP hops <xref target="RFC5881" format="default"/>.</t> | |||
<t> | ||||
<t> | Compared to the "Seamless BFD" <xref target="RFC7880" format="default | |||
Compared to the "Seamless BFD" <xref target="RFC7880"/>, this proposa | "/>, this proposal involves | |||
l involves | ||||
only minor procedural enhancements to the widely deployed BFD itself. | only minor procedural enhancements to the widely deployed BFD itself. | |||
Thus, we believe that this proposal is inherently simpler in the | Thus, we believe that this proposal is inherently simpler in the | |||
protocol itself and deployment. | protocol itself and deployment. | |||
As an example, it does not require the exchange of BFD | As an example, it does not require the exchange of BFD | |||
discriminators over an out-of-band channel before BFD session bring-u p. | discriminators over an out-of-band channel before BFD session bring-u p. | |||
</t> | </t> | |||
<t> | ||||
<t> | When BGP ADD-PATH <xref target="RFC7911" format="default"/> is deploy | |||
When BGP Add-Path <xref target="RFC7911"/> is deployed at an IXP usin | ed at an IXP using a Route Server, | |||
g a Route Server, | ||||
multiple BGP paths (when they exist) can be made available to the cli ents of the | multiple BGP paths (when they exist) can be made available to the cli ents of the | |||
Route Server as described in <xref target="RFC7947"/>. | Route Server, as described in <xref target="RFC7947" format="default" | |||
Unsolicited BFD can be used by BGP route selection's Route Resolvabil | />. | |||
ity Condition | Unsolicited BFD can be used by BGP route selection's route resolvabil | |||
<xref target="RFC4271" section="9.1.2.1"/> to exclude routes where th | ity condition | |||
e NEXT_HOP is not | (<xref target="RFC4271" section="9.1.2.1" sectionFormat="of" format=" | |||
default"/>) to exclude routes where the NEXT_HOP is not | ||||
reachable using the procedures specified in this document. | reachable using the procedures specified in this document. | |||
</t> | </t> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>Requirements Language</name> | ||||
<section title="Procedures for Unsolicited BFD"> | <t> | |||
<t> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Procedures for Unsolicited BFD</name> | ||||
<t> | ||||
With "unsolicited BFD", one side takes the "Active role" | With "unsolicited BFD", one side takes the "Active role" | |||
and the other side takes only the "Passive role" as | and the other side takes the "Passive role", as | |||
described in <xref target="RFC5880"/>, section 6.1. | described in <xref target="RFC5880" section="6.1" sectionFormat="co | |||
</t> | mma" format="default"/>. | |||
</t> | ||||
<t> | <t> | |||
Passive unsolicited BFD support MUST be disabled by default, and | Passive unsolicited BFD support <bcp14>MUST</bcp14> be disabled by | |||
MUST require explicit configuration to be enabled. | default and | |||
On the passive side, the following BFD parameters, from <xref targ | <bcp14>MUST</bcp14> require explicit configuration to be enabled. | |||
et="RFC5880"/> section 6.8.1 SHOULD be configurable: | On the passive side, the following BFD parameters, from <xref targ | |||
<list style="symbols"> | et="RFC5880" section="6.8.1" sectionFormat="comma" format="default"/>, <bcp14>SH | |||
<t>bfd.DesiredMinTxInterval</t> | OULD</bcp14> be configurable: | |||
<t>bfd.RequiredMinRxInterval</t> | </t> | |||
<t>bfd.DetectMult</t> | <ul spacing="normal"> | |||
</list> | <li>bfd.DesiredMinTxInterval</li> | |||
The passive side MAY also choose to use the values of the paramete | <li>bfd.RequiredMinRxInterval</li> | |||
rs above that | <li>bfd.DetectMult</li> | |||
the active side uses in its BFD Control packets. However, the bfd.L | </ul> | |||
ocalDiscr value MUST be selected by the passive side | <t> | |||
The passive side <bcp14>MAY</bcp14> also choose to use the values | ||||
of the parameters listed above that | ||||
the active side uses in its BFD Control packets. However, the bfd.L | ||||
ocalDiscr value <bcp14>MUST</bcp14> be selected by the passive side | ||||
to allow multiple unsolicited BFD sessions. | to allow multiple unsolicited BFD sessions. | |||
</t> | </t> | |||
<t> | ||||
<t> | The active side starts sending the BFD Control packets, as specifi | |||
The active side starts sending the BFD Control packets as specifie | ed in | |||
d in | <xref target="RFC5880" format="default"/>. The passive side does not se | |||
<xref target="RFC5880"/>. The passive side does not send BFD Control pa | nd BFD Control packets initially; | |||
ckets initially, | ||||
it sends BFD Control packets only after it has received BFD Control pac kets from the active side. | it sends BFD Control packets only after it has received BFD Control pac kets from the active side. | |||
</t> | </t> | |||
<t> | ||||
<t> | ||||
When the passive side receives a BFD Control packet from the activ e side | When the passive side receives a BFD Control packet from the activ e side | |||
with 0 as "Your Discriminator" and does not find an existing BFD sessio n, | with 0 as "Your Discriminator" and does not find an existing BFD sessio n, | |||
the passive side SHOULD create a matching BFD session toward the active side, | the passive side <bcp14>SHOULD</bcp14> create a matching BFD session to ward the active side, | |||
unless not permitted by local configuration or policy.</t> | unless not permitted by local configuration or policy.</t> | |||
<t> | <t> | |||
When the passive side receives an incoming BFD Control packet on a numbered interface, | When the passive side receives an incoming BFD Control packet on a numbered interface, | |||
the source address of that packet MUST belong to the subnet of the | the source address of that packet <bcp14>MUST</bcp14> belong to the | |||
interface on which the BFD | subnet of the interface on which the BFD | |||
packet is received, else the BFD control packet MUST NOT be process | packet is received, else the BFD Control packet <bcp14>MUST NOT</bc | |||
ed.</t> | p14> be processed.</t> | |||
<t> | ||||
<t> | The passive side <bcp14>MUST</bcp14> then start sending BFD Control pac | |||
The passive side MUST then start sending BFD Control packets and perfor | kets and perform the necessary | |||
m the necessary | procedure for bringing up, maintaining, and tearing down the BFD sessio | |||
procedure for bringing up, maintaining and tearing down the BFD session | n. | |||
. | ||||
If the BFD session fails to get established within a certain amount of time | If the BFD session fails to get established within a certain amount of time | |||
(which is implementation specific but has to be at least equal to the l | (which is implementation specific but has to be at least equal to the l | |||
ocal failure detection time), | ocal failure detection time) | |||
or if an established BFD session goes down, the passive side MUST stop | or if an established BFD session goes down, the passive side <bcp14>MUS | |||
sending BFD Control packets and SHOULD delete the BFD session created u | T</bcp14> stop | |||
ntil | sending BFD Control packets and <bcp14>SHOULD</bcp14> delete the BFD se | |||
ssion created until | ||||
BFD Control packets are initiated by the active side again. | BFD Control packets are initiated by the active side again. | |||
</t> | </t> | |||
<t> | ||||
<t> | When an unsolicited BFD session goes down, an implementation may retain | |||
When an Unsolicited BFD session goes down, an implementation may retain | ||||
the session state for a period of time. | the session state for a period of time. | |||
Retaining this state can be useful for operational purposes. | Retaining this state can be useful for operational purposes. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="State Variables"> | <name>State Variables</name> | |||
<t> | ||||
<t> | This document defines a new state variable called Role: | |||
This document defines a new state variable called Role. | </t> | |||
</t> | <t> | |||
<t> | ||||
bfd.Role | bfd.Role | |||
</t> | </t> | |||
<t> | <t> | |||
The role of the local system during BFD session initialization, as per <xr | This is the role of the local system during BFD session initialization, as | |||
ef target="RFC5880"/>, section 6.1. | per <xref target="RFC5880" section="6.1" sectionFormat="comma" format="default" | |||
/>. | ||||
Possible values are Active or Passive. | Possible values are Active or Passive. | |||
</t> | </t> | |||
</section> | ||||
</section> | <section numbered="true" toc="default"> | |||
<name>YANG Data Model</name> | ||||
<section title="YANG Data Model"> | <t> | |||
<t> | This section extends the YANG data model for BFD <xref target="RFC93 | |||
This section extends the YANG data model for BFD <xref target="RFC93 | 14" format="default"/> | |||
14"/> | to cover unsolicited BFD. | |||
to cover unsolicited BFD. The new module imports <xref target="RFC834 | The new module imports the YANG modules described in <xref target= | |||
9"/> since the "bfd" | "RFC8349" format="default"/> | |||
container in <xref target="RFC9314"/> is under "control-plane-protoc | since the "bfd" container in <xref target="RFC9314" format="default"/> is unde | |||
ol". | r | |||
"control-plane-protocol". | ||||
The YANG module in this document conforms to the Network Management | The YANG module in this document conforms to the Network Management | |||
Datastore Architecture (NMDA) <xref target="RFC8342"/>. | Datastore Architecture (NMDA) <xref target="RFC8342" format="default | |||
</t> | "/>. | |||
</t> | ||||
<section title="Unsolicited BFD Hierarchy"> | <section numbered="true" toc="default"> | |||
<t>Configuration for unsolicited BFD parameters for IP single-hop se | <name>Unsolicited BFD Hierarchy</name> | |||
ssions can be done at 2 levels: | <t>Configuration for unsolicited BFD parameters for IP single-hop sessio | |||
<list style="symbols"> | ns can be done at 2 levels: | |||
<t>Globally, i.e. for all interfaces.</t> | </t> | |||
<t>For specific interfaces. This requires support for the "unsolicit | <ul spacing="normal"> | |||
ed-params-per-interface" feature.</t> | <li>globally, i.e., for all interfaces</li> | |||
</list> | <li>for specific interfaces (this requires support for the "unsolicite | |||
d-params-per-interface" feature)</li> | ||||
</ul> | ||||
<t> | ||||
If configuration exists at both levels, per-interface configuration takes precedence over global configuration. | If configuration exists at both levels, per-interface configuration takes precedence over global configuration. | |||
</t> | </t> | |||
<t>For operational data, a new "role" leaf node has been added for B | <t>For operational data, a new "role" leaf node has been added for BFD I | |||
FD IP single-hop sessions.</t> | P single-hop sessions.</t> | |||
<t>The tree diagram below uses the graphical representation of data | <t>The tree diagram below uses the graphical representation of data mode | |||
models, as defined in <xref target="RFC8340"/>.</t> | ls, as defined in <xref target="RFC8340" format="default"/>.</t> | |||
<figure align="left"> | <t keepWithNext="true"/> | |||
<preamble/> | <sourcecode type="yangtree"><![CDATA[ | |||
<artwork align="left"><![CDATA[ | ||||
module: ietf-bfd-unsolicited | module: ietf-bfd-unsolicited | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh: | /rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh: | |||
+--rw unsolicited? | +--rw unsolicited? | |||
+--rw local-multiplier? multiplier | +--rw local-multiplier? multiplier | |||
+--rw (interval-config-type)? | +--rw (interval-config-type)? | |||
+--:(tx-rx-intervals) | +--:(tx-rx-intervals) | |||
| +--rw desired-min-tx-interval? uint32 | | +--rw desired-min-tx-interval? uint32 | |||
| +--rw required-min-rx-interval? uint32 | | +--rw required-min-rx-interval? uint32 | |||
+--:(single-interval) {single-minimum-interval}? | +--:(single-interval) {single-minimum-interval}? | |||
+--rw min-interval? uint32 | +--rw min-interval? uint32 | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | /rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | |||
/bfd-ip-sh:interfaces: | /bfd-ip-sh:interfaces: | |||
+--rw unsolicited | +--rw unsolicited | |||
+--rw enabled? boolean | +--rw enabled? boolean | |||
+--rw local-multiplier? bfd-types:multiplier {bfd-unsol:u | +--rw local-multiplier? | |||
nsolicited-params-per-interface}? | bfd-types:multiplier | |||
+--rw (interval-config-type)? {bfd-unsol:unsolicited-params-per-interface | {bfd-unsol:unsolicited-params-per-interface}? | |||
}? | +--rw (interval-config-type)? | |||
{bfd-unsol:unsolicited-params-per-interface}? | ||||
+--:(tx-rx-intervals) | +--:(tx-rx-intervals) | |||
| +--rw desired-min-tx-interval? uint32 | | +--rw desired-min-tx-interval? uint32 | |||
| +--rw required-min-rx-interval? uint32 | | +--rw required-min-rx-interval? uint32 | |||
+--:(single-interval) {bfd-types:single-minimum-interval}? | +--:(single-interval) {bfd-types:single-minimum-interval}? | |||
+--rw min-interval? uint32 | +--rw min-interval? uint32 | |||
augment /rt:routing/rt:control-plane-protocols | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | /rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | |||
/bfd-ip-sh:sessions/bfd-ip-sh:session: | /bfd-ip-sh:sessions/bfd-ip-sh:session: | |||
+--ro role? bfd-unsol:role | +--ro role? bfd-unsol:role | |||
]]></sourcecode> | ||||
]]></artwork> | </section> | |||
</figure> | <section numbered="true" toc="default"> | |||
</section> | <name>Unsolicited BFD Module</name> | |||
<t keepWithNext="true"/> | ||||
<section title="Unsolicited BFD Module"> | <sourcecode name="ietf-bfd-unsolicited@2023-08-16.yang" type="yang" mark | |||
<figure align="left"> | ers="true"><![CDATA[ | |||
<preamble/> | ||||
<artwork align="left"><![CDATA[ | ||||
<CODE BEGINS> file "ietf-bfd-unsolicited@2023-04-22.yang" | ||||
module ietf-bfd-unsolicited { | module ietf-bfd-unsolicited { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited"; | namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited"; | |||
prefix "bfd-unsol"; | prefix bfd-unsol; | |||
// RFC Ed.: replace occurences of YYYY with actual RFC numbers | ||||
// and remove this note | ||||
import ietf-bfd-types { | import ietf-bfd-types { | |||
prefix "bfd-types"; | prefix bfd-types; | |||
reference | reference | |||
"RFC 9314: YANG Data Model for Bidirectional Forwarding | "RFC 9314: YANG Data Model for Bidirectional Forwarding | |||
Detection (BFD)"; | Detection (BFD)"; | |||
} | } | |||
import ietf-bfd { | import ietf-bfd { | |||
prefix "bfd"; | prefix bfd; | |||
reference | reference | |||
"RFC 9314: YANG Data Model for Bidirectional Forwarding | "RFC 9314: YANG Data Model for Bidirectional Forwarding | |||
Detection (BFD)"; | Detection (BFD)"; | |||
} | } | |||
import ietf-bfd-ip-sh { | import ietf-bfd-ip-sh { | |||
prefix "bfd-ip-sh"; | prefix bfd-ip-sh; | |||
reference | reference | |||
"RFC 9314: YANG Data Model for Bidirectional Forwarding | "RFC 9314: YANG Data Model for Bidirectional Forwarding | |||
Detection (BFD)"; | Detection (BFD)"; | |||
} | } | |||
import ietf-routing { | import ietf-routing { | |||
prefix "rt"; | prefix rt; | |||
reference | reference | |||
"RFC 8349: A YANG Data Model for Routing Management | "RFC 8349: A YANG Data Model for Routing Management | |||
(NMDA version)"; | (NMDA Version)"; | |||
} | } | |||
organization "IETF BFD Working Group"; | organization | |||
"IETF BFD Working Group"; | ||||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/bfd/> | "WG Web: <https://datatracker.ietf.org/wg/bfd/> | |||
WG List: <rtg-bfd@ietf.org> | WG List: <rtg-bfd@ietf.org> | |||
Editors: Enke Chen (enchen@paloaltonetworks.com), | Editors: Enke Chen (enchen@paloaltonetworks.com), | |||
Naiming Shen (naiming@zededa.com), | Naiming Shen (naiming@zededa.com), | |||
Robert Raszuk (robert@raszuk.net), | Robert Raszuk (robert@raszuk.net), | |||
Reshad Rahman (reshad@yahoo.com)"; | Reshad Rahman (reshad@yahoo.com)"; | |||
description | description | |||
"This module contains the YANG definition for BFD unsolicited | "This module contains the YANG definition for unsolicited BFD, | |||
as per RFC YYYY. | as per RFC 9468. | |||
Copyright (c) 2023 IETF Trust and the persons | Copyright (c) 2023 IETF Trust and the persons | |||
identified as authors of the code. All rights reserved. | identified as 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 the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC YYYY; see | This version of this YANG module is part of RFC 9468; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
reference "RFC YYYY"; | reference | |||
"RFC 9468: Unsolicited Bidirectional Forwarding Detection | ||||
(BFD) for Sessionless Applications"; | ||||
revision 2023-04-22 { | revision 2023-08-16 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC YYYY: Unsolicited BFD for Sessionless Applications."; | "RFC 9468: Unsolicited Bidirectional Forwarding Detection (BFD) | |||
for Sessionless Applications"; | ||||
} | } | |||
/* | /* | |||
* Feature definitions | * Feature definitions | |||
*/ | */ | |||
feature unsolicited-params-per-interface { | feature unsolicited-params-per-interface { | |||
description | description | |||
"This feature indicates that the server supports per-interface | "This feature indicates that the server supports per-interface | |||
parameters for unsolicited sessions."; | parameters for unsolicited sessions."; | |||
reference | reference | |||
"RFC YYYY: Unsolicited BFD for Sessionless Applications."; | "RFC 9468: Unsolicited Bidirectional Forwarding Detection (BFD) | |||
for Sessionless Applications"; | ||||
} | } | |||
/* | /* | |||
* Type Definitions | * Type Definitions | |||
*/ | */ | |||
identity role { | identity role { | |||
description | description | |||
"Base identity from which all roles are derived. | "Base identity from which all roles are derived. | |||
Role of local system during BFD session initialization."; | Role of local system during BFD session initialization."; | |||
} | } | |||
identity active { | identity active { | |||
base "bfd-unsol:role"; | base bfd-unsol:role; | |||
description "Active role"; | description | |||
"Active role."; | ||||
reference | reference | |||
"RFC5880: Bidirectional Forwarding Detection (BFD), | "RFC 5880: Bidirectional Forwarding Detection (BFD), | |||
Section 6.1"; | Section 6.1"; | |||
} | } | |||
identity passive { | identity passive { | |||
base "bfd-unsol:role"; | base bfd-unsol:role; | |||
description "Passive role"; | description | |||
"Passive role."; | ||||
reference | reference | |||
"RFC5880: Bidirectional Forwarding Detection (BFD), | "RFC 5880: Bidirectional Forwarding Detection (BFD), | |||
Section 6.1"; | Section 6.1"; | |||
} | } | |||
/* | /* | |||
* Augments | * Augments | |||
*/ | */ | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh" { | ||||
description | ||||
"Augmentation for BFD unsolicited parameters"; | ||||
container unsolicited { | ||||
description | ||||
"BFD IP single-hop unsolicited top level container"; | ||||
uses bfd-types:base-cfg-parms; | ||||
} | ||||
} | ||||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" | + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh" { | |||
+ "bfd-ip-sh:interfaces" { | description | |||
description | "Augmentation for unsolicited BFD parameters."; | |||
"Augmentation for BFD unsolicited on IP single-hop interface"; | container unsolicited { | |||
container unsolicited { | description | |||
description | "BFD IP single-hop unsolicited top-level container."; | |||
"BFD IP single-hop interface unsolicited top level | uses bfd-types:base-cfg-parms; | |||
container"; | } | |||
leaf enabled { | } | |||
type boolean; | ||||
default false; | ||||
description | ||||
"BFD unsolicited enabled on this interface."; | ||||
} | ||||
/* | ||||
* The following is the same as bfd-types:base-cfg-parms, but | ||||
* without default values (for inheritance) | ||||
*/ | ||||
leaf local-multiplier { | ||||
if-feature bfd-unsol:unsolicited-params-per-interface; | ||||
type bfd-types:multiplier; | ||||
description | ||||
"Multiplier transmitted by the local system. Defaults to | ||||
../../unsolicited/local-multiplier. | ||||
A multiplier configured under an interface takes precedence | ||||
over the mulitiplier configured at the global level."; | ||||
} | ||||
choice interval-config-type { | augment "/rt:routing/rt:control-plane-protocols/" | |||
if-feature bfd-unsol:unsolicited-params-per-interface; | + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" | |||
description | + "bfd-ip-sh:interfaces" { | |||
"Two interval values or one value used for both transmit and | description | |||
receive. Defaults to ../../unsolicited/interval-config-type. | "Augmentation for unsolicited BFD on IP single-hop | |||
An interval configured under an interface takes precedence | interface."; | |||
over any interval configured at the global level."; | container unsolicited { | |||
case tx-rx-intervals { | description | |||
leaf desired-min-tx-interval { | "BFD IP single-hop interface unsolicited top-level | |||
type uint32; | container."; | |||
units "microseconds"; | leaf enabled { | |||
description | type boolean; | |||
"Desired minimum transmit interval of control packets."; | default "false"; | |||
} | description | |||
leaf required-min-rx-interval { | "Unsolicited BFD is enabled on this interface."; | |||
type uint32; | } | |||
units "microseconds"; | /* | |||
description | * The following is the same as bfd-types:base-cfg-parms, but | |||
"Required minimum receive interval of control packets."; | * without default values (for inheritance) | |||
} | */ | |||
} | leaf local-multiplier { | |||
case single-interval { | if-feature "bfd-unsol:unsolicited-params-per-interface"; | |||
if-feature "bfd-types:single-minimum-interval"; | type bfd-types:multiplier; | |||
leaf min-interval { | description | |||
type uint32; | "Multiplier transmitted by the local system. Defaults to | |||
units "microseconds"; | ../../unsolicited/local-multiplier. | |||
description | A multiplier configured under an interface takes | |||
"Desired minimum transmit interval and required | precedence over the multiplier configured at the global | |||
minimum receive interval of control packets."; | level."; | |||
} | } | |||
} | choice interval-config-type { | |||
} | if-feature "bfd-unsol:unsolicited-params-per-interface"; | |||
} | description | |||
} | "Two interval values or one value used for both transmit | |||
and receive. Defaults to | ||||
../../unsolicited/interval-config-type. An interval | ||||
configured under an interface takes precedence over any | ||||
interval configured at the global level."; | ||||
case tx-rx-intervals { | ||||
leaf desired-min-tx-interval { | ||||
type uint32; | ||||
units "microseconds"; | ||||
description | ||||
"Desired minimum transmit interval of control | ||||
packets."; | ||||
} | ||||
leaf required-min-rx-interval { | ||||
type uint32; | ||||
units "microseconds"; | ||||
description | ||||
"Required minimum receive interval of control | ||||
packets."; | ||||
} | ||||
} | ||||
case single-interval { | ||||
if-feature "bfd-types:single-minimum-interval"; | ||||
leaf min-interval { | ||||
type uint32; | ||||
units "microseconds"; | ||||
description | ||||
"Desired minimum transmit interval and required | ||||
minimum receive interval of control packets."; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
} | ||||
augment "/rt:routing/rt:control-plane-protocols/" | augment "/rt:routing/rt:control-plane-protocols/" | |||
+ "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" | + "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" | |||
+ "bfd-ip-sh:sessions/bfd-ip-sh:session" { | + "bfd-ip-sh:sessions/bfd-ip-sh:session" { | |||
description | description | |||
"Augmentation for BFD unsolicited on IP single-hop session"; | "Augmentation for unsolicited BFD on IP single-hop session."; | |||
leaf role { | leaf role { | |||
type identityref { | type identityref { | |||
base "bfd-unsol:role"; | base bfd-unsol:role; | |||
} | ||||
config false; | ||||
description "Role."; | ||||
} | } | |||
config false; | ||||
description | ||||
"Role."; | ||||
} | ||||
} | } | |||
} | } | |||
<CODE ENDS> | ]]></sourcecode> | |||
]]></artwork> | </section> | |||
</figure> | <section numbered="true" toc="default"> | |||
</section> | <name>Data Model Example</name> | |||
<section title="Data Model Example"> | <t>This section shows an example on how to configure the passive end of | |||
<t>This section shows an example on how to configure the passive end of unsoli | unsolicited BFD: | |||
cited BFD: | </t> | |||
<list style="symbols"> | <ul spacing="normal"> | |||
<t>We have global BFD IP single-hop unsolicited configuration with a loca | <li>We have global BFD IP single-hop unsolicited configuration with a | |||
l-multiplier of 2 and min-interval at 50ms</t> | local-multiplier of 2 and min-interval at 50 ms.</li> | |||
<t>BFD IP single-hop unsolicited is enabled on interface eth0, with a loc | <li>BFD IP single-hop unsolicited is enabled on interface eth0 with a | |||
al-multiplier of 3 and min-interval at 250 ms</t> | local-multiplier of 3 and min-interval at 250 ms.</li> | |||
<t>BFD IP single-hop unsolicited is enabled on interface eth1. Since ther | <li>BFD IP single-hop unsolicited is enabled on interface eth1. Since | |||
e is no parameter configuration for eth1, it inherits from the global configurat | there is no parameter configuration for eth1, it inherits from the global config | |||
ion.</t> | uration.</li> | |||
</list> | </ul> | |||
</t> | <t keepWithNext="true"/> | |||
<figure align="left"> | <sourcecode type="xml"><![CDATA[ | |||
<preamble/> | ||||
<artwork align="left"><![CDATA[ | ||||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
<interface> | <interface> | |||
<name>eth0</name> | <name>eth0</name> | |||
<type | <type | |||
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:etherne | xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
tCsmacd</type> | ianaift:ethernetCsmacd</type> | |||
</interface> | </interface> | |||
<interface> | <interface> | |||
<name>eth1</name> | <name>eth1</name> | |||
<type | <type | |||
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:etherne | xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
tCsmacd</type> | ianaift:ethernetCsmacd</type> | |||
</interface> | </interface> | |||
</interfaces> | </interfaces> | |||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
<control-plane-protocols> | <control-plane-protocols> | |||
<control-plane-protocol> | <control-plane-protocol> | |||
<type | <type xmlns:bfd-types= | |||
xmlns:bfd-types="urn:ietf:params:xml:ns:yang:ietf-bfd-types">bfd-types | "urn:ietf:params:xml:ns:yang:ietf-bfd-types"> | |||
:bfdv1</type> | bfd-types:bfdv1</type> | |||
<name>name:BFD</name> | <name>name:BFD</name> | |||
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd"> | <bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd"> | |||
<ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | <ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | |||
<unsolicited> | <unsolicited> | |||
<local-multiplier>2</local-multiplier> | <local-multiplier>2</local-multiplier> | |||
<min-interval>50000</min-interval> | <min-interval>50000</min-interval> | |||
</unsolicited> | </unsolicited> | |||
<interfaces> | <interfaces> | |||
<interface>eth0</interface> | <interface>eth0</interface> | |||
<unsolicited> | <unsolicited> | |||
skipping to change at line 599 ¶ | skipping to change at line 576 ¶ | |||
<unsolicited> | <unsolicited> | |||
<enabled>true</enabled> | <enabled>true</enabled> | |||
</unsolicited> | </unsolicited> | |||
</interfaces> | </interfaces> | |||
</ip-sh> | </ip-sh> | |||
</bfd> | </bfd> | |||
</control-plane-protocol> | </control-plane-protocol> | |||
</control-plane-protocols> | </control-plane-protocols> | |||
</routing> | </routing> | |||
</config> | </config> | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>IANA Considerations</name> | |||
<t> | ||||
<section title="IANA Considerations"> | IANA has registered the following namespace URI in the "ns" subregis | |||
<t> | try within the "IETF XML Registry" <xref target="RFC3688" format="default"/>: | |||
This document registers the following namespace URI in the "IETF XML | </t> | |||
Registry" <xref target="RFC3688"/>: | <dl newline="false" spacing="compact"> | |||
</t> | <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited</dd> | |||
<t>URI: urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited</t> | <dt>Registrant Contact:</dt> <dd>The IESG.</dd> | |||
<t>Registrant Contact: The IESG.</t> | <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | |||
<t>XML: N/A; the requested URI is an XML namespace.</t> | </dl> | |||
<t> | <t> | |||
This document registers the following YANG module in the "YANG Modul | IANA has registered the following YANG module in the "YANG Module Na | |||
e Names" registry <xref target="RFC6020"/>: | mes" registry <xref target="RFC6020" format="default"/>: | |||
</t> | </t> | |||
<t>Name: ietf-bfd-unsolicited</t> | <dl newline="false" spacing="compact"> | |||
<t>Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited</t> | <dt>Name:</dt> <dd>ietf-bfd-unsolicited</dd> | |||
<t>Prefix: bfd-unsol</t> | <dt>Maintained by IANA:</dt><dd>N</dd> | |||
<t>Reference: RFC YYYY</t> | <dt>Namespace:</dt> <dd>urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited< | |||
</section> | /dd> | |||
<dt>Prefix:</dt> <dd>bfd-unsol</dd> | ||||
<section title="Acknowledgments"> | <dt>Reference:</dt> <dd>RFC 9468</dd> | |||
</dl> | ||||
<t>Authors would like to thank Acee Lindem, Alvaro Retana, Dan Romascanu, | </section> | |||
Derek Atkins, Greg Mirsky, Gyan Mishra, Henning Rogge, Jeffrey Haas, | <section numbered="true" toc="default"> | |||
John Scudder, Lars Eggert, Magnus Westerlund, Mahesh Jethanandani, Murray | <name>Security Considerations</name> | |||
Kucherawy, Raj Chetan, Robert Wilton, Roman Danyliw, Tom Petch, | <section anchor="BFD-Security" numbered="true" toc="default"> | |||
and Zaheduzzaman Sarker for their review and valuable input.</t> | <name>BFD Protocol Security Considerations</name> | |||
<t> | ||||
</section> | ||||
<section title="Security Considerations"> | ||||
<section anchor="BFD-Security" title="BFD Protocol Security Considerat | ||||
ions"> | ||||
<t> | ||||
The same security considerations and protection measures as those des cribed | The same security considerations and protection measures as those des cribed | |||
in <xref target="RFC5880"/> and <xref target="RFC5881"/> apply | in <xref target="RFC5880" format="default"/> and <xref target="RFC5881" fo rmat="default"/> apply | |||
to this document. | to this document. | |||
In addition, with "unsolicited BFD" there is potential risk for exces | In addition, with "unsolicited BFD", there is potential risk for exce | |||
sive resource usage | ssive resource usage | |||
by BFD from "unexpected" remote systems. To mitigate such risks, implement | by BFD from "unexpected" remote systems. To mitigate such risks, implement | |||
ations of unsolicited BFD MUST: | ations of unsolicited BFD <bcp14>MUST</bcp14>: | |||
</t> | </t> | |||
<ul spacing="normal"> | ||||
<t> | <li> | |||
<list style="symbols"> | Limit the feature to specific interfaces and to single-hop BFD sessions usi | |||
<t> | ng the procedures from | |||
Limit the feature to specific interfaces, and to single-hop BFD sessions us | <xref target="RFC5082" format="default"/>. See <xref target="RFC5881" sect | |||
ing the procedures from | ion="5" format="default"/> for the details of these procedures. | |||
<xref target="RFC5082"/>. See <xref target="RFC5881" section="5"/> for the | </li> | |||
details of these procedures. | <li> | |||
</t> | ||||
<t> | ||||
Apply policy to process BFD packets only from certain subnets or hosts. | Apply policy to process BFD packets only from certain subnets or hosts. | |||
</t> | </li> | |||
<t> | <li> | |||
Deploy the feature only in an environment that does not | Deploy the feature only in an environment that does not | |||
offer anonymous participation. Examples include an IXP, | offer anonymous participation. Examples include an IXP, | |||
where the IXP operator will have a business relationship with | where the IXP operator will have a business relationship with | |||
all IXP participants, or between a provider and its customers. | all IXP participants, or between a provider and its customers. | |||
</t> | </li> | |||
</list> | </ul> | |||
</t> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<section title="BFD Protocol Authentication Considerations"> | <name>BFD Protocol Authentication Considerations</name> | |||
<t> | <t> | |||
Implementations of unsolicited BFD are RECOMMENDED to | Implementations of unsolicited BFD are <bcp14>RECOMMENDED</bcp14> to | |||
use BFD authentication; see <xref target="RFC5880"/>. | use BFD authentication; see <xref target="RFC5880" format="default"/>. | |||
If BFD authentication is used, the strongest BFD authentication mechanism t | If BFD authentication is used, the strongest BFD authentication mechanism t | |||
hat is supported MUST be used. | hat is supported <bcp14>MUST</bcp14> be used. | |||
</t> | </t> | |||
<t> | <t> | |||
In some environments, such as an Internet Exchange Points (IXPs), BFD authe | In some environments, such as IXPs, BFD authentication cannot be used becau | |||
ntication cannot be used because of the lack of coordination for the operation o | se of the lack of coordination for the operation of the two endpoints of the BFD | |||
f the two endpoints of the BFD session. | session. | |||
</t> | </t> | |||
<t> | <t> | |||
In other environments, such as when BFD is used to track the next hop of st | In other environments, such as when BFD is used to track the next hop of st | |||
atic routes, it is possible to use BFD authentication. This comes with the extra | atic routes, it is possible to use BFD authentication. This comes with the extra | |||
cost of configuring matching keychains between the two endpoints. | cost of configuring matching key chains between the two endpoints. | |||
</t> | </t> | |||
</section> | </section> | |||
<section title="YANG Module Security Considerations"> | ||||
<t>The YANG module specified in this document defines a schema for data | <!--[rfced] *[AD] We note that the fifth paragraph of the YANG | |||
Security Considerations boilerplate at | ||||
<https://wiki.ietf.org/group/ops/yang-security-guidelines> is not | ||||
included. Please review and confirm that this paragraph is not | ||||
necessary. | ||||
--> | ||||
<section numbered="true" toc="default"> | ||||
<name>YANG Module Security Considerations</name> | ||||
<!-- DNE begins --> | ||||
<t>The YANG module specified in this document defines a schema for data | ||||
that is designed to be accessed via network management protocols such as | that is designed to be accessed via network management protocols such as | |||
NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. | 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 | mandatory-to-implement secure transport is Secure Shell (SSH) <xref target | |||
target="RFC6242"/>. The lowest RESTCONF layer is HTTPS, and the | ="RFC6242" format="default"/>. The lowest RESTCONF layer is HTTPS, and the | |||
mandatory-to-implement secure transport is TLS <xref | mandatory-to-implement secure transport is TLS <xref target="RFC8446" form | |||
target="RFC8446"/>.</t> | at="default"/>.</t> | |||
<t>The Network Configuration Access Control Mode (NACM) <xref target="RF | ||||
<t>The NETCONF access control model <xref target="RFC8341"/> provides | C8341" format="default"/> provides | |||
the means to restrict access for particular NETCONF or RESTCONF users to | the means to restrict access for particular NETCONF or RESTCONF users to | |||
a preconfigured subset of all available NETCONF or RESTCONF protocol | a preconfigured subset of all available NETCONF or RESTCONF protocol | |||
operations and content.</t> | operations and content.</t> | |||
<t>There are a number of data nodes defined in this YANG module that are | ||||
<t>There are a number of data nodes defined in this YANG module that are | ||||
writable/creatable/deletable (i.e., config true, which is the default). | writable/creatable/deletable (i.e., config true, which is the default). | |||
These data nodes may be considered sensitive or vulnerable in some | These data nodes may be considered sensitive or vulnerable in some | |||
network environments. Write operations (e.g., edit-config) to these data | network environments. Write operations (e.g., edit-config) to these data | |||
nodes without proper protection can have a negative effect on network | nodes without proper protection can have a negative effect on network | |||
operations. These are the subtrees and data nodes and their | operations. These are the subtrees and data nodes and their | |||
sensitivity/vulnerability:</t> | sensitivity/vulnerability:</t> | |||
<!-- DNE ends --> | ||||
<t>/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | <dl newline="true" spacing="normal"> | |||
<dt>/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | ||||
/unsolicited: | /unsolicited: | |||
<list style="symbols"> | </dt> | |||
<t>data node "enabled" enables creation of unsolicited BFD IP single-hop s | <dd> | |||
essions globally, i.e. on all interfaces. | <ul spacing="normal"> | |||
See <xref target="BFD-Security"/>.</t> | <li>Data node "enabled" enables creation of unsolicited BFD IP single- | |||
<t>data nodes local-multiplier, desired-min-tx-interval, | hop sessions globally, i.e., on all interfaces. | |||
required-min-rx-interval and min-interval all impact the parameters of the | See <xref target="BFD-Security" format="default"/>.</li> | |||
unsolicited | <li>Data nodes "local-multiplier", "desired-min-tx-interval", | |||
"required-min-rx-interval", and "min-interval" all impact the parameters o | ||||
f the unsolicited | ||||
BFD IP single-hop sessions. Write operations to these nodes change the | BFD IP single-hop sessions. Write operations to these nodes change the | |||
rates of BFD packet generation and detection time of the failures of a | rates of BFD packet generation and detection time of the failures of a | |||
BFD session.</t> | BFD session.</li> | |||
</list> | </ul> | |||
</t> | </dd> | |||
<dt>/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | ||||
<t>/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | ||||
/interfaces/interface/unsolicited: | /interfaces/interface/unsolicited: | |||
<list style="symbols"> | </dt> | |||
<t>data node "enabled" enables creation of unsolicited BFD IP single-hop s | <dd> | |||
essions on a specific interface. | <ul spacing="normal"> | |||
See <xref target="BFD-Security"/>.</t> | <li>Data node "enabled" enables the creation of unsolicited BFD IP sin | |||
<t>data nodes local-multiplier, desired-min-tx-interval, | gle-hop sessions on a specific interface. | |||
required-min-rx-interval and min-interval all impact the parameters of the | See <xref target="BFD-Security" format="default"/>.</li> | |||
unsolicited | <li>Data nodes "local-multiplier", "desired-min-tx-interval", | |||
BFD IP single-hop sessions on the interface.</t> | "required-min-rx-interval", and "min-interval" all impact the parameters o | |||
</list> | f the unsolicited | |||
</t> | BFD IP single-hop sessions on the interface.</li> | |||
</ul> | ||||
<t>Some of the readable data nodes in this YANG module may be considered | </dd></dl> | |||
<!-- DNE begins --> | ||||
<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 are the subtrees and data nodes | notification) to these data nodes. These are the subtrees and data nodes | |||
and their sensitivity/vulnerability:</t> | and their sensitivity/vulnerability:</t> | |||
<!-- DNE ends --> | ||||
<t>/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | <dl newline="true" spacing="normal"> | |||
/sessions/session/role: | <dt>/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | |||
access to this information discloses the role of the local system in the c | /sessions/session/role:</dt> | |||
reation of the unsolicited BFD session.</t> | <dd>Access to this information discloses the role of the local system in | |||
the creation of the unsolicited BFD session.</dd> | ||||
</section> | </dl> | |||
</section> | </section> | |||
</section> | ||||
</middle> | </middle> | |||
<back> | ||||
<back> | <references> | |||
<references title="Normative References"> | <name>References</name> | |||
&RFC2119; | <references> | |||
&RFC3688; | <name>Normative References</name> | |||
&RFC5082; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
&RFC5880; | 119.xml"/> | |||
&RFC5881; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
&RFC6020; | 688.xml"/> | |||
&RFC6241; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
&RFC6242; | 082.xml"/> | |||
&RFC8040; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
&RFC8174; | 880.xml"/> | |||
&RFC8340; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
&RFC8341; | 881.xml"/> | |||
&RFC8349; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
&RFC8446; | 020.xml"/> | |||
&RFC9314; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
</references> | 241.xml"/> | |||
<references title="Informative References"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
&RFC4271; | 242.xml"/> | |||
&RFC5883; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
&RFC7880; | 040.xml"/> | |||
&RFC7911; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
&RFC7947; | 174.xml"/> | |||
&RFC8342; | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
</references> | 340.xml"/> | |||
</back> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
341.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
349.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
446.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
314.xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
271.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
883.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
880.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
911.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
947.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
342.xml"/> | ||||
</references> | ||||
</references> | ||||
<section numbered="false" toc="default"> | ||||
<name>Acknowledgments</name> | ||||
<t>The authors would like to thank <contact fullname="Acee Lindem"/>, <con | ||||
tact fullname="Alvaro Retana"/>, <contact fullname="Dan Romascanu"/>, <contact f | ||||
ullname="Derek Atkins"/>, <contact fullname="Greg Mirsky"/>, <contact fullname=" | ||||
Gyan Mishra"/>, <contact fullname="Henning Rogge"/>, <contact fullname="Jeffrey | ||||
Haas"/>, | ||||
<contact fullname="John Scudder"/>, <contact fullname="Lars Eggert"/>, <co | ||||
ntact fullname="Magnus Westerlund"/>, <contact fullname="Mahesh Jethanandani"/>, | ||||
<contact fullname="Murray Kucherawy"/>, <contact fullname="Raj Chetan"/>, <cont | ||||
act fullname="Robert Wilton"/>, <contact fullname="Roman Danyliw"/>, <contact fu | ||||
llname="Tom Petch"/>, | ||||
and <contact fullname="Zaheduzzaman Sarker"/> for their reviews and valuab | ||||
le input.</t> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 81 change blocks. | ||||
593 lines changed or deleted | 602 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |