RFC 6383 INFORMATIONAL MPLS · ROUTING · TRAFFIC ENGINEERING

RSVP-TE data timing: Advice on When It Is Safe to Start Sending Data on Label Switched Paths Established Using RSVP-TE

When it is safe to start pushing data down a path that RSVP-TE has just set up.

On rfc-editor.org ↗
PUBLISHED
September 2011
AUTHORS
K. Shiomoto, A. Farrel
STREAM
IETF
FAILURE REPORT FOR A PIPELINED SETUP
PathErr message
BIDIRECTIONAL LSP SUPPORT
GMPLS only
UPSTREAM_LABEL REQUIREMENT
Must be valid for forwarding when the Path is sent
PACKET MPLS CROSS-CONNECT ENTRIES
Incoming Label Map and Next Hop Label Forwarding Entry
GMPLS TECHNOLOGIES COVERED
Packet, layer two, TDM, WDM and fibre switched networks
OPTICS SAFETY RULE
Lasers must not be enabled until the cross-connects are correct
DOI
10.17487/RFC6383

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                       K. Shiomoto
Request for Comments: 6383                                           NTT
Category: Informational                                        A. Farrel
ISSN: 2070-1721                                       Old Dog Consulting
                                                          September 2011


           Advice on When It Is Safe to Start Sending Data on
             Label Switched Paths Established Using RSVP-TE

Abstract

   The Resource Reservation Protocol (RSVP) has been extended to support
   Traffic Engineering (TE) in Multiprotocol Label Switching (MPLS) and
   Generalized MPLS (GMPLS) networks.  The protocol enables signaling
   exchanges to establish Label Switched Paths (LSPs) that traverse
   nodes and link to provide end-to-end data paths.  Each node is
   programmed with "cross-connect" information as the signaling messages
   are processed.  The cross-connection information instructs the node
   how to forward data that it receives.

   End points of an LSP need to know when it is safe to start sending
   data so that it is not misdelivered, and so that safety issues
   specific to optical data-plane technology are satisfied.  Likewise,
   all label switching routers along the path of the LSP need to know
   when to program their data planes relative to sending and receiving
   control-plane messages.

   This document clarifies and summarizes the RSVP-TE protocol exchanges
   with relation to the programming of cross-connects along an LSP for
   both unidirectional and bidirectional LSPs.  This document does not
   define any new procedures or protocol extensions, and defers
   completely to the documents that provide normative references.  The
   clarifications set out in this document may also be used to help
   interpret LSP establishment performance figures for MPLS-TE and GMPLS
   devices.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   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).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see 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/rfc6383.

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.

1.  Introduction

   The Resource Reservation Protocol (RSVP) [RFC2205] has been extended
   to support Traffic Engineering (TE) in Multiprotocol Label Switching
   (MPLS) and Generalized MPLS (GMPLS) networks [RFC3209] [RFC3473].
   The protocol enables signaling exchanges to establish Label Switched
   Paths (LSPs) that traverse nodes and links to provide end-to-end data
   paths.  Each node is programmed with "cross-connect" information as
   the signaling messages are processed.  The cross-connection
   information instructs the node how to forward data that it receives.
   In some technologies this requires configuration of physical devices,
   while in others it may involve the exchange of commands between
   different components of the node.  The nature of a cross-connect is
   described further in Section 1.1.1.

   End points of an LSP need to know when it is safe to start sending
   data.  In this context "safe" has two meanings.  The first issue is
   that the sender needs to know that the data path has been fully
   established, setting up the cross-connects and removing any old,
   incorrect forwarding instructions, so that data will be delivered to
   the intended destination.  The other meaning of "safe" is that in
   optical technologies, lasers must not be turned on until the correct
   cross-connects have been put in place to ensure that service
   personnel are not put at risk.

   Similarly, all Label Switching Routers (LSRs) along the path of the
   LSP need to know when to program their data planes relative to
   sending and receiving control-plane messages.

   This document clarifies and summarizes the RSVP-TE protocol exchanges
   with relation to the programming of cross-connects along an LSP for
   both unidirectional and bidirectional LSPs.  Bidirectional LSPs, it
   should be noted, are supported only in GMPLS.  This document does not
   define any new procedures or protocol extensions, and defers
   completely to the documents that provide normative references.

   The clarifications set out in this document may also be used to help
   interpret LSP establishment performance figures for MPLS-TE and GMPLS
   devices.  For example, the dynamic provisioning performance metrics
   set out in [RFC5814] need to be understood in the context of LSP
   setup times and not in terms of control message exchange times that
   are actually only a component of the whole LSP establishment process.

   Implementations could significantly benefit from this document
   definitively identifying any LSR to forward the Path or Resv message
   [RFC3473] before programming its cross-connect, thereby exploiting
   pipelining (i.e., doing one action in the background while another is
   progressing) to try to minimize the total time to set up the LSP.
   However, while this document gives advice and identifies the issues
   to be considered, it is not possible to make definitive statements
   about how much pipelining is safe, since a node cannot "know" much
   without first probing the network (for example, with protocol
   extensions) which would defeat the point of pipelining.  Due to the
   number of variables introduced by path length, and other node
   behavior, ingress might be limited to a very pessimistic view for
   safety.  Furthermore, it seems unlikely that an implementation would
   necessarily give a full and frank description of how long it takes to
   program and stabilize its cross-connects.  Nevertheless, this
   document identifies the issues and opportunities for pipelining in
   GMPLS systems.

1.1.  Terminology

   It is assumed that the reader is familiar with the basic message
   flows of RSVP-TE as used in MPLS-TE and GMPLS.  Refer to [RFC2205],
   [RFC3209], [RFC3471], and [RFC3473] for more details.

1.1.1.  What is a Cross-Connect?

   In the context of this document, the concept of a "cross-connection"
   should be taken to imply the data forwarding instructions installed
   (that is, "programmed") at a network node (or "switch").

   In packet MPLS networks, this is often referred to as the Incoming
   Label Map (ILM) and Next Hop Label Forwarding Entry (NHLFE) [RFC3031]
   which are sometimes considered together as entries in the Label
   Forwarding Information Base (LFIB) [RFC4221].  Where there is
   admission control and resource reservation associated with the data
   forwarding path (such as the allocation of data buffers) [RFC3209],
   this can be treated as part of the cross-connect programming process
   since the LSP will not be available to forward data in the manner
   agreed to during the signaling protocol exchange until the resources
   are correctly allocated and reserved.

   In non-packet networks (such as time-division multiplexing, or
   optical switching networks), the cross-connect concept may be an
   electronic cross-connect array or a transparent optical device (such
   as a microelectromechanical system (MEMS)).  In all cases, however,
   the concept applies to the instructions that are programmed into the
   forwarding plane (that is, the data plane) so that incoming data for
   the LSP on one port can be correctly handled and forwarded out of
   another port.

2.  Unidirectional MPLS-TE LSPs

   [RFC3209] describes the RSVP-TE signaling and processing for MPLS-TE
   packet-based networks.  LSPs in these networks are unidirectional by
   definition (there are no bidirectional capabilities in [RFC3209]).

   Section 4.1.1.1 of [RFC3209] describes a node's process prior to
   sending a Resv message to its upstream neighbor.

      The node then sends the new LABEL object as part of the Resv
      message to the previous hop.  The node SHOULD be prepared to
      forward packets carrying the assigned label prior to sending the
      Resv message.

   This means that the cross-connect should be in place to support
   traffic that may arrive at the node before the node sends the Resv.
   This is clearly advisable because the upstream LSRs might otherwise
   complete their cross-connections more rapidly and encourage the
   ingress to start transmitting data with the risk that the node that
   sent the Resv "early" would be unable to forward the data it received
   and would be forced to drop it, or might accidentally send it along
   the wrong LSP because of stale cross-connect information.

   The use of "SHOULD" [RFC2119] in this text indicates that an
   implementation could be constructed that sends a Resv before it is
   ready to receive and forward data.  This might be done simply because
   the internal construction of the node means that the control-plane
   components cannot easily tell when the cross-connection has been
   installed.  Alternatively, it might arise because the implementation
   is aware that it will be slow and does not wish to hold up the
   establishment of the LSP.  In this latter case, the implementation is
   choosing to pipeline the cross-connect programming with the protocol
   exchange taking a gamble that there will be other upstream LSRs that
   may also take some time to process, and it will in any case be some
   time before the ingress actually starts to send data.  It should be
   noted that, as well as the risks described in the previous paragraph,
   a node that behaves like this must include a mechanism to report a
   failure to chase the Resv message (using a PathErr) in the event that
   the pipelined cross-connect processing fails.

3.  GMPLS LSPs

   GMPLS [RFC3945] extends RSVP-TE signaling for use in networks of
   different technologies [RFC3471] [RFC3473].  This means that RSVP-TE
   signaling may be used in MPLS packet switching networks, as well as
   layer two networks (Ethernet, Frame Relay, ATM), time-division
   multiplexing networks (Time Division Multiplexer (TDM), i.e.,
   Synchronous Optical Network (SONET) and Synchronous Digital Hierarchy
   (SDH)), Wavelength Division Multiplexing (WDM) networks, and fiber
   switched network.

   The introduction of these other technologies, specifically the
   optical technologies, brings about the second definition of the
   "safe" commencement of data transmission as described in Section 1.
   That is, there is a physical safety issue that means that the lasers
   should not be enabled until the cross-connects are correctly in
   place.

   GMPLS supports unidirectional and bidirectional LSPs.  These are
   split into separate sections for discussion.  The processing rules
   are inherited from [RFC3209] unless they are specifically modified by
   [RFC3471] and [RFC3473].

3.1.  Unidirectional LSPs

   Unidirectional LSP processing would be the same as that described in
   Section 2 except for the use of the Suggested_Label object defined in
   [RFC3473].  This object allows an upstream LSR to 'suggest' to its
   downstream neighbor the label that should be used for forward-
   direction data by including the object on a Path message.  The
   purpose of this object is to help the downstream LSR in its choice of
   label, but it also makes it possible for the upstream LSR to
   'pipeline' programming its cross-connect with the RSVP-TE signaling
   exchanges.  That means that the cross-connect might be in place
   before the signaling has completed (i.e., before a Resv message
   carrying a Label object has been received at the upstream LSR).

   We need to know when it is safe to start sending data.  There are
   three sources of information.

   -  Section 3.4 of [RFC3471] states:

      In particular, an ingress node should not transmit data traffic on
      a suggested label until the downstream node passes a label
      upstream.

   The implication here is that an ingress node may (safely) start to
   transmit data when it receives a label in a Resv message.

   -  Section 2.5 of [RFC3473] states:

      Furthermore, an ingress node SHOULD NOT transmit data traffic
      using a suggested label until the downstream node passes a
      corresponding label upstream.

   This is a confirmation of the first source.

   -  Section 4.1.1.1 of [RFC3209] states:

      The node then sends the new LABEL object as part of the Resv
      message to the previous hop.  The node SHOULD be prepared to
      forward packets carrying the assigned label prior to sending the
      Resv message.

   In this text, the word "prior" is very important.  It means that the
   cross-connect must be in place for forward traffic before the Resv is
   sent.  In other words, each of the transit nodes and the egress node
   must finish making their cross-connects before they send the Resv
   message to their upstream neighbors.

   Thus, as in Section 2, we can deduce that the ingress must not start
   to transmit traffic until it has both received a Resv and has
   programmed its own cross-connect.

3.2.  Bidirectional LSPs

   A bidirectional LSP is established with one signaling exchange of a
   Path message from ingress to egress, and a Resv from egress to
   ingress.  The LSP itself is comprised of two sets of forwarding
   state, one providing a path from the ingress to the egress (the
   forwards data path), and one from the egress to the ingress (the
   reverse data path).

3.2.1.  Forwards Direction Data

   The processing for the forwards direction data path is exactly as
   described for a unidirectional LSP in Section 3.1.

3.2.2.  Reverse Direction Data

   For the reverse direction data flow, an Upstream_Label object is
   carried in the Path message from each LSR to its downstream neighbor.
   The Upstream_Label object tells the downstream LSR which label to use
   for data being sent to the upstream LSR (that is, reverse direction
   data).  The use of the label is confirmed by the downstream LSR when
   it sends a Resv message.  Note that there is no explicit confirmation
   of the label in the Resv message, but if the label was not acceptable
   to the downstream LSR, it would return a PathErr message instead.

   The upstream LSR must decide when to send the Path message relative
   to when it programs its cross-connect.  That is:

   -  Should it program the cross-connect before it sends the Path
      message;

   -  Can it overlap the programming with the exchange of messages; or

   -  Must it wait until it receives a Resv from its downstream
      neighbor?

   The defining reference is Section 3.1 of [RFC3473]:

      The Upstream_Label object MUST indicate a label that is valid for
      forwarding at the time the Path message is sent.

   In this text, "valid for forwarding" should be taken to mean that it
   is safe for the LSR that sends the Path message to receive data, and
   that the LSR will forward data correctly.  The text does not mean
   that the label is "acceptable for use" (i.e., the label is available
   to be cross-connected).

   This point is clarified later in Section 3.1 of [RFC3473]:

      Terminator nodes process Path messages as usual, with the
      exception that the upstream label can immediately be used to
      transport data traffic associated with the LSP upstream towards
      the initiator.

   This is a clear statement that when a Path message has been fully
   processed by an egress node, it is completely safe to transmit data
   toward the ingress (i.e., reverse direction data).

   From this we can deduce several things:

   -  An LSR must not wait to receive a Resv message before it programs
      the cross-connect for the reverse direction data.  It must be
      ready to receive data from the moment that the egress completes
      processing the Path message that it receives (i.e., before it
      sends a Resv back upstream).

   -  An LSR may expect to start receiving reverse direction data as
      soon as it sends a Path message for a bidirectional LSP.

   -  An LSR may make some assumptions about the time lag between
      sending a Path message and the message reaching and being
      processed by the egress.  It may take advantage of this time lag
      to pipeline programming the cross-connect.

3.3.  ResvConf Message

   The ResvConf message is used in standard RSVP [RFC2205] to let the
   ingress confirm to the egress that the Resv has been successfully
   received, and what bandwidth has been reserved.  In RSVP-TE [RFC3209]
   and GMPLS [RFC3473], it is not expected that bandwidth will be
   modified along the path of the LSP, so the purpose of the ResvConf is
   reduced to a confirmation that the LSP has been successfully
   established.

   The egress may request that a ResvConf be sent by including a
   Resv_Confirm object in the Resv message that it sends.  When the
   ingress receives the Resv message and sees the Resv_Confirm object,
   it can respond with a ResvConf message.

   It should be clear that this mechanism might provide a doubly secure
   way for the egress to ensure that the reverse direction data path is
   safely in place before transmitting data.  That is, if the egress
   waits until it receives a ResvConf message, it can be sure that the
   whole LSP is in place.

   However, this mechanism is excessive given the definitions presented
   in Section 3.2.2, and would delay LSP setup by one end-to-end message
   propagation cycle.  It should be noted as well that the generation
   and of the ResvConf message is not guaranteed.  Furthermore, many (if
   not most) GMPLS implementations neither request nor send ResvConf
   messages.  Therefore, egress reliance  on the receipt of a ResvConf
   as a way of knowing that it is safe to start transmitting reverse
   direction data is not recommended.

3.4.  Administrative Status

   GMPLS offers an additional tool for ensuring safety of the LSP.  The
   Administrative Status information is defined in Section 8 of
   [RFC3471] and is carried in the Admin_Status Object defined in
   Section 7 of [RFC3473].

   This object allows an ingress to set up an LSP in "Administratively
   Down" state.  This state means that [RFC3471]:

      ... the local actions related to the "administratively down" state
      should be taken.

   In this state, it is assumed that the LSP exists (i.e., the cross-
   connects are all in place), but no data is transmitted (i.e., in
   optical systems, the lasers are off).

   Additionally, the Admin_Status object allows the LSP to be put into
   "Testing" state.  This state means ([RFC3471]) that:

      ... the local actions related to the "testing" mode should be
      taken.

   This state allows the connectivity of the LSP to be tested without
   actually exchanging user data.  For example, in an optical system, it
   would be possible to run a data continuity test (using some external
   coordination of errors).  In a packet network, a connection
   verification exchange (such as the in-band Virtual Circuit
   Connectivity Verification described in Section 5.1.1 of [RFC5085])
   could be used.  Once connectivity has been verified, the LSP could be
   put into active mode and the exchange of user data could commence.

   These processes may be considered particularly important in systems
   where the control-plane processors are physically distinct from the
   data-plane cross-connects (for example, where there is a
   communication protocol operating between the control-plane processor
   and the data-plane switch) in which case the successful completion of
   control-plane signaling cannot necessarily be taken as evidence of
   correct data-plane programming.

4.  Implications for Performance Metrics

   The ability of LSRs to handle and propagate control-plane messages
   and to program cross-connects varies considerably from device to
   device according to switching technology, control-plane connectivity,
   and implementation.  These factors influence how quickly an LSP can
   be established.

   Different applications have different requirements for the speed of
   setup of LSPs, and this may be particularly important in recovery
   scenarios.  It is important for service providers considering the
   deployment of MPLS-TE or GMPLS equipment to have a good benchmark for
   the performance of the equipment.  Similarly, it is important for
   equipment vendors to be compared on a level playing field.

   In order to provide a basis for comparison, [RFC5814] defines a
   series of performance metrics to evaluate dynamic LSP provisioning
   performance in MPLS-TE/GMPLS networks.  Any use of such metrics must
   be careful to understand what is being measured, bearing in mind that
   it is not enough to know that the control-plane message has been
   processed and forwarded: the cross-connect must be put in place
   before the LSP can be used.  Thus, care must be taken to ensure that
   devices are correctly conforming to the procedures clarified in
   Section 2 of this document, and not simply forwarding control-plane
   messages with the intent to program the cross-connects in the
   background.

5.  Security Considerations

   This document does not define any network behavior and does not
   introduce or seek to solve any security issues.

   It may be noted that a clear understanding of when to start sending
   data may reduce the risk of data being accidentally delivered to the
   wrong place or individuals being hurt.

6.  Acknowledgments

   Thanks to Weiqiang Sun, Olufemi Komolafe, Daniel King, and Stewart
   Bryant for their review and comments.

7.  References

7.1.  Normative References

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

   [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S.
             Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1
             Functional Specification", RFC 2205, September 1997.

   [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
             and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
             Tunnels", RFC 3209, December 2001.

   [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label
             Switching (GMPLS) Signaling Functional Description", RFC
             3471, January 2003.

   [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label
             Switching (GMPLS) Signaling Resource ReserVation Protocol-
             Traffic Engineering (RSVP-TE) Extensions", RFC 3473,
             January 2003.

   [RFC3945] Mannie, E., Ed., "Generalized Multi-Protocol Label
             Switching (GMPLS) Architecture", RFC 3945, October 2004.

7.2.  Informative References

   [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
             Label Switching Architecture", RFC 3031, January 2001.

   [RFC4221] Nadeau, T., Srinivasan, C., and A. Farrel, "Multiprotocol
             Label Switching (MPLS) Management Overview", RFC 4221,
             November 2005.

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

   [RFC5814] Sun, W., Ed., and G. Zhang, Ed., "Label Switched Path (LSP)
             Dynamic Provisioning Performance Metrics in Generalized
             MPLS Networks", RFC 5814, March 2010.

Authors' Addresses

   Kohei Shiomoto
   NTT Service Integration Laboratories
   3-9-11 Midori
   Musashino, Tokyo 180-8585
   Japan
   Phone: +81 422 59 4402
   EMail: shiomoto.kohei@lab.ntt.co.jp

   Adrian Farrel
   Old Dog Consulting
   EMail: adrian@olddog.co.uk

ISO Plain Language

On this page
PROBLEMSetting up a labelled path involves messages telling each router where to forward traffic, and each router actually programming itself to do so, and the two do not finish at the same moment.
MECHANISMThe RFC reads the RSVP-TE and GMPLS standards together and works out, for each kind of path, the point at which the sender can start transmitting without losing or misdelivering data.
WHAT IT PRODUCESIt defines no new procedures. It gives implementers the rule they need, and gives equipment vendors a way to interpret the setup times they quote.

§1When Is It Safe to Start Sending Data

RSVP has been extended to support traffic engineering in MPLS and GMPLS networks, so that signalling exchanges can establish label switched paths across nodes and links to give an end-to-end data path. Each node is programmed with cross-connect information as the signalling messages are processed, and that information tells the node how to forward the data it receives. In some technologies this means configuring physical devices; in others it means exchanging commands between components inside the node.

The ends of a path need to know when it is safe to start sending data, and safe has two meanings here. The first is that the sender must know the data path has been fully established, with the cross-connects set up and any old, incorrect forwarding instructions removed, so the data will arrive where it is meant to. The second is that in optical technologies the lasers must not be switched on until the correct cross-connects are in place, so that service personnel are not put at risk. Every router along the path has the same question in a different form: when should it program its data plane relative to sending and receiving control-plane messages.

This document clarifies and summarises the RSVP-TE exchanges in relation to programming cross-connects, for unidirectional and bidirectional paths. It defines no new procedures or protocol extensions and defers completely to the documents it cites. Bidirectional paths are supported only in GMPLS. The clarifications may also be used to interpret LSP establishment performance figures: the dynamic provisioning metrics in RFC 5814 have to be read in the context of LSP setup times, not just control message exchange times, which are only one component of the whole establishment.

Implementations could gain a lot by identifying each router that forwards the Path or Resv message before programming its cross-connect, and pipelining the work to cut the total setup time. But the document is careful about how far it can go: it is not possible to make definitive statements about how much pipelining is safe, because a node cannot know much without first probing the network, which would defeat the point. With path length and node behaviour introducing so many variables, the ingress may end up limited to a very pessimistic view for safety. Nor is it likely that an implementation would give a full and frank description of how long it takes to program and stabilise its cross-connects.

Setting up a path involves two things happening at once: messages telling each router where to send traffic, and each router actually programming itself to do so. This RFC works out exactly when it is safe to start pushing data.

ILLUSTRATIVE, NOT FROM THE RFC: THE PATH AND RESV EXCHANGE
IngressTransit routerEgress
  1. Path message
  2. Path message
  3. Resv message with the Label objectThe egress has already programmed its own cross-connect.
  4. Resv message with the Label objectThe transit router has already programmed its own cross-connect.

§1.1What a Cross-Connect Is

A cross-connection here means the data forwarding instructions installed, or programmed, at a network node or switch.

In packet MPLS networks this is usually the Incoming Label Map and the Next Hop Label Forwarding Entry, sometimes treated together as entries in the Label Forwarding Information Base. Where there is admission control and resource reservation associated with the forwarding path, such as the allocation of data buffers, that can be treated as part of the cross-connect programming process, because the path will not be able to forward data in the agreed manner until the resources are correctly allocated and reserved.

In non-packet networks, such as time-division multiplexing or optical switching, the cross-connect may be an electronic cross-connect array or a transparent optical device such as a microelectromechanical system. In every case the concept is the same: the instructions programmed into the forwarding plane, so that data arriving for the path on one port can be forwarded correctly out of another.

The cross-connect is the router's own forwarding table entry: the instruction that says what to do with data that arrives carrying a particular label.

§2Unidirectional MPLS-TE Paths

RFC 3209 describes the RSVP-TE signalling and processing for packet-based MPLS-TE networks, where paths are unidirectional by definition. Its Section 4.1.1.1 describes what a node does before sending the Resv message to its upstream neighbour: it sends the new Label object as part of the Resv message to the previous hop, and it should be prepared to forward packets carrying the assigned label before it sends the Resv.

So the cross-connect should be in place before the Resv goes out, because traffic may arrive at the node before the node sends the Resv. That is plainly advisable, since the upstream routers might otherwise complete their cross-connections more quickly and encourage the ingress to start transmitting, with the risk that the node that sent the Resv early could not forward the data it received and would have to drop it, or might even send it along the wrong path because of stale cross-connect information.

The SHOULD in that text leaves room for an implementation that sends a Resv before it is ready to receive and forward data. That might happen because the internal construction of the node means the control-plane components cannot easily tell when the cross-connect has been installed, or because the implementation knows it will be slow and does not want to hold up the establishment of the path. In the latter case the implementation is choosing to pipeline the cross-connect programming with the protocol exchange, taking a gamble that other upstream routers will also take some time to process, and that it will in any case be some time before the ingress actually starts sending. Such a node must also have a mechanism to report a failure to chase the Resv message, using a PathErr, if the pipelined cross-connect processing fails.

For a plain packet path, the rule is simple: a router must be ready to forward the label before it tells the router upstream. Otherwise data could arrive before the router is ready, and be dropped or sent down the wrong path.

THE ISSUES THE RFC RAISES ABOUT STARTING TOO EARLY
  • Delivery, not misdeliveryThe sender must know the whole data path is ready and that no stale forwarding instructions are left behind.
  • Laser safetyIn optical systems the laser must not be switched on until the cross-connects are correct.
  • PipeliningProgramming the cross-connect while the messages are still travelling saves setup time.
  • Reporting failureA router that pipelines must report a failure with a PathErr if the cross-connect does not work.

§3GMPLS: Suggested Labels, Bidirectional Paths and Admin Status

GMPLS extends RSVP-TE signalling for networks of different technologies, so the same signalling can be used in MPLS packet switching, layer two networks such as Ethernet, Frame Relay and ATM, time-division multiplexing networks such as SONET and SDH, wavelength division multiplexing networks, and fibre switched networks. The optical technologies bring the second meaning of safe into play: there is a physical safety issue, so the lasers should not be enabled until the cross-connects are correctly in place.

Unidirectional processing is as before, except for the Suggested_Label object, which lets an upstream router suggest to its downstream neighbour the label that should be used for forward-direction data by including it on a Path message. The purpose is to help the downstream router choose a label, but it also lets the upstream router pipeline its cross-connect programming with the signalling, so the cross-connect may be in place before the signalling has completed, that is, before a Resv carrying a Label object has been received upstream.

Three pieces of the standards say when it is safe to start sending, and they agree. Section 3.4 of RFC 3471 says an ingress node should not transmit data traffic on a suggested label until the downstream node passes a label upstream, so the ingress may safely start when it receives a label in a Resv message. Section 2.5 of RFC 3473 confirms it. And Section 4.1.1.1 of RFC 3209 says the node should be prepared to forward packets carrying the assigned label before it sends the Resv, where the word prior is crucial: each transit and egress node must finish making its cross-connects before it sends the Resv upstream. Taken together, the ingress must not start transmitting until it has both received a Resv and programmed its own cross-connect.

A bidirectional path is established with one signalling exchange: a Path from ingress to egress and a Resv from egress to ingress. The path itself is two sets of forwarding state, one for the forward direction and one for the reverse. The forward direction works exactly as in the unidirectional case. For the reverse direction, an Upstream_Label object travels in the Path message from each router to its downstream neighbour, telling the downstream router which label to use for data heading back upstream. The downstream router confirms the label when it sends its Resv; there is no explicit confirmation of the label in the Resv, but if the label was not acceptable the downstream router would return a PathErr instead. The Upstream_Label object must indicate a label that is valid for forwarding at the time the Path message is sent, which means it is safe for the sending router to receive data and that it will forward it correctly, not that the label is available to be cross-connected. RFC 3473 also says that terminator nodes process Path messages as usual, with the exception that the upstream label can immediately be used to transport data upstream towards the initiator.

From this the RFC deduces three things. A router must not wait for a Resv before programming the cross-connect for the reverse direction; it must be ready to receive data from the moment the egress finishes processing the Path message, before it sends a Resv back upstream. A router may expect to start receiving reverse direction data as soon as it sends a Path message for a bidirectional path. And it may make assumptions about the time lag between sending the Path and the message reaching and being processed by the egress, and use that lag to pipeline the programming of its cross-connect.

ResvConf. The ResvConf message is used in standard RSVP to let the ingress confirm to the egress that the Resv was received and what bandwidth was reserved. In RSVP-TE and GMPLS the bandwidth is not expected to change along the path, so its purpose is reduced to confirming that the path was established. The egress may request one by including a Resv_Confirm object in its Resv, and the ingress can then reply. This would give the egress a doubly secure way to be sure the reverse direction data path is in place, but the RFC calls it excessive given the definitions above, and it would delay setup by one end-to-end message propagation cycle. The generation of the ResvConf is not guaranteed either, and many, if not most, GMPLS implementations neither request nor send it, so relying on it is not recommended.

Administrative status. GMPLS offers an additional tool. The Admin_Status object lets an ingress set up a path in an administratively down state, in which it is assumed the path exists, with the cross-connects all in place, but no data is transmitted, so in optical systems the lasers are off. The same object allows the path to be put into a testing state, which lets the connectivity be checked without exchanging user data: in an optical system a data continuity test, and in a packet network a connection verification exchange such as the in-band Virtual Circuit Connectivity Verification. Once connectivity is verified the path can be put into active mode and user data can start. These processes matter most where the control-plane processors are physically separate from the data-plane cross-connects, so that successful control-plane signalling cannot be taken as evidence of correct data-plane programming.

GMPLS adds two things. A label can be suggested in advance so the setup can be pipelined, and a path can be held in a state where the switches are connected but the lasers are off, so the link can be tested before anyone sends data over it.

WHEN IT IS SAFE TO START SENDING DATA
SituationWhen it is safe to send data
Unidirectional MPLS-TEEach node has its cross-connect in place before it sends the Resv upstream
Unidirectional GMPLSThe ingress has received a Resv and programmed its own cross-connect
Bidirectional, forwards directionThe same rule as the unidirectional case
Bidirectional, reverse directionAs soon as the egress has processed the Path message, before it sends a Resv
Waiting for a ResvConfNot recommended; many implementations never send one

§4What This Means for Performance Figures

How quickly routers handle and pass on control-plane messages and program their cross-connects varies a lot from device to device, according to the switching technology, the control-plane connectivity and the implementation, and those factors influence how quickly a path can be established. Different applications have different requirements for setup speed, which matters especially in recovery scenarios. Providers considering MPLS-TE or GMPLS equipment need a good benchmark for its performance, and vendors need to be compared on a level playing field.

RFC 5814 defines a series of performance metrics for evaluating dynamic LSP provisioning, and any use of them has to be careful about what is being measured. It is not enough to know that the control-plane message has been processed and forwarded: the cross-connect must be in place before the path can be used. So care is needed to ensure that devices really follow the procedures clarified here, and are not simply forwarding control-plane messages with the intention of programming the cross-connects in the background.

When a vendor quotes how fast it sets up a path, check what is being timed. A router that answers messages quickly but programs its switches afterwards has not finished the job.

§5Security Considerations

The document says it defines no network behaviour and neither introduces nor seeks to solve any security issues. It notes, though, that a clear understanding of when to start sending data may reduce the risk of data being accidentally delivered to the wrong place, or of people being hurt.

Nothing about security is specified here. The one remark is that knowing the right moment to start sending reduces the chance of data going somewhere it should not, and of hurting the people who maintain the network.

§7References

[RFC2119]RFC 2119Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.March 1997[RFC2205]RFC 2205Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, September 1997.September 1997[RFC3209]RFC 3209Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, December 2001.December 2001[RFC3471]RFC 3471Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description", RFC 3471, January 2003.February 2003[RFC3473]RFC 3473Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.February 2003[RFC3945]RFC 3945Mannie, E., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Architecture", RFC 3945, October 2004.November 2004[RFC3031]RFC 3031Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label Switching Architecture", RFC 3031, January 2001.January 2001[RFC4221]RFC 4221Nadeau, T., Srinivasan, C., and A. Farrel, "Multiprotocol Label Switching (MPLS) Management Overview", RFC 4221, November 2005.November 2005[RFC5085]RFC 5085Nadeau, T., Ed., and C. Pignataro, Ed., "Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires", RFC 5085, December 2007.December 2007[RFC5814]RFC 5814Sun, W., Ed., and G. Zhang, Ed., "Label Switched Path (LSP) Dynamic Provisioning Performance Metrics in Generalized MPLS Networks", RFC 5814, March 2010.March 2010