RFC 5641

Layer 2 Tunneling Protocol Version 3 (L2TPv3) Extended Circuit Status Values

๐Ÿ“… published August 2009, from ietf

RFC 5641: Layer 2 Tunneling Protocol Version 3 (L2TPv3) Extended Circuit Status Values ๐ŸŽ€

okay bestie, the title block tea โ˜• This one's by N. McGill and C. Pignataro, both at Cisco Systems ๐Ÿ’… It's a Standards Track doc from August 2009, and it updates RFC 3931, RFC 4349, RFC 4454, RFC 4591, and RFC 4719 ๐Ÿซถ The header doesn't list anything it obsoletes.

Abstract โœจ

This doc adds more L2TPv3 bit values for the "Circuit Status" Attribute Value Pair (AVP) ๐Ÿฆ‹ Those bits let you spot finer-grained error states for Attachment Circuits (ACs) and pseudowires (PWs). It also generalizes the Active bit and deprecates the use of the New bit in the Circuit Status AVP. It updates RFC 3931, RFC 4349, RFC 4454, RFC 4591, and RFC 4719 too.

Status of This Memo ๐Ÿ“œ

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright (c) 2009 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 in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

Table of Contents ๐Ÿ“š

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
  1.1.  Specification of Requirements  . . . . . . . . . . . . . .  2
  1.2.  Abbreviations  . . . . . . . . . . . . . . . . . . . . . .  3
2.  L2TPv3 Extended Circuit Status Values  . . . . . . . . . . . .  3
3.  Circuit Status Usage and Clarifications  . . . . . . . . . . .  7
4.  Updates to Existing RFCs . . . . . . . . . . . . . . . . . . .  8
5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9
8.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  9
  8.1.  Normative References . . . . . . . . . . . . . . . . . . .  9
  8.2.  Informative References . . . . . . . . . . . . . . . . . . 10

1. Introduction ๐ŸŒธ

Right now, the L2TPv3 Circuit Status AVP [RFC3931] can only tell you whether an access circuit is UP or DOWN ๐Ÿ™ˆ That's fine, but a finer granularity is often useful for figuring out which direction the fault is in. MPLS-based pseudowires already have this, and it's used in the pseudowire control protocol that runs over the Label Distribution Protocol (LDP). See Section 3.5 of [RFC4446] and Section 5.4.2 of [RFC4447] โœจ

It's also useful, in session-level redundancy scenarios, to be able to say that a pseudowire is in a standby state ๐Ÿงš In that state it's fully established by signaling and allows Operations, Administration, and Maintenance, but it isn't switching data yet. MPLS-based pseudowires using LDP can already do this too, see [PREF-FWD] ๐Ÿ’œ

This document adds extended circuit status bit values for L2TPv3, and it does it in a way that stays backwards compatible with the current Circuit Status AVP ๐Ÿฆ‹ These new bits apply to all pseudowire types that use the Circuit Status AVP. Lowkey the best glow-up ๐Ÿ”ฅ

1.1. Specification of Requirements

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

1.2. Abbreviations

Here are the abbreviations used in this document and in the documents it updates. L2TPv3 Control Message Types are listed in Section 6 of [RFC3931] ๐Ÿ“

  AC    Attachment Circuit
  AVP   Attribute Value Pair
  LCCE  L2TP Control Connection Endpoint
  NNI   Network-Network Interface
  PE    Provider Edge
  PSN   Packet Switched Network
  PW    Pseudowire

To be continuedโ€ฆ ๐Ÿซถ Part 2 starts with Section 2, the L2TPv3 Extended Circuit Status Values, and it's where the new bits actually live ๐Ÿ‘‘

2. L2TPv3 Extended Circuit Status Values โœจ

Okay bestie, the Circuit Status AVP is the one that tells the other side what's happening with the circuit ๐ŸŽ€ It shows up in ICRQ, ICRP, ICCN, OCRQ, OCRP, OCCN, and SLI messages, and its Attribute Type is 71. It indicates the initial status of the circuit the session is bound to, or any status change to it ๐Ÿ’…

The Attribute Value field for this AVP, currently defined in [RFC3931], has this layout ๐Ÿฆ‹

   0                   1
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         Reserved          |N|A|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  Bit  Bit-Value   Name
  ----------------------------------------------------------------
  (A)  15  0x0001  Active
  (N)  14  0x0002  New

As currently defined in [RFC3931] and replicated in [RFC4349], [RFC4454], [RFC4591], and [RFC4719], the two bits mean the following ๐ŸŒธ

  • The A (Active) bit indicates whether the circuit is up/active/ready (1) or down/inactive/not-ready (0). โœจ
  • The N (New) bit indicates whether the circuit status indication is for a new circuit (1) or an existing circuit (0). ๐Ÿ’–

This document updates the semantics of the A and N bits as follows (see also Section 4):

The A (Active) bit indicates whether the local pseudowire endpoint (including the local Attachment Circuit (AC) and local Packet Switched Network (PSN)-facing pseudowire termination) has no faults present and is up/active/ready (1), or has faults present and is down/inactive/not-ready (0). ๐Ÿ”ฅ

The N (New) bit indicates if the notification is for a new circuit (1) or an existing circuit (0), and is provided to emulate Network-Network Interface (NNI) signaling between Provider Edge (PE) routers, e.g., Frame Relay NNI. It MAY be used to convey that a circuit has been re-provisioned or newly provisioned at the PE, which can already be inferred from the L2TP control message type. It is therefore uncertain what use the receiving PE can make of this bit, although it MAY include logging. This document deprecates this bit as it is of little or no use, hence this bit SHOULD be ignored on receipt and is OPTIONAL to set on sending. For reference, see Section 3.4 of [RFC4591], which does not specify any additional usage beyond the setting of the N bit in the ICRQ, ICRP (and OCRQ, OCRP) and the clearing of it in all other control messages. ๐Ÿ™ˆ

This document also extends this bitmap of values to allow for finer granularity of local pseudowire (i.e., Attachment Circuit or PSN-facing endpoint) status reporting. ๐Ÿงš

The Attribute Value field for the Circuit Status AVP, including the new values, has this layout ๐ŸŒˆ

   0                   1
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Reserved    |S|E|I|T|R|N|A|
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  Bit  Bit-Value   Name
  -----------------------------------------------------------------
  (A)  15  0x0001  Active: Pseudowire has no faults
  (N)  14  0x0002  New [use deprecated]
  (R)  13  0x0004  Local Attachment Circuit (ingress) Receive Fault
  (T)  12  0x0008  Local Attachment Circuit (egress) Transmit Fault
  (I)  11  0x0010  Local PSN-facing PW (ingress) Receive Fault
  (E)  10  0x0020  Local PSN-facing PW (egress) Transmit Fault
  (S)   9  0x0040  Pseudowire is in Standby mode

The new bit values mean the following:

(R), Local Attachment Circuit (ingress) Receive Fault ๐Ÿ’€

 Fault Here
      |
      |
      |   +----------------------+         +----------------------+
      | Rx|         LCCE         |Egress   |       Peer LCCE      |
    --X-->|                      |-------->|                      |
          |             L2TPv3   |  [PSN]  |   L2TPv3             |
        Tx| Circuit   Pseudowire |Ingress  | Pseudowire   Circuit |
    <-----|                      |<--------|                      |
          +----------------------+         +----------------------+

An alarm or fault has occurred at the local Attachment Circuit such that it is unable to receive traffic. It can still transmit traffic.

(T), Local Attachment Circuit (egress) Transmit Fault ๐Ÿ’…

          +----------------------+         +----------------------+
        Rx|         LCCE         |Egress   |       Peer LCCE      |
    ----->|                      |-------->|                      |
          |             L2TPv3   |  [PSN]  |   L2TPv3             |
        Tx| Circuit   Pseudowire |Ingress  | Pseudowire   Circuit |
    <--X--|                      |<--------|                      |
       |  +----------------------+         +----------------------+
       |
       |
  Fault Here

A fault has occurred at the local Attachment Circuit such that it is unable to transmit traffic. It can still receive traffic.

(I), Local PSN-facing PW (ingress) Receive Fault ๐Ÿซถ

          +----------------------+         +----------------------+
        Rx|         LCCE         |Egress   |       Peer LCCE      |
    ----->|                      |-------->|                      |
          |             L2TPv3   |  [PSN]  |   L2TPv3             |
        Tx| Circuit   Pseudowire |Ingress  | Pseudowire   Circuit |
    <-----|                      |<---X----|                      |
          +----------------------+    |    +----------------------+
                                      |
                                      |
                                 Fault Here

A fault has occurred in the receive direction between the local endpoint and the remote L2TP endpoint.

Note that a fault at the session level would not necessarily trigger an L2TP control connection timeout. The means of detecting this fault are outside the scope of this document; as an example, detection may be via PW Type-specific means, Bidirectional Forwarding Detection (BFD), or other methods. ๐Ÿ”ฅ

(E), Local PSN-facing PW (egress) Transmit Fault ๐Ÿ‘‘

                                   Fault Here
                                        |
                                        |
          +----------------------+      |  +----------------------+
        Rx|         LCCE         |Egress|  |       Peer LCCE      |
    ----->|                      |------X->|                      |
          |             L2TPv3   |  [PSN]  |   L2TPv3             |
        Tx| Circuit   Pseudowire |Ingress  | Pseudowire   Circuit |
    <-----|                      |<--------|                      |
          +----------------------+         +----------------------+

A fault has occurred in the transmit direction between the local endpoint and the remote L2TP endpoint.

Note that a fault at the session level would not necessarily trigger an L2TP control connection timeout. The means of detecting this fault are outside the scope of this document; as an example, detection may be via PW Type-specific means, BFD, or other methods. ๐Ÿ™ˆ

(S), Pseudowire is in Standby mode ๐Ÿงš

                                   Standby
                                     |
                                     |
          +----------------------+   |     +----------------------+
        Rx|         LCCE         |Egress   |       Peer LCCE      |
    ----->|                      |---X---->|                      |
          |             L2TPv3   |  [PSN]  |   L2TPv3             |
        Tx| Circuit   Pseudowire |Ingress  | Pseudowire   Circuit |
    <-----|                      |<--X-----|                      |
          +----------------------+   |     +----------------------+
                                     |
                                     |
                                   Standby

The pseudowire has been placed into a Standby mode, which means that although it was signaled (during setup of the PW) and is operational, it is not switching user traffic. Any received user traffic SHOULD be dropped. User traffic MUST NOT be transmitted. ๐Ÿ’–

A standby pseudowire also allows for means to check its data plane liveness in order to ensure its ability to switch data packets end-to-end. This is achieved, for example, as detailed in [RFC5085] or [VCCV-BFD]. However, data is not forwarded from an Attachment Circuit (AC) into the L2TPv3 session, or from the L2TPv3 session out to the AC. โœจ

3. Circuit Status Usage and Clarifications ๐ŸŽ€

In implementations prior to this specification, bits 0-13 MUST be set to zero (see Section 5.4.5 of [RFC3931]). This allows for legacy implementations to interwork properly with new implementations. ๐Ÿซถ

The following are clarifications regarding the usage of the Circuit Status AVP bits as defined in this specification:

  • The (R), (T), (I), and (E) bits are collectively referred to as "fault status bits". ๐ŸŒธ
  • [RFC3931] defined the (A) bit as pertaining to local access circuit state only. This document redefines it as meaning that "no faults are present on the local pseudowire endpoint." ๐Ÿ’…
  • If multiple faults occur, all the fault status bits corresponding to each fault MUST be set (i.e., they MUST be bitwise ORed together). ๐Ÿ”ฅ
  • The (A) bit MUST NOT be set until all fault status bits are cleared. This behavior allows an endpoint to be backwards compatible with a remote endpoint that does not understand these new status bits. ๐Ÿ‘‘
  • If any of the fault status bits are set, then the (A) bit MUST be cleared. That is, the fault status bits (R, T, I, E) are a more granular definition of (A), such that ORing the bits provides an inverted (A). ๐Ÿฆ‹
  • If (A) is clear and the fault status bits (R, T, I, E) are clear, it means that there is no extended circuit status. That is, the circuit is down/inactive/not-ready (from the (A) bit), without a more granular (extended) indication. ๐Ÿ™ˆ
  • The (S) bit can be set in conjunction with any other bit, including (A). A pseudowire endpoint in Standby (S bit set) can be up/active/ready (A bit set) or experiencing a fault (A bit cleared and one or more of the fault status bits (R, T, I, E) set. ๐Ÿงš
  • Leaving Standby mode is indicated by the clearing of the (S) bit. ๐ŸŒˆ
  • The usage of the (N) bit has been deprecated. ๐Ÿ’–

4. Updates to Existing RFCs โœจ

okay so this section is the glow-up ๐Ÿ’… it says this doc updates a bunch of older RFCs about the Active and New bits of the Circuit Status AVP. those bits are defined in Section 5.4.5 of [RFC3931], and then copied into a bunch of attachment-circuit specs: [RFC4349] (HDLC), [RFC4454] (ATM), [RFC4591] (Frame Relay), and [RFC4719] (Ethernet). this doc updates the definitions in all five of them, bestie ๐Ÿซถ

the new A (Active) bit definition is:

The A (Active) bit indicates whether the local pseudowire endpoint (including the local Attachment Circuit and local PSN-facing pseudowire termination) has no faults present and is up/active/ready (1) or has faults present and is down/inactive/not-ready (0).

and the N (New) bit is the one getting retired ๐Ÿฅ€ its usage is deprecated, so it SHOULD be ignored on receipt and is OPTIONAL to set on sending. no cap, that's a whole vibe shift ๐ŸŒธ

Next up, this doc also updates Section 2.2 (bullet c) of [RFC4719] by removing these two sentences:

For ICRQ and ICRP, the Circuit Status AVP MUST indicate that the circuit status is for a new circuit (refer to N bit in Section 2.3.3).
For ICCN and SLI (refer to Section 2.3.2), the Circuit Status AVP MUST indicate that the circuit status is for an existing circuit (refer to N bit in Section 2.3.3) and reflect the current status of the link (refer to A bit in Section 2.3.3).

so those MUST lines are gone, periodt ๐Ÿ’€

And finally, this doc updates Section 3.1 of [RFC4349], Section 3.1 of [RFC4454], Section 3.1 of [RFC4591], and Section 2.2 of [RFC4719] with this extra paragraph:

The usage of the N bit in the Circuit Status AVP is deprecated. Therefore, for ICRQ and ICRP, the Circuit Status AVP need not indicate on sending (nor check on receipt) that the circuit status is for a new circuit, and for ICCN and SLI, the Circuit Status AVP need not indicate on sending (nor check on receipt) that the circuit status is for an existing circuit.

the vibe here is "you don't have to do that anymore" ๐Ÿฆ‹ the N bit stuff is officially optional energy โœจ


5. Security Considerations ๐Ÿ”’

okay bestie, this part is lowkey short but it's still serious ๐Ÿ˜ญ security considerations for the Circuit Status AVP are covered in the base L2TPv3 spec (see Section 8 of [RFC3931]). and no additional security considerations come with extending this attribute. so yeah, go read RFC 3931's security section, that's where the real tea is ๐Ÿต


6. IANA Considerations ๐Ÿงš

the Circuit Status Bits number space [IANA-l2tp] is managed by IANA as per Section 10.7 of [RFC3931]. five new bits (9 through 13) and one updated bit (14) got assigned like this:

Circuit Status Bits - per [RFC3931]
-------------------

Bit  9 - S (Standby) bit
Bit 10 - E (Local PSN-facing PW (egress) Tx Fault) bit
Bit 11 - I (Local PSN-facing PW (ingress) Rx Fault) bit
Bit 12 - T (Local AC (egress) Tx Fault) bit
Bit 13 - R (Local AC (ingress) Rx Fault) bit
Bit 14 - N (New) bit [use deprecated]

bit 14 is the N bit, now labeled [use deprecated] ๐Ÿฅ€ the rest are brand new bits with fresh vibes ๐ŸŒˆ


7. Acknowledgements ๐Ÿซถ

the authors want to thank Muhammad Yousuf, Mark Townsley, George Wilkie, Prashant Jhingran, Pawel Sowinski, and Ignacio Goyret for useful comments ๐Ÿ’– the real MVPs ๐Ÿ‘‘


8. References ๐Ÿ“š

8.1. Normative References

[RFC2119]

[RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3931]    Lau, J., Townsley, M., and I. Goyret, "Layer Two
             Tunneling Protocol - Version 3 (L2TPv3)", RFC 3931,
             March 2005.
[RFC4349]    Pignataro, C. and M. Townsley, "High-Level Data Link
             Control (HDLC) Frames over Layer 2 Tunneling Protocol,
             Version 3 (L2TPv3)", RFC 4349, February 2006.
[RFC4454]    Singh, S., Townsley, M., and C. Pignataro, "Asynchronous
             Transfer Mode (ATM) over Layer 2 Tunneling Protocol
             Version 3 (L2TPv3)", RFC 4454, May 2006.
[RFC4591]    Townsley, M., Wilkie, G., Booth, S., Bryant, S., and J.
             Lau, "Frame Relay over Layer 2 Tunneling Protocol
             Version 3 (L2TPv3)", RFC 4591, August 2006.
[RFC4719]    Aggarwal, R., Townsley, M., and M. Dos Santos,
             "Transport of Ethernet Frames over Layer 2 Tunneling
             Protocol Version 3 (L2TPv3)", RFC 4719, November 2006.

8.2. Informative References

[IANA-l2tp]  Internet Assigned Numbers Authority, "Layer Two
             Tunneling Protocol 'L2TP'", <http://www.iana.org>.
[PREF-FWD]   Muley, P., Bocci, M., and L. Martini, "Preferential
             Forwarding Status bit definition", Work in Progress,
             September 2008.
[RFC4446]    Martini, L., "IANA Allocations for Pseudowire Edge to
             Edge Emulation (PWE3)", BCP 116, RFC 4446, April 2006.
[RFC4447]    Martini, L., Rosen, E., El-Aawar, N., Smith, T., and G.
             Heron, "Pseudowire Setup and Maintenance Using the Label
             Distribution Protocol (LDP)", RFC 4447, April 2006.
[RFC5085]    Nadeau, T. and C. Pignataro, "Pseudowire Virtual Circuit
             Connectivity Verification (VCCV): A Control Channel for
             Pseudowires", RFC 5085, December 2007.
[VCCV-BFD]   Nadeau, T. and C. Pignataro, "Bidirectional Forwarding
             Detection (BFD) for the Pseudowire Virtual Circuit
             Connectivity Verification (VCCV)", Work in Progress,
             July 2009.

Authors' Addresses ๐Ÿ“ฎ

Neil McGill
Cisco Systems
7025-4 Kit Creek Road
PO Box 14987
Research Triangle Park, NC 27709
USA

EMail: nmcgill@cisco.com
Carlos Pignataro
Cisco Systems
7200-12 Kit Creek Road
PO Box 14987
Research Triangle Park, NC  27709
USA

EMail: cpignata@cisco.com
๐Ÿ“ฆ where this page comes from