| rfc9747v1.txt | rfc9747.txt | |||
|---|---|---|---|---|
| skipping to change at line 190 ¶ | skipping to change at line 190 ¶ | |||
| BFD Echo packets sent from device A, the one-hop-away BFD peer device | BFD Echo packets sent from device A, the one-hop-away BFD peer device | |||
| B immediately loops them back by normal IP forwarding. This allows | B immediately loops them back by normal IP forwarding. This allows | |||
| device A to rapidly detect a connectivity loss to device B. Note | device A to rapidly detect a connectivity loss to device B. Note | |||
| that device B would not intercept any received Unaffiliated BFD Echo | that device B would not intercept any received Unaffiliated BFD Echo | |||
| packet or parse any BFD protocol field within the Unaffiliated BFD | packet or parse any BFD protocol field within the Unaffiliated BFD | |||
| Echo packet. | Echo packet. | |||
| An Unaffiliated BFD Echo session is not actually a BFD session | An Unaffiliated BFD Echo session is not actually a BFD session | |||
| because there is no coordination of BFD protocol state between the | because there is no coordination of BFD protocol state between the | |||
| two link ends: the remote end does not support BFD and so cannot | two link ends: the remote end does not support BFD and so cannot | |||
| engage in a BFD session. The local end as an initiator may regard | engage in a BFD session. From the standpoint of the local end (as an | |||
| the Unaffiliated BFD Echo session as a BFD session from its own | initiator), the Unaffiliated BFD Echo session may be regarded as a | |||
| standpoint. | BFD session. | |||
| For the Unaffiliated Echo procedure, an Unaffiliated BFD Echo session | For the Unaffiliated Echo procedure, an Unaffiliated BFD Echo session | |||
| is established on device A. The session MUST adhere to the BFD state | is established on device A. The session MUST adhere to the BFD state | |||
| machine specified in Section 6.2 of [RFC5880], with the exception | machine specified in Section 6.2 of [RFC5880], with the exception | |||
| that the received state is not derived from BFD Control packets | that the received state is not derived from BFD Control packets | |||
| originating from the remote system, but rather from packets that are | originating from the remote system, but rather from packets that are | |||
| generated by the local system and looped back from the remote system. | generated by the local system and looped back from the remote system. | |||
| Consequently, the AdminDown state is not utilized in Unaffiliated BFD | Consequently, the AdminDown state is not utilized in Unaffiliated BFD | |||
| Echo. | Echo. | |||
| BFD Control packets are transmitted and received as Unaffiliated BFD | BFD Control packets are transmitted and received as Unaffiliated BFD | |||
| Echo packets, using UDP destination port 3785, as defined in | Echo packets, using UDP destination port 3785, as defined in | |||
| [RFC5881]. The standard procedures for BFD Asynchronous sessions are | [RFC5881]. The standard procedures for BFD Asynchronous sessions are | |||
| applied to the looped BFD Control packets, including packet | applied to the looped BFD Control packets, including packet | |||
| validation and authentication, in accordance with [RFC5880]. | validation and authentication, in accordance with [RFC5880]. | |||
| Once an Unaffiliated BFD Echo session is created on device A, it | Once an Unaffiliated BFD Echo session is created on device A, it | |||
| starts sending Unaffiliated BFD Echo packets. Unaffiliated BFD Echo | starts sending Unaffiliated BFD Echo packets. Unaffiliated BFD Echo | |||
| packets with zeroed "Your Discriminator" field are demultiplexed to | packets with zeroed "Your Discriminator" field are demultiplexed to | |||
| the proper session based on the source IP address or UDP source port, | the proper session based on the source IP address or UDP source port. | |||
| once the remote system loops back the local discriminator, all | After the remote system loops back the local discriminator, all | |||
| further received packets are demultiplexed based on the "Your | further received packets are demultiplexed based on the "Your | |||
| Discriminator" field only, which is conformed to the procedure | Discriminator" field only, which conforms to the procedure specified | |||
| specified in Section 6.3 of [RFC5880]. An Unaffiliated BFD Echo | in Section 6.3 of [RFC5880]. An Unaffiliated BFD Echo packet follows | |||
| packet follows the same encapsulation rules as for a BFD Echo packet | the same encapsulation rules as for a BFD Echo packet as specified in | |||
| as specified in Section 4 of [RFC5881]. All Unaffiliated BFD Echo | Section 4 of [RFC5881]. All Unaffiliated BFD Echo packets for the | |||
| packets for the session MUST be sent with a TTL or Hop Limit value of | session MUST be sent with a TTL or Hop Limit value of 255. Received | |||
| 255. Received packets MUST have a TTL or Hop Limit value of 254 | packets MUST have a TTL or Hop Limit value of 254 (similar to | |||
| (similar to Appendix A of [RFC5082] to verify against a configured | Appendix A of [RFC5082] to verify against a configured number of | |||
| number of hops); otherwise, the received packets MUST be dropped. | hops); otherwise, the received packets MUST be dropped. | |||
| In the context of an Unaffiliated BFD Echo packet, the "Desired Min | In the context of an Unaffiliated BFD Echo packet, the "Desired Min | |||
| TX Interval" and "Required Min RX Interval" fields, as defined in | TX Interval" and "Required Min RX Interval" fields, as defined in | |||
| [RFC5880], MUST be populated with a specific value to prevent the | [RFC5880], MUST be populated with a specific value to prevent the | |||
| potential exposure of uninitialized memory. It is RECOMMENDED that | potential exposure of uninitialized memory. It is RECOMMENDED that | |||
| these fields be set to a value of 1 second (1,000,000 microseconds). | these fields be set to a value of 1 second (1,000,000 microseconds). | |||
| However, upon receipt, these values MUST be ignored and MUST NOT be | However, upon receipt, these values MUST be ignored and MUST NOT be | |||
| used in the calculation of the Detection Time. | used in the calculation of the Detection Time. | |||
| The "Required Min Echo RX Interval" field, as defined in [RFC5880], | The "Required Min Echo RX Interval" field, as defined in [RFC5880], | |||
| skipping to change at line 252 ¶ | skipping to change at line 252 ¶ | |||
| by default on hosts. The method for provisioning device B to loop | by default on hosts. The method for provisioning device B to loop | |||
| back Unaffiliated BFD Echo packets is outside the scope of this | back Unaffiliated BFD Echo packets is outside the scope of this | |||
| document. | document. | |||
| Similar to what's specified in [RFC5880], the Unaffiliated BFD Echo | Similar to what's specified in [RFC5880], the Unaffiliated BFD Echo | |||
| session begins with the periodic, slow transmission of Unaffiliated | session begins with the periodic, slow transmission of Unaffiliated | |||
| BFD Echo packets. The slow transmission rate should be no greater | BFD Echo packets. The slow transmission rate should be no greater | |||
| than one packet per second, until the session on device A is Up. | than one packet per second, until the session on device A is Up. | |||
| After the session is Up, the provisioned transmission interval is | After the session is Up, the provisioned transmission interval is | |||
| used. When the Unaffiliated BFD Echo session on device A goes Down, | used. When the Unaffiliated BFD Echo session on device A goes Down, | |||
| the slow transmission rate is resumed. The "Detect Mult" defined in | the slow transmission rate is resumed. The "Detect Mult" field | |||
| [RFC5880] MUST be set to a value provisioned on device A. When the | defined in [RFC5880] MUST be set to a value provisioned on device A. | |||
| bfd.SessionState is Up and a "Detect Mult" number of Unaffiliated BFD | When the bfd.SessionState is Up and a "Detect Mult" number of | |||
| Echo packets have not arrived at device A as they should, the device | Unaffiliated BFD Echo packets have not arrived at device A as they | |||
| A "MUST set bfd.SessionState to Down and bfd.LocalDiag to 2 (Echo | should, the device A "MUST set bfd.SessionState to Down and | |||
| Function Failed)", as specified in Section 6.8.5 of [RFC5880]. | bfd.LocalDiag to 2 (Echo Function Failed)", as specified in | |||
| Section 6.8.5 of [RFC5880]. | ||||
| In summary, the Unaffiliated BFD Echo packet reuses the format of the | In summary, the Unaffiliated BFD Echo packet reuses the format of the | |||
| BFD Control packet defined in [RFC5880], and the fields within the | BFD Control packet defined in [RFC5880], and the fields within the | |||
| Unaffiliated BFD Echo packet are populated as follows: | Unaffiliated BFD Echo packet are populated as follows: | |||
| * My Discriminator: MUST be set to the provisioned local | * My Discriminator: MUST be set to the provisioned local | |||
| discriminator. | discriminator. | |||
| * Your Discriminator: MUST initially be set to 0, and then MUST be | * Your Discriminator: MUST initially be set to 0, and then MUST be | |||
| set to the value of "My Discriminator" looped back from the remote | set to the value of "My Discriminator" looped back from the remote | |||
| skipping to change at line 418 ¶ | skipping to change at line 419 ¶ | |||
| The 1st and 2nd paragraphs of Section 6.8.9 of [RFC5880] are updated | The 1st and 2nd paragraphs of Section 6.8.9 of [RFC5880] are updated | |||
| as below: | as below: | |||
| OLD TEXT | OLD TEXT | |||
| | BFD Echo packets MUST NOT be transmitted when bfd.SessionState is | | BFD Echo packets MUST NOT be transmitted when bfd.SessionState is | |||
| | not Up. BFD Echo packets MUST NOT be transmitted unless the last | | not Up. BFD Echo packets MUST NOT be transmitted unless the last | |||
| | BFD Control packet received from the remote system contains a | | BFD Control packet received from the remote system contains a | |||
| | nonzero value in Required Min Echo RX Interval. | | nonzero value in Required Min Echo RX Interval. | |||
| | | ||||
| | BFD Echo packets MAY be transmitted when bfd.SessionState is Up. | ||||
| | The interval between transmitted BFD Echo packets MUST NOT be less | ||||
| | than the value advertised by the remote system in Required Min | ||||
| | Echo RX Interval, except as follows: [...] | ||||
| NEW TEXT | NEW TEXT | |||
| | When a system is using the Echo function with either Asynchronous | | When a system is using the Echo function with either Asynchronous | |||
| | or Demand mode, BFD Echo packets MUST NOT be transmitted when | | or Demand mode, BFD Echo packets MUST NOT be transmitted when | |||
| | bfd.SessionState is not Up, and BFD Echo packets MUST NOT be | | bfd.SessionState is not Up, and BFD Echo packets MUST NOT be | |||
| | transmitted unless the last BFD Control packet received from the | | transmitted unless the last BFD Control packet received from the | |||
| | remote system contains a nonzero value in Required Min Echo RX | | remote system contains a nonzero value in Required Min Echo RX | |||
| | Interval. | | Interval. | |||
| | | ||||
| OLD TEXT | ||||
| | BFD Echo packets MAY be transmitted when bfd.SessionState is Up. | ||||
| | The interval between transmitted BFD Echo packets MUST NOT be less | ||||
| | than the value advertised by the remote system in Required Min | ||||
| | Echo RX Interval... | ||||
| NEW TEXT | ||||
| | When a system is using the Echo function with either Asynchronous | | When a system is using the Echo function with either Asynchronous | |||
| | or Demand mode, BFD Echo packets MAY be transmitted when | | or Demand mode, BFD Echo packets MAY be transmitted when | |||
| | bfd.SessionState is Up, and the interval between transmitted BFD | | bfd.SessionState is Up, and the interval between transmitted BFD | |||
| | Echo packets MUST NOT be less than the value advertised by the | | Echo packets MUST NOT be less than the value advertised by the | |||
| | remote system in Required Min Echo RX Interval... | | remote system in Required Min Echo RX Interval, except as follows: | |||
| | [...] | ||||
| 4. Operational Considerations | 4. Operational Considerations | |||
| All operational considerations from [RFC5880] apply. Since this | All operational considerations from [RFC5880] apply. Since this | |||
| mechanism leverages existing BFD machinery, particularly periodic | mechanism leverages existing BFD machinery, particularly periodic | |||
| pacing of traffic based on configuration, there's no real possibility | pacing of traffic based on configuration, there's no real possibility | |||
| to create congestion. Moreover, creating congestion would be | to create congestion. Moreover, creating congestion would be | |||
| counterproductive to check the bidirectional connectivity. | counterproductive to checking the bidirectional connectivity. | |||
| Some devices that would benefit from the use of BFD may be unable to | Some devices that would benefit from the use of BFD may be unable to | |||
| support the full BFD protocol. Examples of such devices include | support the full BFD protocol. Examples of such devices include | |||
| servers running virtual machines, or Internet of Things (IoT) | servers running virtual machines, or Internet of Things (IoT) | |||
| devices. By using Unaffiliated BFD Echo, these devices only need to | devices. By using Unaffiliated BFD Echo, these devices only need to | |||
| support a basic loopback function. | support a basic loopback function. | |||
| As specified in Section 2 of this document, some configuration is | As specified in Section 2 of this document, some configuration is | |||
| needed to make the Unaffiliated BFD Echo work, although the | needed to make the Unaffiliated BFD Echo work, although the | |||
| configuration won't go beyond the scope of [RFC5880]. At a BFD- | configuration won't go beyond the scope of [RFC5880]. At a BFD- | |||
| enabled local system, the Unaffiliated BFD Echo session can coexist | enabled local system, the Unaffiliated BFD Echo session can coexist | |||
| with another type of BFD session. In that scenario, the remote | with other types of BFD sessions. In that scenario, the remote | |||
| system for the Unaffiliated BFD Echo session must be different from | system for the Unaffiliated BFD Echo session must be different from | |||
| the remote system for the other type of BFD session, and the local | the remote system for any other type of BFD session, and the local | |||
| system's discriminators for different BFD sessions must be different. | system's discriminators for different BFD sessions must be different. | |||
| At the same time, it's not necessary for the local system to | At the same time, it's not necessary for the local system to | |||
| differentiate the Unaffiliated BFD Echo session from the other type | differentiate the Unaffiliated BFD Echo session from the other types | |||
| of BFD session. | of BFD sessions. | |||
| 5. Security Considerations | 5. Security Considerations | |||
| All security considerations from [RFC5880] and [RFC5881] apply. | All security considerations from [RFC5880] and [RFC5881] apply. | |||
| Unaffiliated BFD Echo requires the remote device to loop Unaffiliated | Unaffiliated BFD Echo requires the remote device to loop Unaffiliated | |||
| BFD Echo packets. In order to provide this service, the remote | BFD Echo packets. In order to provide this service, the remote | |||
| device cannot make use of Unicast Strict Reverse Path Forwarding | device cannot make use of Unicast Strict Reverse Path Forwarding | |||
| (RPF) [RFC3704], otherwise the Unaffiliated BFD Echo packets might | (RPF) [RFC3704], otherwise the Unaffiliated BFD Echo packets might | |||
| not pass the RPF check at the remote device. | not pass the RPF check at the remote device. | |||
| skipping to change at line 524 ¶ | skipping to change at line 522 ¶ | |||
| [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>. | |||
| 7.2. Informative References | 7.2. Informative References | |||
| [BBF-TR-146] | [BBF-TR-146] | |||
| Broadband Forum, "TR-146: Subscriber Sessions", Broadband | Broadband Forum, "TR-146: Subscriber Sessions", Broadband | |||
| Forum Technical Report, TR-146, Issue 1, May 2013, | Forum Technical Report, TR-146, Issue 1, May 2013, | |||
| <https://www.broadband-forum.org/technical/download/TR- | <https://www.broadband-forum.org/pdfs/tr-146-1-0-0.pdf>. | |||
| 146.pdf>. | ||||
| [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed | |||
| Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March | |||
| 2004, <https://www.rfc-editor.org/info/rfc3704>. | 2004, <https://www.rfc-editor.org/info/rfc3704>. | |||
| [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. | [RFC5082] Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. | |||
| Pignataro, "The Generalized TTL Security Mechanism | Pignataro, "The Generalized TTL Security Mechanism | |||
| (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007, | (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007, | |||
| <https://www.rfc-editor.org/info/rfc5082>. | <https://www.rfc-editor.org/info/rfc5082>. | |||
| End of changes. 12 change blocks. | ||||
| 37 lines changed or deleted | 34 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||