ARMWARE RFC Archive <- RFC Index (6001..6100)

RFC 6073

Updated by RFC 6723, RFC 7267

Internet Engineering Task Force (IETF)                        L. Martini
Request for Comments: 6073                                       C. Metz
Category: Standards Track                            Cisco Systems, Inc.
ISSN: 2070-1721                                                T. Nadeau
                                                             LucidVision
                                                                M. Bocci
                                                             M. Aissaoui
                                                          Alcatel-Lucent
                                                            January 2011

                          Segmented Pseudowire

Abstract

   This document describes how to connect pseudowires (PWs) between
   different Packet Switched Network (PSN) domains or between two or
   more distinct PW control plane domains, where a control plane domain
   uses a common control plane protocol or instance of that protocol for
   a given PW.  The different PW control plane domains may belong to
   independent autonomous systems, or the PSN technology is
   heterogeneous, or a PW might need to be aggregated at a specific PSN
   point.  The PW packet data units are simply switched from one PW to
   another without changing the PW payload.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6073.

Martini, et al.              Standards Track                    [Page 1]



RFC 6073                  Segmented Pseudowire              January 2011

Copyright Notice

   Copyright (c) 2011 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 are provided without warranty as
   described in the Simplified BSD License.

   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 ....................................................4
   2. Specification of Requirements ...................................5
   3. Terminology .....................................................5
   4. General Description .............................................6
   5. PW Switching and Attachment Circuit Type ........................9
   6. Applicability ...................................................9
   7. MPLS-PW to MPLS-PW Switching ...................................10
      7.1. Static Control Plane Switching ............................10
      7.2. Two LDP Control Planes Using the Same FEC Type ............11
           7.2.1. FEC 129 Active/Passive T-PE Election Procedure .....11
      7.3. LDP Using FEC 128 to LDP Using the Generalized FEC 129 ....12
      7.4. LDP SP-PE TLV .............................................12
           7.4.1. PW Switching Point PE Sub-TLVs .....................14
           7.4.2. Adaptation of Interface Parameters .................15
      7.5. Group ID ..................................................16
      7.6. PW Loop Detection .........................................16
   8. MPLS-PW to L2TPv3-PW Control Plane Switching ...................16
      8.1. Static MPLS and L2TPv3 PWs ................................17
      8.2. Static MPLS PW and Dynamic L2TPv3 PW ......................17

Martini, et al.              Standards Track                    [Page 2]



RFC 6073                  Segmented Pseudowire              January 2011

      8.3. Static L2TPv3 PW and Dynamic LDP/MPLS PW ..................17
      8.4. Dynamic LDP/MPLS and L2TPv3 PWs ...........................17
           8.4.1. Session Establishment ..............................18
           8.4.2. Adaptation of PW Status message ....................18
           8.4.3. Session Tear Down ..................................18
      8.5. Adaptation of L2TPv3 AVPs to Interface Parameters .........19
      8.6. Switching Point TLV in L2TPv3 .............................20
      8.7. L2TPv3 and MPLS PW Data Plane .............................20
           8.7.1. Mapping the MPLS Control Word to L2TP ..............21
   9. Operations, Administration, and Maintenance (OAM) ..............22
      9.1. Extensions to VCCV to Support MS-PWs ......................22
      9.2. OAM from MPLS PW to L2TPv3 PW .............................22
      9.3. OAM Data Plane Indication from MPLS PW to MPLS PW .........22
      9.4. Signaling OAM Capabilities for Switched Pseudowires .......23
      9.5. OAM Capability for MS-PWs Demultiplexed Using MPLS ........23
           9.5.1. MS-PW and VCCV CC Type 1 ...........................24
           9.5.2. MS-PW and VCCV CC Type 2 ...........................24
           9.5.3. MS-PW and VCCV CC Type 3 ...........................24
      9.6. MS-PW VCCV Operations .....................................24
           9.6.1. VCCV Echo Message Processing .......................25
           9.6.2. Detailed VCCV Procedures ...........................27
   10. Mapping Switched Pseudowire Status ............................31
      10.1. PW Status Messages Initiated by the S-PE .................32
           10.1.1. Local PW2 Transmit Direction Fault ................33
           10.1.2. Local PW1 Transmit Direction Fault ................34
           10.1.3. Local PW2 Receive Direction Fault .................34
           10.1.4. Local PW1 Receive Direction Fault .................34
           10.1.5. Clearing Faults ...................................34
      10.2. PW Status Messages and SP-PE TLV Processing ..............35
      10.3. T-PE Processing of PW Status Messages ....................35
      10.4. Pseudowire Status Negotiation Procedures .................35
      10.5. Status Dampening .........................................35
   11. Peering between Autonomous Systems ............................35
   12. Congestion Considerations .....................................36
   13. Security Considerations .......................................36
      13.1. Data Plane Security ......................................36
           13.1.1. VCCV Security Considerations ......................36
      13.2. Control Protocol Security ................................37
   14. IANA Considerations ...........................................38
      14.1. L2TPv3 AVP ...............................................38
      14.2. LDP TLV TYPE .............................................38
      14.3. LDP Status Codes .........................................38
      14.4. L2TPv3 Result Codes ......................................38
      14.5. New IANA Registries ......................................39
   15. Normative References ..........................................39
   16. Informative References ........................................40
   17. Acknowledgments ...............................................42
   18. Contributors ..................................................42

Martini, et al.              Standards Track                    [Page 3]



RFC 6073                  Segmented Pseudowire              January 2011

1.  Introduction

   The PWE3 Architecture [RFC3985] defines the signaling and
   encapsulation techniques for establishing Single-Segment Pseudowires
   (SS-PWs) between a pair of terminating PEs.  Multi-Segment
   Pseudowires (MS-PWs) are most useful in two general cases:

       -i. In some cases it is not possible, desirable, or feasible to
           establish a PW control channel between the terminating source
           and destination PEs.  At a minimum, PW control channel
           establishment requires knowledge of and reachability to the
           remote (terminating) PE IP address.  The local (terminating)
           PE may not have access to this information because of
           topology, operational, or security constraints.

           An example is the inter-AS L2VPN scenario where the
           terminating PEs reside in different provider networks (ASes)
           and it is the practice to cryptographically sign all control
           traffic exchanged between two networks.  Technically, an
           SS-PW could be used but this would require cryptographic
           signatures on ALL terminating source and destination PE
           nodes.  An MS-PW allows the providers to confine key
           administration to just the PW switching points connecting the
           two domains.

           A second example might involve a single AS where the PW setup
           path between the terminating PEs is computed by an external
           entity.  Assume that a full mesh of PWE3 control channels is
           established between PE-A, PE-B, and PE-C.  A client-layer L2
           connection tunneled through a PW is required between
           terminating PE-A and PE-C.  The external entity computes a PW
           setup path that passes through PE-B.  This results in two
           discrete PW segments being built: one between PE-A and PE-B
           and one between PE-B and PE-C.  The successful client-layer
           L2 connection between terminating PE-A and terminating PE-C
           requires that PE-B performs the PWE3 switching process.

           A third example involves the use of PWs in hierarchical
           IP/MPLS networks.  Access networks connected to a backbone
           use PWs to transport customer payloads between customer sites
           serviced by the same access network and up to the edge of the
           backbone where they can be terminated or switched onto a
           succeeding PW segment crossing the backbone.  The use of PWE3
           switching between the access and backbone networks can
           potentially reduce the PWE3 control channels and routing
           information processed by the access network T-PEs.

Martini, et al.              Standards Track                    [Page 4]



RFC 6073                  Segmented Pseudowire              January 2011

           It should be noted that PWE3 switching does not help in any
           way to reduce the amount of PW state supported by each access
           network T-PE.

      -ii. In some applications, the signaling protocol and
           encapsulation on each segment of the PW are different.  The
           terminating PEs are connected to networks employing different
           PW signaling and encapsulation protocols.  In this case, it
           is not possible to use an SS-PW.  An MS-PW with the
           appropriate signaling protocol interworking performed at the
           PW switching points can enable PW connectivity between the
           terminating PEs in this scenario.

   A more detailed discussion of the requirements pertaining to MS-PWs
   can be found in [RFC5254].

   There are four different mechanisms to establish PWs:

        -i. Static configuration of the PW (MPLS or Layer 2 Tunneling
            Protocol version 3 (L2TPv3))
       -ii. LDP using FEC 128 (PWid FEC Element)
      -iii. LDP using FEC 129 (Generalized PWid FEC Element)
       -iv. L2TPv3

   While MS-PWs are composed of PW segments, each PW segment cannot
   function independently, as the PW service is always instantiated
   across the complete MS-PW.  Hence, no PW segments can be signaled or
   be operational without the complete MS-PW being signaled at once.

2.  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].

3.  Terminology

   - PW Terminating Provider Edge (T-PE).  A PE where the customer-
     facing attachment circuits (ACs) are bound to a PW forwarder.  A
     Terminating PE is present in the first and last segments of a
     MS-PW.  This incorporates the functionality of a PE as defined in
     [RFC3985].

   - Single-Segment Pseudowire (SS-PW).  A PW set up directly between
     two T-PE devices.  The PW label is unchanged between the
     originating and terminating T-PEs.

Martini, et al.              Standards Track                    [Page 5]



RFC 6073                  Segmented Pseudowire              January 2011

   - Multi-Segment Pseudowire (MS-PW).  A static or dynamically
     configured set of two or more contiguous PW segments that behave
     and function as a single point-to-point PW.  Each end of an MS-PW
     by definition MUST terminate on a T-PE.

   - PW Segment.  A part of a single-segment or multi-segment PW, which
     traverses one PSN tunnel in each direction between two PE devices,
     T-PEs and/or S-PEs (switching PE).

   - PW Switching Provider Edge (S-PE).  A PE capable of switching the
     control and data planes of the preceding and succeeding PW segments
     in an MS-PW.  The S-PE terminates the PSN tunnels of the preceding
     and succeeding segments of the MS-PW.  It therefore includes a PW
     switching point for an MS-PW.  A PW switching point is never the
     S-PE and the T-PE for the same MS-PW.  A PW switching point runs
     necessary protocols to set up and manage PW segments with other PW
     switching points and terminating PEs.  An S-PE can exist anywhere a
     PW must be processed or policy applied.  It is therefore not
     limited to the edge of a provider network.

   - MS-PW path.  The set of S-PEs that will be traversed in sequence to
     form the MS-PW.

4.  General Description

   A pseudowire (PW) is a mechanism that carries the essential elements
   of an emulated service from one PE to one or more other PEs over a
   PSN as described in Figure 1 and in [RFC3985].  Many providers have
   deployed PWs as a means of migrating existing (or building new) L2VPN
   services (e.g., Frame Relay, ATM, or Ethernet) onto a PSN.

   PWs may span multiple domains of the same or different provider
   networks.  In these scenarios, PW control channels (i.e., targeted
   LDP, L2TPv3) and PWs will cross AS boundaries.

   Inter-AS L2VPN functionality is currently supported, and several
   techniques employing MPLS encapsulation and LDP signaling have been
   documented [RFC4364].  It is also straightforward to support the same
   inter-AS L2VPN functionality employing L2TPv3.  In this document, we
   define a methodology to switch a PW between different Packet Switched
   Network (PSN) domains or between two or more distinct PW control
   plane domains.

Martini, et al.              Standards Track                    [Page 6]



RFC 6073                  Segmented Pseudowire              January 2011

         |<-------------- Emulated Service ---------------->|
         |                                                  |
         |          |<-------- Pseudowire ------>|          |
         |          |                            |          |
         |          |    |<-- PSN Tunnel -->|    |          |
         |          V    V                  V    V          |
         V    AC    +----+                  +----+     AC   V
   +-----+    |     | PE1|==================| PE2|     |    +-----+
   |     |----------|............PW1.............|----------|     |
   | CE1 |    |     |    |                  |    |     |    | CE2 |
   |     |----------|............PW2.............|----------|     |
   +-----+  ^ |     |    |==================|    |     | ^  +-----+
         ^  |       +----+                  +----+     | |  ^
         |  |   Provider Edge 1         Provider Edge 2  |  |
         |  |                                            |  |
   Customer |                                            | Customer
   Edge 1   |                                            | Edge 2
            |                                            |
      native service                               native service

                     Figure 1: PWE3 Reference Model

   There are two methods for switching a PW between two PW domains.  In
   the first method (Figure 2), the two separate control plane domains
   terminate on different PEs.

                |<-------Multi-Segment Pseudowire------->|
                |      PSN                      PSN      |
            AC  |    |<-1->|                  |<-2->|    |  AC
            |   V    V     V                  V     V    V  |
            |   +----+     +-----+       +----+     +----+  |
   +----+   |   |    |=====|     |       |    |=====|    |  |    +----+
   |    |-------|......PW1.......|--AC1--|......PW2......|-------|    |
   | CE1|   |   |    |     |     |       |    |     |    |  |    |CE2 |
   |    |-------|......PW3.......|--AC2--|......PW4......|-------|    |
   +----+   |   |    |=====|     |       |    |=====|    |  |    +----+
        ^       +----+     +-----+       +----+     +----+       ^
        |         PE1        PE2          PE3         PE4        |
        |                     ^            ^                     |
        |                     |            |                     |
        |                  PW switching points                   |
        |                                                        |
        |                                                        |
        |<-------------------- Emulated Service ---------------->|

            Figure 2: PW Switching Using AC Reference Model

Martini, et al.              Standards Track                    [Page 7]



RFC 6073                  Segmented Pseudowire              January 2011

   In Figure 2, pseudowires in two separate PSNs are stitched together
   using native service attachment circuits.  PE2 and PE3 only run the
   control plane for the PSN to which they are directly attached.  At
   PE2 and PE3, PW1 and PW2 are connected using attachment circuit AC1,
   while PW3 and PW4 are connected using attachment circuit AC2.

          Native  |<-----Multi-Segment Pseudowire------>|  Native
          Service |         PSN             PSN         |  Service
           (AC)   |    |<-Tunnel->|     |<-Tunnel->|    |   (AC)
             |    V    V     1    V     V    2     V    V     |
             |    +----+          +-----+          +----+     |
      +----+ |    |TPE1|==========|SPE1 |==========|TPE2|     | +----+
      |    |------|.....PW.Seg't1....X....PW.Seg't3.....|-------|    |
      | CE1| |    |    |          |     |          |    |     | |CE2 |
      |    |------|.....PW.Seg't2....X....PW.Seg't4.....|-------|    |
      +----+ |    |    |==========|     |==========|    |     | +----+
           ^      +----+          +-----+          +----+       ^
           |   Provider Edge 1       ^        Provider Edge 2   |
           |                         |                          |
           |                         |                          |
           |                 PW switching point                 |
           |                                                    |
           |<----------------- Emulated Service --------------->|

                      Figure 3: MS-PW Reference Model

   In Figure 3, SPE1 runs two separate control planes: one toward TPE1,
   and one toward TPE2.  The PW switching point (S-PE) is configured to
   connect PW Segment 1 and PW Segment 3 together to complete the multi-
   segment PW between TPE1 and TPE2.  PW Segment 1 and PW Segment 3 MUST
   be of the same PW type, but PSN Tunnel 1 and PSN Tunnel 2 need not be
   the same technology.  In the latter case, if the PW is switched to a
   different technology, the PEs must adapt the PDU encapsulation
   between the different PSN technologies.  In the case where PSN Tunnel
   1 and PSN Tunnel 2 are the same technology, the PW PDU does not need
   to be modified, and PDUs are then switched between the pseudowires at
   the PW label level.

   It should be noted that it is possible to adapt one PSN technology to
   a different one, for example, MPLS over an IP encapsulation or
   Generic Routing Encapsulation (GRE) [RFC4023], but this is outside
   the scope of this document.  Further, one could perform an
   interworking function on the PWs themselves at the S-PE, allowing
   conversion from one PW type to another, but this is also outside the
   scope of this document.

   This document describes procedures for building multi-segment
   pseudowires using manual configuration of the switching point PE1.

Martini, et al.              Standards Track                    [Page 8]



RFC 6073                  Segmented Pseudowire              January 2011

   Other documents may build on this base specification to automate the
   configuration and selection of S-PE1.  All elements of the
   establishment of end-to-end MS-PWs including routing and signaling
   are out of scope of this document, and any discussion in this
   document serves purely as examples.  It should also be noted that a
   PW can traverse multiple PW switching points along it's path, and the
   edge PEs will not require any specific knowledge of how many S-PEs
   the PW has traversed (though this may be reported for troubleshooting
   purposes).

   The general approach taken for MS-PWs is to connect the individual
   control planes by passing along any signaling information immediately
   upon reception.  First, the S-PE is configured to switch a PW segment
   from a specific peer to another PW segment destined for a different
   peer.  No control messages are exchanged yet, as the S-PE does not
   have enough information to actually initiate the PW setup messages.
   However, if a session does not already exist, a control protocol
   (LDP/L2TP) session MAY be setup.  In this model, the MS-PW setup is
   starting from the T-PE devices.  Once the T-PE is configured, it
   sends the PW control setup messages.  These messages are received by
   the S-PE, and immediately used to form the PW setup messages for the
   next SS-PW of the MS-PW.

5.  PW Switching and Attachment Circuit Type

   The PWs in each PSN are established independently, with each PSN
   being treated as a separate PW domain.  For example, in Figure 2 for
   the case of MPLS PSNs, PW1 is setup between PE1 and PE2 using the LDP
   targeted session as described in [RFC4447], and at the same time a
   separate pseudowire, PW2, is setup between PE3 and PE4.  The ACs for
   PW1 and PW2 at PE2 and PE3 MUST be configured such that they are the
   same PW type, e.g., ATM Virtual Channel Connection (VCC), Ethernet
   VLAN, etc.

6.  Applicability

   The general applicability of MS-PWs and their relationship to L2VPNs
   are described in [RFC5659].  The applicability of a PW type, as
   specified in the relevant RFC for that encapsulation (e.g., [RFC4717]
   for ATM), applies to each segment.  This section describes further
   applicability considerations.

   As with SS-PWs, the performance of any segment will be limited by the
   performance of the underlying PSN.  The performance may be further
   degraded by the emulation process, and performance degradation may be
   further increased by traversing multiple PW segments.  Furthermore,
   the overall performance of an MS-PW is no better than the worst-
   performing segment of that MS-PW.

Martini, et al.              Standards Track                    [Page 9]



RFC 6073                  Segmented Pseudowire              January 2011

   Since different PSN types may be able to achieve different maximum
   performance objectives, it is necessary to carefully consider which
   PSN types are used along the path of an MS-PW.

7.  MPLS-PW to MPLS-PW Switching

   Referencing Figure 3, T-PE1 set up PW Segment 1 using the LDP
   targeted session as described in [RFC4447], at the same time a
   separate pseudowire, PW Segment 3, is setup to T-PE2.  Each PW is
   configured independently on the PEs, but on S-PE1, PW Segment 1 is
   connected to PW Segment 3.  PDUs are then switched between the
   pseudowires at the PW label level.  Hence, the data plane does not
   need any special knowledge of the specific pseudowire type.  A simple
   standard MPLS label swap operation is sufficient to connect the two
   PWs, and in this case the PW adaptation function cannot be used.
   However, when pushing a new PSN label, the Time to Live (TTL) SHOULD
   be set to 255, or some other locally configured fixed value.

   This process can be repeated as many times as necessary; the only
   limitation to the number of S-PEs traversed is imposed by the TTL
   field of the PW MPLS label.  The setting of the TTL of the PW MPLS
   label is a matter of local policy on the originating PE, but SHOULD
   be set to 255.  However, if the PW PDU contains an Operations,
   Administration, and Maintenance (OAM) packet, then the TTL can be set
   to the required value as explained later in this document.

   There are three different mechanisms for MPLS-to-MPLS PW setup:

        -i. Static configuration of the PW
       -ii. LDP using FEC 128
      -iii. LDP using the generalized FEC 129

      This results in four distinct PW switching situations that are
      significantly different and must be considered in detail:

        -i. Switching between two static control planes
       -ii. Switching between a static and a dynamic LDP control plane
      -iii. Switching between two LDP control planes using the same FEC
            type
       -iv. Switching between LDP using FEC 128 and LDP using the
            generalized FEC 129

7.1.  Static Control Plane Switching

   In the case of two static control planes, the S-PE MUST be configured
   to direct the MPLS packets from one PW into the other.  There is no
   control protocol involved in this case.  When one of the control
   planes is a simple static PW configuration and the other control

Martini, et al.              Standards Track                   [Page 10]



RFC 6073                  Segmented Pseudowire              January 2011

   plane is a dynamic LDP FEC 128 or generalized PW FEC, then the static
   control plane should be considered similar to an attachment circuit
   (AC) in the reference model of Figure 1.  The switching point PE
   SHOULD signal the appropriate PW status if it detects a failure in
   sending or receiving packets over the static PW segment.  In the
   absence of a PW status communication mechanism when the PW is
   statically configured, the status communicated to the dynamic LDP PW
   will be limited to local interface failures.  In this case, the S-PE
   PE behaves in a very similar manner to a T-PE, assuming an active
   signaling role.  This means that the S-PE will immediately send the
   LDP Label Mapping message if the static PW is deemed to be UP.

7.2.  Two LDP Control Planes Using the Same FEC Type

   The S-PE SHOULD assume an initial passive role.  This means that when
   independent PWs are configured on the switching point, the Label
   Switching Router (LSR) does not advertise the LDP PW FEC mapping
   until it has received at least one of the two PW LDP FECs from a
   remote PE.  This is necessary because the switching point LSR does
   not know a priori what the interface parameter field in the initial
   FEC advertisement will contain.

   If one of the S-PEs doesn't accept an LDP Label Mapping message, then
   a Label Release message may be sent back to the originator T-PE
   depending on the cause of the error.  LDP liberal label retention
   mode still applies; hence, if a PE is simply not configured yet, the
   label mapping is stored for future use.  An MS-PW is declared UP only
   when all the constituent SS-PWs are UP.

   The Pseudowire Identifier (PWid), as defined in [RFC4447], is a
   unique number between each pair of PEs.  Hence, each SS-PW that forms
   an MS-PW may have a different PWid.  In the case of the generalized
   PW FEC, the Attachment Group Identifier (AGI) / Source Attachment
   Identifier (SAI) / Target Attachment Identifier (TAI) may have to
   also be different for some, or sometimes all, SS-PWs.

7.2.1.  FEC 129 Active/Passive T-PE Election Procedure

   When an MS-PW is signaled using FEC 129, each T-PE might
   independently start signaling the MS-PW.  If the MS-PW path is not
   statically configured, in certain cases the signaling procedure could
   result in an attempt to set up each direction of the MS-PW through
   different S-PEs.  If an operator wishes to avoid this situation, one
   of the T-PEs MUST start the PW signaling (active role), while the
   other waits to receive the LDP label mapping before sending the
   respective PW LDP Label Mapping message (passive role).  When the
   MS-PW path is not statically configured, the active T-PE (the Source

Martini, et al.              Standards Track                   [Page 11]



RFC 6073                  Segmented Pseudowire              January 2011

   T-PE) and the passive T-PE (the Target T-PE) MUST be identified
   before signaling is initiated for a given MS-PW.

   The determination of which T-PE assumes the active role SHOULD be
   done as follows:

   The SAII and TAII are compared as unsigned integers; if the SAII is
   larger, then the T-PE assumes the active role.

   The selection process to determine which T-PE assumes the active role
   MAY be superseded by manual provisioning.  In this case, one of the
   T-PEs MUST be set to the active role, and the other one MUST be set
   to the passive role.

7.3.  LDP Using FEC 128 to LDP Using the Generalized FEC 129

   When a PE is using the generalized FEC 129, there are two distinct
   roles that a PE can assume: active and passive.  A PE that assumes
   the active role will send the LDP PW setup message, while a passive
   role PE will simply reply to an incoming LDP PW setup message.  The
   S-PE will always remain passive until a PWid FEC 128 LDP message is
   received, which will cause the corresponding generalized PW FEC LDP
   message to be formed and sent.  If a generalized FEC PW LDP message
   is received while the switching point PE is in a passive role, the
   corresponding PW FEC 128 LDP message will be formed and sent.

   PWids need to be mapped to the corresponding AGI/TAI/SAI and vice
   versa.  This can be accomplished by local S-PE configuration, or by
   some other means, such as some form of auto discovery.  Such other
   means are outside the scope of this document.

7.4.  LDP SP-PE TLV

   The edge-to-edge PW might traverse several switching points, in
   separate administrative domains.  For management and troubleshooting
   reasons, it is useful to record information about the switching
   points at the S-PEs that the PW traverses.  This is accomplished by
   using a PW Switching Point PE TLV (SP-PE TLV).

   Sending the SP-PE TLV is OPTIONAL; however, the PE or S-PE MUST
   process the TLV upon reception.  The "U" bit MUST be set for backward
   compatibility with T-PEs that do not support the MS-PW extensions
   described in the document.  The SP-PE TLV MAY appear only once for
   each switching point traversed, and it cannot be of length zero.  The
   SP-PE TLV is appended to the PW FEC at each S-PE, and the order of
   the SP-PE TLVs in the LDP message MUST be preserved.  The SP-PE TLV

Martini, et al.              Standards Track                   [Page 12]



RFC 6073                  Segmented Pseudowire              January 2011

   is necessary to support some of the Virtual Circuit Connectivity
   Verification (VCCV) functions for MS-PWs.  See Section 9.5 for more
   details.  The SP-PE TLV is encoded as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |1|0|      SP-PE TLV (0x096D)   |        SP-PE TLV Length       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Sub-TLV Type  |    Length     |    Variable Length Value      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Variable Length Value                   |
   |                           "      "      "                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      - SP-PE TLV Length

        Specifies the total length of all the following SP-PE TLV fields
        in octets.

      - Sub-TLV Type

        Encodes how the Value field is to be interpreted.

      - Length

        Specifies the length of the Value field in octets.

      - Value

        Octet string of Length octets that encodes information to be
        interpreted as specified by the Type field.

   PW Switching Point PE sub-TLV Types are assigned by IANA according to
        the process defined in Section 14 (IANA Considerations) below.

        For local policy reasons, a particular S-PE can filter out all
        SP-PE TLVs in a Label Mapping message that traverses it and not
        include its own SP-PE TLV.  In this case, from any upstream PE,
        it will appear as if this particular S-PE is the T-PE.  This
        might be necessary, depending on local policy, if the S-PE is at
        the service provider administrative boundary.  It should also be
        noted that because there are no SP-PE TLVs describing the path
        beyond the S-PE that removed them, VCCV will only work as far as
        that S-PE.

Martini, et al.              Standards Track                   [Page 13]



RFC 6073                  Segmented Pseudowire              January 2011

7.4.1.  PW Switching Point PE Sub-TLVs

   The SP-PE TLV contains sub-TLVs that describe various characteristics
   of the S-PE traversed.  The SP-PE TLV MUST contain the appropriate
   mandatory sub-TLVs specified below.  The definitions of the PW
   Switching Point PE sub-TLVs are as follows:

      - PWid of last PW segment traversed.

        This is only applicable if the last PW segment traversed used
        LDP FEC 128 to signal the PW.  This sub-TLV type contains a PWid
        in the format of the PWid described in [RFC4447].  This is just
        a 32-bit unsigned integer number.

      - PW Switching Point description string.

        An OPTIONAL description string of text up to 80 characters long.
        Human-readable text MUST be provided in the UTF-8 character set
        using the Default Language [RFC2277].

      - Local IP address of PW Switching Point.

        The local IPv4 or IPv6 address of the PW Switching Point.  This
        is an OPTIONAL Sub-TLV.  In most cases, this will be the local
        LDP session IP address of the S-PE.

      - Remote IP address of the last PW Switching Point traversed or of
        the T-PE.

        The IPv4 or IPv6 address of the last PW Switching Point
        traversed or of the T-PE.  This is an OPTIONAL Sub-TLV.  In most
        cases, this will be the remote IP address of the LDP session.
        This Sub-TLV SHOULD only be included if there are no other SP-PE
        TLVs present from other S-PEs, or if the remote IP address of
        the LDP session does not correspond to the "Local IP address of
        PW Switching Point" TLV value contained in the last SP-PE TLV.

      - The FEC element of last PW segment traversed.

        This is only applicable if the last PW segment traversed used
        LDP FEC 129 to signal the PW.

Martini, et al.              Standards Track                   [Page 14]



RFC 6073                  Segmented Pseudowire              January 2011

   The FEC element of the last PW segment traversed.  This is encoded in
   the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   AGI Type    |    Length     |      Value                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                    AGI Value (contd.)                         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   AII Type    |    Length     |      Value                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                   SAII Value (contd.)                         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   AII Type    |    Length     |      Value                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                   TAII Value (contd.)                         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      - L2 PW address of the PW Switching Point (recommended format).

        This sub-TLV type contains an L2 PW address of PW Switching
        Point in the format described in Section 3.2 of [RFC5003].  This
        includes the AII type field and length, as well as the L2 PW
        address with the AC ID field set to zero.

7.4.2.  Adaptation of Interface Parameters

   [RFC4447] defines several interface parameters, which are used by the
   Network Service Processing (NSP) to adapt the PW to the attachment
   circuit (AC).  The interface parameters are only used at the
   endpoints, and MUST be passed unchanged across the S-PE.  However,
   the following interface parameters MAY be modified as follows:

      - 0x03 Optional Interface Description string
        This Interface parameter MAY be modified or altogether removed
        from the FEC element depending on local configuration policies.

      - 0x09 Fragmentation indicator
        This parameter MAY be inserted in the FEC by the switching point
        if it is capable of re-assembly of fragmented PW frames
        according to [RFC4623].

Martini, et al.              Standards Track                   [Page 15]



RFC 6073                  Segmented Pseudowire              January 2011

      - 0x0C VCCV parameter
        This Parameter contains the Control Channel (CC) type and
        Connectivity Verification (CV) type bit fields.  The CV type bit
        field MUST be reset to reflect the CV type supported by the
        S-PE.  The CC type bit field MUST have bit 1 "Type 2: MPLS
        Router Alert Label" set to 0.  The other bit fields MUST be
        reset to reflect the CC type supported by the S-PE.

7.5.  Group ID

   The Group ID (GR ID) is used to reduce the number of status messages
   that need to be sent by the PE advertising the PW FEC.  The GR ID has
   local significance only, and therefore MUST be mapped to a unique GR
   ID allocated by the S-PE.

7.6.  PW Loop Detection

   A switching point PE SHOULD inspect the PW Switching Point PE TLV, to
   verify that its own IP address does not appear in it.  If the PE's IP
   address appears in a received PW Switching Point PE TLV, the PE
   SHOULD break the loop and send a label release message with the
   following error code:

      Value        E   Description
      0x0000003A   0   PW Loop Detected

   If an S-PE along the MS-PW removed all SP-PE TLVs, as mentioned
   above, this loop detection method will fail.

8.  MPLS-PW to L2TPv3-PW Control Plane Switching

   Both MPLS and L2TPv3 PWs may be static or dynamic.  This results in
   four possibilities when switching between L2TPv3 and MPLS.

        -i. Switching between static MPLS and L2TPv3 PWs
       -ii. Switching between a static MPLS PW and a dynamic L2TPv3 PW
      -iii. Switching between a static L2TPv3 PW and a dynamic LDP/MPLS
            PW
       -iv. Switching between a dynamic LDP/MPLS PW and a dynamic L2TPv3
            PW

Martini, et al.              Standards Track                   [Page 16]



RFC 6073                  Segmented Pseudowire              January 2011

8.1.  Static MPLS and L2TPv3 PWs

   In the case of two static control planes, the S-PE MUST be configured
   to direct packets from one PW into the other.  There is no control
   protocol involved in this case.  The configuration MUST include which
   MPLS PW Label maps to which L2TPv3 Session ID (and associated Cookie,
   if present) as well as which MPLS Tunnel Label maps to which PE
   destination IP address.

8.2.  Static MPLS PW and Dynamic L2TPv3 PW

   When a statically configured MPLS PW is switched to a dynamic L2TPv3
   PW, the static control plane should be considered identical to an
   attachment circuit (AC) in the reference model of Figure 1.  The
   switching point PE SHOULD signal the appropriate PW status if it
   detects a failure in sending or receiving packets over the static PW.
   Because the PW is statically configured, the status communicated to
   the dynamic L2TPv3 PW will be limited to local interface failures.
   In this case, the S-PE behaves in a very similar manner to a T-PE,
   assuming an active role.

8.3.  Static L2TPv3 PW and Dynamic LDP/MPLS PW

   When a statically configured L2TPv3 PW is switched to a dynamic
   LDP/MPLS PW, then the static control plane should be considered
   identical to an attachment circuit (AC) in the reference model of
   Figure 1.  The switching point PE SHOULD signal the appropriate PW
   status (via an L2TPv3 Set-Link-Info (SLI) message) if it detects a
   failure in sending or receiving packets over the static PW.  Because
   the PW is statically configured, the status communicated to the
   dynamic LDP/MPLS PW will be limited to local interface failures.  In
   this case, the S-PE behaves in a very similar manner to a T-PE,
   assuming an active role.

8.4.  Dynamic LDP/MPLS and L2TPv3 PWs

   When switching between dynamic PWs, the switching point always
   assumes an initial passive role.  Thus, it does not initiate an
   LDP/MPLS or L2TPv3 PW until it has received a connection request
   (Label Mapping or Incoming-Call-Request (ICRQ)) from one side of the
   node.  Note that while MPLS PWs are made up of two unidirectional
   Label Switched Paths (LSPs) bonded together by FEC identifiers,
   L2TPv3 PWs are bidirectional in nature, setup via a three-message
   exchange (ICRQ, Incoming-Call-Reply (ICRP), and Incoming-Call-
   Connected (ICCN)).  Details of Session Establishment, Tear Down, and
   PW Status signaling are detailed below.

Martini, et al.              Standards Track                   [Page 17]



RFC 6073                  Segmented Pseudowire              January 2011

8.4.1.  Session Establishment

   When the S-PE receives an L2TPv3 ICRQ message, the identifying AVPs
   included in the message are mapped to FEC identifiers and sent in an
   LDP Label Mapping message.  Conversely, if an LDP Label Mapping
   message is received, it is either mapped to an ICRP message or causes
   an L2TPv3 session to be initiated by sending an ICRQ.

   Following are two example exchanges of messages between LDP and
   L2TPv3.  The first is a case where an L2TPv3 T-PE initiates an MS-PW;
   the second is a case where an MPLS T-PE initiates an MS-PW.

         PE 1 (L2TPv3)      PW Switching Node       PE3 (MPLS/LDP)

           AC "Up"
           L2TPv3 ICRQ --->
                            LDP Label Mapping  --->
                                                       AC "Up"
                                              <--- LDP Label Mapping
                      <--- L2TPv3 ICRP
           L2TPv3 ICCN  --->
         <-------------------- MS-PW Established ------------------>
         PE 1 (MPLS/LDP)      PW Switching Node       PE3 (L2TPv3)

           AC "Up"
           LDP Label Mapping --->
                                 L2TPv3 ICRQ  --->
                                                 <--- L2TPv3 ICRP
                            <--- LDP Label Mapping
                                 L2TPv3 ICCN --->
                                                      AC "Up"
         <-------------------- MS-PW Established ------------------>

8.4.2.  Adaptation of PW Status Message

   L2TPv3 uses the SLI message to indicate an interface status change
   (such as the interface transitioning from "Up" or "Down").  MPLS/LDP
   PWs either signal this via an LDP Label Withdraw or the PW Status
   Notification message defined in Section 4.4 of [RFC4447].  The LDP
   status TLV bit SHOULD be mapped to the L2TPv3 equivalent Extended
   Circuit Status Values TLV specified in [RFC5641].

8.4.3.  Session Tear Down

   L2TPv3 uses a single message, Call-Disconnect-Notify (CDN), to tear
   down a pseudowire.  The CDN message translates to a Label Withdraw
   message in LDP.  Following are two example exchanges of messages

Martini, et al.              Standards Track                   [Page 18]



RFC 6073                  Segmented Pseudowire              January 2011

   between LDP and L2TPv3.  The first is a case where an L2TPv3 T-PE
   initiates the termination of an MS-PW; the second is a case where an
   MPLS T-PE initiates the termination of an MS-PW.

      PE 1 (L2TPv3)      PW Switching Node       PE3 (MPLS/LDP)

      AC "Down"
        L2TPv3 CDN --->
                         LDP Label Withdraw  --->
                                                    AC "Down"
                                         <-- LDP Label Release

      <--------------- MS-PW Data Path Down ------------------>
      PE 1 (MPLS LDP)     PW Switching Node       PE3 (L2TPv3)

      AC "Down"
      LDP Label Withdraw  --->
                              L2TPv3 CDN -->
                          <-- LDP Label Release
                                                    AC "Down"

      <---------------- MS-PW Data Path Down ------------------>

8.5.  Adaptation of L2TPv3 AVPs to Interface Parameters

   [RFC4447] defines several interface parameters that MUST be mapped to
   the equivalent AVPs in L2TPv3 setup messages.

      * Interface MTU

        The Interface MTU parameter is mapped directly to the L2TP
        "Interface Maximum Transmission Unit" AVP defined in [RFC4667].

      * Max Number of Concatenated ATM cells

        This interface parameter is mapped directly to the L2TP "ATM
        Maximum Concatenated Cells AVP" described in Section 6 of
        [RFC4454].

      * PW Type

        The PW Type defined in [RFC4446] is mapped to the L2TPv3
        "Pseudowire Type" AVP defined in [RFC3931].

      * PWid (FEC 128)

        For FEC 128, the PWid is mapped directly to the L2TPv3 "Remote
        End ID" AVP defined in [RFC3931].

Martini, et al.              Standards Track                   [Page 19]



RFC 6073                  Segmented Pseudowire              January 2011

      * Generalized FEC 129 SAI/TAI

        Section 4.3 of [RFC4667] defines how to encode the SAI and TAI
        parameters.  These can be mapped directly.

   Other interface parameter mappings are unsupported when switching
   between LDP/MPLS and L2TPv3 PWs.

8.6.  PW Switching Point PE TLV in L2TPv3

   When translating between LDP and L2TPv3 control messages, the PW
   Switching Point PE TLV described earlier in this document is carried
   in a single variable-length L2TP AVP present in the ICRQ and ICRP
   messages, and optionally in the ICCN message.

   The L2TP "PW Switching Point AVP" is Attribute Type 101.  The AVP MAY
   be hidden (the L2TP AVP H-bit may be 0 or 1), the length of the AVP
   is 6 plus the length of the series of Switching Point PE sub-TLVs
   included in the AVP, and the AVP MUST NOT be marked Mandatory (the
   L2TP AVP M-bit MUST be 0).

8.7.  L2TPv3 and MPLS PW Data Plane

   When switching between an MPLS and L2TP PW, packets are sent in their
   entirety from one PW to the other, replacing the MPLS label stack
   with the L2TPv3 and IP header or vice versa.

   Section 5.4 of [RFC3985] discusses the purpose of the various shim
   headers necessary for enabling a pseudowire over an IP or MPLS PSN.
   For L2TPv3, the Payload Convergence and Sequencing function is
   carried out via the Default L2-Specific Sublayer defined in
   [RFC3931].  For MPLS, these two functions (together with PSN
   Convergence) are carried out via the MPLS Control Word.  Since these
   functions are different between MPLS and L2TPv3, interworking between
   the two may be necessary.

   The L2TP L2-Specific Sublayer and MPLS Control Word are shim headers,
   which in some cases are not necessary to be present at all.  For
   example, an Ethernet PW with sequencing disabled will generally not
   require an MPLS Control Word or L2TP Default L2-Specific Sublayer to
   be present at all.  In this case, Ethernet frames are simply sent
   from one PW to the other without any modification beyond the MPLS and
   L2TP/IP encapsulation and decapsulation.

   The following section offers guidelines for how to interwork between
   L2TP and MPLS for those cases where the Payload Convergence,
   Sequencing, or PSN Convergence functions are necessary on one or both
   sides of the switching node.

Martini, et al.              Standards Track                   [Page 20]



RFC 6073                  Segmented Pseudowire              January 2011

8.7.1.  Mapping the MPLS Control Word to L2TP

   The MPLS Control Word consists of (from left to right):

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0 0 0 0|  Reserved |   Length  |     Sequence Number           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

        -i. These bits are always zero in an MPLS PW PDU.  It is not
            necessary to map them to L2TP.

       -ii. These six bits may be used for Payload Convergence depending
            on the PW type.  For ATM, the first four of these bits are
            defined in [RFC4717].  These map directly to the bits
            defined in [RFC4454].  For Frame Relay, these bits indicate
            how to set the bits in the Frame Relay header that must be
            regenerated for L2TP as it carries the Frame Relay header
            intact.

      -iii. L2TP determines its payload length from IP.  Thus, this
            Length field need not be carried directly to L2TP.  This
            Length field will have to be calculated and inserted for
            MPLS when necessary.

       -iv. The Default L2-Specific Sublayer has a sequence number with
            different semantics than that of the MPLS Control Word.
            This difference eliminates the possibility of supporting
            sequencing across the MS-PW by simply carrying the sequence
            number through the switching point transparently.  As such,
            sequence numbers MAY be supported by checking the sequence
            numbers of packets arriving at the switching point and
            regenerating a new sequence number in the appropriate format
            for the PW on egress.  If this type of sequence interworking
            at the switching node is not supported, and a T-PE requests
            sequencing of all packets via the L2TP control channel
            during session setup, the switching node SHOULD NOT allow
            the session to be established by sending a CDN message with
            Result Code set to 31 "Sequencing not supported".

Martini, et al.              Standards Track                   [Page 21]



RFC 6073                  Segmented Pseudowire              January 2011

9.  Operations, Administration, and Maintenance (OAM)

9.1.  Extensions to VCCV to Support MS-PWs

   Single-segment pseudowires are signaled using the Virtual Circuit
   Connectivity Verification (VCCV) parameter included in the interface
   parameter field of the PWid FEC TLV or the interface parameter sub-
   TLV of the Generalized PWid FEC TLV as described in [RFC5085].  When
   a switching point exists between PE nodes, it is required to be able
   to continue operating VCCV end-to-end across a switching point and to
   provide the ability to trace the path of the MS-PW over any number of
   segments.

   This document provides a method for achieving these two objectives.
   This method is based on reusing the existing VCCV Control Word (CW)
   and decrementing the TTL of the PW label at each S-PE in the path of
   the MS-PW.

9.2.  OAM from MPLS PW to L2TPv3 PW

   When an MS-PW includes SS-PWs that use the L2TPv3, the MPLS PW OAM
   MUST be terminated at the S-PE connecting the L2TPv3 and MPLS
   segments.  Status information received in a particular PW segment can
   then be used to generate the appropriate status messages on the
   following PW segment.  In the case of L2TPV3, the status bits in the
   circuit status AVP defined in Section 5.4.5 of [RFC3931] and Extended
   Circuit Status Values defined in [RFC5641] can be mapped directly to
   the PW status bits defined in Section 5.4.3 of [RFC4447].

   VCCV messages are specific to the MPLS data plane and cannot be used
   for an L2TPv3 PW segment.  Therefore, the S-PE MUST NOT send the VCCV
   parameter included in the interface parameter field of the PWid FEC
   TLV or the sub-TLV interface parameter of the Generalized PWid FEC
   TLV.  It might be possible to translate VCCV messages from L2TPv3 PW
   segments to MPLS PW segments and vice versa; however, this topic is
   left for further study.

9.3.  OAM Data Plane Indication from MPLS PW to MPLS PW

   As stated above, the S-PE MUST perform a standard MPLS label swap
   operation on the MPLS PW label.  By the rules defined in [RFC3032],
   the PW label TTL MUST be decreased at every S-PE.  Once the PW label
   TTL reaches the value of 0, the packet is sent to the control plane
   to be processed.  Hence, by controlling the PW TTL value of the PW
   label, it is possible to select exactly which S-PE will respond to
   the VCCV packet.

Martini, et al.              Standards Track                   [Page 22]



RFC 6073                  Segmented Pseudowire              January 2011

9.4.  Signaling OAM Capabilities for Switched Pseudowires

   Similarly to SS-PW, MS-PW VCCV capabilities are signaled using the
   VCCV parameter included in the interface parameter field of the PWid
   FEC TLV or the sub-TLV interface parameter of the Generalized PWid
   FEC TLV as described in [RFC5085].

   In Figure 3, T-PE1 uses the VCCV parameter included in the interface
   parameter field of the PWid FEC TLV or the sub-TLV interface
   parameter of the Generalized PWid FEC TLV to indicate to the far-end
   T-PE2 what VCCV capabilities T-PE1 supports.  This is the same VCCV
   parameter as would be used if T-PE1 and T-PE2 were connected
   directly.  S-PE2, which is a PW switching point, as part of the
   adaptation function for interface parameters, processes locally the
   VCCV parameter then passes it to T-PE2.  If there were multiple S-PEs
   on the path between T-PE1 and T-PE2, each would carry out the same
   processing, passing along the VCCV parameter.  The local processing
   of the VCCV parameter removes CC Types specified by the originating
   T-PE that are not supported on the S-PE.  For example, if T-PE1
   indicates that it supports CC Types 1, 2, and 3, then the S-PE
   removes the Router Alert CC Type 2, leaving the rest of the TLV
   unchanged, and passes the modified VCCV parameter to the next S-PE
   along the path.

   The far end T-PE (T-PE2) receives the VCCV parameter indicating only
   the CC Types that are supported by the initial T-PE (T-PE1) and all
   S-PEs along the PW path.

9.5.  OAM Capability for MS-PWs Demultiplexed Using MPLS

   The VCCV parameter ID is defined as follows in [RFC4446]:

      Parameter ID   Length     Description
        0x0c           4           VCCV

   The format of the VCCV parameter field is as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      0x0c     |       0x04    |   CC Types    |   CV Types    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Bit 0 (0x01) - Type 1: PWE3 Control Word with 0001b as
                     first nibble as defined in [RFC4385]
      Bit 1 (0x02) - Type 2: MPLS Router Alert Label
      Bit 2 (0x04) - Type 3: MPLS Demultiplexor PW Label with
                     TTL == 1 (Type 3).

Martini, et al.              Standards Track                   [Page 23]



RFC 6073                  Segmented Pseudowire              January 2011

9.5.1.  MS-PW and VCCV CC Type 1

   VCCV CC Type 1 can be used for MS-PWs.  However, if the CW is enabled
   on user packets, VCCV CC Type 1 MUST be used according to the rules
   in [RFC5085].  When using CC Type 1 for MS-PWs, the PE transmitting
   the VCCV packet MUST set the TTL to the appropriate value to reach
   the destination S-PE.  However, if the packet is destined for the
   T-PE, the TTL can be set to any value that is sufficient for the
   packet to reach the T-PE.

9.5.2.  MS-PW and VCCV CC Type 2

   VCCV CC Type 2 is not supported for MS-PWs and MUST be removed from a
   VCCV parameter field by the S-PE.

9.5.3.  MS-PW and VCCV CC Type 3

   VCCV CC Type 3 can be used for MS-PWs; however, if the CW is enabled,
   VCCV Type 1 is preferred according to the rules in [RFC5085].  Note
   that for using the VCCV Type 3, TTL method, the PE will set the PW
   label TTL to the appropriate value necessary to reach the target PE;
   otherwise, the VCCV packet might be forwarded over the AC to the
   Customer Premise Equipment (CPE).

9.6.  MS-PW VCCV Operations

   This document specifies four VCCV operations:

        -i. End-to-end MS-PW connectivity verification.  This operation
            enables the connectivity of the MS-PW to be tested from
            source T-PE to destination T-PE.  In order to do this, the
            sending T-PE must include the FEC used in the last segment
            of the MS-PW to the destination T-PE in the VCCV-Ping echo
            request.  This information is either configured at the
            sending T-PE or is obtained by processing the corresponding
            sub-TLVs of the optional SP-PE TLV, as described below.

       -ii. Partial MS-PW connectivity verification.  This operation
            enables the connectivity of any contiguous subset of the
            segments of an MS-PW to be tested from the source T-PE or a
            source S-PE to a destination S-PE or T-PE.  Again, the FEC
            used on the last segment to be tested must be included in
            the VCCV-Ping echo request message.  This information is
            determined by the sending T-PE or S-PE as in (i) above.

      -iii. MS-PW path verification.  This operation verifies the path
            of the MS-PW, as returned by the SP-PE TLV, against the
            actual data path of the MS-PW.  The sending T-PE or S-PE

Martini, et al.              Standards Track                   [Page 24]



RFC 6073                  Segmented Pseudowire              January 2011

            iteratively sends a VCCV echo request to each S-PE along the
            MS-PW path, using the FEC for the corresponding MS-PW
            segment in the SP-PE TLV.  If the SP-PE TLV information is
            correct, then a VCCV echo reply showing that this is a valid
            router for the FEC will be received.  However, if the SP-PE
            TLV information is incorrect, then this operation enables
            the first incorrect switching point to be determined, but
            not the actual path of the MS-PW beyond that.  This
            operation cannot be used when the MS-PW is statically
            configured or when the SP-PE TLV is not supported.  The
            processing of the PW Switching Point PE TLV used for this
            operation is described below.  This operation is OPTIONAL.

       -iv. MS-PW path trace.  This operation traces the data path of
            the MS-PW using FECs included in the Target FEC stack TLV
            [RFC4379] returned by S-PEs or T-PEs in an echo reply
            message.  The sending T-PE or S-PE uses this information to
            recursively test each S-PE along the path of the MS-PW in a
            single operation in a similar manner to LSP trace.  This
            operation is able to determine the actual data path of the
            MS-PW, and can be used for both statically configured and
            signaled MS-PWs.  Support for this operation is OPTIONAL.

   Note that the above operations rely on intermediate S-PEs and/or the
   destination T-PE to include the PW Switching Point PE TLV as a part
   of the MS-PW setup process, or to include the Target FEC stack TLV in
   the VCCV echo reply message.  For various reasons, e.g., privacy or
   security of the S-PE/T-PE, this information may not be available to
   the source T-PE.  In these cases, manual configuration of the FEC MAY
   still be used.

9.6.1.  VCCV Echo Message Processing

   The challenge for the control plane is to be able to build the VCCV
   echo request packet with the necessary information to reach the
   desired S-PE or T-PE, for example, the target FEC 128 PW sub-TLV of
   the downstream PW segment that the packet is destined for.  This
   could be even more difficult in situations in which the MS-PW spans
   different providers and Autonomous Systems.

   For example, in Figure 3, T-PE1 has the FEC 128 of the segment (PW
   segment 1), but it does not readily have the information required to
   compose the FEC 128 of the following segment (PW segment 3), if a
   VCCV echo request is to be sent to T-PE2.  This can be achieved by
   the methods described in the following subsections.

Martini, et al.              Standards Track                   [Page 25]



RFC 6073                  Segmented Pseudowire              January 2011

9.6.1.1.  Sending a VCCV Echo Request

   When performing a partial or end-to-end connectivity or path
   verification, the sender of the echo request message requires the FEC
   of the last segment to the target S-PE/T-PE node.  This information
   can either be configured manually or be obtained by inspecting the
   corresponding sub-TLVs of the PW Switching Point PE TLV.

   The necessary SP-PE sub-TLVs are:

      Type Description
      0x01 PWid of last PW segment traversed
      0x03 Local IP address of PW Switching Point
      0x04 Remote IP address of last PW Switching Point traversed or
           of the T-PE

   When performing an OPTIONAL MS-PW path trace operation, the T-PE will
   automatically learn the target FEC by probing, one by one, the S-PEs
   of the MS-PW path, using the FEC returned in the Target FEC stack of
   the previous VCCV echo reply.

9.6.1.2.  Receiving a VCCV Echo Request

   Upon receiving a VCCV echo request, the control plane on S-PEs (or
   the target node of each segment of the MS-PW) validates the request
   and responds to the request with an echo reply consisting of a return
   code of 8 (label switched at stack depth) indicating that it is an
   S-PE and not the egress router for the MS-PW.

   S-PEs that wish to reveal their downstream next-hop in a trace
   operation should include the FEC of the downstream PW segment in the
   Target FEC stack (as per Sections 3.2 and 4.5 of [RFC4379]) of the
   echo reply message.  FEC 128 PWs MUST use the format shown in Section
   3.2.9 of [RFC4379] for the sub-TLV in the Target FEC stack, while FEC
   129 PWs MUST use the format shown in Section 3.2.10 of [RFC4379] for
   the sub-TLV in the Target FEC stack.  Note that an S-PE MUST NOT
   include this FEC information in the reply if it has been configured
   not to do so for administrative reasons or for reasons explained
   previously.

   If the node is the T-PE or the egress node of the MS-PW, it responds
   to the echo request with an echo reply with a return code of 3
   (Egress Router).

Martini, et al.              Standards Track                   [Page 26]



RFC 6073                  Segmented Pseudowire              January 2011

9.6.1.3.  Receiving a VCCV Echo Reply

   The operation to be taken by the node receiving the echo reply in
   response to an echo request depends on the VCCV mode of operation
   described above.  See Section 9.5.2 for detailed procedures.

9.6.2.  Detailed VCCV Procedures

   There are two similar methods of verifying the MS-PW path: Path Trace
   and Path Verification.  Path Trace does not use the LDP control plane
   to obtain information on the path to verify, so this method is well
   suited if portions of the MS-PW are statically configured SS-PWs.
   The Path Verification method relies on information obtained from the
   LDP control plane, and hence offers better verification of the
   current forwarding behavior compared to the LDP signaled forwarding
   information of the MS-PW path.  However, in the case where there are
   statically signaled SS-PWs in the MS-PW path, the path information is
   unavailable and must be programmed manually.

9.6.2.1.  End-to-End Connectivity Verification between T-PEs

   In Figure 3, if T-PE1, S-PE, and T-PE2 support Control Word, the PW
   control plane will automatically negotiate the use of the CW.  VCCV
   CC Type 3 will function correctly whether or not the CW is enabled on
   the PW.  However, VCCV Type 1 (which can be use for end-to-end
   verification only) is only supported if the CW is enabled.

   At the S-PE, the data path operations include an outer label pop,
   inner label swap, and new outer label push.  Note that there is no
   requirement for the S-PE to inspect the CW.  Thus, the end-to-end
   connectivity of the multi-segment pseudowire can be verified by
   performing all of the following steps:

        -i. The T-PE forms a VCCV-Ping echo request message with the FEC
            matching that of the last PW segment to the destination
            T-PE.

       -ii. The T-PE sets the inner PW label TTL to the exact value to
            allow the packet to reach the far-end T-PE.  (The value is
            determined by counting the number of S-PEs from the control
            plane information.)  Alternatively, if CC Type 1 is
            supported, the packet can be encapsulated according to CC
            Type 1 in [RFC5085].

      -iii. The T-PE sends a VCCV packet that will follow the exact same
            data path at each S-PE as that taken by data packets.

Martini, et al.              Standards Track                   [Page 27]



RFC 6073                  Segmented Pseudowire              January 2011

       -iv. The S-PE may perform an outer label pop, if Penultimate Hop
            Popping (PHP) is disabled, and will perform an inner label
            swap with TTL decrement and a new outer label push.

        -v. There is no requirement for the S-PE to inspect the CW.

       -vi. The VCCV packet is diverted to VCCV control processing at
            the destination T-PE.

      -vii. The destination T-PE replies using the specified reply mode,
            i.e., reverse PW path or IP path.

9.6.2.2.  Partial Connectivity Verification from T-PE

   In order to trace part of the multi-segment pseudowire, the TTL of
   the PW label may be used to force the VCCV message to 'pop out' at an
   intermediate node.  When the TTL expires, the S-PE can determine that
   the packet is a VCCV packet either by checking the CW or (if the CW
   is not in use) by checking for a valid IP header with UDP destination
   port 3503.  The packet should then be diverted to VCCV processing.

   In Figure 3, if T-PE1 sends a VCCV message with the TTL of the PW
   label equal to 1, the TTL will expire at the S-PE.  T-PE1 can thus
   verify the first segment of the pseudowire.

   The VCCV packet is built according to [RFC4379], Section 3.2.9 for
   FEC 128, or Section 3.2.10 for FEC 129.  All the information
   necessary to build the VCCV LSP ping packet is collected by
   inspecting the S-PE TLVs.

   Note that this use of the TTL is subject to the caution expressed in
   [RFC5085].  If a penultimate LSR between S-PEs or between an S-PE and
   a T-PE manipulates the PW label TTL, the VCCV message may not emerge
   from the MS-PW at the correct S-PE.

9.6.2.3.  Partial Connectivity Verification between S-PEs

   Assuming that all nodes along an MS-PW support the Control Word CC
   Type 3, VCCV between S-PEs may be accomplished using the PW label TTL
   as described above.  In Figure 3, the S-PE may verify the path
   between it and T-PE2 by sending a VCCV message with the PW label TTL
   set to 1.  Given a more complex network with multiple S-PEs, an S-PE
   may verify the connectivity between it and an S-PE two segments away
   by sending a VCCV message with the PW label TTL set to 2.  Thus, an
   S-PE can diagnose connectivity problems by successively increasing
   the TTL.  All the information needed to build the proper VCCV echo

Martini, et al.              Standards Track                   [Page 28]



RFC 6073                  Segmented Pseudowire              January 2011

   request packet (as described in [RFC4379], Sections 3.2.9 or 3.2.10)
   is obtained automatically from the LDP label mapping that contains
   S-PE TLVs.

9.6.2.4.  MS-PW Path Verification

   As an example, in Figure 3, VCCV trace can be performed on the MS-PW
   originating from T-PE1 by a single operational command.  The
   following process ensues:

        -i. T-PE1 sends a VCCV echo request with TTL set to 1 and a FEC
            containing the pseudowire information of the first segment
            (PW1 between T-PE1 and S-PE) to S-PE for validation.  If FEC
            Stack Validation is enabled, the request may also include an
            additional sub-TLV such as LDP Prefix and/or RSVP LSP,
            dependent on the type of transport tunnel the segmented PW
            is riding on.

       -ii. S-PE validates the echo request with the FEC.  Since it is a
            switching point between the first and second segment, it
            builds an echo reply with a return code of 8 and sends the
            echo reply back to T-PE1.

      -iii. T-PE1 builds a second VCCV echo request based on the
            information obtained from the control plane (SP-PE TLV).  It
            then increments the TTL and sends it out to T-PE2.  Note
            that the VCCV echo request packet is switched at the S-PE
            data path and forwarded to the next downstream segment
            without any involvement from the control plane.

       -iv. T-PE2 receives and validates the echo request with the FEC.
            Since T-PE2 is the destination node or the egress node of
            the MS-PW, it replies to T-PE1 with an echo reply with a
            return code of 3 (Egress Router).

        -v. T-PE1 receives the echo reply from T-PE2.  T-PE1 is made
            aware that T-PE2 is the destination of the MS-PW because the
            echo reply has a return code of 3.  The trace process is
            completed.

   If no echo reply is received, or an error code is received from a
   particular PE, the trace process MUST stop immediately, and packets
   MUST NOT be sent further along the MS-PW.

   For more detail on the format of the VCCV echo packet, refer to
   [RFC5085] and [RFC4379].  The TTL here refers to that of the inner
   (PW) label TTL.

Martini, et al.              Standards Track                   [Page 29]



RFC 6073                  Segmented Pseudowire              January 2011

9.6.2.5.  MS-PW Path Trace

   As an example, in Figure 3, VCCV trace can be performed on the MS-PW
   originating from T-PE1 by a single operational command.  The
   following OPTIONAL process ensues:

        -i. T-PE1 sends a VCCV echo request with TTL set to 1 and a FEC
            containing the pseudowire information of the first segment
            (PW1 between T-PE1 and S-PE) to S-PE for validation.  If FEC
            Stack Validation is enabled, the request may also include an
            additional sub-TLV such as LDP Prefix and/or RSVP LSP,
            dependent on the type of transport tunnel the segmented PW
            is riding on.

       -ii. The S-PE validates the echo request with the FEC.

      -iii. The S-PE builds an echo reply with a return code of 8 and
            sends the echo reply back to T-PE1, appending the FEC 128
            information for the next segment along the MS-PW to the VCCV
            echo reply packet using the Target FEC stack TLV (as per
            Sections 3.2 and 4.5 of [RFC4379]).

       -iv. T-PE1 builds a second VCCV echo request based on the
            information obtained from the FEC stack TLV received in the
            previous VCCV echo reply.  It then increments the TTL and
            sends it out to T-PE2.  Note that the VCCV echo request
            packet is switched at the S-PE data path and forwarded to
            the next downstream segment without any involvement from the
            control plane.

        -v. T-PE2 receives and validates the echo request with the FEC.
            Since T-PE2 is the destination node or the egress node of
            the MS-PW, it replies to T-PE1 with an echo reply with a
            return code of 3 (Egress Router).

       -vi. T-PE1 receives the echo reply from T-PE2.  T-PE1 is made
            aware that T-PE2 is the destination of the MS-PW because the
            echo reply has a return code of 3.  The trace process is
            completed.

   If no echo reply is received, or an error code is received from a
   particular PE, the trace process MUST stop immediately, and packets
   MUST NOT be sent further along the MS-PW.

   For more detail on the format of the VCCV echo packet, refer to
   [RFC5085] and [RFC4379].  The TTL here refers to that of the inner
   (PW) label TTL.

Martini, et al.              Standards Track                   [Page 30]



RFC 6073                  Segmented Pseudowire              January 2011

10.  Mapping Switched Pseudowire Status

   In the PW switching with attachment circuits case (Figure 2), PW
   status messages indicating PW or attachment circuit faults MUST be
   mapped to fault indications or OAM messages on the connecting AC as
   defined in [PW-MSG-MAP].

   In the PW control plane switching case (Figure 3), there is no
   attachment circuit at the S-PE, but the two PWs are connected
   together.  Similarly, the status of the PWs is forwarded unchanged
   from one PW to the other by the control plane switching function.
   However, it may sometimes be necessary to communicate fault status of
   one of the locally attached PW segments at an S-PE.  For LDP, this
   can be accomplished by sending an LDP notification message containing
   the PW status TLV, as well as an OPTIONAL PW Switching Point PE TLV
   as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0|   Notification   (0x0001)   |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0|1| Status (0x0300)           |      Length                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0|1|                 Status Code=0x00000028                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Message ID=0                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Message Type=0           |      PW Status TLV            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         PW Status TLV                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         PW Status TLV         | PWid FEC or Generalized ID FEC|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ~                                                               ~
   |             PWid FEC or Generalized ID FEC (contd.)           |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |1|0|    SP-PE TLV   (0x096D)   |     SP-PE TLV   Length        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |    Length     |    Variable Length Value      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Martini, et al.              Standards Track                   [Page 31]



RFC 6073                  Segmented Pseudowire              January 2011

   Only one SP-PE TLV can be present in this message.  This message is
   then relayed by each S-PE unchanged.  The T-PE decodes the status
   message and the included SP-PE TLV to detect exactly where the fault
   occurred.  At the T-PE, if there is no SP-PE TLV included in the LDP
   status notification, then the status message can be assumed to have
   originated at the remote T-PE.

   The merging of the received LDP status and the local status for the
   PW segments at an S-PE can be summarized as follows:

        -i. When the local status for both PW segments is UP, the S-PE
            passes any received AC or PW status bits unchanged, i.e.,
            the status notification TLV is unchanged, but the PWid in
            the case of a FEC 128 TLV is set to the value of the PW
            segment of the next hop.

       -ii. When the local status for any of the PW segments is at
            fault, the S-PE always sends the local status bits
            regardless of whether the received status bits from the
            remote node indicated that an upstream fault has cleared.
            AC status bits are passed along unchanged.

10.1.  PW Status Messages Initiated by the S-PE

   The PW fault directions are defined as follows:

                            +-------+
         ---PW1 Receive---->|       |-----PW2 Transmit---->
      S-PE1                 | S-PE2 |                   S-PE3
         <--PW1 Transmit----|       |<----PW2 Receive------
                            +-------+

      Figure 4: S-PE and PW Transmission/Reception Directions

   When a local fault is detected by the S-PE, a PW status message is
   sent in both directions along the PW.  Since there are no attachment
   circuits on an S-PE, only the following status messages are relevant:

         0x00000008 - Local PSN-facing PW (ingress) Receive Fault
         0x00000010 - Local PSN-facing PW (egress) Transmit Fault

   Each S-PE needs to store only two 32-bit PW status words for each PW
   segment: one for local failures and one for remote failures (normally
   received from another PE).  The first failure will set the
   appropriate bit in the 32-bit status word, and each subsequent
   failure will be ORed to the appropriate PW status word.  In the case

Martini, et al.              Standards Track                   [Page 32]



RFC 6073                  Segmented Pseudowire              January 2011

   that the PW status word stores remote failures, this rule has the
   effect of a logical OR operation with the first failure received on
   the particular PW segment.

   It should be noted that remote failures received on an S-PE are just
   passed along the MS-PW unchanged, while local failures detected an
   S-PE are signaled on both PW segments.

   A T-PE can receive multiple failures from S-PEs along the MS-PW;
   however, only the failure from the remote closest S-PE will be stored
   (last PW status message received).  The PW status word received is
   just ORed to any existing remote PW status already stored on the
   T-PE.

   Given that there are two PW segments at a particular S-PE for a
   particular MS-PW (referring to Figure 4), there are four possible
   failure cases as follows:

        -i. PW2 Transmit direction fault
       -ii. PW1 Transmit direction fault
      -iii. PW2 Receive direction fault
       -iv. PW1 Receive direction fault

   Once a PW status notification message is initiated at an S-PE for a
   particular PW status bit, any further status message for the same
   status bit (and received from an upstream neighbor) is processed
   locally and not forwarded until the S-PE original status error state
   is cleared.

   Each S-PE along the MS-PW MUST store any PW status messages
   transiting it.  If more than one status message with the same PW
   status bit set is received by a T-PE or S-PE, only the last PW status
   message is stored.

10.1.1.  Local PW2 Transmit Direction Fault

   When this failure occurs, the S-PE will take the following actions:

      * Send a PW status message to S-PE3 containing "0x00000010 - Local
        PSN-facing PW (egress) Transmit Fault".

      * Send a PW status message to S-PE1 containing "0x00000008 - Local
        PSN-facing PW (ingress) Receive Fault".

      * Store 0x00000010 in the local PW status word for the PW segment
        toward S-PE3.

Martini, et al.              Standards Track                   [Page 33]



RFC 6073                  Segmented Pseudowire              January 2011

10.1.2.  Local PW1 Transmit Direction Fault

   When this failure occurs, the S-PE will take the following actions:

      * Send a PW status message to S-PE1 containing "0x00000010 - Local
        PSN-facing PW (egress) Transmit Fault".

      * Send a PW status message to S-PE3 containing "0x00000008 - Local
        PSN-facing PW (ingress) Receive Fault".

      * Store 0x00000010 in the local PW status word for the PW segment
        toward S-PE1.

10.1.3.  Local PW2 Receive Direction Fault

   When this failure occurs, the S-PE will take the following actions:

      * Send a PW status message to S-PE3 containing "0x00000008 - Local
        PSN-facing PW (ingress) Receive Fault".

      * Send a PW status message to S-PE1 containing "0x00000010 - Local
        PSN-facing PW (egress) Transmit Fault".

      * Store 0x00000008 in the local PW status word for the PW segment
        toward S-PE3.

10.1.4.  Local PW1 Receive Direction Fault

   When this failure occurs, the S-PE will take the following actions:

      * Send a PW status message to S-PE1 containing "0x00000008 - Local
        PSN-facing PW (ingress) Receive Fault".

      * Send a PW status message to S-PE3 containing "0x00000010 - Local
        PSN-facing PW (egress) Transmit Fault".

      * Store 0x00000008 in the local PW status word for the PW segment
        toward S-PE1.

10.1.5.  Clearing Faults

   Remote PW status fault clearing messages received by an S-PE will
   only be forwarded if there are no corresponding local faults on the
   S-PE.  (Local faults always supersede remote faults.)

   Once the local fault has cleared, and there is no corresponding (same
   PW status bit set) remote fault, a PW status message is sent out to
   the adjacent PEs, clearing the fault.

Martini, et al.              Standards Track                   [Page 34]



RFC 6073                  Segmented Pseudowire              January 2011

   When a PW status fault clearing message is forwarded, the S-PE will
   always send the SP-PE TLV associated with the PE that cleared the
   fault.

10.2.  PW Status Messages and SP-PE TLV Processing

   When a PW status message is received that includes an SP-PE TLV, the
   SP-PE TLV information MAY be stored, along with the contents of the
   PW status Word according to the procedures described above.  The
   SP-PE TLV stored is always the SP-PE TLV that is associated with the
   PE that set that particular last fault.  If subsequent PW status
   messages for the same PW status bit are received, the SP-PE TLV will
   overwrite the previously stored SP-PE TLV.

10.3.  T-PE Processing of PW Status Messages

   The PW switching architecture is based on the concept that the T-PE
   should process the PW LDP messages in the same manner as if it were
   participating in the setup of a PW segment.  However, a T-PE
   participating in an MS-PW SHOULD be able to process the SP-PE TLV.
   Otherwise, the processing of PW status messages and other PW setup
   messages is exactly as described in [RFC4447].

10.4.  Pseudowire Status Negotiation Procedures

   Pseudowire status signaling methodology, defined in [RFC4447], SHOULD
   be transparent to the switching point.

10.5.  Status Dampening

   When the PW control plane switching methodology is used to cross an
   administrative boundary, it might be necessary to prevent excessive
   status signaling changes from being propagated across the
   administrative boundary.  This can be achieved by using a similar
   method as commonly employed for the BGP route advertisement
   dampening.  The details of this OPTIONAL algorithm are a matter of
   implementation and are outside the scope of this document.

11.  Peering between Autonomous Systems

   The procedures outlined in this document can be employed to provision
   and manage MS-PWs crossing AS boundaries.  The use of more advanced
   mechanisms involving auto-discovery and ordered PWE3 MS-PW signaling
   will be covered in a separate document.

Martini, et al.              Standards Track                   [Page 35]



RFC 6073                  Segmented Pseudowire              January 2011

12.  Congestion Considerations

   Each PSN carrying the PW may be subject to congestion.  The
   congestion considerations in [RFC3985] apply to PW segments as well.
   Each PW segment will handle any congestion experienced by the PW
   traffic independently of the other MS-PW segments.  It is possible
   that passing knowledge of congestion between segments and to the
   T-PEs can result in more efficient edge-to-edge congestion mitigation
   systems.  However, any specific methods of congestion mitigation are
   outside the scope of this document and left for further study.

13.  Security Considerations

   This document specifies the LDP, L2TPv3, and VCCV extensions that are
   needed for setting up and maintaining pseudowires.  The purpose of
   setting up pseudowires is to enable Layer 2 frames to be encapsulated
   and transmitted from one end of a pseudowire to the other.
   Therefore, we discuss the security considerations for both the data
   plane and the control plane in the following sections.  The
   guidelines and security considerations specified in [RFC5920] also
   apply to MS-PW when the PSN is MPLS.

13.1.  Data Plane Security

   Data plane security considerations as discussed in [RFC4447],
   [RFC3931], and [RFC3985] apply to this extension without any changes.

13.1.1.  VCCV Security Considerations

   The VCCV technology for MS-PW offers a method for the service
   provider to verify the data path of a specific PW.  This involves
   sending a packet to a specific PE and receiving an answer that either
   confirms the information contained in the packet or indicates that it
   is incorrect.  This is a very similar process to the commonly used IP
   ICMP ping and TTL expired methods for IP networks.  It should be
   noted that when using VCCV Type 3 for PW when the CW is not enabled,
   if a packet is crafted with a TTL greater than the number of hops
   along the MS-PW path, or an S-PE along the path mis-processes the
   TTL, the packet could mistakenly be forwarded out of the attachment
   circuit as a native PW packet.  This packet would most likely be
   treated as an error packet by the CE.  However, if this possibility
   is not acceptable, the CW should be enabled to guarantee that a VCCV
   packet will never be mistakenly forwarded to the AC.

Martini, et al.              Standards Track                   [Page 36]



RFC 6073                  Segmented Pseudowire              January 2011

13.2.  Control Protocol Security

   General security considerations with regard to the use of LDP are
   specified in Section 5 of RFC 5036.  Security considerations with
   regard to the L2TPv3 control plane are specified in [RFC3931].  These
   considerations apply as well to the case where LDP or L2TPv3 is used
   to set up PWs.

   A pseudowire connects two attachment circuits.  It is important to
   make sure that LDP connections are not arbitrarily accepted from
   anywhere, or else a local attachment circuit might get connected to
   an arbitrary remote attachment circuit.  Therefore, an incoming
   session request MUST NOT be accepted unless its IP source address is
   known to be the source of an "eligible" peer.  The set of eligible
   peers could be pre-configured (either as a list of IP addresses or as
   a list of address/mask combinations), or it could be discovered
   dynamically via an auto-discovery protocol that is itself trusted.
   (Note that if the auto-discovery protocol were not trusted, the set
   of "eligible peers" it produces could not be trusted.)

   Even if a connection request appears to come from an eligible peer,
   its source address may have been spoofed.  So some means of
   preventing source address spoofing must be in place.  For example, if
   all the eligible peers are in the same network, source address
   filtering at the border routers of that network could eliminate the
   possibility of source address spoofing.

   For a greater degree of security, the LDP authentication option, as
   described in Section 2.9 of [RFC5036], or the Control Message
   Authentication option of [RFC3931], MAY be used.  This provides
   integrity and authentication for the control messages, and eliminates
   the possibility of source address spoofing.  Use of the message
   authentication option does not provide privacy, but privacy of
   control messages is not usually considered to be highly important.
   Both the LDP and L2TPv3 message authentication options rely on the
   configuration of pre-shared keys, making it difficult to deploy when
   the set of eligible neighbors is determined by an auto-configuration
   protocol.

   The protocol described in this document relies on the LDP MD5
   authentication key option, as described in Section 2.9 of [RFC5036],
   to provide integrity and authentication for the LDP messages and
   protect against source address spoofing.  This mechanism relies on
   the configuration of pre-shared keys, which typically introduces some
   fragility.  In the specific case of MS-PW, the number of links that
   leave an organization will be limited in practice, so the reliance on
   pre-shared keys should be manageable.

Martini, et al.              Standards Track                   [Page 37]



RFC 6073                  Segmented Pseudowire              January 2011

   When the Generalized PWid FEC Element is used, it is possible that a
   particular peer may be one of the eligible peers, but may not be the
   right one to connect to the particular attachment circuit identified
   by the particular instance of the Generalized ID FEC element.
   However, given that the peer is known to be one of the eligible peers
   (as discussed above), this would be the result of a configuration
   error, rather than a security problem.  Nevertheless, it may be
   advisable for a PE to associate each of its local attachment circuits
   with a set of eligible peers, rather than have just a single set of
   eligible peers associated with the PE as a whole.

14.  IANA Considerations

14.1.  L2TPv3 AVP

   This document uses a new L2TP parameter; IANA already maintains the
   registry "Control Message Attribute Value Pairs" defined by
   [RFC3438].  The following new value has been assigned:

         101  PW Switching Point AVP

14.2.  LDP TLV TYPE

   This document uses a new LDP TLV type; IANA already maintains the
   registry "TLV TYPE NAME SPACE" defined by RFC 5036.  The following
   value has been assigned:

         TLV type  Description
          0x096D   Pseudowire Switching Point PE TLV

14.3.  LDP Status Codes

   This document uses a new LDP status code; IANA already maintains the
   registry "STATUS CODE NAME SPACE" defined by RFC 5036.  The following
   value has been assigned:

         Assignment E  Description
         0x0000003A 0  PW Loop Detected

14.4.  L2TPv3 Result Codes

   This document uses a new L2TPv3 Result Code for the CDN message, as
   assigned by IANA in the "Result Code AVP (Attribute Type 1) Values"
   registry.

Martini, et al.              Standards Track                   [Page 38]



RFC 6073                  Segmented Pseudowire              January 2011

      Registry Name: Result Code AVP (Attribute Type 1) Values Defined
      Result Code values for the CDN message are:

         Assignment  Description
             31      Sequencing not supported

14.5.  New IANA Registries

   IANA has set up a registry named "Pseudowire Switching Point PE sub-
   TLV Type".  These are 8-bit values.  Type values 1 through 6 are
   defined in this document.  Type values 7 through 64 are to be
   assigned by IANA using the "Expert Review" policy defined in
   [RFC5226].  Type values 65 through 127, as well as 0 and 255, are to
   be allocated using the IETF consensus policy defined in RFC 5226.
   Type values 128 through 254 are reserved for vendor proprietary
   extensions and are to be assigned by IANA, using the "First Come
   First Served" policy defined in RFC 5226.

   The Type Values are assigned as follows:

      Type  Length   Description

      0x01     4     PWid of last PW segment traversed
      0x02  variable PW Switching Point description string
      0x03    4/16   Local IP address of PW Switching Point
      0x04    4/16   Remote IP address of last PW Switching Point
                     traversed or of the T-PE
      0x05  variable FEC Element of last PW segment traversed
      0x06     12    L2 PW address of PW Switching Point

15.  Normative References

   [RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate
                Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2277]    Alvestrand, H., "IETF Policy on Character Sets and
                Languages", BCP 18, RFC 2277, January 1998.

   [RFC3931]    Lau, J., Ed., Townsley, M., Ed., and I. Goyret, Ed.,
                "Layer Two Tunneling Protocol - Version 3 (L2TPv3)", RFC
                3931, March 2005.

   [RFC4364]    Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
                Networks (VPNs)", RFC 4364, February 2006.

   [RFC4379]    Kompella, K. and G. Swallow, "Detecting Multi-Protocol
                Label Switched (MPLS) Data Plane Failures", RFC 4379,
                February 2006.

Martini, et al.              Standards Track                   [Page 39]



RFC 6073                  Segmented Pseudowire              January 2011

   [RFC4385]    Bryant, S., Swallow, G., Martini, L., and D. McPherson,
                "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word
                for Use over an MPLS PSN", RFC 4385, February 2006.

   [RFC4446]    Martini, L., "IANA Allocations for Pseudowire Edge to
                Edge Emulation (PWE3)", BCP 116, RFC 4446, April 2006.

   [RFC4447]    Martini, L., Ed., Rosen, E., El-Aawar, N., Smith, T.,
                and G. Heron, "Pseudowire Setup and Maintenance Using
                the Label Distribution Protocol (LDP)", RFC 4447, April
                2006.

   [RFC5003]    Metz, C., Martini, L., Balus, F., and J. Sugimoto,
                "Attachment Individual Identifier (AII) Types for
                Aggregation", RFC 5003, September 2007.

   [RFC5036]    Andersson, L., Ed., Minei, I., Ed., and B. Thomas, Ed.,
                "LDP Specification", RFC 5036, October 2007.

   [RFC5085]    Nadeau, T., Ed., and C. Pignataro, Ed., "Pseudowire
                Virtual Circuit Connectivity Verification (VCCV): A
                Control Channel for Pseudowires", RFC 5085, December
                2007.

   [RFC5226]    Narten, T. and H. Alvestrand, "Guidelines for Writing an
                IANA Considerations Section in RFCs", BCP 26, RFC 5226,
                May 2008.

   [RFC5641]    McGill, N. and C. Pignataro, "Layer 2 Tunneling Protocol
                Version 3 (L2TPv3) Extended Circuit Status Values", RFC
                5641, August 2009.

16. Informative References

   [PW-MSG-MAP] Aissaoui, M., Busschbach, P., Morrow, M., Martini, L.,
                Stein, Y(J)., Allan, D., and T. Nadeau, "Pseudowire (PW)
                OAM Message Mapping", Work in Progress, October 2010.

   [RFC3032]    Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
                Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
                Encoding", RFC 3032, January 2001.

   [RFC3438]    Townsley, W., "Layer Two Tunneling Protocol (L2TP)
                Internet Assigned Numbers Authority (IANA)
                Considerations Update", BCP 68, RFC 3438, December 2002.

Martini, et al.              Standards Track                   [Page 40]



RFC 6073                  Segmented Pseudowire              January 2011

   [RFC3985]    Bryant, S., Ed., and P. Pate, Ed., "Pseudo Wire
                Emulation Edge-to-Edge (PWE3) Architecture", RFC 3985,
                March 2005.

   [RFC4023]    Worster, T., Rekhter, Y., and E. Rosen, Ed.,
                "Encapsulating MPLS in IP or Generic Routing
                Encapsulation (GRE)", RFC 4023, March 2005.

   [RFC4454]    Singh, S., Townsley, M., and C. Pignataro, "Asynchronous
                Transfer Mode (ATM) over Layer 2 Tunneling Protocol
                Version 3 (L2TPv3)", RFC 4454, May 2006.

   [RFC4623]    Malis, A. and M. Townsley, "Pseudowire Emulation Edge-
                to-Edge (PWE3) Fragmentation and Reassembly", RFC 4623,
                August 2006.

   [RFC4667]    Luo, W., "Layer 2 Virtual Private Network (L2VPN)
                Extensions for Layer 2 Tunneling Protocol (L2TP)", RFC
                4667, September 2006.

   [RFC4717]    Martini, L., Jayakumar, J., Bocci, M., El-Aawar, N.,
                Brayley, J., and G. Koleyni, "Encapsulation Methods for
                Transport of Asynchronous Transfer Mode (ATM) over MPLS
                Networks", RFC 4717, December 2006.

   [RFC5254]    Bitar, N., Ed., Bocci, M., Ed., and L. Martini, Ed.,
                "Requirements for Multi-Segment Pseudowire Emulation
                Edge-to-Edge (PWE3)", RFC 5254, October 2008.

   [RFC5659]    Bocci, M. and S. Bryant, "An Architecture for Multi-
                Segment Pseudowire Emulation Edge-to-Edge", RFC 5659,
                October 2009.

   [RFC5920]    Fang, L., Ed., "Security Framework for MPLS and GMPLS
                Networks", RFC 5920, July 2010.

Martini, et al.              Standards Track                   [Page 41]



RFC 6073                  Segmented Pseudowire              January 2011

17.  Acknowledgments

   The authors wish to acknowledge the contributions of Satoru
   Matsushima, Wei Luo, Neil Mcgill, Skip Booth, Neil Hart, Michael Hua,
   and Tiberiu Grigoriu.

18.  Contributors

   The following people also contributed text to this document:

   Florin Balus
   Alcatel-Lucent
   701 East Middlefield Rd.
   Mountain View, CA  94043
   US
   EMail: florin.balus@alcatel-lucent.com

   Mike Duckett
   Bellsouth
   Lindbergh Center, D481
   575 Morosgo Dr
   Atlanta, GA  30324
   US
   EMail: mduckett@bellsouth.net

Martini, et al.              Standards Track                   [Page 42]



RFC 6073                  Segmented Pseudowire              January 2011

Authors' Addresses

   Luca Martini
   Cisco Systems, Inc.
   9155 East Nichols Avenue, Suite 400
   Englewood, CO  80112
   US
   EMail: lmartini@cisco.com

   Chris Metz
   Cisco Systems, Inc.
   EMail: chmetz@cisco.com

   Thomas D. Nadeau
   EMail: tnadeau@lucidvision.com

   Matthew Bocci
   Alcatel-Lucent
   Grove House, Waltham Road Rd
   White Waltham, Berks  SL6 3TN
   UK
   EMail: matthew.bocci@alcatel-lucent.co.uk

   Mustapha Aissaoui
   Alcatel-Lucent
   600, March Road,
   Kanata, ON
   Canada
   EMail: mustapha.aissaoui@alcatel-lucent.com

Martini, et al.              Standards Track                   [Page 43]