rfc9468.original | rfc9468.txt | |||
---|---|---|---|---|
Network Working Group E. Chen | Internet Engineering Task Force (IETF) E. Chen | |||
Internet-Draft Palo Alto Networks | Request for Comments: 9468 Palo Alto Networks | |||
Intended status: Standards Track N. Shen | Category: Standards Track N. Shen | |||
Expires: 29 October 2023 Zededa | ISSN: 2070-1721 Zededa | |||
R. Raszuk | R. Raszuk | |||
Arrcus | Arrcus | |||
R. Rahman | R. Rahman | |||
Graphiant | Equinix | |||
27 April 2023 | August 2023 | |||
Unsolicited BFD for Sessionless Applications | Unsolicited Bidirectional Forwarding Detection (BFD) for Sessionless | |||
draft-ietf-bfd-unsolicited-16 | Applications | |||
Abstract | Abstract | |||
For operational simplification of "sessionless" applications using | For operational simplification of "sessionless" applications using | |||
Bidirectional Forwarding Detection (BFD), in this document we present | Bidirectional Forwarding Detection (BFD), in this document, we | |||
procedures for "unsolicited BFD" that allow a BFD session to be | present procedures for "unsolicited BFD" that allow a BFD session to | |||
initiated by only one side, and established without explicit per- | be initiated by only one side and established without explicit per- | |||
session configuration or registration by the other side (subject to | session configuration or registration by the other side (subject to | |||
certain per-interface or global policies). | certain per-interface or global policies). | |||
We also introduce a new YANG module to configure and manage | We also introduce a new YANG module to configure and manage | |||
"unsolicited BFD". The YANG module in this document is based on YANG | "unsolicited BFD". The YANG module in this document is based on YANG | |||
1.1 as defined in RFC 7950 and conforms to the Network Management | 1.1, as defined in RFC 7950, and conforms to the Network Management | |||
Datastore Architecture (NMDA) as described in RFC 8342. This | Datastore Architecture (NMDA), as described in RFC 8342. This | |||
document augments RFC 9314. | document augments RFC 9314. | |||
Requirements Language | ||||
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 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 29 October 2023. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9468. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. Procedures for Unsolicited BFD . . . . . . . . . . . . . . . 4 | 1.1. Requirements Language | |||
3. State Variables . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Procedures for Unsolicited BFD | |||
4. YANG Data Model . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. State Variables | |||
4.1. Unsolicited BFD Hierarchy . . . . . . . . . . . . . . . . 5 | 4. YANG Data Model | |||
4.2. Unsolicited BFD Module . . . . . . . . . . . . . . . . . 6 | 4.1. Unsolicited BFD Hierarchy | |||
4.3. Data Model Example . . . . . . . . . . . . . . . . . . . 11 | 4.2. Unsolicited BFD Module | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 4.3. Data Model Example | |||
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 5. IANA Considerations | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations | |||
7.1. BFD Protocol Security Considerations . . . . . . . . . . 13 | 6.1. BFD Protocol Security Considerations | |||
7.2. BFD Protocol Authentication Considerations . . . . . . . 14 | 6.2. BFD Protocol Authentication Considerations | |||
7.3. YANG Module Security Considerations . . . . . . . . . . . 14 | 6.3. YANG Module Security Considerations | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 7.1. Normative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 17 | 7.2. Informative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Acknowledgments | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
The current implementation and deployment practice for BFD ([RFC5880] | The current implementation and deployment practice for BFD ([RFC5880] | |||
and [RFC5881]) usually requires BFD sessions be explicitly configured | and [RFC5881]) usually requires that BFD sessions be explicitly | |||
or registered on both sides. This requirement is not an issue when | configured or registered on both sides. This requirement is not an | |||
an application like BGP [RFC4271] has the concept of a "session" that | issue when an application like BGP [RFC4271] has the concept of a | |||
involves both sides for its establishment. However, this requirement | "session" that involves both sides for its establishment. However, | |||
can be operationally challenging when the prerequisite "session" does | this requirement can be operationally challenging when the | |||
not naturally exist between two endpoints in an application. | prerequisite "session" does not naturally exist between two endpoints | |||
Simultaneous configuration and coordination may be required on both | in an application. Simultaneous configuration and coordination may | |||
sides for BFD to take effect. For example: | be required on both sides for BFD to take effect. For example: | |||
* When BFD is used to keep track of the "liveness" of the nexthop of | * When BFD is used to keep track of the "liveness" of the next hop | |||
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 static | specific configuration and coordination, and in some cases, static | |||
routes are created unnecessarily just for BFD. | routes are created unnecessarily just for BFD. | |||
* When BFD is used to keep track of the "liveness" of the third-pary | ||||
nexthop of BGP routes received from the Route Server [RFC7947] at | ||||
an Internet Exchange Point (IXP). As the third-party nexthop is | ||||
different from the peering address of the Route Server, for BFD to | ||||
work, currently two routers peering with the Route Server need to | ||||
have routes and nexthops from each other (although indirectly via | ||||
the Route Server). | ||||
Clearly it is beneficial and desirable to reduce or eliminate | * When BFD is used to keep track of the "liveness" of the third- | |||
party next hop of BGP routes received from the Route Server | ||||
[RFC7947] at an Internet Exchange Point (IXP). As the third-party | ||||
next hop is different from the peering address of the Route | ||||
Server, for BFD to work, currently, two routers peering with the | ||||
Route Server need to have routes and next hops from each other | ||||
(although indirectly via the Route Server). | ||||
Clearly, it is beneficial and desirable to reduce or eliminate | ||||
unnecessary configurations and coordination in these "sessionless" | unnecessary configurations and coordination in these "sessionless" | |||
applications using BFD. | applications using BFD. | |||
In this document we present procedures for "unsolicited BFD" that | In this document, we present procedures for "unsolicited BFD" that | |||
allow a BFD session to be initiated by only one side, and established | allow a BFD session to be initiated by only one side and established | |||
without explicit per-session configuration or registration by the | without explicit per-session configuration or registration by the | |||
other side (subject to certain per-interface or global policies). | other side (subject to certain per-interface or global policies). | |||
Unsolicited BFD impacts only the initiation of BFD sessions. There | Unsolicited BFD impacts only the initiation of BFD sessions. There | |||
is no change to all the other procedures specified in [RFC5880] such | is no change to all the other procedures specified in [RFC5880], such | |||
as, but not limited to, the Echo function and Demand mode. | as, but not limited to, the Echo function and Demand mode. | |||
With "unsolicited BFD" there is potential risk for excessive resource | With "unsolicited BFD", there is potential risk for excessive | |||
usage by BFD from "unexpected" remote systems. To mitigate such | resource usage by BFD from "unexpected" remote systems. To mitigate | |||
risks, several mechanisms are recommended in the Security | such risks, several mechanisms are recommended in the Security | |||
Considerations section. | Considerations section. | |||
The procedure described in this document could be applied to BFD for | The procedure described in this document could be applied to BFD for | |||
Multihop paths [RFC5883]. However, because of security risks, this | multihop paths [RFC5883]. However, because of security risks, this | |||
document applies only to BFD for single IP hops [RFC5881]. | document applies only to BFD for single IP hops [RFC5881]. | |||
Compared to the "Seamless BFD" [RFC7880], this proposal involves only | Compared to the "Seamless BFD" [RFC7880], this proposal involves only | |||
minor procedural enhancements to the widely deployed BFD itself. | 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. As an example, it does not require | protocol itself and deployment. As an example, it does not require | |||
the exchange of BFD discriminators over an out-of-band channel before | the exchange of BFD discriminators over an out-of-band channel before | |||
BFD session bring-up. | BFD session bring-up. | |||
When BGP Add-Path [RFC7911] is deployed at an IXP using a Route | When BGP ADD-PATH [RFC7911] is deployed at an IXP using a Route | |||
Server, multiple BGP paths (when they exist) can be made available to | Server, multiple BGP paths (when they exist) can be made available to | |||
the clients of the Route Server as described in [RFC7947]. | the clients of the Route Server, as described in [RFC7947]. | |||
Unsolicited BFD can be used by BGP route selection's Route | Unsolicited BFD can be used by BGP route selection's route | |||
Resolvability Condition Section 9.1.2.1 of [RFC4271] to exclude | resolvability condition (Section 9.1.2.1 of [RFC4271]) to exclude | |||
routes where the NEXT_HOP is not reachable using the procedures | routes where the NEXT_HOP is not reachable using the procedures | |||
specified in this document. | specified in this document. | |||
1.1. Requirements Language | ||||
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 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
capitals, as shown here. | ||||
2. Procedures for Unsolicited BFD | 2. Procedures for Unsolicited BFD | |||
With "unsolicited BFD", one side takes the "Active role" and the | With "unsolicited BFD", one side takes the "Active role" and the | |||
other side takes only the "Passive role" as described in [RFC5880], | other side takes the "Passive role", as described in [RFC5880], | |||
section 6.1. | Section 6.1. | |||
Passive unsolicited BFD support MUST be disabled by default, and MUST | Passive unsolicited BFD support MUST be disabled by default and MUST | |||
require explicit configuration to be enabled. On the passive side, | require explicit configuration to be enabled. On the passive side, | |||
the following BFD parameters, from [RFC5880] section 6.8.1 SHOULD be | the following BFD parameters, from [RFC5880], Section 6.8.1, SHOULD | |||
configurable: | be configurable: | |||
* bfd.DesiredMinTxInterval | * bfd.DesiredMinTxInterval | |||
* bfd.RequiredMinRxInterval | * bfd.RequiredMinRxInterval | |||
* bfd.DetectMult | * bfd.DetectMult | |||
The passive side MAY also choose to use the values of the parameters | The passive side MAY also choose to use the values of the parameters | |||
above that the active side uses in its BFD Control packets. However, | listed above that the active side uses in its BFD Control packets. | |||
the bfd.LocalDiscr value MUST be selected by the passive side to | However, the bfd.LocalDiscr value MUST be selected by the passive | |||
allow multiple unsolicited BFD sessions. | side to allow multiple unsolicited BFD sessions. | |||
The active side starts sending the BFD Control packets as specified | The active side starts sending the BFD Control packets, as specified | |||
in [RFC5880]. The passive side does not send BFD Control packets | in [RFC5880]. The passive side does not send BFD Control packets | |||
initially, it sends BFD Control packets only after it has received | initially; it sends BFD Control packets only after it has received | |||
BFD Control packets from the active side. | BFD Control packets from the active side. | |||
When the passive side receives a BFD Control packet from the active | When the passive side receives a BFD Control packet from the active | |||
side with 0 as "Your Discriminator" and does not find an existing BFD | side with 0 as "Your Discriminator" and does not find an existing BFD | |||
session, the passive side SHOULD create a matching BFD session toward | session, the passive side SHOULD create a matching BFD session toward | |||
the active side, unless not permitted by local configuration or | the active side, unless not permitted by local configuration or | |||
policy. | policy. | |||
When the passive side receives an incoming BFD Control packet on a | When the passive side receives an incoming BFD Control packet on a | |||
numbered interface, the source address of that packet MUST belong to | numbered interface, the source address of that packet MUST belong to | |||
the subnet of the interface on which the BFD packet is received, else | the subnet of the interface on which the BFD packet is received, else | |||
the BFD control packet MUST NOT be processed. | the BFD Control packet MUST NOT be processed. | |||
The passive side MUST then start sending BFD Control packets and | The passive side MUST then start sending BFD Control packets and | |||
perform the necessary procedure for bringing up, maintaining and | perform the necessary procedure for bringing up, maintaining, and | |||
tearing down the BFD session. If the BFD session fails to get | tearing down the BFD session. If the BFD session fails to get | |||
established within a certain amount of time (which is implementation | established within a certain amount of time (which is implementation | |||
specific but has to be at least equal to the local failure detection | specific but has to be at least equal to the local failure detection | |||
time), or if an established BFD session goes down, the passive side | time) or if an established BFD session goes down, the passive side | |||
MUST stop sending BFD Control packets and SHOULD delete the BFD | MUST stop sending BFD Control packets and SHOULD delete the BFD | |||
session created until BFD Control packets are initiated by the active | session created until BFD Control packets are initiated by the active | |||
side again. | side again. | |||
When an Unsolicited BFD session goes down, an implementation may | When an unsolicited BFD session goes down, an implementation may | |||
retain the session state for a period of time. Retaining this state | retain the session state for a period of time. Retaining this state | |||
can be useful for operational purposes. | can be useful for operational purposes. | |||
3. State Variables | 3. State Variables | |||
This document defines a new state variable called Role. | This document defines a new state variable called Role: | |||
bfd.Role | bfd.Role | |||
The role of the local system during BFD session initialization, as | This is the role of the local system during BFD session | |||
per [RFC5880], section 6.1. Possible values are Active or Passive. | initialization, as per [RFC5880], Section 6.1. Possible values are | |||
Active or Passive. | ||||
4. YANG Data Model | 4. YANG Data Model | |||
This section extends the YANG data model for BFD [RFC9314] to cover | This section extends the YANG data model for BFD [RFC9314] to cover | |||
unsolicited BFD. The new module imports [RFC8349] since the "bfd" | unsolicited BFD. The new module imports the YANG modules described | |||
container in [RFC9314] is under "control-plane-protocol". The YANG | in [RFC8349] since the "bfd" container in [RFC9314] is under | |||
module in this document conforms to the Network Management Datastore | "control-plane-protocol". The YANG module in this document conforms | |||
Architecture (NMDA) [RFC8342]. | to the Network Management Datastore Architecture (NMDA) [RFC8342]. | |||
4.1. Unsolicited BFD Hierarchy | 4.1. Unsolicited BFD Hierarchy | |||
Configuration for unsolicited BFD parameters for IP single-hop | Configuration for unsolicited BFD parameters for IP single-hop | |||
sessions can be done at 2 levels: | sessions can be done at 2 levels: | |||
* Globally, i.e. for all interfaces. | * globally, i.e., for all interfaces | |||
* For specific interfaces. This requires support for the | ||||
"unsolicited-params-per-interface" feature. | * for specific interfaces (this requires support for the | |||
"unsolicited-params-per-interface" feature) | ||||
If configuration exists at both levels, per-interface configuration | If configuration exists at both levels, per-interface configuration | |||
takes precedence over global configuration. | takes precedence over global configuration. | |||
For operational data, a new "role" leaf node has been added for BFD | For operational data, a new "role" leaf node has been added for BFD | |||
IP single-hop sessions. | IP single-hop sessions. | |||
The tree diagram below uses the graphical representation of data | The tree diagram below uses the graphical representation of data | |||
models, as defined in [RFC8340]. | models, as defined in [RFC8340]. | |||
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:unsolicited-params-per-interface}? | +--rw local-multiplier? | |||
+--rw (interval-config-type)? {bfd-unsol:unsolicited-params-per-interface}? | bfd-types:multiplier | |||
+--:(tx-rx-intervals) | {bfd-unsol:unsolicited-params-per-interface}? | |||
| +--rw desired-min-tx-interval? uint32 | +--rw (interval-config-type)? | |||
| +--rw required-min-rx-interval? uint32 | {bfd-unsol:unsolicited-params-per-interface}? | |||
+--:(single-interval) {bfd-types:single-minimum-interval}? | +--:(tx-rx-intervals) | |||
+--rw min-interval? uint32 | | +--rw desired-min-tx-interval? uint32 | |||
augment /rt:routing/rt:control-plane-protocols | | +--rw required-min-rx-interval? uint32 | |||
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | +--:(single-interval) {bfd-types:single-minimum-interval}? | |||
/bfd-ip-sh:sessions/bfd-ip-sh:session: | +--rw min-interval? uint32 | |||
+--ro role? bfd-unsol:role | augment /rt:routing/rt:control-plane-protocols | |||
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh | ||||
/bfd-ip-sh:sessions/bfd-ip-sh:session: | ||||
+--ro role? bfd-unsol:role | ||||
4.2. Unsolicited BFD Module | 4.2. Unsolicited BFD Module | |||
<CODE BEGINS> file "ietf-bfd-unsolicited@2023-04-22.yang" | <CODE BEGINS> file "ietf-bfd-unsolicited@2023-08-16.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 { | ||||
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:interfaces" { | |||
description | description | |||
"Augmentation for BFD unsolicited on IP single-hop session"; | "Augmentation for unsolicited BFD on IP single-hop | |||
leaf role { | interface."; | |||
type identityref { | container unsolicited { | |||
base "bfd-unsol:role"; | description | |||
"BFD IP single-hop interface unsolicited top-level | ||||
container."; | ||||
leaf enabled { | ||||
type boolean; | ||||
default "false"; | ||||
description | ||||
"Unsolicited BFD is 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 multiplier configured at the global | ||||
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."; | ||||
} | ||||
} | } | |||
config false; | ||||
description "Role."; | ||||
} | } | |||
} | ||||
} | } | |||
augment "/rt:routing/rt:control-plane-protocols/" | ||||
+ "rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh/" | ||||
+ "bfd-ip-sh:sessions/bfd-ip-sh:session" { | ||||
description | ||||
"Augmentation for unsolicited BFD on IP single-hop session."; | ||||
leaf role { | ||||
type identityref { | ||||
base bfd-unsol:role; | ||||
} | ||||
config false; | ||||
description | ||||
"Role."; | ||||
} | ||||
} | ||||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
4.3. Data Model Example | 4.3. Data Model Example | |||
This section shows an example on how to configure the passive end of | This section shows an example on how to configure the passive end of | |||
unsolicited BFD: | unsolicited BFD: | |||
* We have global BFD IP single-hop unsolicited configuration with a | * We have global BFD IP single-hop unsolicited configuration with a | |||
local-multiplier of 2 and min-interval at 50ms | local-multiplier of 2 and min-interval at 50 ms. | |||
* BFD IP single-hop unsolicited is enabled on interface eth0, with a | ||||
local-multiplier of 3 and min-interval at 250 ms | * BFD IP single-hop unsolicited is enabled on interface eth0 with a | |||
local-multiplier of 3 and min-interval at 250 ms. | ||||
* BFD IP single-hop unsolicited is enabled on interface eth1. Since | * BFD IP single-hop unsolicited is enabled on interface eth1. Since | |||
there is no parameter configuration for eth1, it inherits from the | there is no parameter configuration for eth1, it inherits from the | |||
global configuration. | global configuration. | |||
<?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:ethernetCsmacd</type> | xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
</interface> | ianaift:ethernetCsmacd</type> | |||
<interface> | </interface> | |||
<name>eth1</name> | <interface> | |||
<type | <name>eth1</name> | |||
xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type> | <type | |||
</interface> | xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> | |||
</interfaces> | ianaift:ethernetCsmacd</type> | |||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | </interface> | |||
<control-plane-protocols> | </interfaces> | |||
<control-plane-protocol> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
<type | <control-plane-protocols> | |||
xmlns:bfd-types="urn:ietf:params:xml:ns:yang:ietf-bfd-types">bfd-types:bfdv1</type> | <control-plane-protocol> | |||
<name>name:BFD</name> | <type xmlns:bfd-types= | |||
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd"> | "urn:ietf:params:xml:ns:yang:ietf-bfd-types"> | |||
<ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | bfd-types:bfdv1</type> | |||
<unsolicited> | <name>name:BFD</name> | |||
<local-multiplier>2</local-multiplier> | <bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd"> | |||
<min-interval>50000</min-interval> | <ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh"> | |||
</unsolicited> | <unsolicited> | |||
<interfaces> | <local-multiplier>2</local-multiplier> | |||
<interface>eth0</interface> | <min-interval>50000</min-interval> | |||
<unsolicited> | </unsolicited> | |||
<enabled>true</enabled> | <interfaces> | |||
<local-multiplier>3</local-multiplier> | <interface>eth0</interface> | |||
<min-interval>250000</min-interval> | <unsolicited> | |||
</unsolicited> | <enabled>true</enabled> | |||
</interfaces> | <local-multiplier>3</local-multiplier> | |||
<interfaces> | <min-interval>250000</min-interval> | |||
<interface>eth1</interface> | </unsolicited> | |||
<unsolicited> | </interfaces> | |||
<enabled>true</enabled> | <interfaces> | |||
</unsolicited> | <interface>eth1</interface> | |||
</interfaces> | <unsolicited> | |||
</ip-sh> | <enabled>true</enabled> | |||
</bfd> | </unsolicited> | |||
</control-plane-protocol> | </interfaces> | |||
</control-plane-protocols> | </ip-sh> | |||
</routing> | </bfd> | |||
</config> | </control-plane-protocol> | |||
5. IANA Considerations | </control-plane-protocols> | |||
</routing> | ||||
This document registers the following namespace URI in the "IETF XML | </config> | |||
Registry" [RFC3688]: | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited | 5. IANA Considerations | |||
Registrant Contact: The IESG. | IANA has registered the following namespace URI in the "ns" | |||
subregistry within the "IETF XML Registry" [RFC3688]: | ||||
XML: N/A; the requested URI is an XML namespace. | URI: urn:ietf:params:xml:ns:yang:ietf-bfd-unsolicited | |||
Registrant Contact: The IESG. | ||||
XML: N/A; the requested URI is an XML namespace. | ||||
This document registers the following YANG module in the "YANG Module | IANA has registered the following YANG module in the "YANG Module | |||
Names" registry [RFC6020]: | Names" registry [RFC6020]: | |||
Name: ietf-bfd-unsolicited | Name: ietf-bfd-unsolicited | |||
Maintained by IANA: N | ||||
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 | Reference: RFC 9468 | |||
Reference: RFC YYYY | ||||
6. Acknowledgments | ||||
Authors would like to thank Acee Lindem, Alvaro Retana, Dan | ||||
Romascanu, Derek Atkins, Greg Mirsky, Gyan Mishra, Henning Rogge, | ||||
Jeffrey Haas, John Scudder, Lars Eggert, Magnus Westerlund, Mahesh | ||||
Jethanandani, Murray Kucherawy, Raj Chetan, Robert Wilton, Roman | ||||
Danyliw, Tom Petch, and Zaheduzzaman Sarker for their review and | ||||
valuable input. | ||||
7. Security Considerations | 6. Security Considerations | |||
7.1. BFD Protocol Security Considerations | 6.1. BFD Protocol Security Considerations | |||
The same security considerations and protection measures as those | The same security considerations and protection measures as those | |||
described in [RFC5880] and [RFC5881] apply to this document. In | described in [RFC5880] and [RFC5881] apply to this document. In | |||
addition, with "unsolicited BFD" there is potential risk for | addition, with "unsolicited BFD", there is potential risk for | |||
excessive resource usage by BFD from "unexpected" remote systems. To | excessive resource usage by BFD from "unexpected" remote systems. To | |||
mitigate such risks, implementations of unsolicited BFD MUST: | mitigate such risks, implementations of unsolicited BFD MUST: | |||
* Limit the feature to specific interfaces, and to single-hop BFD | * Limit the feature to specific interfaces and to single-hop BFD | |||
sessions using the procedures from [RFC5082]. See Section 5 of | sessions using the procedures from [RFC5082]. See Section 5 of | |||
[RFC5881] for the details of these procedures. | [RFC5881] for the details of these procedures. | |||
* Apply policy to process BFD packets only from certain subnets or | * Apply policy to process BFD packets only from certain subnets or | |||
hosts. | hosts. | |||
* Deploy the feature only in an environment that does not offer | * Deploy the feature only in an environment that does not offer | |||
anonymous participation. Examples include an IXP, where the IXP | anonymous participation. Examples include an IXP, where the IXP | |||
operator will have a business relationship with all IXP | operator will have a business relationship with all IXP | |||
participants, or between a provider and its customers. | participants, or between a provider and its customers. | |||
7.2. BFD Protocol Authentication Considerations | 6.2. BFD Protocol Authentication Considerations | |||
Implementations of unsolicited BFD are RECOMMENDED to use BFD | Implementations of unsolicited BFD are RECOMMENDED to use BFD | |||
authentication; see [RFC5880]. If BFD authentication is used, the | authentication; see [RFC5880]. If BFD authentication is used, the | |||
strongest BFD authentication mechanism that is supported MUST be | strongest BFD authentication mechanism that is supported MUST be | |||
used. | used. | |||
In some environments, such as an Internet Exchange Points (IXPs), BFD | In some environments, such as IXPs, BFD authentication cannot be used | |||
authentication cannot be used because of the lack of coordination for | because of the lack of coordination for the operation of the two | |||
the operation of the two endpoints of the BFD session. | endpoints of the BFD session. | |||
In other environments, such as when BFD is used to track the next hop | In other environments, such as when BFD is used to track the next hop | |||
of static routes, it is possible to use BFD authentication. This | of static routes, it is possible to use BFD authentication. This | |||
comes with the extra cost of configuring matching keychains between | comes with the extra cost of configuring matching key chains between | |||
the two endpoints. | the two endpoints. | |||
7.3. YANG Module Security Considerations | 6.3. YANG Module Security Considerations | |||
The YANG module specified in this document defines a schema for data | 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 [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer | |||
is the secure transport layer, and the mandatory-to-implement secure | is the secure transport layer, and the mandatory-to-implement secure | |||
transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer | |||
is HTTPS, and the mandatory-to-implement secure transport is TLS | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
[RFC8446]. | [RFC8446]. | |||
The NETCONF access control model [RFC8341] provides the means to | The Network Configuration Access Control Mode (NACM) [RFC8341] | |||
restrict access for particular NETCONF or RESTCONF users to a | provides the means to restrict access for particular NETCONF or | |||
preconfigured subset of all available NETCONF or RESTCONF protocol | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
operations and content. | RESTCONF protocol operations and content. | |||
There are a number of data nodes defined in this YANG module that are | 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: | and their sensitivity/vulnerability: | |||
/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | /routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | |||
/unsolicited: | /unsolicited: | |||
* Data node "enabled" enables creation of unsolicited BFD IP | ||||
single-hop sessions globally, i.e., on all interfaces. See | ||||
Section 6.1. | ||||
* data node "enabled" enables creation of unsolicited BFD IP single- | * Data nodes "local-multiplier", "desired-min-tx-interval", | |||
hop sessions globally, i.e. on all interfaces. See Section 7.1. | "required-min-rx-interval", and "min-interval" all impact the | |||
* data nodes local-multiplier, desired-min-tx-interval, required- | parameters of the unsolicited BFD IP single-hop sessions. | |||
min-rx-interval and min-interval all impact the parameters of the | Write operations to these nodes change the rates of BFD packet | |||
unsolicited BFD IP single-hop sessions. Write operations to these | generation and detection time of the failures of a BFD session. | |||
nodes change the rates of BFD packet generation and detection time | ||||
of the failures of a BFD session. | ||||
/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | /routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | |||
/interfaces/interface/unsolicited: | /interfaces/interface/unsolicited: | |||
* Data node "enabled" enables the creation of unsolicited BFD IP | ||||
single-hop sessions on a specific interface. See Section 6.1. | ||||
* data node "enabled" enables creation of unsolicited BFD IP single- | * Data nodes "local-multiplier", "desired-min-tx-interval", | |||
hop sessions on a specific interface. See Section 7.1. | "required-min-rx-interval", and "min-interval" all impact the | |||
* data nodes local-multiplier, desired-min-tx-interval, required- | parameters of the unsolicited BFD IP single-hop sessions on the | |||
min-rx-interval and min-interval all impact the parameters of the | interface. | |||
unsolicited BFD IP single-hop sessions on the interface. | ||||
Some of the readable data nodes in this YANG module may be considered | 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 | notification) to these data nodes. These are the subtrees and data | |||
nodes and their sensitivity/vulnerability: | nodes and their sensitivity/vulnerability: | |||
/routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | /routing/control-plane-protocols/control-plane-protocol/bfd/ip-sh | |||
/sessions/session/role: access to this information discloses the role | /sessions/session/role: | |||
of the local system in the creation of the unsolicited BFD session. | Access to this information discloses the role of the local system | |||
in the creation of the unsolicited BFD session. | ||||
8. References | 7. References | |||
8.1. Normative References | 7.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
skipping to change at page 17, line 11 ¶ | skipping to change at line 742 ¶ | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
[RFC9314] Jethanandani, M., Ed., Rahman, R., Ed., Zheng, L., Ed., | [RFC9314] Jethanandani, M., Ed., Rahman, R., Ed., Zheng, L., Ed., | |||
Pallagatti, S., and G. Mirsky, "YANG Data Model for | Pallagatti, S., and G. Mirsky, "YANG Data Model for | |||
Bidirectional Forwarding Detection (BFD)", RFC 9314, | Bidirectional Forwarding Detection (BFD)", RFC 9314, | |||
DOI 10.17487/RFC9314, September 2022, | DOI 10.17487/RFC9314, September 2022, | |||
<https://www.rfc-editor.org/info/rfc9314>. | <https://www.rfc-editor.org/info/rfc9314>. | |||
8.2. Informative References | 7.2. Informative References | |||
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A | |||
Border Gateway Protocol 4 (BGP-4)", RFC 4271, | Border Gateway Protocol 4 (BGP-4)", RFC 4271, | |||
DOI 10.17487/RFC4271, January 2006, | DOI 10.17487/RFC4271, January 2006, | |||
<https://www.rfc-editor.org/info/rfc4271>. | <https://www.rfc-editor.org/info/rfc4271>. | |||
[RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5883] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
(BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, | (BFD) for Multihop Paths", RFC 5883, DOI 10.17487/RFC5883, | |||
June 2010, <https://www.rfc-editor.org/info/rfc5883>. | June 2010, <https://www.rfc-editor.org/info/rfc5883>. | |||
skipping to change at page 17, line 42 ¶ | skipping to change at line 773 ¶ | |||
[RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker, | [RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker, | |||
"Internet Exchange BGP Route Server", RFC 7947, | "Internet Exchange BGP Route Server", RFC 7947, | |||
DOI 10.17487/RFC7947, September 2016, | DOI 10.17487/RFC7947, September 2016, | |||
<https://www.rfc-editor.org/info/rfc7947>. | <https://www.rfc-editor.org/info/rfc7947>. | |||
[RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | [RFC8342] Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., | |||
and R. Wilton, "Network Management Datastore Architecture | and R. Wilton, "Network Management Datastore Architecture | |||
(NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8342>. | <https://www.rfc-editor.org/info/rfc8342>. | |||
Acknowledgments | ||||
The authors would like to thank Acee Lindem, Alvaro Retana, Dan | ||||
Romascanu, Derek Atkins, Greg Mirsky, Gyan Mishra, Henning Rogge, | ||||
Jeffrey Haas, John Scudder, Lars Eggert, Magnus Westerlund, Mahesh | ||||
Jethanandani, Murray Kucherawy, Raj Chetan, Robert Wilton, Roman | ||||
Danyliw, Tom Petch, and Zaheduzzaman Sarker for their reviews and | ||||
valuable input. | ||||
Authors' Addresses | Authors' Addresses | |||
Enke Chen | Enke Chen | |||
Palo Alto Networks | Palo Alto Networks | |||
3000 Tannery Way | ||||
Santa Clara, CA 95054 | ||||
United States of America | ||||
Email: enchen@paloaltonetworks.com | Email: enchen@paloaltonetworks.com | |||
Naiming Shen | Naiming Shen | |||
Zededa | Zededa | |||
160 W Santa Clara Street | ||||
San Jose, CA 95113 | ||||
United States of America | ||||
Email: naiming@zededa.com | Email: naiming@zededa.com | |||
Robert Raszuk | Robert Raszuk | |||
Arrcus | Arrcus | |||
2077 Gateway Place | 2077 Gateway Place | |||
San Jose, CA 95110 | San Jose, CA 95110 | |||
United States of America | United States of America | |||
Email: robert@raszuk.net | Email: robert@raszuk.net | |||
Reshad Rahman | Reshad Rahman | |||
Graphiant | Equinix | |||
Canada | Canada | |||
Email: reshad@yahoo.com | Email: reshad@yahoo.com | |||
End of changes. 98 change blocks. | ||||
346 lines changed or deleted | 380 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |