<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-pals-ms-pw-protection-04.txt" updates="6870"
     ipr="trust200902">
  <front>
    <title abbrev="MS-PW Protection">S-PE Protection for MPLS and MPLS-TP Static Multi-Segment Pseudowires</title>

    <author fullname="Andrew G. Malis" initials="A." surname="Malis" role="editor">
      <organization>Huawei Technologies Co., Ltd</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>agmalis@gmail.com</email>
      </address>
    </author>

    <author fullname="Loa Andersson" initials="L." surname="Andersson">
      <organization>Huawei Technologies Co., Ltd</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>loa@mail01.huawei.com</email>
      </address>
    </author>

    <author fullname="Huub van Helvoort" initials="H." surname="van Helvoort">
      <organization>Hai Gaoming BV</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>huubatwork@gmail.com</email>
      </address>
    </author>

      <author fullname="Jongyoon Shin" initials="J." surname="Shin">
      <organization>SK Telecom</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>jongyoon.shin@sk.com</email>
      </address>
    </author>


      <author fullname="Lei Wang" initials="L." surname="Wang">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>wangleiyj@chinamobile.com</email>
      </address>
    </author>


      <author fullname="Alessandro D'Alessandro" initials="A." surname="D'Alessandro">
      <organization>Telecom Italia</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <email>alessandro.dalessandro@telecomitalia.it</email>
      </address>
    </author>

    <date />

    <abstract>

      <t>
In MPLS and MPLS Transport Profile (MPLS-TP) environments, statically provisioned Single-Segment Pseudowires (SS-PWs) are protected against tunnel failure via MPLS-level and MPLS-TP-level tunnel protection. With statically provisioned Multi-Segment Pseudowires (MS-PWs), each segment of the MS-PW is likewise protected from tunnel failures via MPLS-level and MPLS-TP-level tunnel protection. However, static MS-PWs are not protected end-to-end against failure of one of the Switching Provider Edge Routers (S-PEs) along the path of the MS-PW. This document describes how to achieve this protection via redundant MS-PWs by updating the existing procedures in RFC 6870. It also contains an optional approach based on MPLS-TP Linear Protection.
      </t>

    </abstract>

  </front>

  <middle>
  <!-- section 1 -->
    <section title="Introduction">

<t>
In MPLS and MPLS Transport Profile (MPLS-TP) Packet Switched Networks
(PSNs), pseudowires (PWs) are transported by MPLS(-TP) Label Switched
Paths (LSPs), also known as tunnels.
</t>
    <t>
As described in RFC 5659 <xref target="RFC5659"/>, Multi-Segment
Pseudowires (MS-PWs) consist of Terminating Provider Edge Routers PEs
(T-PEs), one or more Switching Provider Edge Routers (S-PEs), and a
sequence of tunneled PW segments that connects one of the T-PEs with
its "adjacent" S-PE, connects this S-PE with the next S-PE in the
sequence and so on until the last S-PE is connected by the last PW
segment to the remaining T-PE. In MPLS and MPLS-TP environments,
statically provisioned Single-Segment Pseudowires (SS-PWs) are
protected against tunnel failure via MPLS-level and MPLS-TP-level
tunnel protection. With statically provisioned Multi-Segment
Pseudowires (MS-PWs), each PW segment of the MS-PW is likewise
protected from tunnel failure via MPLS-level and MPLS-TP-level tunnel
protection. However, tunnel protection does not protect static MS-PWs
from failures of S-PEs along the path of the MS-PW.
    </t>
    <t>
RFC 6718 <xref target="RFC6718"/> provides a general framework for PW protection, and RFC 6870 <xref target="RFC6870"/>, which is based upon that framework, describes protection procedures for MS-PWs that are dynamically signaled using LDP. This document describes how to achieve protection against S-PE failure in a static MS-PW by extending RFC 6870 to be applicable for statically provisioned MS-PWs pseudowires (PWs) as well.
    </t>
    <t>
This document also contains an OPTIONAL alternative approach based on MPLS-TP Linear Protection. This approach, described in <xref target="app-linear"/>, MUST be identically provisioned in the PE endpoints for the protected MS-PW in order to be used. See <xref target="app-linear"/> for further details on this alternative approach.
</t>
<t>
This document differs from <xref target="I-D.ietf-pals-redundancy-spe"/> in that this draft provides end-to-end resiliency for static MS-PWs, while <xref target="I-D.ietf-pals-redundancy-spe"/> provides resiliency at intermediate S-PEs, rather than end-to-end resiliency, and for both dynamically signaled and static MS-PWs.
</t>
<t>
Layer 2 Tunneling Protocol Version 3 (L2TPv3)-based PWs are outside the scope of this document.
</t>
    <section anchor="Language" title="Requirements Language">
    <t>
   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 RFC 2119 <xref target="RFC2119"/>.
    </t>
     </section>
     </section>

    <section anchor="Extension" title="Extension to RFC 6870 to Protect Statically Provisioned SS-PWs and MS-PWs">

    <t>
Section 3.2.3 of RFC 6718 and Section A.5 of RFC 6870 document how to use redundant MS-PWs to protect an MS-PW against S-PE failure in the case of a singly-homed CE, using the following network model from RFC 6718:
</t>
<t><figure anchor="SH-CE-MS-PW"
title="Single-Homed CE with Redundant MS-PWs">
<artwork><![CDATA[    Native   |<----------- Pseudowires ----------->|  Native
    Service  |                                     |  Service
     (AC)    |     |<-PSN1-->|     |<-PSN2-->|     |  (AC)
       |     V     V         V     V         V     V   |
       |     +-----+         +-----+         +-----+   |
+----+ |     |T-PE1|=========|S-PE1|=========|T-PE2|   |   +----+
|    |-------|......PW1-Seg1.......|.PW1-Seg2......|-------|    |
| CE1|       |     |=========|     |=========|     |       | CE2|
|    |       +-----+         +-----+         +-----+       |    |
+----+        |.||.|                          |.||.|       +----+
              |.||.|         +-----+          |.||.|
              |.||.|=========|     |========== .||.|
              |.||...PW2-Seg1......|.PW2-Seg2...||.|
              |.| ===========|S-PE2|============ |.|
              |.|            +-----+             |.|
              |.|============+-----+============= .|
              |.....PW3-Seg1.|     | PW3-Seg2......|
               ==============|S-PE3|===============
                             |     |
                             +-----+
]]></artwork>
</figure>In this figure, Customer Edge Router 1 (CE1) is connected to T-PE1 and CE2 is connected to T-PE2 via Attachment Circuits (ACs). There are three MS-PWs. PW1 is switched at S-PE1, PW2 is switched at S-PE2, and PW3 is switched at S-PE3. This scenario provides N:1 protection against S-PE failure for the subset of the path of the emulated service from T-PE1 to T-PE2.</t>
<t>
The procedures in RFCs 6718 and 6870 rely on LDP-based PW status signaling to signal the state of the primary MS-PW that is being protected, and the precedence in which redundant MS-PW(s) should be used to protect the primary MS-PW should it fail. These procedures make use of information carried by the PW Status TLV, which, for dynamically signaled PWs, is carried by the LDP protocol.
    </t>
    <t>
However, statically provisioned PWs (SS-PWs or MS-PWs) do not use the LDP protocol for PW set and signaling; rather they are provisioned by network management systems or other means at each T-PE and S-PE along their path. They also do not use the LDP protocol for status signaling. Rather, they use procedures defined in RFC 6478 <xref target="RFC6478"/> for status signaling via the PW OAM message using the PW Associated Channel Header (ACH). The PW Status TLV carried via this status signaling is itself identical to the PW Status TLV carried via LDP-based status signaling, including the identical PW Status Codes.
    </t>
    <t>
Sections 6 and 7 of RFC 6870 describe the management of a primary PW and its secondary PW(s) to provide resiliency to the failure of the primary PW. They use status codes transmitted between endpoint T-PEs using the PW Status TLV transmitted by LDP. For this management to apply to statically provisioned PWs, the PW status signaling defined in RFC 6478 MUST be used for the primary and secondary PWs. In that case, the endpoint T-PEs can then use the PW status signaling provided by RFC 6478 in place of LDP-based status signaling, so that the status-signaling-based procedures in RFC 6870 operate identically as when used with LDP-based status signaling. Note that the optional S-PE Bypass Mode defined in Section 5.5 of RFC 6478 cannot be used, as it requires LDP signaling.
    </t>
    </section>
    <section anchor="Operational" title="Operational Considerations">
    <t>
Because LDP is not used between the T-PEs for statically provisioned MS-PWs, the negotiation procedures described in RFC 6870 cannot be used. Thus, operational care must be taken so that the endpoint T-PEs are identically provisioned regarding the use of this document, specifically whether or not MS-PW redundancy is being used, and for each protected MS-PW, the identity of the primary MS-PW and the precedence of the secondary MS-PWs.
    </t>
    </section>
    <section anchor="security" title="Security Considerations">

    <t>
The security considerations defined for RFC 6478 apply to this document as well. As the security considerations in RFCs 6718 and 6870 are related to their use of LDP, they are not required for this document.
    </t>

<t>
If the alternative approach in <xref target="app-linear"/> is used, then the security considerations defined for RFCs 6378, 7271, and 7324 also apply.
</t>

    </section>


    <section anchor="IANA" title="IANA Considerations">

    <t>
     There are no requests for IANA actions in this document.
    </t>

    <t>
     Note to the RFC Editor - this section can be removed before publication.
    </t>

    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
The authors would like to thank Matthew Bocci, Yaakov Stein, David Sinicrope, Sasha Vainshtein, and Italo Busi for their comments on this document.
      </t>
      <t>
Figure 1 and the explanatory paragraph following the figure were taken from RFC 6718. Figure 2 was adapted from RFC 6378.
      </t>
    </section>

  </middle>

  <back>

    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.6378"?>
      <?rfc include="reference.RFC.6478"?>
      <?rfc include="reference.RFC.6870"?>
      <?rfc include="reference.RFC.7271"?>
      <?rfc include="reference.RFC.7324"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.5659"?>
      <?rfc include="reference.RFC.6718"?>
      <?rfc include="reference.I-D.ietf-pals-redundancy-spe.xml"?>
    </references>

   <section anchor="app-linear" title="Optional Linear Protection Approach">
    <section title="Introduction">

    <t>
      In "MPLS Transport Profile (MPLS-TP) Linear Protection" <xref
      target="RFC6378"/>, as well as in the later updates of this RFC
      in "MPLS Transport Profile (MPLS-TP) Linear Protection to Match
      the Operational Expectations of Synchronous Digital Hierarchy,
      Optical Transport Network, and Ethernet Transport Network
      Operators" <xref target="RFC7271"/> and in "Updates to MPLS
      Transport Profile Linear Protection" <xref target="RFC7324"/>,
      the Protection State Coordination (PSC) protocol was defined for
      MPLS LSPs only.
    </t>

    <t>
      This Appendix extends these RFCs to be applicable for PWs (SS-PW and MS-PW) as
      well.  This is useful especially in the case of end-to-end static
      provisioned MS-PWs running over MPLS-TP
      where tunnel protection alone cannot be relied upon for end-to-end protection of PWs against S-PE failure. It also enables a uniform operational approach for protection at LSP and PW layers and an easier management integration for networks that already use RFCs 6378, 7271, and 7324.
    </t>

    <t>
       The protection architectures are those defined in [RFC6378]. For the
   purposes of this Appendix, we define the protection domain of a
   point-to-point PW as consisting of two terminating PEs (T-PEs) and
   the transport paths that connect them (see Figure 2).
	</t>

<t><figure anchor="ProtectionDomain"
title="Protection Domain">
<artwork><![CDATA[              +-----+ //=======================\\ +-----+
              |T-PE1|//     Working Path        \\|T-PE2|
              |    /|                             |\    |
              |  ?< |                             | >?  |
              |    \|\\    Protection Path      //|/    |
              +-----+ \\=======================// +-----+

                  |<-------Protection Domain------->|
]]></artwork>
</figure></t>

 <t>
This Appendix is an OPTIONAL alternative approach to the one in <xref target="Extension"/>. For interoperability, all implementations MUST include the approach in <xref target="Extension"/> even if this alternative approach is used. The operational considerations in <xref target="Operational"/> continue to apply when this approach is used, and operational care must be taken so that the endpoint T-PEs are identically provisioned regarding the use of this document.
    </t>


     </section>

    <section anchor="encap" title="Encapsulation of the PSC Protocol for Pseudowires">

    <t>
     The PSC protocol can be used to protect against defects on any LSP
     (segment, link, or path). In the case of MS-PW, the PSC protocol can
     also protect failed intermediate nodes (S-PE).
     Linear protection protects an LSP or PW end-to-end and if a failure is
     detected, switches traffic over to another (redundant) set of resources.
    </t>

    <t>
     Obviously, the protected entity does not need to be of the same type as the
     protecting entity. For example, it is possible to protect a link by a path. Likewise it is possible
     to protect an SS-PW with a MS-PW and vice versa.
    </t>

    <t>
     From a PSC protocol point of view it is possible to view a SS-PW as a
     single hop LSP, and a MS-PW as a multiple hop LSP. Thus, this provides end-to-end protection for the SS-PW or MS-PW. The Generic Associated Channel (G-Ach)  carrying the
     PSC protocol information is placed in the label stack directly
     beneath the PW identifier. The PSC protocol will then
     work as specified in RFCs 6378, 7271, and 7324.
    </t>
    </section>
    </section>


  </back>
</rfc>
