Internet DRAFT - draft-osborne-mpls-psc-alive

draft-osborne-mpls-psc-alive







Network Working Group                                         E. Osborne
Internet-Draft                                             Cisco Systems
Intended status: Standards Track                          March 19, 2013
Expires: September 20, 2013


                      A Liveness Protocol for PSC
                    draft-osborne-mpls-psc-alive-00

Abstract

   This document adds a liveness protocol to PSC which provides
   functionality similar to APS's EXER command.  It also provides some
   rules for processing TLVs in PSC messages which apply to all future
   uses of PSC TLVs.

Requirements Language

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

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 20, 2013.

Copyright Notice

   Copyright (c) 2013 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



Osborne                Expires September 20, 2013               [Page 1]

Internet-Draft                 psc-alive                      March 2013


   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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Using TLVs in PSC . . . . . . . . . . . . . . . . . . . . . .   2
   3.  ALIVE: A liveness protocol using PSC TLVs . . . . . . . . . .   3
     3.1.  The ALIVE function in PSC . . . . . . . . . . . . . . . .   4
       3.1.1.  The ALIVE State Machine . . . . . . . . . . . . . . .   4
       3.1.2.  ALIVE Request . . . . . . . . . . . . . . . . . . . .   5
       3.1.3.  ALIVE Response  . . . . . . . . . . . . . . . . . . .   5
       3.1.4.  Using ALIVE with PSC states . . . . . . . . . . . . .   6
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   6
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     6.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   This document adds a liveness protocol to PSC which provides
   functionality similar to APS's EXER command.  It also provides some
   rules for processing TLVs in PSC messages which apply to all future
   uses of PSC TLVs.

2.  Using TLVs in PSC

   RFC6378 provides a TLV space as part of the PSC message.  Details on
   how to use this space are somewhat sparse, so this section sets out
   some rules about how TLVs may be transmitted and received.  This
   section may be overridden by future documents, but future uses of
   TLVs MUST either follow the rules in this section or explicitly
   override them.

   1.  A given TLV type SHOULD appear only once in a PSC packet.  Future
       uses of TLV MAY send the same TLV type multiple times in a PSC
       packet, but this is only permissible if the document defining
       that TLV provides explicit rules about how to handle this case.
       This rule is also true when there are multiple TLVs in a packet
       which share not only their Type, but also their Value.

   2.  The TLV space in a PSC packet is an unordered set.  That is, the
       order of TLVs in a PSC packet MUST not impact the processing of



Osborne                Expires September 20, 2013               [Page 2]

Internet-Draft                 psc-alive                      March 2013


       those messages.  If a future use of PSC TLVs requires that
       certain data elements be processed in a specific order, packing
       those elements in a sub-TLV is recommended.

   3.  If a TLV is unrecognized upon receipt, a node MUST NOT take any
       action based on that TLV.  The exception to this rule is that a
       node SHOULD alert the operator to the receipt of an unrecognized
       TLV.  This rule also applies if a TLV is recognized (that is, the
       Type is known) but the Value does not conform to the node's
       expectations for that Type.

   4.  By virtue of the packet format, any PSC message which contains a
       TLV also has the full fixed header.  When a message is sent for
       purposes of TLV transmission, it MUST fully populate all the
       fixed header fields.  The receiver of this message MUST process
       the fixed header in addition to the TLVs.  For example, in steady
       state PSC sends periodic state refreshes every 5 seconds.  If a
       node decides to send an ALIVE Request 3 seconds into this
       5-second interval, it MUST be fully populated on the transmit end
       and fully processed on the receive side.  Whether the
       transmitting node starts its 5-second timer again from zero after
       sending the TLV-laden message or whether it keeps the fixed 5
       second interval (i.e.  sending another PSC message 2 seconds
       after the one containing the ALIVE TLV) is implementation-
       dependant.  An implementation MUST be able to deal with a fixed
       header no matter when it is sent.

   5.  The use of PSC TLVs may increase over time.  An implementation
       SHOULD minimze the number of PSC packets it sends in favor of
       packing multiple TLVs into a single message.  One way to do this
       is to adjust application timers, e.g.  rounding everything to the
       nearest second so that multiple TLVs are transmitted
       simultaneously in the same packet rather than in several closely-
       spaced separate packets.

3.  ALIVE: A liveness protocol using PSC TLVs

   PSC is, by design, similar to APS [insert reference - G.870?].  APS
   has an Exercise function referred to as EXER.  EXER provides an
   optional keepalive functionality in APS.  However, it has a
   limitation in that it can only be used during non-failure times (NR,
   DNR).  This section provides a liveness function called ALIVE that
   provides that same keepalive functionality.  ALIVE uses PSC TLVs
   rather than fixed header space to send its messages.  The benefit of
   this approach is that ALIVE messages can be sent and received as long
   as there is a PSC communication channel, even during most failures.





Osborne                Expires September 20, 2013               [Page 3]

Internet-Draft                 psc-alive                      March 2013


3.1.  The ALIVE function in PSC

   ALIVE is a simple protocol.  It has two messages - a request and an
   ACK.  The request says 'Please confirm that you are alive'.  The
   response says 'Yes, I am alive'.  The request contains a sequence
   number.  The response echoes back that sequence number.  Receipt of a
   Request does not constitute a Response.  Requests are sent
   periodically.  If a reply is not received with the expected sequence
   number within a configurable timeout (default 10sec), the reuqesting
   node MUST alert the operator.

3.1.1.  The ALIVE State Machine

   ALIVE packets are transmited in PSC TLVs.  The ALIVE state machine is
   independent of the state machine used to control protection
   switching.  As such, ALIVE messages may be sent and replied to at any
   time (see Section 3.1.4 for details).

   The ALIVE State Machine has only two states: NoReq and TxReq.  The
   state machine also has two timers: Retry and Timeout.

3.1.1.1.  ALIVE Timers

   The Retry timer is the interval between successive transmissions of
   the same ALIVE Request.  The purpose of the Retry timer is to allow a
   node to send the same request (that is, with the same sequence
   number) multiple times to minimize the risk of packet loss.  The
   Retry timer MAY be zero, in which case a given sequence number is
   sent only once.  The default Retry timer is three seconds.

   The Timeout timer is the amount of time that passes before a node
   times out on receipt of an ALIVE Response to its most recently
   transmitted sequence number.  The timeout timer MUST be at least
   equal to the round-trip time between the two nodes plus processing
   delay, and SHOULD be significantly higher in order to avoid race
   conditions.  The default Timeout is ten seconds.

   With the default timers, a node will send the same ALIVE Request,
   with the same sequence number, three times before timing out.

3.1.1.2.  NoReq state

   NoReq is the default ALIVE state.  In this state, no ALIVE request
   has been sent.  If an ALIVE Request is received in this state, an
   ALIVE Response is sent which contains the sequence number received in
   the most recent ALIVE Request.  The node remains in NoReq after
   sending the ALIVE Response.




Osborne                Expires September 20, 2013               [Page 4]

Internet-Draft                 psc-alive                      March 2013


   The only trigger to transition out of NoReq is an operator input.
   This input causes the node to do three things:

   1) Start the Retry timer, if it is not set to zero

   2) Start the Timeout timer

   The node then transitions to TxReq state

3.1.1.3.  TxReq state

   A node enters TxReq as a result of an operator input.  When a node
   enters TxReq, it sends an ALIVE Request with the most recent sequence
   number.  There are three possible inputs to the TxReq state:

   1) If the Retry timer expires, the node retransmits the most recent
   ALIVE Request packet

   2) If the Timeout timer expires, the node transitions to NoReq state.
   Expiry of the Timeout timer constitutes a failure of the ALIVE
   Request/Reply operation.  The operator SHOULD be alerted to the
   failure of the remote node to reply to the ALIVE Request.

   3) If the node receives an ALIVE Response, the node transitions to
   NoReq state.  If the reply contains the expected sequence number, the
   ALIVE operation was successful and the operator SHOULD be alerted
   thusly.  If the reply contains an unexpected sequence number then the
   ALIVE operation was a failure and the operator SHOULD be notified.

   When a node exits the TxReq state due to a Timeout or ALIVE Response,
   the sequence number MUST be incremented.

3.1.2.  ALIVE Request

   The ALIVE Request has 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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Type: ALIVE Request           |  Length: 4                    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Value: Sequence number                                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


3.1.3.  ALIVE Response

   The ALIVE Response has the following format:



Osborne                Expires September 20, 2013               [Page 5]

Internet-Draft                 psc-alive                      March 2013


        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Type: ALIVE Response          |  Length: 4                    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Value: Sequence number                                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


3.1.4.  Using ALIVE with PSC states

   As with all PSC messages, ALIVE messages are only sent over the
   protection channel.  ALIVE messages MUST NOT be sent when there is a
   failure of the protection channel (SF-P).  This includes both local
   and remote SF-P.

   ALIVE messages may be sent or received in any other state.

4.  IANA Considerations

   This document requests allocation of two code points from the PSC TLV
   space.

   Note to RFC Editor: this section may be removed on publication as an
   RFC.

5.  Acknowledgements

   Annamaria Fulignoli for the initial text on Point #2

   John Drake for the genesis of the EXER replacement idea

6.  References

6.1.  Normative References

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

6.2.  Informative References

   [LS435]    , , <https://datatracker.ietf.org/documents/LIAISON/
              liaison-2012-10-03-itu-t-sg-15-mpls-recommendation-
              itu-t-g8131y1382-revision-linear-protection-switching-for-
              mpls-tp-networks-attachment-1.docx>.

Author's Address




Osborne                Expires September 20, 2013               [Page 6]

Internet-Draft                 psc-alive                      March 2013


   Eric Osborne
   Cisco Systems

   Email: eosborne@cisco.com














































Osborne                Expires September 20, 2013               [Page 7]