Updates to MPLS Transport Profile (MPLS-TP) Linear Protection in Automatic Protection Switching (APS) Mode
Jeong-dong Ryoo
ETRI
ryoo@etri.re.kr
Taesik Cheung
ETRI
cts@etri.re.kr
Huub Van Helvoort
Hai Gaoming BV
huubatwork@gmail.com
Italo Busi
Huawei Technologies
Italo.Busi@huawei.com
Guangjuan Wen
Huawei Technologies
wenguangjuan@huawei.com
3 June 2017
MPLS Working Group
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.

Introduction
MPLS Transport Profile (MPLS-TP) linear protection in Automatic Protection Switching (APS) mode is defined in RFC 7271 [RFC7271]. It defines a set of alternate and additional mechanisms to perform some of the functions of linear protection described in RFC 6378 [RFC6378]. The actions performed at initialization of the Protection State Coordination (PSC) Control Logic are not described in either [RFC7271] or [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.
The state machine described in [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.
This document contains updates to the MPLS-TP linear protection in APS mode defined in [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 [RFC7271]. The changes in the state transition table have been examined to make sure that they do not introduce any new problems.
This document does not introduce backward compatibility issues with implementations of [RFC7271]. In case a node implementing this document restarts, the new state changes will not cause problems at the remote node implementing [RFC7271] and the two ends will converge to the same local and remote states. In case a node implementing [RFC7271] restarts, the two ends behave as today.
This document also provides some clarifications on the operation related to state transition table lookup.
The reader of this document is assumed to be familiar with [RFC7271].

Conventions Used in This Document
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 [RFC2119].

Acronyms
This document uses the following acronyms:

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

Updates
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 [RFC7271]. Some clarifications on the operation related to state transition table lookup are also provided.

Initialization Behavior
This section defines initialization behavior that is not described in [RFC7271].
When the PSC Control Logic is initialized, the following actions MUST be performed:
- Stop the WTR timer if it is running.
- Clear any operator command in the Local Request Logic.
- 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.
- If the node being initialized has no local request:
  - 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.
  - 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.
- 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).
- 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.
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.
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.

State Transition Modification
In addition to the initialization behavior described in 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 [RFC7271] is modified as follows (only modified cells are shown):

        | MS-W    | MS-P    | WTR | EXER | RR | DNR  | NR
--------+---------+---------+-----+------+----+------+----
N       |         |         | (13)|      |    | DNR  |
PF:W:R  |         |         |     |      |    | DNR  |
PF:DW:R |         |         |     |      |    | DNR  |

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:

        | 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)

In the tables above, the letters 'i' and 'N' stand for "ignore" and "Normal state", respectively. Other acronyms can be found in Section 3.

Operation related to State Transition Table Lookup
In addition to the rules related to the state transition table lookup listed in Section 11 of [RFC7271], the following rule is also applied to the operation related to the state transition table lookup:
- 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.
The last paragraph in Section 11 of [RFC7271] is modified as follows:
Ol
In
"i
co
Ne
In
gl
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.
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.

Security Considerations
No specific security issue is raised in addition to those ones already documented in [RFC7271]. It may be noted that tightening the description of initializing behavior may help to protect networks from re-start attacks.

IANA Considerations
This document makes no request of IANA.
Note to RFC Editor: this section may be removed on publication as an RFC.

Acknowledgements
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.

Normative References

Informative References
[RFC7271]
[RFC6378]
[RFC2119]