<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7271 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7271.xml">
<!ENTITY RFC6378 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6378.xml">
]>
<rfc submissionType="IETF" docName="draft-ietf-mpls-tp-aps-updates-04.txt" category="std" updates="7271"><?rfc compact="yes"?>
	<?rfc text-list-symbols="o*+-"?>
	<?rfc subcompact="no"?>
	<?rfc sortrefs="no"?>
	<?rfc symrefs="yes"?>
	<?rfc strict="yes"?>
	<?rfc toc="yes"?>
	<front>
	<title abbrev="Updates to MPLS-TP LP in APS mode">Updates to MPLS Transport Profile (MPLS-TP) Linear Protection in Automatic Protection Switching (APS) Mode</title>
	<author fullname="Jeong-dong Ryoo" initials="J." surname="Ryoo">
	<organization>ETRI</organization>
	<address><email>ryoo@etri.re.kr</email>
	</address>
	</author>

	<author fullname="Taesik Cheung" initials="T." surname="Cheung">
	<organization>ETRI</organization>
	<address><email>cts@etri.re.kr</email>
	</address>
	</author>

	<author fullname="Huub Van Helvoort" initials="H." surname="Van Helvoort">
	<organization>Hai Gaoming BV</organization>
	<address><email>huubatwork@gmail.com</email>
	</address>
	</author>

	<author fullname="Italo Busi" initials="I." surname="Busi">
	<organization>Huawei Technologies</organization>
	<address><email>Italo.Busi@huawei.com</email>
	</address>
	</author>

	<author fullname="Guangjuan Wen" initials="G." surname="Wen">
	<organization>Huawei Technologies</organization>
	<address><email>wenguangjuan@huawei.com</email>
	</address>
	</author>

	<date day="3" month="June" year="2017"/>
	<workgroup>MPLS Working Group</workgroup>
	<abstract><t>
   This document contains updates to MPLS Transport Profile (MPLS-TP)
   linear protection in Automatic Protection Switching (APS) mode
   defined in RFC 7271.  The updates provide rules related to the
   initialization of the Protection State Coordination (PSC) Control
   Logic, in which the state machine resides, when operating in APS
   mode, and clarify some operation related to state transition table
   lookup.</t>

	</abstract>
	</front>

	<middle>
	<section title="Introduction" anchor="section-1"><t>
   MPLS Transport Profile (MPLS-TP) linear protection in Automatic
   Protection Switching (APS) mode is defined in RFC 7271 <xref target="RFC7271"/>.  It
   defines a set of alternate and additional mechanisms to perform some
   of the functions of linear protection described in RFC 6378
   <xref target="RFC6378"/>.  The actions performed at initialization of the Protection
   State Coordination (PSC) Control Logic are not described in either
   <xref target="RFC7271"/> or <xref target="RFC6378"/>.  Although it is a common perception that the
   state machine starts at the Normal state, this is not explicitly
   specified in any of the documents and various questions have been
   raised by implementers and in discussions on the MPLS working group
   mailing list concerning the detailed actions that the PSC Control
   Logic should take.</t>

	<t>
   The state machine described in <xref target="RFC7271"/> operates under the
   assumption that both end nodes of a linear protection domain start in
   the Normal state.  In the case that one node reboots while the other
   node is still in operation, various scenarios may arise resulting in
   problematic situations.  This document resolves all the problematic
   cases and minimizes traffic disruptions related to initialization
   including both cold and warm reboots that require re-initialization
   of the PSC Control Logic.</t>

	<t>
   This document contains updates to the MPLS-TP linear protection in
   APS mode defined in <xref target="RFC7271"/>.  The updates provide rules related to
   initialization of the PSC Control Logic, in which the state machine
   resides, when operating in APS mode.  The updates also include
   modifications to the state transition table defined in Section 11.2
   of <xref target="RFC7271"/>.  The changes in the state transition table have been
   examined to make sure that they do not introduce any new problems.</t>

	<t>
   This document does not introduce backward compatibility issues with
   implementations of <xref target="RFC7271"/>.  In case a node implementing this
   document restarts, the new state changes will not cause problems at
   the remote node implementing <xref target="RFC7271"/> and the two ends will converge
   to the same local and remote states.  In case a node implementing
   <xref target="RFC7271"/> restarts, the two ends behave as today.</t>

	<t>
   This document also provides some clarifications on the operation
   related to state transition table lookup.</t>

	<t>
   The reader of this document is assumed to be familiar with <xref target="RFC7271"/>.</t>

	</section>

	<section title="Conventions Used in This Document" anchor="section-2"><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 title="Acronyms" anchor="section-3"><t>
   This document uses the following acronyms:</t>

	<figure><artwork><![CDATA[
APS     Automatic Protection Switching
DNR     Do-not-Revert
E::R    Exercise state due to remote EXER message
EXER    Exercise
MS-P    Manual Switch to Protection path
MS-W    Manual Switch to Working path
MPLS-TP MPLS Transport Profile
NR      No Request
PF:DW:R Protecting Failure state due to remote SD-W message
PF:W:L  Protecting Failure state due to local SF-W
PF:W:R  Protecting Failure state due to remote SF-W message
PSC     Protection State Coordination
RR      Reverse Request
SA:MP:R Switching Administrative state due to remote MS-P message
SA:MW:R Switching Administrative state due to remote MS-W message
SD      Signal Degrade
SF-P    Signal Fail on Protection path
SF-W    Signal Fail on Working path
UA:P:L  Unavailable state due to local SF-P
WTR     Wait-to-Restore
]]></artwork>
	</figure>
	</section>

	<section title="Updates" anchor="section-4"><t>
   This section specifies the actions that will be performed at the
   initialization of the PSC Control Logic and the modifications of the
   state transition table defined in Section 11.2 of <xref target="RFC7271"/>.  Some
   clarifications on the operation related to state transition table
   lookup are also provided.</t>

	<section title="Initialization Behavior" anchor="section-4.1"><t>
   This section defines initialization behavior that is not described in
   <xref target="RFC7271"/>.</t>

	<t>
   When the PSC Control Logic is initialized, the following actions MUST
   be performed:</t>

	<t><list style="symbols"><t>Stop the WTR timer if it is running.</t>

	<t>Clear any operator command in the Local Request Logic.</t>

	<t>If an SF-W or SF-P exists as the highest local request, the node
      being initialized starts at the PF:W:L or UA:P:L state,
      respectively.</t>

	<t>If the node being initialized has no local request:<list style="symbols"><t>If the node being initialized does not remember the active path
         or if the node being initialized remembers the working path as
         the active path, the node starts at the Normal state.</t>

	<t>Else (the node being initialized remembers the protection path
         as the active path), the node starts at the WTR state sending
         NR(0,1) or at the DNR state sending DNR(0,1) depending on the
         configuration that allows or prevents automatic reversion to
         the Normal state.</t>

	</list>
	</t>

	<t>In case any local SD exists, the local SD MUST be considered as an
      input to the Local Request Logic only after the local node has
      received the first protocol message from the remote node and
      completed the processing (i.e., updated the PSC Control Logic and
      decided which action, if any, to be sent to the PSC Message
      Generator).</t>

	<t>If the local node receives an EXER message as the first protocol
      message after initialization and the remote EXER becomes the top-
      priority global request, the local node MUST set the position of
      the bridge and selector according to the Path value in the EXER
      message and transit to the E::R state.</t>

	</list>
	</t>

	<t>
   Remembering the active path in case of no local request minimizes
   traffic switchovers in cases where the remote node is still in
   operation.  This approach does not cause a problem even if the
   remembered active path is no longer valid due to any local input that
   occurred at the remote node while the initializing node was out of
   operation.</t>

	<t>
   It is worth noting that in some restart scenarios (e.g., cold
   rebooting) no valid SF/SD indications may be present at the input of
   the Local Request logic.  In this case, the PSC Control Logic would
   restart as if no local requests are present.  If a valid SF/SD
   indication is detected later, this would be notified to the PSC
   Control Logic and trigger state change.</t>

	</section>

	<section title="State Transition Modification" anchor="section-4.2"><t>
   In addition to the initialization behavior described in <xref target="section-4.1"/>,
   four cells of the remote state transition table need to be changed to
   make two end nodes converge after initialization.  State transition
   by remote message defined in Section 11.2 of <xref target="RFC7271"/> is modified as
   follows (only modified cells are shown):</t>

	<figure><artwork><![CDATA[
        | MS-W    | MS-P    | WTR | EXER | RR | DNR  | NR
--------+---------+---------+-----+------+----+------+----
N       |         |         | (13)|      |    | DNR  |
PF:W:R  |         |         |     |      |    | DNR  |
PF:DW:R |         |         |     |      |    | DNR  |
]]></artwork>
	</figure>
	<t>
   The changes in two rows of remote protecting failure states lead to
   the replacement of note (10) with DNR, therefore note (10) is no
   longer needed.  The resultant three rows read:</t>

	<figure><artwork><![CDATA[
        | MS-W    | MS-P    | WTR | EXER | RR | DNR  | NR
--------+---------+---------+-----+------+----+------+----
N       | SA:MW:R | SA:MP:R | (13)| E::R | i  | DNR  | i
PF:W:R  | SA:MW:R | SA:MP:R | (9) | E::R | i  | DNR  | (11)
PF:DW:R | SA:MW:R | SA:MP:R | (9) | E::R | i  | DNR  | (11)
]]></artwork>
	</figure>
	<t>
   In the tables above, the letters 'i' and 'N' stand for "ignore" and
   "Normal state", respectively.  Other acronyms can be found in
   <xref target="section-3"/>.</t>

	</section>

	<section title="Operation related to State Transition Table Lookup" anchor="section-4.3"><t>
   In addition to the rules related to the state transition table lookup
   listed in Section 11 of <xref target="RFC7271"/>, the following rule is also applied
   to the operation related to the state transition table lookup:</t>

	<t><list style="symbols"><t>When the local SF-P is cleared and the priorities of the local and
      remote requests are re-evaluated, the last received remote message
      may not be valid any more due to the previous failure of the
      protection path.  Therefore, the last received message MUST be
      treated as if it were NR and only the local request shall be
      evaluated.</t>

	</list>
	</t>

	<t>
   The last paragraph in Section 11 of <xref target="RFC7271"/> is modified as follows:</t>

	<texttable style="headers"><ttcol> Ol</ttcol>
	<c>In</c>
	<c>"i</c>
	<c>co</c>
	<c>Ne</c>
	<c>In</c>
	<c>gl</c>
	</texttable>
	<t>
   If re-evaluation is triggered, it is checked if the ignore flag is
   set. If it is, the state machine will transit to the supposed state,
   which can be Normal or DNR as indicated in the footnotes to the
   state transition tables. If the ignore flag is not set, the state
   machine will transit to the state indicated in the cell of the state
   transition table.</t>

	<t>
   If re-evaluation is not triggered, it is checked if the ignore flag
   is set. If it is, the state machine will remain in the current state,
   and the current PSC message continues to be transmitted. If the
   ignore flag is not set, the state machine will transit to the state
   indicated in the cell of the state transition table.</t>

	</section>

	</section>

	<section title="Security Considerations" anchor="section-5"><t>
   No specific security issue is raised in addition to those ones
   already documented in <xref target="RFC7271"/>.  It may be noted that tightening the
   description of initializing behavior may help to protect networks
   from re-start attacks.</t>

	</section>

	<section title="IANA Considerations" anchor="section-6"><t>
   This document makes no request of IANA.</t>

	<t>
   Note to RFC Editor: this section may be removed on publication as an
   RFC.</t>

	</section>

	<section title="Acknowledgements" anchor="section-7"><t>
   The authors would like to thank Joaquim Serra for bringing up the
   issue related to initialization of the PSC Control Logic at the very
   beginning.  The authors would also like to thank Adrian Farrel and
   Loa Andersson for their valuable comments and suggestions on this
   document.</t>

	</section>

	</middle>

	<back>
	<references title="Normative References">
	&RFC2119;
	&RFC7271;
	</references>
	<references title="Informative References">
	&RFC6378;
	</references>
	</back>

	</rfc>
	
