| rfc9687.original | rfc9687.txt | |||
|---|---|---|---|---|
| IDR J. Snijders | Internet Engineering Task Force (IETF) J. Snijders | |||
| Internet-Draft Fastly | Request for Comments: 9687 Fastly | |||
| Updates: 4271 (if approved) B. Cartwright-Cox | Updates: 4271 B. Cartwright-Cox | |||
| Intended status: Standards Track Port 179 | Category: Standards Track Port 179 | |||
| Expires: 7 February 2025 Y. Qu | ISSN: 2070-1721 Y. Qu | |||
| Futurewei | Futurewei | |||
| 6 August 2024 | November 2024 | |||
| Border Gateway Protocol 4 (BGP-4) Send Hold Timer | Border Gateway Protocol 4 (BGP-4) Send Hold Timer | |||
| draft-ietf-idr-bgp-sendholdtimer-15 | ||||
| Abstract | Abstract | |||
| This document defines the SendHoldtimer, along with the | This document defines the SendHoldTimer, along with the | |||
| SendHoldTimer_Expires event, for the Border Gateway Protocol (BGP) | SendHoldTimer_Expires event, for the Border Gateway Protocol (BGP) | |||
| Finite State Machine (FSM). Implementation of the SendHoldTimer | Finite State Machine (FSM). Implementation of the SendHoldTimer | |||
| helps overcome situations where a BGP connection is not terminated | helps overcome situations where a BGP connection is not terminated | |||
| after the local system detects that the remote system is not | after the local system detects that the remote system is not | |||
| processing BGP messages. This document specifies that the local | processing BGP messages. This document specifies that the local | |||
| system should close the BGP connection and not solely rely on the | system should close the BGP connection and not solely rely on the | |||
| remote system for connection closure when the SendHoldTimer expires. | remote system for connection closure when the SendHoldTimer expires. | |||
| This document updates RFC4271. | This document updates RFC 4271. | |||
| 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 7 February 2025. | 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/rfc9687. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Example of a problematic scenario . . . . . . . . . . . . . . 3 | 2. Requirements Language | |||
| 3. Changes to RFC 4271 - SendHoldTimer . . . . . . . . . . . . . 4 | 3. Example of a Problematic Scenario | |||
| 3.1. Session Attributes . . . . . . . . . . . . . . . . . . . 4 | 4. Changes to RFC 4271 - SendHoldTimer | |||
| 3.2. Timer Event: SendHoldTimer_Expires . . . . . . . . . . . 4 | 4.1. Session Attributes | |||
| 3.3. Changes to the FSM . . . . . . . . . . . . . . . . . . . 4 | 4.2. Timer Event: SendHoldTimer_Expires | |||
| 3.4. Changes to BGP Timers . . . . . . . . . . . . . . . . . . 6 | 4.3. Changes to the FSM | |||
| 4. Send Hold Timer Expired Error Handling . . . . . . . . . . . 6 | 4.4. Changes to BGP Timers | |||
| 5. Implementation Considerations . . . . . . . . . . . . . . . . 6 | 5. Send Hold Timer Expired Error Handling | |||
| 6. Operational Considerations . . . . . . . . . . . . . . . . . 7 | 6. Implementation Considerations | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Operational Considerations | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 8. Security Considerations | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 | 9. IANA Considerations | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 10. Acknowledgements | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 11. References | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 8 | 11.1. Normative References | |||
| Appendix A. Implementation status - RFC EDITOR: REMOVE BEFORE | 11.2. Informative References | |||
| PUBLICATION . . . . . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines the SendHoldtimer, along with the | This document defines the SendHoldTimer, along with the | |||
| SendHoldTimer_Expires event, for the Border Gateway Protocol (BGP) | SendHoldTimer_Expires event, for the Border Gateway Protocol (BGP) | |||
| [RFC4271] Finite State Machine (FSM) defined in section 8. | Finite State Machine (FSM) defined in Section 8 of [RFC4271]. | |||
| Failure to terminate a blocked BGP connection can result in network | Failure to terminate a blocked BGP connection can result in network | |||
| reachability issues, and the subsequent failure to generate and | reachability issues, and the subsequent failure to generate and | |||
| deliver BGP UPDATE messages to another BGP speaker of the local | deliver BGP UPDATE messages to another BGP speaker of the local | |||
| system is detrimental to all participants of the inter-domain routing | system is detrimental to all participants of the inter-domain routing | |||
| system. This phenomena is thought to have contributed to IP traffic | system. This phenomena is thought to have contributed to IP traffic | |||
| blackholing events in the global Internet routing system | packet loss events in the global Internet routing system | |||
| [bgpzombies]. | [bgpzombies]. | |||
| This specification intends to improve this situation by requiring | This specification intends to improve this situation by requiring | |||
| that BGP connections be terminated if the local system has detected | that BGP connections be terminated if the local system has detected | |||
| that the remote system cannot possibly have processed any BGP | that the remote system cannot possibly have processed any BGP | |||
| messages for the duration of the SendHoldTime. Through | messages for the duration of the SendHoldTime. Through | |||
| standardization of the aforementioned requirement, operators will | standardization of the aforementioned requirement, operators will | |||
| benefit from consistent behavior across different BGP | benefit from consistent behavior across different BGP | |||
| implementations. | implementations. | |||
| BGP speakers following this specification do not rely exclusively on | BGP speakers following this specification do not rely exclusively on | |||
| remote systems closing blocked connections, but will also locally | remote systems closing blocked connections; they also locally close | |||
| close blocked connections. | blocked connections. | |||
| 2. Example of a problematic scenario | 2. 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. | ||||
| 3. Example of a Problematic Scenario | ||||
| In implementations lacking the concept of a SendHoldTimer, a | In implementations lacking the concept of a SendHoldTimer, a | |||
| malfunctioning or overwhelmed remote speaker may cause data on the | malfunctioning or overwhelmed remote speaker may cause data on the | |||
| BGP socket in the local system to accumulate ad infinitum. This | BGP socket in the local system to accumulate ad infinitum. This | |||
| could result in forwarding failure and traffic loss, as the | could result in forwarding failure and traffic loss, as the | |||
| overwhelmed speaker continues to utilize stale routes. | overwhelmed speaker continues to utilize stale routes. | |||
| An example fault state: as BGP runs over TCP [RFC9293], it is | An example fault state: as BGP runs over TCP [RFC9293], it is | |||
| possible for a BGP speaker in the Established state to encounter a | possible for a BGP speaker in the Established state to encounter a | |||
| BGP speaker that is advertising a TCP Receive Window (RCV.WND) of | BGP speaker that is advertising a TCP Receive Window (RCV.WND) of | |||
| size zero. This 0 window prevents the local system from sending | size zero. The size zero of this window prevents the local system | |||
| KEEPALIVE, UPDATE, or any other critical BGP messages across the | from sending KEEPALIVE, UPDATE, or any other critical BGP messages | |||
| network socket to the remote speaker. | across the network socket to the remote speaker. | |||
| Generally BGP implementations have no visibility into lower-layer | Generally BGP implementations have no visibility into lower-layer | |||
| subsystems such as TCP or the speaker's current Receive Window size, | subsystems such as TCP or the speaker's current Receive Window size, | |||
| and there is no existing BGP mechanism for such a blocked connection | and there is no existing BGP mechanism for such a blocked connection | |||
| to be recognized. Hence BGP implementations are not able to handle | to be recognized. Hence BGP implementations are not able to handle | |||
| this situation in a consistent fashion. | this situation in a consistent fashion. | |||
| The major issue arising from a BGP speaker being unable to send a BGP | The primary issue that arises when a BGP speaker is unable to send a | |||
| message to a given remote speaker is that as a result that speaker | BGP message to a remote speaker is that the affected speaker may end | |||
| subsequently is operating based on stale routing information. | up operating with outdated routing information. Failure of the BGP | |||
| Failure of the BGP speaker to send (and thus the remote speaker to | speaker to send (and thus the remote speaker to receive) BGP messages | |||
| receive) BGP messages on a single BGP session can negatively impact | on a single BGP session can negatively impact the ability of an | |||
| the ability of an entire autonomous system (or even a group of | entire autonomous system (or even a group of autonomous systems) to | |||
| autonomous systems) to converge. | converge. | |||
| 3. Changes to RFC 4271 - SendHoldTimer | 4. Changes to RFC 4271 - SendHoldTimer | |||
| BGP speakers are implemented following a conceptual model "BGP Finite | BGP speakers are implemented following a conceptual model "BGP Finite | |||
| State Machine" (FSM), which is outlined in section 8 of [RFC4271]. | State Machine" (FSM), which is outlined in Section 8 of [RFC4271]. | |||
| This specification adds a BGP timer, SendHoldTimer, and updates the | This specification adds a BGP timer, SendHoldTimer, and updates the | |||
| BGP FSM as follows: | BGP FSM as indicated in the following subsections. | |||
| 3.1. Session Attributes | 4.1. Session Attributes | |||
| The following optional session attributes for each connection are | The following optional session attributes for each connection are | |||
| added to Section 8, before "The optional session attributes support | added to the list in Section 8 of [RFC4271] appearing just prior to | |||
| different features of the BGP functionality that have implications | "The optional session attributes support different features of the | |||
| for the BGP FSM state transitions": | BGP functionality that have implications for the BGP FSM state | |||
| transitions": | ||||
| NEW | NEW | |||
| | 14) SendHoldTimer | | 14) SendHoldTimer | |||
| | | | | |||
| | 15) SendHoldTime | | 15) SendHoldTime | |||
| The SendHoldTime determines how long a BGP speaker will stay in | SendHoldTime determines how long a BGP speaker will stay in the | |||
| Established state before the TCP connection is dropped because no BGP | Established state before the TCP connection is dropped because no BGP | |||
| messages can be transmitted to its peer. A BGP speaker can configure | messages can be transmitted to its peer. A BGP speaker can configure | |||
| the value of the SendHoldTime for each peer independently. | the value of the SendHoldTime for each peer independently. | |||
| 3.2. Timer Event: SendHoldTimer_Expires | 4.2. Timer Event: SendHoldTimer_Expires | |||
| Another timer event is added to Section 8.1.3 of [RFC4271] as | Another timer event is added to Section 8.1.3 of [RFC4271] as | |||
| following: | follows: | |||
| NEW | NEW | |||
| | Event 29: SendHoldTimer_Expires | | Event 29: SendHoldTimer_Expires | |||
| | Definition: An event generated when the SendHoldTimer expires. | ||||
| | | | | |||
| | Status: Optional | | Definition: An event generated when the SendHoldTimer | |||
| | expires. | ||||
| | | ||||
| | Status: Optional | ||||
| 3.3. Changes to the FSM | 4.3. Changes to the FSM | |||
| The following changes are made to section 8.2.2 in [RFC4271]. | The following changes are made to Section 8.2.2 of [RFC4271]. | |||
| In "OpenConfirm State", the handling of Event 26 is revised as | In "OpenConfirm State", the handling of Event 26 is revised as | |||
| follows: | follows: | |||
| OLD | OLD | |||
| | If the local system receives a KEEPALIVE message (KeepAliveMsg | | If the local system receives a KEEPALIVE message (KeepAliveMsg | |||
| | (Event 26)), the local system: | | (Event 26)), the local system: | |||
| | - restarts the HoldTimer and | ||||
| | | | | |||
| | - changes its state to Established. | | - restarts the HoldTimer and | |||
| | | ||||
| | - changes its state to Established. | ||||
| NEW | NEW | |||
| | If the local system receives a KEEPALIVE message (KeepAliveMsg | | If the local system receives a KEEPALIVE message (KeepAliveMsg | |||
| | (Event 26)), the local system: | | (Event 26)), the local system: | |||
| | - restarts the HoldTimer, | ||||
| | | | | |||
| | - starts the SendHoldTimer if the SendHoldTime is non-zero, and | | - restarts the HoldTimer, | |||
| | | | | |||
| | - changes its state to Established. | | - starts the SendHoldTimer if the SendHoldTime is non-zero, | |||
| | and | ||||
| | | ||||
| | - changes its state to Established. | ||||
| The following paragraph is added to section 8.2.2 in "Established | The following paragraph is added to Section 8.2.2 of [RFC4271] in | |||
| State", after the paragraph which ends "unless the negotiated | "Established State", after the paragraph that ends "unless the | |||
| HoldTime value is zero.": | negotiated HoldTime value is zero": | |||
| NEW | NEW | |||
| | If the SendHoldTimer_Expires (Event 29) occurs, the local | | If the SendHoldTimer_Expires (Event 29) occurs, the local system: | |||
| | system: | ||||
| | | | | |||
| | - (optionally) sends a NOTIFICATION message with the BGP Error | | - (optionally) sends a NOTIFICATION message with the BGP Error | |||
| | Code "Send Hold Timer Expired" if the local system can | | Code "Send Hold Timer Expired" if the local system can | |||
| | determine that doing so will not delay the following actions | | determine that doing so will not delay the following actions | |||
| | in this paragraph, | | in this paragraph, | |||
| | | | | |||
| | - logs an error message in the local system with the BGP Error | | - logs an error message in the local system with the BGP Error | |||
| | Code "Send Hold Timer Expired", | | Code "Send Hold Timer Expired", | |||
| | | | | |||
| | - releases all BGP resources, | | - releases all BGP resources, | |||
| skipping to change at page 5, line 51 ¶ | skipping to change at line 236 ¶ | |||
| | | | | |||
| | - increments the ConnectRetryCounter by 1, | | - increments the ConnectRetryCounter by 1, | |||
| | | | | |||
| | - (optionally) performs peer oscillation damping if the | | - (optionally) performs peer oscillation damping if the | |||
| | DampPeerOscillations attribute is set to TRUE, and | | DampPeerOscillations attribute is set to TRUE, and | |||
| | | | | |||
| | - changes its state to Idle. | | - changes its state to Idle. | |||
| | | | | |||
| | Each time the local system sends a BGP message, it restarts the | | Each time the local system sends a BGP message, it restarts the | |||
| | SendHoldTimer unless the SendHoldTime value is zero or the | | SendHoldTimer unless the SendHoldTime value is zero or the | |||
| | negotiated HoldTime value is zero, in which cases the | | negotiated HoldTime value is zero, in which case the | |||
| | SendHoldTimer is stopped. | | SendHoldTimer is stopped. | |||
| | | | | |||
| | The SendHoldTimer is stopped following any transition out of | | The SendHoldTimer is stopped following any transition out of | |||
| | the Established state as part of the "release all BGP | | the Established state as part of the "release all BGP | |||
| | resources" action. | | resources" action. | |||
| 3.4. Changes to BGP Timers | 4.4. Changes to BGP Timers | |||
| Section 10 of [RFC4271] summarizes BGP Timers. This document adds | Section 10 of [RFC4271] summarizes BGP timers. This document adds | |||
| another optional BGP timer: SendHoldTimer. | another optional BGP timer: SendHoldTimer. | |||
| NEW | NEW | |||
| | SendHoldTime is an FSM attribute that stores the initial value for | | SendHoldTime is an FSM attribute that stores the initial value for | |||
| | the SendHoldTimer. If SendHoldTime is non-zero then it MUST be | | the SendHoldTimer. If SendHoldTime is non-zero, then it MUST be | |||
| | greater than the value of HoldTime, see Section 5 of | | greater than the value of HoldTime; see Section 6 of [RFC9687] for | |||
| | [I-D.ietf-idr-bgp-sendholdtimer] for suggested default values. | | suggested default values. | |||
| 4. Send Hold Timer Expired Error Handling | 5. Send Hold Timer Expired Error Handling | |||
| If the local system does not send any BGP messages within the period | If the local system does not send any BGP messages within the period | |||
| specified in SendHoldTime, then a NOTIFICATION message with the "Send | specified in SendHoldTime, then a NOTIFICATION message with the "Send | |||
| Hold Timer Expired" Error Code MAY be sent and the BGP connection | Hold Timer Expired" Error Code MAY be sent and the BGP connection | |||
| MUST be closed. Additionally, an error MUST be logged in the local | MUST be closed. Additionally, an error MUST be logged in the local | |||
| system, indicating the Send Hold Timer Expired Error Code. | system, indicating the "Send Hold Timer Expired" Error Code. | |||
| 5. Implementation Considerations | 6. Implementation Considerations | |||
| Due to the relative rarity of the failure mode that this | Due to the relative rarity of the failure mode that this | |||
| specification is designed to address, and also the fact that network | specification is designed to address, and also the fact that network | |||
| operators may be unfamiliar with the formal specification of BGP | operators may be unfamiliar with the formal specification of BGP | |||
| fault detection mechanisms such as HoldTimer, it is likely that a | fault detection mechanisms such as HoldTimer, it is likely that a | |||
| large number of operators are unaware of the necessity of an | large number of operators will be unaware of the need for an | |||
| additional mechanism such as SendHoldtimer. | additional mechanism such as SendHoldTimer. | |||
| Accordingly, it is RECOMMENDED that implementations of this | Accordingly, it is RECOMMENDED that implementations of this | |||
| specification enable SendHoldtimer by default, without requiring | specification enable SendHoldTimer by default, without requiring | |||
| additional configuration of the BGP speaking device. | additional configuration of the BGP-speaking device. | |||
| The default value of SendHoldTime for a BGP connection SHOULD be the | The default value of SendHoldTime for a BGP connection SHOULD be the | |||
| greater of: | greater of: | |||
| * 8 minutes; or | * 8 minutes or | |||
| * 2 times the negotiated HoldTime | * 2 times the negotiated HoldTime | |||
| Implementations MAY make the value of SendHoldTime configurable, | Implementations MAY make the value of SendHoldTime configurable, | |||
| either globally or on a per-peer basis, within the constraints set | either globally or on a per-peer basis, within the constraints set | |||
| out in Section 3.4 above. | out in Section 4.4. | |||
| The subcode for NOTIFICATION message "Send Hold Timer Expired" is set | The subcode for NOTIFICATION message "Send Hold Timer Expired" is set | |||
| to 0 and is not used, no additional data is to be appended to the end | to 0 and is not used; no additional data is to be appended to the end | |||
| of a "Send Hold Timer Expired" NOTIFICATION message. | of a "Send Hold Timer Expired" NOTIFICATION message. | |||
| 6. Operational Considerations | 7. Operational Considerations | |||
| When the local system recognizes a remote speaker is not processing | When the local system recognizes that a remote speaker has not | |||
| any BGP messages for the duration of the SendHoldTime, it is likely | processed any BGP messages for the duration of the SendHoldTime, it | |||
| that the local system will not be able to inform the remote peer | is likely that the local system will not be able to inform the remote | |||
| through a NOTIFICATION message as to why the connection is being | peer through a NOTIFICATION message as to why the connection is being | |||
| closed. This documents suggests that an attempt to send a | closed. This document suggests that an attempt to send a | |||
| NOTIFICATION message with the "Send Hold Timer Expired" error code is | NOTIFICATION message with the "Send Hold Timer Expired" Error Code | |||
| still made, if doing so will not delay closing the BGP connection. | still be made, if doing so will not delay closing the BGP connection. | |||
| Meanwhile an error message is logged into the local system. | Meanwhile, an error message is logged in the local system. | |||
| Other mechanisms can be used as well, for example BGP speakers SHOULD | Other mechanisms can be used as well, for example, BGP speakers | |||
| provide this reason as part of their operational state; e.g. | SHOULD provide this reason ("Send Hold Timer Expired") as part of | |||
| bgpPeerLastError in the BGP MIB [RFC4273]. | their operational state (for example, bgpPeerLastError in the BGP MIB | |||
| [RFC4273]). | ||||
| 7. Security Considerations | 8. Security Considerations | |||
| This specification does not change BGP's security characteristics. | This specification does not change BGP's security characteristics. | |||
| Implementing the BGP SendHoldTimer as specified in this document will | Implementing the BGP SendHoldTimer as specified in this document will | |||
| enhance network resilience by terminating connections with | enhance network resilience by terminating connections with | |||
| malfunctioning or overwhelmed remote peers. | malfunctioning or overwhelmed remote peers. | |||
| 8. IANA Considerations | 9. IANA Considerations | |||
| IANA has registered code 8 for "Send Hold Timer Expired" in the "BGP | IANA has registered value 8 for "Send Hold Timer Expired" in the "BGP | |||
| Error (Notification) Codes" registry in the "Border Gateway Protocol | Error (Notification) Codes" registry within the "Border Gateway | |||
| (BGP) Parameters" registry group. | Protocol (BGP) Parameters" registry group. | |||
| 9. Acknowledgements | 10. Acknowledgements | |||
| The authors would like to thank William McCall, Theo de Raadt, John | The authors would like to thank William McCall, Theo de Raadt, John | |||
| Heasley, Nick Hilliard, Jeffrey Haas, Tom Petch, Susan Hares, Keyur | Heasley, Nick Hilliard, Jeffrey Haas, Tom Petch, Susan Hares, Keyur | |||
| Patel, Ben Maddison, Claudio Jeker, and John Scudder for their | Patel, Ben Maddison, Claudio Jeker, and John Scudder for their | |||
| helpful review of this document. | helpful review of this document. | |||
| 10. References | 11. References | |||
| 10.1. Normative References | ||||
| [I-D.ietf-idr-bgp-sendholdtimer] | 11.1. Normative References | |||
| Snijders, J., Cartwright-Cox, B., and Y. Qu, "Border | ||||
| Gateway Protocol 4 (BGP-4) Send Hold Timer", Work in | ||||
| Progress, Internet-Draft, draft-ietf-idr-bgp- | ||||
| sendholdtimer, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-ietf-idr-bgp-sendholdtimer>. | ||||
| [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>. | |||
| [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>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", | [RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)", | |||
| RFC 9293, DOI 10.17487/RFC9293, August 2022, | STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022, | |||
| <https://www.rfc-editor.org/info/rfc9293>. | <https://www.rfc-editor.org/info/rfc9293>. | |||
| 10.2. Informative References | 11.2. Informative References | |||
| [bgpzombies] | [bgpzombies] | |||
| Fontugne, R., "BGP Zombies", April 2019, | Fontugne, R., "BGP Zombies", April 2019, | |||
| <https://labs.ripe.net/author/romain_fontugne/bgp- | <https://labs.ripe.net/author/romain_fontugne/bgp- | |||
| zombies/>. | zombies/>. | |||
| [BIRD] Kubecova, K., "BIRD Internet Routing Daemon", October | ||||
| 2023, <https://gitlab.nic.cz/labs/bird/-/commit/ | ||||
| bcf2327425d4dd96f381b87501cccf943bed606e>. | ||||
| [frr] Lamparter, D., "bgpd: implement SendHoldTimer", May 2022, | ||||
| <https://github.com/FRRouting/frr/pull/11225>. | ||||
| [neo-bgp] Cartwright-Cox, B., "What does bgp.tools support", August | ||||
| 2022, <https://bgp.tools/kb/bgp-support>. | ||||
| [openbgpd] Jeker, C., "bgpd send side hold timer", December 2020, | ||||
| <https://marc.info/?l=openbsd-tech&m=160820754925261&w=2>. | ||||
| [RFC4273] Haas, J., Ed. and S. Hares, Ed., "Definitions of Managed | [RFC4273] Haas, J., Ed. and S. Hares, Ed., "Definitions of Managed | |||
| Objects for BGP-4", RFC 4273, DOI 10.17487/RFC4273, | Objects for BGP-4", RFC 4273, DOI 10.17487/RFC4273, | |||
| January 2006, <https://www.rfc-editor.org/info/rfc4273>. | January 2006, <https://www.rfc-editor.org/info/rfc4273>. | |||
| Appendix A. Implementation status - RFC EDITOR: REMOVE BEFORE | ||||
| PUBLICATION | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of this | ||||
| Internet-Draft, and is based on a proposal described in RFC 7942. | ||||
| The description of implementations in this section is intended to | ||||
| assist the IETF in its decision processes in progressing drafts to | ||||
| RFCs. Please note that the listing of any individual implementation | ||||
| here does not imply endorsement by the IETF. Furthermore, no effort | ||||
| has been spent to verify the information presented here that was | ||||
| supplied by IETF contributors. This is not intended as, and must not | ||||
| be construed to be, a catalog of available implementations or their | ||||
| features. Readers are advised to note that other implementations may | ||||
| exist. | ||||
| According to RFC 7942, "this will allow reviewers and working groups | ||||
| to assign due consideration to documents that have the benefit of | ||||
| running code, which may serve as evidence of valuable experimentation | ||||
| and feedback that have made the implemented protocols more mature. | ||||
| It is up to the individual working groups to use this information as | ||||
| they see fit". | ||||
| * OpenBGPD [openbgpd] | ||||
| * FRRouting [frr] | ||||
| * neo-bgp (bgp.tools) [neo-bgp] | ||||
| * BIRD [BIRD] | ||||
| Patches to recognize error code 8 were merged into OpenBSD's and the- | ||||
| tcpdump-group's tcpdump implementations. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Job Snijders | Job Snijders | |||
| Fastly | Fastly | |||
| Amsterdam | Amsterdam | |||
| Netherlands | Netherlands | |||
| Email: job@fastly.com | Email: job@fastly.com | |||
| Ben Cartwright-Cox | Ben Cartwright-Cox | |||
| Port 179 Ltd | Port 179 Ltd | |||
| skipping to change at page 10, line 4 ¶ | skipping to change at line 373 ¶ | |||
| Fastly | Fastly | |||
| Amsterdam | Amsterdam | |||
| Netherlands | Netherlands | |||
| Email: job@fastly.com | Email: job@fastly.com | |||
| Ben Cartwright-Cox | Ben Cartwright-Cox | |||
| Port 179 Ltd | Port 179 Ltd | |||
| London | London | |||
| United Kingdom | United Kingdom | |||
| Email: ben@benjojo.co.uk | Email: ben@benjojo.co.uk | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Futurewei Technologies | Futurewei Technologies | |||
| Santa Clara, | San Jose, CA 95131 | |||
| United States | United States of America | |||
| Email: yingzhen.ietf@gmail.com | Email: yingzhen.ietf@gmail.com | |||
| End of changes. 64 change blocks. | ||||
| 192 lines changed or deleted | 139 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||