RFC 7885

Seamless Bidirectional Forwarding Detection (S-BFD) for Virtual Circuit Connectivity Verification (VCCV)

πŸ“… published July 2016, from ietf

RFC 7885: Seamless BFD for VCCV ✨

Okay bestie, let's get into it πŸŽ€ This is RFC 7885, titled "Seamless Bidirectional Forwarding Detection (S-BFD) for Virtual Circuit Connectivity Verification (VCCV)." It was written by V. Govindan and C. Pignataro, both from Cisco πŸ’… It's a Standards Track doc, dated July 2016, with ISSN 2070-1721, and it updates RFC 5885 πŸ¦‹ (sequel energy, no cap 😭).


Abstract 🌸

So this doc takes BFD for VCCV from RFC 5885 and glows it up into S-BFD for VCCV πŸ’– It does that by extending the procedures and the CV Types RFC 5885 already defined. It also updates RFC 5885 by extending the CV Type values and the capability selection πŸ”₯

Status of This Memo πŸ“œ

This is an Internet Standards Track doc πŸŽ€ It's a product of the IETF, so it represents the consensus of the IETF community. It got public review and was approved for publication by the IESG πŸ‘‘ If you want more on Internet Standards, check Section 2 of RFC 7841 🧚 Info about the current status, any errata, and how to give feedback lives at http://www.rfc-editor.org/info/rfc7885 πŸ“

Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved ✨

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they're provided without warranty as described in the Simplified BSD License πŸ’œ

Table of Contents πŸ—ΊοΈ

1. Background ......................................................3
2. S-BFD Connectivity Verification .................................3
  2.1. Co-existence of S-BFD and BFD Capabilities .................4
  2.2. S-BFD CV Operation .........................................4
       2.2.1. S-BFD Initiator Operation ...........................4
       2.2.2. S-BFD Reflector Operation ...........................5
              2.2.2.1. Demultiplexing .............................5
              2.2.2.2. Transmission of Control Packets ............5
              2.2.2.3. Advertisement of Target
                       Discriminators Using LDP ...................5
              2.2.2.4. Advertisement of Target
                       Discriminators Using L2TP ..................6
              2.2.2.5. Provisioning of Target Discriminators ......6
  2.3. S-BFD Encapsulation ........................................6
3. Capability Selection ............................................7
4. Security Considerations .........................................7
5. IANA Considerations .............................................8
  5.1. MPLS CV Types for the VCCV Interface Parameters Sub-TLV ....8
  5.2. L2TPv3 CV Types for the VCCV Capability AVP ................8
  5.3. PW Associated Channel Type .................................9
6. References ......................................................9
  6.1. Normative References .......................................9
  6.2. Informative References ....................................10
Acknowledgements ..................................................11
Contributors ......................................................11
Authors' Addresses ................................................11

1. Background 🧠

BFD for VCCV [RFC5885] defines the CV Types for BFD using VCCV, the protocol operation, and the required packet encapsulation formats. This doc extends those procedures and CV Type values so that Seamless BFD (S-BFD) [RFC7880] can work for VCCV πŸ¦‹

The new S-BFD CV Types are Pseudowire (PW) demultiplexer agnostic, which means they apply to both MPLS and Layer Two Tunneling Protocol version 3 (L2TPv3) PW demultiplexers 🌸 This doc is all about S-BFD VCCV operation over Single-Segment PWs (SS-PWs). Here's the scope:

  • This specification describes procedures for S-BFD asynchronous mode only.
  • S-BFD Echo mode is outside the scope of this specification.
  • S-BFD operation for fault detection and status signaling is outside the scope of this specification.

This document specifies the use of a single S-BFD Discriminator per PW. There are cases where multiple S-BFD Discriminators per PW can be useful πŸ‘€ One example is using different S-BFD Discriminators per Flow within a Flow-Aware Transport (FAT) PW [RFC6391]. The catch is that the mapping between Flows and discriminators is a prerequisite. FAT PWs can be supported as described in Section 7 of [RFC6391], which covers Operations, Administration, and Maintenance (OAM) considerations for FAT PWs πŸ’…

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 [RFC2119] πŸ“–

2. S-BFD Connectivity Verification πŸ’«

The S-BFD protocol gives you continuity check services by monitoring the S-BFD Control packets sent and received over the VCCV channel of the PW. The term "Connectivity Verification" (CV) is used throughout this document to stay consistent with [RFC5885] 🫢

This section defines the CV Types for S-BFD. It also defines the procedures for the S-BFD reflector and S-BFD initiator operation πŸ”₯

Two CV Types are defined for S-BFD. Table 1 sums them up, grouped by encapsulation (with IP/UDP headers or without them), for fault detection only. S-BFD for fault detection and status signaling is outside the scope of this specification πŸ“

+-----------------------------------------+-----------+-------------+
|                                         |   Fault   |    Fault    |
|                                         | Detection |  Detection  |
|                                         |    Only   |  and Status |
|                                         |           |  Signaling  |
+-----------------------------------------+-----------+-------------+
| S-BFD IP/UDP encapsulation (with IP/UDP |    0x40   |     N/A     |
|                                headers) |           |             |
|                                         |           |             |
|   S-BFD PW-ACH encapsulation when using |    0x80   |     N/A     |
|   MPLS PW or S-BFD L2-Specific Sublayer |           |             |
| (L2SS) encapsulation when using L2TP PW |           |             |
|                (without IP/UDP headers) |           |             |
+-----------------------------------------+-----------+-------------+

                Table 1: Bitmask Values for S-BFD CV Types

IANA has assigned two new bits to indicate S-BFD operation πŸŽ€

2.1. Co-existence of S-BFD and BFD Capabilities 🀝

Since the CV Types for S-BFD and BFD are unique, BFD and S-BFD capabilities can be advertised at the same time πŸ¦‹

2.2. S-BFD CV Operation βš™οΈ

2.2.1. S-BFD Initiator Operation πŸš€

The S-BFD initiator SHOULD bootstrap S-BFD sessions after it learns the discriminator of the remote target identifier. There are a few ways to get there, for example (this list is not exhaustive, so there could be more πŸ‘€):

  1. Advertisements of S-BFD Discriminators made through a PW signaling protocol, like AVPs/TLVs defined in L2TP/LDP.
  2. Provisioning of S-BFD Discriminators by manual configuration of the Provider Edge (PE) or L2TP Control Connection Endpoints (LCCEs).
  3. Assignment of S-BFD Discriminators by a controller.
  4. Probing remote S-BFD Discriminators through a mechanism such as S-BFD Alert Discriminators [SBFD-ALERT-DISCRIM].

The S-BFD initiator operation MUST be done as specified in Section 7.3 of [RFC7880] πŸ’–

2.2.2. S-BFD Reflector Operation πŸͺž

When a PW signaling protocol such as LDP or L2TPv3 is in use, the S-BFD reflector can advertise its target discriminators using that signaling protocol. When static PWs are in use, the target discriminator of S-BFD needs to be provisioned on the S-BFD initiator nodes 🧚

All point-to-point PWs are bidirectional, so the S-BFD reflector reflects the S-BFD packet back to the initiator using the VCCV channel of the reverse direction of the PW on which it was received πŸ”

The reflector has enough information to reflect the S-BFD Async packet it received back to the S-BFD initiator, using the PW context (for example, fields of the L2TPv3 headers) ✨

The S-BFD reflector operation for BFD protocol fields MUST be performed as specified in [RFC7880] 🫢

2.2.2.1. Demultiplexing πŸ”

Demultiplexing of S-BFD is achieved using the PW context, following the procedures in Section 7.1 of [RFC7880] πŸ’…

2.2.2.2. Transmission of Control Packets πŸ“€

S-BFD reflector procedures as described in [RFC7880] apply for S-BFD using VCCV 🌸

2.2.2.3. Advertisement of Target Discriminators Using LDP πŸ•°οΈ

The advertisement of the target discriminator using LDP is left for further study πŸ™ˆ It should be noted that S-BFD can still be used with signaled PWs over an MPLS Packet Switched Network (PSN). You can do that by provisioning the S-BFD Discriminators, or by learning them some other way πŸ’œ

2.2.2.4. Advertisement of Target Discriminators Using L2TP πŸ“‘

The S-BFD reflector MUST use the AVP defined in [RFC7886] for advertising its target discriminators using L2TP πŸ’…

2.2.2.5. Provisioning of Target Discriminators πŸ› οΈ

S-BFD target discriminators MAY be provisioned when static PWs are used πŸ“

2.3. S-BFD Encapsulation πŸ“¦

Unless specified differently below, the encapsulation of S-BFD packets is identical to the method in Section 3.2 of [RFC5885] and in [RFC5880] for encapsulating BFD packets πŸŽ€

  • IP/UDP BFD encapsulation (BFD with IP/UDP headers):
    • The destination UDP port for the IP-encapsulated S-BFD packet MUST be 7784 [RFC7881] 🌈
    • The contents of the S-BFD Control packets MUST be set according to Section 7.3.2 of [RFC7880] πŸ’–
    • The Time to Live (TTL) (IPv4) or Hop Limit (IPv6) is set to 255 πŸ”₯
  • PW-ACH/L2SS BFD encapsulation (BFD without IP/UDP headers):
    • The encapsulation of S-BFD packets using this format MUST be performed according to Section 3.2 of [RFC5885], with the exception of the value for the PW-ACH/L2SS type πŸ¦‹
    • When VCCV carries PW-ACH/L2SS-encapsulated S-BFD (i.e., "raw" S-BFD), the Channel Type of PW-ACH (the PW Control Word (CW)) or L2SS MUST be set to 0x0008 to indicate "S-BFD Control, PW-ACH/L2SS-encapsulated" (i.e., S-BFD without IP/UDP headers; see Section 5.3). This is done so the encapsulated S-BFD payload can be identified when the VCCV control channel is demultiplexed 🧚

3. Capability Selection ✨

okay so bestie, this is where the two ends of the PW pick a CV Type together πŸŽ€ When multiple S-BFD CV Types are advertised, and after applying the rules in [RFC5885], they figure out which set both ends of the PW have in common πŸ¦‹ If they share more than one S-BFD CV Type, they check the list below in order, from the lowest list number to the highest, and the CV Type with the lowest list number wins πŸ‘‘

  1. 0x40 - S-BFD IP/UDP-encapsulated, for PW Fault Detection only.
  2. 0x80 - S-BFD PW-ACH/L2SS-encapsulated (without IP/UDP headers), for PW Fault Detection only.

the order for picking between S-BFD and BFD is next πŸ’… it's a whole matrix, and honestly it's giving organized 😭

+---------------------------+---------+-----------+-----------------+
|  Advertised capabilities  |   BFD   |   S-BFD   |  Both S-BFD and |
|         of PE1/PE2        |   Only  |    Only   |       BFD       |
+---------------------------+---------+-----------+-----------------+
|          BFD Only         |   BFD   |    None   |     BFD Only    |
|                           |         |           |                 |
|         S-BFD Only        |   None  |   S-BFD   |    S-BFD Only   |
|                           |         |           |                 |
|     Both S-BFD and BFD    |   BFD   |   S-BFD   |  Both S-BFD and |
|                           |   Only  |    Only   |       BFD       |
+---------------------------+---------+-----------+-----------------+

Table 2: Capability Selection Matrix for BFD and S-BFD 🌸

4. Security Considerations πŸ”₯

okay this section is SERIOUS bestie, so grab your snack and pay attention 😭 Security considerations for VCCV are addressed in Section 10 of [RFC5085]. The introduction of the S-BFD CV Types does not present any new security risks for VCCV. Implementations of the additional CV Types defined here are subject to the same security considerations as the ones in [RFC5085] as well as [RFC7880].

The IP/UDP encapsulation of S-BFD makes use of the TTL / Hop Limit procedures described in the Generalized TTL Security Mechanism (GTSM) specification [RFC5082] as a security mechanism. πŸ›‘οΈ

ngl that's the big one: this spec doesn't raise any additional security issues beyond these 🫢

5. IANA Considerations 🌈

5.1. MPLS CV Types for the VCCV Interface Parameters Sub-TLV πŸ¦‹

the VCCV Interface Parameters Sub-TLV codepoint is defined in [RFC4446], and the "MPLS VCCV Connectivity Verification (CV) Types" registry is defined in [RFC5085] ✨ This section lists the new S-BFD CV Types.

IANA has augmented the "MPLS VCCV Connectivity Verification (CV) Types" registry in the "Pseudowire Name Spaces (PWE3)" registry [IANA-PWE3]. These are bitfield values, and the CV Type values are specified in Section 2 of this document. slay πŸ’–

   MPLS VCCV Connectivity Verification (CV) Types:

   Bit (Value)  Description                       Reference
   ===========  ===========                       ==============
   6 (0x40)     S-BFD IP/UDP-encapsulated,        RFC 7885
                for PW Fault Detection only

   7 (0x80)     S-BFD PW-ACH-encapsulated,        RFC 7885
                for PW Fault Detection only

5.2. L2TPv3 CV Types for the VCCV Capability AVP πŸ“

this part adds new S-BFD "L2TPv3 Connectivity Verification (CV) Types" to the existing "VCCV Capability AVP (Attribute Type 96) Values" registry, which lives in the "Layer Two Tunneling Protocol 'L2TP'" registry [IANA-L2TP]. IANA assigned the following L2TPv3 Connectivity Verification (CV) Types in the "VCCV Capability AVP (Attribute Type 96) Values" registry, and it's so clean 🧚

   VCCV Capability AVP (Attribute Type 96) Values
   ----------------------------------------------

   L2TPv3 Connectivity Verification (CV) Types:

   Bit (Value)  Description                  Reference
   ===========  ===========                  ==============
   6 (0x40)     S-BFD IP/UDP-encapsulated,   RFC 7885
                for PW Fault Detection only

   7 (0x80)     S-BFD L2SS-encapsulated,     RFC 7885
                for PW Fault Detection only

5.3. PW Associated Channel Type πŸ’œ

as per the IANA considerations in [RFC5586], IANA allocated a Channel Type in the "MPLS Generalized Associated Channel (G-ACh) Types (including Pseudowire Associated Channel Types)" registry [IANA-G-ACh] πŸ’… IANA also assigned a new Pseudowire Associated Channel Type value, and it looks like this:

 Value   Description                          Reference
 ------  ----------------------------------   ---------------
 0x0008  S-BFD Control, PW-ACH/L2SS           RFC 7885
         encapsulation
         (without IP/UDP Headers)

6. References πŸ“š

6.1. Normative References πŸŽ€

these are the must-reads, so save them to your bookmarks bestie πŸ”–

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <http://www.rfc-editor.org/info/rfc2119>.

[RFC4446]  Martini, L., "IANA Allocations for Pseudowire Edge to Edge
           Emulation (PWE3)", BCP 116, RFC 4446,
           DOI 10.17487/RFC4446, April 2006,
           <http://www.rfc-editor.org/info/rfc4446>.

[RFC5082]  Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C.
           Pignataro, "The Generalized TTL Security Mechanism
           (GTSM)", RFC 5082, DOI 10.17487/RFC5082, October 2007,
           <http://www.rfc-editor.org/info/rfc5082>.

[RFC5085]  Nadeau, T., Ed., and C. Pignataro, Ed., "Pseudowire
           Virtual Circuit Connectivity Verification (VCCV): A
           Control Channel for Pseudowires", RFC 5085,
           DOI 10.17487/RFC5085, December 2007,
           <http://www.rfc-editor.org/info/rfc5085>.

[RFC5586]  Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed.,
           "MPLS Generic Associated Channel", RFC 5586,
           DOI 10.17487/RFC5586, June 2009,
           <http://www.rfc-editor.org/info/rfc5586>.

[RFC5880]  Katz, D. and D. Ward, "Bidirectional Forwarding Detection
           (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
           <http://www.rfc-editor.org/info/rfc5880>.

[RFC5885]  Nadeau, T., Ed., and C. Pignataro, Ed., "Bidirectional
           Forwarding Detection (BFD) for the Pseudowire Virtual
           Circuit Connectivity Verification (VCCV)", RFC 5885,
           DOI 10.17487/RFC5885, June 2010,
           <http://www.rfc-editor.org/info/rfc5885>.

[RFC7880]  Pignataro, C., Ward, D., Akiya, N., Bhatia, M., and S.
           Pallagatti, "Seamless Bidirectional Forwarding Detection
           (S-BFD)", RFC 7880, DOI 10.17487/RFC7880, July 2016,
           <http://www.rfc-editor.org/info/rfc7880>.

[RFC7881]  Pignataro, C., Ward, D., and N. Akiya, "Seamless
           Bidirectional Forwarding Detection (S-BFD) for IPv4, IPv6,
           and MPLS", RFC 7881, DOI 10.17487/RFC7881, July 2016,
           <http://www.rfc-editor.org/info/rfc7881>.

[RFC7886]  Govindan, V. and C. Pignataro, "Advertising Seamless
           Bidirectional Forwarding Detection (S-BFD) Discriminators
           in the Layer Two Tunneling Protocol Version 3 (L2TPv3)",
           RFC 7886, DOI 10.17487/RFC7886, July 2016,
           <http://www.rfc-editor.org/info/rfc7886>.

6.2. Informative References πŸ¦‹

these ones are good background reading, not required, but I'm obsessed with them πŸ™ˆ

[IANA-G-ACh]
           Internet Assigned Numbers Authority, "MPLS Generalized
           Associated Channel (G-ACh) Types (including Pseudowire
           Associated Channel Types)",
           <http://www.iana.org/assignments/g-ach-parameters>.

[IANA-L2TP]
           Internet Assigned Numbers Authority, "Layer Two Tunneling
           Protocol 'L2TP'",
           <http://www.iana.org/assignments/l2tp-parameters>.

[IANA-PWE3]
           Internet Assigned Numbers Authority, "Pseudowire Name
           Spaces (PWE3)",
           <http://www.iana.org/assignments/pwe3-parameters>.

[RFC6391]  Bryant, S., Ed., Filsfils, C., Drafz, U., Kompella, V.,
           Regan, J., and S. Amante, "Flow-Aware Transport of
           Pseudowires over an MPLS Packet Switched Network",
           RFC 6391, DOI 10.17487/RFC6391, November 2011,
           <http://www.rfc-editor.org/info/rfc6391>.

[SBFD-ALERT-DISCRIM]
           Akiya, N., Pignataro, C., and D. Ward, "Seamless
           Bidirectional Forwarding Detection (S-BFD) Alert
           Discriminator", Work in Progress,
           draft-akiya-bfd-seamless-alert-discrim-03, October 2014.

Acknowledgements πŸ’–

the authors want to thank Nobo Akiya, Stewart Bryant, Greg Mirsky, Pawel Sowinski, Yuanlong Jiang, Andrew Malis, and Alexander Vainshtein for giving input, doing thorough reviews, and leaving useful comments 🫢 the squad really showed up πŸ‘‘

Contributors ✨

Mallik Mudigonda, from Cisco Systems, Inc. 🌸 Email: mmudigon@cisco.com

Authors' Addresses 🧚

Vengada Prasad Govindan, from Cisco Systems, Inc. πŸ’… Email: venggovi@cisco.com

Carlos Pignataro, from Cisco Systems, Inc. πŸŽ€ Email: cpignata@cisco.com

πŸ“¦ where this page comes from