RFC 3038 PROPOSED STANDARD MPLS · ATM · ROUTING

VCID for LDP: VCID Notification over ATM link for LDP

A way to name the same ATM virtual circuit at both ends, so LDP can map labels across it.

On rfc-editor.org ↗
PUBLISHED
January 2001
AUTHORS
K. Nagami, Y. Katsube, N. Demizu, H. Esaki, P. Doolan
STREAM
IETF
UPDATED BY
RFC 7274 — Allocating and Retiring Special-Purpose MPLS Labels
VCID SIZE
4 bytes
VPID SIZE
2 bytes
MESSAGE ID SIZE
4 octets
VCID LABEL TLV TYPE
0x0203
VPID LABEL TLV TYPE
0x0703
LABEL STACK VALUE FOR AN INBAND PROPOSE
4
DOI
10.17487/RFC3038

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          K. Nagami
Request for Comments: 3038                                    Y. Katsube
Category: Standards Track                                  Toshiba Corp.
                                                               N. Demizu
                                                        WaterSprings.ORG
                                                                H. Esaki
                                                          Univ. of Tokyo
                                                               P. Doolan
                                                       Ennovate Networks
                                                            January 2001

                VCID Notification over ATM link for LDP

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

Abstract

   The Asynchronous Transfer Mode Label Switching Router (ATM-LSR) is
   one of the major applications of label switching.  Because the ATM
   layer labels (VPI and VCI) associated with a VC rewritten with new
   value at every ATM switch nodes, it is not possible to use them to
   identify a VC in label mapping messages.  The concept of Virtual
   Connection Identifier (VCID) is introduced to solve this problem.
   VCID has the same value at both ends of a VC.  This document
   specifies the procedures for the communication of VCID values between
   neighboring ATM-LSRs that must occur in order to ensure this
   property.

1. Introduction

   Several label switching schemes have been proposed to integrate Layer
   2 and Layer 3.  The ATM Label Switching Router (ATM-LSR) is one of
   the major applications of label switching.

   In the case of ATM VCs, the VPI and VCI labels are, in the general
   case, rewritten with new values at every switch node through which
   the VC passes and cannot be used to provide end to end identification
   of a VC.

   In the context of MPLS 'stream', which are classes of packets that
   have some common characteristic that may be deduced by examination of
   the layer 3 header in the packets, are bound to layer 2 'labels'. We
   speak of stream being 'bound' to labels.  These bindings are conveyed
   between peer LSRs by means of a Label Distribution Protocol [LDP].

   In order to apply MPLS to ATM links, we need some way to identify ATM
   VCs in LDP mapping messages.  An identifier called a Virtual
   Connection ID (VCID) is introduced.  VCID has the same value at both
   ends of a VC.  This document specifies the procedures for the
   communication of VCID values between neighboring ATM-LSRs that must
   occur in order to ensure this property.

2. Overview of VCID Notification Procedures

2.1 VCID Notification procedures

   The ATM has several types of VCs (transparent point-to-point
   link/VP/PVC/SVC).  A transparent point-to-point link is defined as
   one that has the same VPI/VCI label at both ends of a VC.  For
   example, two nodes are directly connected (i.e., without intervening
   ATM switches) or are connected through a VP with the same VPI value
   at both ends of the VP.

   There are two broad categories of VCID notification procedures;
   inband and outband.  The categorization refers to the connection over
   which the messages of the VCID notification procedure are forwarded.
   In the case of the inband procedures, those messages are forwarded
   over the VC to which they refer.  In contrast the out of band
   procedures transmit the messages over some other connection (than the
   VC to which they refer).

   We list below the various types of link and briefly mention the VCID
   notification procedures employed and the rational for that choice.
   The procedures themselves are discussed in detail in later sections.

   Transparent point-to-point link : no VCID notification
       VCID notification procedure is not necessary because the label
       (i.e., VPI/VCI) is the same at each end of the VC.

   VP : inband notification or VPID notification or no notification
    - Inband notification
      VCID notification is needed because the VPI at each end of the VC
      may not be the same.  Inband VCID notification is used in this
      case.

    - VPID notification
      VCID notification is needed because the VPI at each end of the VC
      may not be the same.  VPID notification is used in this case.

    - No notification
      If a node has only one VP to a neighboring node, VCID notification
      procedure is not mandatory.  The VCI can be used as the VCID.
      This is because the VCI value is the same at each end of the VP.

   PVC : inband notification
      Inband VCID notification is used in this case because the labels
      at each end of the VC may not be the same.

   SVC : there are three possibilities
    - Outband notification
      If a signaling message has a field which is large enough to carry
      a VCID value (e.g., GIT [GIT]), then the VCID is carried directly
      in it.

    - Outband notification using a small-sized field
      If a signaling message has a field which is not large enough to
      carry a VCID value, this procedure is used.

    - Inband notification
      If a signaling message can not carry user information, this
      procedure is used.

      When an LSP is a point-to-multipoint VC and an ATM switch in an
      LSR is not capable of VC merge, it may cause problems in
      performance and quality of service.  When the LSR wants to add a
      new leaf to the LSP, it needs to split the active LSP temporarily
      to send an inband notification message.

2.2 VC direction

   A VC has a directionality.  The VCID procedure for a VC is always
   triggered from the upstream node of the VC, i.e., the upstream node
   notifies the downstream node of the VCID.

   If bidirectional use of a label switched VC is allowed, the label
   switched VC is said to be bidirectional.  In this case, two VCID
   procedures are taken, one for each direction.

   If bidirectional use of a label switched VC is not allowed, the label
   switched VC is said to be unidirectional.  In this case, only one
   VCID procedure is taken for the allowed direction.

   VC directionality is communicated through LDP.

3. VCID Notification Procedures

3.1 Inband Notification Procedures

3.1.1 Inband Notification for Point-to-point VC

   VCID notification is performed by transmitting a control message
   through the VC newly established (by signalling or management) for
   use as an label switched path (LSP).  The procedure for VCID
   notification between two nodes A and B is detailed below.

   0. The node A establishes a VC to the destination node B (by
      signalling or management).

   1. The node A selects a VCID value.

   2. The node A sends a VCID PROPOSE message which contains the VCID
      value and a message ID through the newly established VC to the
      node B.

   3. The node A establishes an association between the outgoing label
      (VPI/VCI) for the VC and the VCID value.

   4. The node B receives the message from the VC and establishes an
      association between the VCID in the message and the incoming
      label(VPI/VCI) for the VC.  Until the node B receives the LDP
      Request message, the node B discards any packet received over the
      VC other than the VCID PROPOSE message.

   5. The node B sends an ACK message to the node A.  This message
      contains the same VCID and message ID as specified in the received
      message.  This message is sent through the VC for LDP.

   6. When node A receives the ACK message, it checks whether the VCID
      and the message ID in the message are the same as the registered
      ones.  If they are the same, node A regards that node B has
      established the association between the VC and VCID.  Otherwise,
      the message is ignored.  If the node A does not receive the ACK
      message with the expected message ID and VCID during a given
      period, the node A resends the VCID PROPOSE message to the node B.

   7. After receiving the proposer ACK message, the node A sends an LDP
      REQUEST message to the node B.  It contains the message ID used
      for VCID PROPOSE.  When the node B receives the LDP REQUEST
      message, it regards that the node A has received the ACK
      correctly.  The message exchange using VCID PROPOSE, VCID ACK, and
      LDP REQUEST messages constitutes a 3-way handshake.  The 3-way
      handshake mechanism is required since the transmission of VCID
      PROPOSE message is unreliable.  Once the 3-way handshake
      completes, the node B ignores all VCID PROPOSE messages received
      over the VC.  The node B sends an LDP Mapping message, which
      contains the VCID value in the label TLV.

       Node A           Node B
         |                |
         |--------------->|     VCID PROPOSE
         |                |
         |<---------------|     VCID ACK
         |                |
         |--------------->|     LDP Label Request
         |                |
         |<---------------|     LDP Label Mapping

3.1.2 Inband notification for point-to-multipoint VC

   Current LDP specification does not support multicast.  But the VCID
   notification procedure is defined for future use.  VCID notification
   is performed by sending a control message through the VC to be used
   as an LSP.  The upstream node assigns the VCID value.  The procedure
   by which it notifies the downstream node of that value is given
   below.  The procedure is used when a new VC is created or a new leaf
   is added to the VC.

   First, the procedure for establishing the first VC is described.

   1. The upstream node assigns a VCID value for the VC.  When the VCID
      value is already assigned to a VC, it is used for VCID.

   2. The upstream node sends a message which contains the VCID value
      and a message ID through the VC used for an LSP.  This message is
      transferred to all leaf nodes.

   3. The upstream node establishes an association between the outgoing
      label for the VC and the VCID value.

   4. When the downstream nodes receiving the message already received
      the LDP REQUEST message for the VC, the received message is
      discarded.  Otherwise, the downstream nodes establish an
      association between the VCID in the message and the VC from which
      the message is received.

   5. The downstream nodes send an ACK message to the upstream node.

   6. After the upstream node receives the ACK messages, the upstream
      node and the downstream nodes share the VCID.  The upstream node
      sends the LDP REQUEST message in order to make a 3-way handshake.

       Upstream        Downstream 1   Downstream 2
         |                |               |
         |-----------+--->|               |   VCID PROPOSE
         |           +------------------->|
         |                |               |
         |<---------------|               |
         |  VCID ACK      |               |
         |<-------------------------------|   VCID ACK

   Second, the procedure for adding a leaf to the existing point-to-
   multipoint VC is described.

   0. The upstream node adds the downstream node, using the ATM
      signaling.

   1. The VCID value which already assigned to the VC is used.

   2. The upstream node sends a message which contains the VCID value
      and a message ID through the VC used for an LSP.  This message is
      transferred to all leaf nodes.

   3. When the downstream nodes receiving the message already received
      the LDP REQUEST message for the VC, the received message is
      discarded.  Otherwise, the downstream nodes establish an
      association between the VCID in the message and the VC from which
      the message is received.

   4. After the upstream node receives the ACK messages, the upstream
      node and the downstream nodes share the VCID.  The upstream node
      sends the LDP REQUEST message in order to make a 3-way handshake.

3.2 Outband Notification using a small-sized field

   This method can be applied when a VC is established using an ATM
   signaling message and the message has a field which is not large
   enough to carry a VCID value.

   SETUP message of the ATM Forum UNI 3.1/4.0 has a 7-bit mandatory
   field for the user.  This is a user specific field in the Layer 3
   protocol field in the BLLI IE (Broadband Low Layer Information
   Information Element).

   The BLLI value is used as a temporary identifier for a VC during a
   VCID notification procedure.  This mechanism is defined as "Outband
   Notification using a small-sized field".  The BLLI value of a new VC
   must not be assigned to other VCs during the procedure to avoid
   identifier conflict.  When the association among the BLLI value, a
   VCID value, and the corresponding VC is established, the BLLI value
   can be reused for a new VC.  VCID values can be assigned
   independently from BLLI values.

       Node A           Node B
         |                |
         |--------------->|     ATM Signaling with BLLI
         |<---------------|
         |                |
         |--------------->|     VCID PROPOSE with BLLI
         |                |
         |<---------------|     VCID ACK
         |                |
         |--------------->|     LDP Label Request
         |                |
         |<---------------|     LDP Label Mapping

   A point-to-multipoint VC can also be established using ADD_PARTY of
   the ATM Forum Signaling.  ADD_PARTY adds a new VC leaf to an existing
   VC or an existing VC tree.  In this procedure, the BLLI value of
   ADD_PARTY has to be the same value as that used to establish the
   first point-to-point VC of the tree.  The same BLLI value can be used
   in different VC trees only when these VC trees can not add a leaf at
   the same time.  As a result, the BLLI value used in the signaling
   must be determined by the root node of the multicast tree.

   [note]
      BLLI value is unique at the sender node.  But BLLI value is not
      unique at the receiver node because multiple sender nodes may
      allocate the same BLLI value.  So, the receiver node must
      recognize BLLI value and the sender address.  ATM Signaling
      messages (SETUP and ADD_PARTY) carry both the BLLI and the sender
      ATM address.  The receiver node can realize which node sends the
      BLLI message.

3.2.1 Outband notification using a small-sized field for
      point-to-point VC

   This subsection describes procedures for establishing a VC and for
   notification of its VCID between neighboring LSRs for unicast
   traffic.

   The procedure employed when the upstream LSR assigns a VCID is as
   follows.

   1. An upstream LSR establishes a VC to the downstream LSR using ATM
      signaling and supplies a value in the BLLI field that it is not
      currently using for any other (incomplete) VCID notification
      transaction with this peer.

   2. The upstream LSR sends the VCID PROPOSE message through the VC for
      LDP to notify the downstream LSR of the association between the
      BLLI and VCID values.

   3. The downstream LSR establishes the association between the VC with
      the BLLI value and the VCID and sends an ACK message to the
      upstream LSR.

   4. After the upstream LSR receives the ACK message, it establishes
      the association between the VC and the VCID.  The VC is ready to
      be used.  At this time the BLLI value employed in this transaction
      is free for reuse.

   5. After VCID notification, the upstream node sends the LDP REQUEST
      message to the downstream node.  The downstream node sends the LDP
      mapping message, which contains the VCID value in the label TLV of
      LDP.

3.2.2 Outband notification using a small-sized field
      for point-to-multipoint VC

   This subsection describes procedures for establishing the first VC
   for a multicast tree and for adding a new VC leaf to an existing VC
   tree including the notification of its VCID for a multicast stream
   using point-to-multipoint VCs.

   In this procedure, an upstream LSR determines both the VCID and BLLI
   value in the multicast case.  The reason that the BLLI value is
   determined by an upstream LSR is described above.

   First, the procedure for establishing the first VC is described.

   1. An upstream LSR establishes a VC by the ATM Forum Signaling
      between the downstream LSR with a unique BLLI value at this time.

   2. The upstream LSR notifies the downstream LSR of a paired BLLI
      value and VCID using a message dedicated for this purpose.

   3. The downstream LSR establishes the association between the VC with
      the BLLI value and the VCID and sends an ACK message to the
      upstream LSR.  If the VCID is used by some other VC between the
      upstream and downstream LSRs, the old VC is discarded.

   4. After the upstream LSR receives the ACK message, the VC is ready
      to be used and the BLLI value can be used for another VC.

   Second, the procedure for adding a leaf to the existing point-to-
   multipoint VC is described.

   1. The upstream LSR establishes a VC by the ATM Forum Signaling
      between its downstream LSR with the BLLI value that was used
      during the first signaling procedure.  If another VC is using the
      BLLI value at the same time, the upstream waits for the completion
      of the signaling procedure that is using this BLLI value.

   2. Go to step 2 of the procedure for the first VC.

3.3 Outband notification

   This method can be applied when a VC is established using a ATM
   signaling message and the message has a field (e.g., GIT [GIT]) which
   is large enough to carry a VCID value.  Message format is described
   in [GIT].  After the VCID notification, the node A sends the LDP
   request message is sent to the node B.  Then, the node B sends the
   LDP mapping message to the node A.

       Node A           Node B
         |                |
         |--------------->|   ATM signaling with VCID
         |<---------------|
         |                |
         |--------------->|     LDP Label Request
         |                |
         |<---------------|     LDP Label Mapping

4 VPID Notification Procedure

   The approach that is used for the VCID notification procedure is also
   applicable to share the same identifier between both ends for a VP.
   VPID notification procedure is defined for this purpose.

   A distinct VPID notification procedure is performed for each
   direction of each VP.

   After the VPID notification is finished for a VP, a VCID of a VC in
   the VP is constructed with the VPID(MSB) and VCI(LSB) of the VC.  The
   VCID can be used by LDP without performing VCID notification
   procedure.  The message sequence is given below.

   1. An upstream node sends the VPID PROPOSE message. In the case of
      bidirectional label switched VC, both the upstream and downstream
      nodes use VCI=33.  In the case of unidirectional label switched
      VC, the node which has larger LDP Identifier uses VCI=33 and the
      other node uses VCI=34.  Note that VCI=32, which is used for
      unlabeled packet transfer, is not used for VPID notification
      procedure so that the same encapsulation method can be applied for
      both VPID procedure and inband VCID procedure.

   2. The downstream node sends the VPID ACK message.

   3. The upstream node sends the LDP Label Request message.

   4. The downstream node sends the LDP Label Mapping message.

5 VCID Message Format

5.1 VCID Messages

   An LDP VCID message consists of the LDP [LDP] fixed header followed
   by one or more TLV.  A VCID PROPOSE inband message and a VPID PROPOSE
   message are sent as a null encapsulation packet through a VC to be
   used as an LSP.  There is only the label stack header before the LDP
   VCID PDU.  A label value in the label stack entry [ENCAPS] for the
   VCID PROPOSE inband message and the VPID PROPOSE message are 4.
   Other messages are sent as TCP packets.  This is the same as LDP.

   The VCID message type field is as follows:

         VCID Propose inband Message  = 0x0501
         VCID Propose Message         = 0x0502
         VCID ACK Message             = 0x0503
         VCID NACK Message            = 0x0504
         VPID Propose inband Message  = 0x0505
         VPID ACK Message             = 0x0506
         VPID NACK Message            = 0x0507

5.1.1 VCID Propose inband Message

   This message is sent as a null encapsulation packet with LDP header
   and label stack header through a VC to be used as an LSP.  The label
   value is 4.  The reserved label value is required because the
   downstream node may receive this message after receiving the LDP
   Label Request message in the case of point-to-multipoint VC.  The
   downstream node must distinguish the VCID PROPOSE message from other
   messages and ignore the VCID PROPOSE message when the node already
   received the LDP Label Request message for the VC.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|VCID Inband Propose (0x0501) |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Label TLV                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message Id
     Four octet integer used to identify this message.

   Label TLV
     Label TLV contains VCID value.  Type of label TLV is VCID(0x0203).

5.1.2 VCID Propose Message

   An LSR uses the VCID PROPOSE message for the VCID notification
   procedure of the outband notification using a small-sized field.
   This message is sent through the VC for the LDP.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|  VCID Propose (0x0502)      |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Label TLV                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Temporary ID TLV                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message ID
     Four octet integer used to identify this message.

   Label TLV
     Label TLV contains VCID value.  Type of label TLV is VCID(0x0203).

   Temporary ID TLV
     The value carried in the user specific field in the layer 3
     protocol field in the BLLI ID in the ATM Forum UNI 3.1/4.0 Type of
     label TLV is VCID temporary ID(0x0702).

5.1.3 VCID ACK Message

   An LSR send the VCID ACK message when the LSR accepts the VCID
   PROPOSE message.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|  VCID ACK     (0x0503)      |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Label TLV                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VCID Message ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message ID
     Four octet integer used to identify this message.

   Label TLV
     The label TLV contains the VCID value of the received VCID PROPOSE
     message.  Type of label TLV is VCID(0x0203).

   VCID Message ID
     This value is the same as that of received VCID PROPOSE message.

5.1.4 VCID NACK Message

   An LSR send the VCID NACK message when the LSR does not accept the
   VCID PROPOSE message.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|  VCID NACK    (0x0504)      |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Label TLV                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VCID Message ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message ID
     Four octet integer used to identify this message.

   Label TLV
     The label TLV contains the VCID value of the received VCID PROPOSE
     message.  Type of label TLV is VCID(0x0203).

   VCID Message ID
     This value is the same as that of received VCID PROPOSE message.

5.1.5 VPID Propose inband Message

   This message is sent as a null encapsulation packet with LDP header
   and label stack header through a VC to be used as an LSP.  The label
   value is 4.  The downstream node must distinguish the VPID PROPOSE
   message from other messages and ignore the VPID PROPOSE message when
   the node already received the LDP Label Request message for the VC.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|VPID Inband Propose (0x0505) |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VPID TLV                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message Id
     Four octet integer used to identify this message.

   VPID TLV
     VPID TLV contains VPID value.  Type of label TLV is VPID(0x0703).

5.1.6 VPID ACK Message

   An LSR send the VPID ACK message when the LSR accepts the VPID
   PROPOSE message.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|  VPID ACK     (0x0506)      |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VPID TLV                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VCID Message ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message ID
     Four octet integer used to identify this message.

   VPID TLV
     The VPID TLV contains the VPID value of the received VPID PROPOSE
     message.

   VCID Message ID
     This value is the same as that of received VCID PROPOSE message.

5.1.7 VPID NACK Message

   An LSR send the VPID NACK message when the LSR accepts the VPID
   PROPOSE message.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|  VPID NACK    (0x0507)      |      Message Length           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Message ID                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VPID TLV                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           VCID Message ID                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Optional Parameters                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message ID
     Four octet integer used to identify this message.

   VPID TLV
     The VPID TLV contains the VPID value of the received VPID PROPOSE
     message.

   VCID Message ID
     This value is the same as that of received VCID PROPOSE message.

5.2 Objects

5.2.1 VCID Label TLV

   An LSR uses VCID Label TLV to encode labels for use on the link which
   does not have the same data link label at both ends of a VC.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|F|VCID Label   (0x0203)      |          Length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              VCID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   VCID
     This is 4 byte VCID value.

5.2.2 VCID Message ID TLV

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|F|VCID Message ID(0x0701)    |          Length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       VCID Message ID                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   VCID Message ID
     This is 4 byte VCID Message ID

5.2.3 VCID Temporary ID TLV

   An LSR uses the VCID temporary ID TLV for the VCID notification
   procedure of the outband notification using a small-sized field.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|F| VCID Temporary ID (0x0702)|          Length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Temporary ID |
   +-+-+-+-+-+-+-+-+

   Temporary ID:
     The value carried in the user specific field in the layer 3
     protocol field in the BLLI ID in the ATM Forum UNI 3.1/4.0

5.2.4 VPID Label TLV

   An LSR uses VPID TLV for the VPID notification procedure.

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |U|F|   VPID      (0x0703)      |          Length               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            VPID               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   VPID
     This is 2 byte VPID value.

Security Considerations

   This document does not introduce new security issues other than those
   present in the LDP and may use the same mechanisms proposed for this
   technology.

Acknowledgments

   The authors would like to acknowledge the valuable technical comments
   of Yoshihiro Ohba, Shigeo Matsuzawa, Akiyoshi Mogi, Muneyoshi Suzuki,
   George Swallow and members of the LAST-WG of the WIDE Project.

References

   [LDP]    Andersson, L., Doolan, P., Feldman, N., Fredette, A. and B.
            Thomas, "LDP Specification", RFC 3036, January 2001.

   [GIT]    Suzuki, M., "The Assignment of the Information Field and
            Protocol Identifier in the Q.2941 Generic Identifier and
            Q.2957 User-to-user Signaling for the Internet Protocol",
            RFC 3033, January 2001.

   [ENCAPS] Rosen, E., Viswanathan, A. and R. Callon, "MPLS Label Stack
            Encoding", RFC 3032, January 2001.

Authors' Addresses

   Ken-ichi Nagami
   Computer & Network Development Center, Toshiba Corporation,
   1, Toshiba-cho, Fuchu-shi,
   Tokyo, 183-8511, Japan

   Phone: +81-42-333-2884
   EMail: ken.nagami@toshiba.co.jp


   Noritoshi Demizu
   WaterSprings.ORG
   1-6-11-501, Honjo, Sumida-ku, Tokyo, 130-0004, Japan

   EMail: demizu@dd.iij4u.or.jp


   Hiroshi Esaki
   Computer Center, University of Tokyo,
   2-11-16 Yayoi, Bunkyo-ku,
   Tokyo, 113-8658, Japan

   Phone: +81-3-3812-1111
   EMail: hiroshi@wide.ad.jp


   Yasuhiro Katsube
   Computer & Network Development Center, Toshiba Corporation,
   1, Toshiba-cho, Fuchu-shi,
   Tokyo, 183-8511, Japan

   Phone: +81-42-333-2844
   EMail: yasuhiro.katsube@toshiba.co.jp


   Paul Doolan
   Ennovate Networks
   60 Codman Hill Road
   Boxborough, MA

   Phone: 978-263-2002 x103
   EMail: pdoolan@ennovatenetworks.com

Full Copyright Statement

   Copyright (C) The Internet Society (2001).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

ISO Plain Language

On this page
PROBLEMAn ATM virtual circuit is labelled with a VPI and a VCI, and every ATM switch in the path rewrites those labels. Because the labels differ at the two ends, they cannot be used to identify a circuit in an LDP label mapping message.
MECHANISMThe RFC introduces the Virtual Connection Identifier, a value chosen by the upstream node and agreed with the downstream node through a three-message handshake, and then used in the label TLV of LDP messages.
STATUS TODAYRFC 3038 is a Proposed Standard from January 2001 and has been updated by RFC 7274.

§1The Problem with ATM Labels

The ATM Label Switching Router is one of the main applications of label switching. In the case of ATM virtual circuits, the VPI and VCI labels are in general rewritten with new values at every switch node the circuit passes through, so they cannot be used to identify a circuit end to end.

In MPLS, a stream is a class of packets that share some characteristic deduced from the layer 3 header, and a stream is bound to a layer 2 label. Those bindings are conveyed between peer label switching routers by the Label Distribution Protocol, defined in RFC 3036. Applying MPLS to ATM links therefore needs a way to identify ATM virtual circuits in LDP mapping messages, and that is what the Virtual Connection Identifier provides. A VCID has the same value at both ends of a circuit.

The RFC specifies the procedures by which neighbouring ATM label switching routers communicate VCID values to each other, which is what makes that shared value true.

Every ATM switch renumbers the labels on a virtual circuit as it passes, so the label at one end says nothing about the label at the other. The VCID is a separate number that both ends agree on and use in LDP messages.

§2Two Families of Notification Procedure

There are two broad categories of VCID notification procedure, and the difference is which connection the notification messages travel on. In the inband procedures the messages are forwarded over the very circuit they refer to. In the outband procedures the messages travel over some other connection than that circuit.

The RFC works through the link types. A transparent point-to-point link, one where the VPI and VCI are the same at both ends of the circuit, needs no notification at all, because the label already identifies the circuit. For a virtual path, inband notification is used when the VPI differs at the two ends, and a separate VPID notification is used in that case as well. If a node has only one virtual path to a neighbour, no notification is needed, because the VCI is the same at both ends of the path. A permanent virtual circuit uses inband notification, because the labels at each end may differ. A switched virtual circuit has three possibilities: outband notification when the signalling message has a field large enough to carry a VCID, outband notification using a small-sized field when it does not, and inband notification when the signalling message cannot carry user information at all.

The RFC also notes the effect of multicast on the choice. When a label switched path is a point-to-multipoint circuit and the ATM switch in a router cannot merge circuits, adding a new leaf means the active path has to be split temporarily so that an inband notification can be sent.

A circuit has a direction, and the notification is always triggered from the upstream node, which notifies the downstream node of the VCID. If bidirectional use of a label switched circuit is allowed, the circuit is bidirectional and two procedures are performed, one for each direction. If it is not allowed, the circuit is unidirectional and only one procedure is performed, for the allowed direction. The direction is communicated through LDP.

A notification either travels inside the circuit it is about, which is called inband, or over a different connection, which is called outband. The RFC picks a method for each kind of ATM link, and says the upstream node always starts the exchange.

WHICH NOTIFICATION PROCEDURE EACH KIND OF LINK USES
Kind of linkProcedureReason given
Transparent point-to-point linkNoneThe label is the same at each end of the circuit.
Virtual pathInband, VPID, or noneThe VPI may differ at the two ends, but the VCI does not when there is only one path.
Permanent virtual circuit THIS RFCInbandThe labels at each end of the circuit may not be the same.
Switched virtual circuitOutband, outband with a small field, or inbandDepends on what the signalling message can carry.

§3.1Inband Notification

For a point-to-point circuit, the upstream node A establishes a circuit to the downstream node B, by signalling or by management, and then chooses a VCID value. Node A sends a VCID PROPOSE message through the new circuit, carrying the VCID value and a message ID, and records the association between the outgoing label, that is the VPI and VCI, and the VCID.

Node B receives the message on the circuit and associates the VCID in the message with the incoming label of the circuit. Until node B receives the LDP Request message, it discards any packet that arrives on the circuit other than the VCID PROPOSE message. Node B then sends a VCID ACK message through the circuit, containing the same VCID and message ID it received.

When node A receives the ACK, it checks that the VCID and message ID match the ones it registered. If they match, it treats the association as established; otherwise it ignores the message. If the expected ACK does not arrive within a given period, node A resends the VCID PROPOSE message. After the ACK, node A sends an LDP REQUEST message carrying the message ID used in the proposal. When node B receives that, it treats the exchange as complete, ignores any further VCID PROPOSE messages on that circuit, and sends an LDP Mapping message that carries the VCID value in the label TLV.

The three messages, VCID PROPOSE, VCID ACK and LDP REQUEST, form a three-way handshake. The RFC explains why three are needed: the transmission of the VCID PROPOSE message is unreliable, so the handshake confirms that the proposal really got through and the acknowledgement really came back.

The same idea applies to a point-to-multipoint circuit, where the upstream node assigns the VCID and sends the proposal to all the leaf nodes, which acknowledge it, and the upstream node then sends the LDP REQUEST to complete the handshake. Downstream nodes that have already received the LDP REQUEST for that circuit discard the proposal. The current LDP specification does not support multicast, so this part of the procedure is defined for future use.

The upstream node picks a number, sends it down the new circuit, and waits for an acknowledgement that repeats the same number and message ID. It then sends an LDP request carrying that ID, which is the third step of the handshake and tells the far end the exchange worked.

THE INBAND THREE-WAY HANDSHAKE, AS THE RFC SHOWS IT
Node A (upstream)Node B (downstream)
  1. VCID PROPOSECarries the VCID value and a message ID over the new circuit.
  2. VCID ACKRepeats the same VCID and message ID.
  3. LDP Label RequestCarries the message ID used in the proposal.
  4. LDP Label MappingCarries the VCID value in the label TLV.

§3.2Outband Notification

Outband notification is used when the circuit is set up by an ATM signalling message and the signalling has a field large enough to carry a VCID value, for example the generic identifier transport. In that case the VCID is carried directly in the signalling message, and afterwards node A sends the LDP request and node B answers with the LDP mapping message containing the VCID in the label TLV.

When the signalling field is too small, the RFC defines an outband procedure using a small-sized field. The SETUP message of the ATM Forum UNI 3.1 and 4.0 signalling has a 7-bit mandatory field for the user, in the layer 3 protocol field of the BLLI information element. The BLLI value is used as a temporary identifier for the circuit during the notification, and it must not be assigned to any other circuit while the procedure is running, so that identifiers do not conflict. Once the association between the BLLI value, a VCID value and the circuit has been established, the BLLI value can be reused. VCID values can be assigned independently of BLLI values.

For a point-to-point circuit, the upstream router establishes the circuit with a BLLI value it is not currently using for any other incomplete transaction with that peer, sends the VCID PROPOSE message through the circuit for LDP to notify the downstream router of the association between the BLLI and VCID values, and the downstream router records that association and answers with an ACK. The upstream router then records the association between the circuit and the VCID, the circuit becomes ready to use, and the BLLI value is free again. The LDP request and mapping follow as usual.

A point-to-multipoint circuit can also be set up with the ADD_PARTY message, which adds a leaf to an existing circuit or tree. The BLLI value in ADD_PARTY has to be the same value that was used to establish the first point-to-point circuit of the tree, and the same BLLI value may be used in different trees only when those trees cannot add a leaf at the same time. The BLLI value used in the signalling must therefore be decided by the root node of the multicast tree.

The RFC adds a caution about BLLI values. A BLLI value is unique at the sending node, but not at the receiving node, because several sending nodes may allocate the same value. The receiver must therefore recognise the BLLI value together with the sender address, and the ATM signalling messages that carry them, SETUP and ADD_PARTY, carry both.

When the signalling message can hold the number, it carries it directly. When it cannot, the RFC borrows a small field in the signalling as a temporary label for the circuit, and frees it again once the real number is agreed.

§4VPID Notification for Virtual Paths

The same idea applies to a virtual path, where a VPID notification procedure shares one identifier between both ends of the path. A distinct procedure is performed for each direction of each virtual path.

Once the VPID notification is finished for a path, the VCID of a circuit inside that path is constructed from the VPID in the most significant bits and the VCI in the least significant bits. The VCID can then be used by LDP without any further VCID notification.

The message sequence has four steps. The upstream node sends a VPID PROPOSE message. For a bidirectional label switched circuit, both the upstream and the downstream node use VCI 33; for a unidirectional one, the node with the larger LDP identifier uses VCI 33 and the other uses VCI 34. The VCI value 32, which is used for unlabelled packet transfer, is not used for the VPID procedure, so that the same encapsulation can be used for both the VPID procedure and the inband VCID procedure. The downstream node answers with a VPID ACK, the upstream node sends the LDP Label Request, and the downstream node answers with the LDP Label Mapping.

A whole virtual path can be given one shared number, the VPID. After that, the number of a circuit inside the path is built from the VPID and the circuit's own VCI, so no further negotiation is needed.

§5VCID Message Formats

An LDP VCID message is the LDP fixed header followed by one or more type-length-value fields. A VCID PROPOSE inband message and a VPID PROPOSE message are sent as a null encapsulation packet through the circuit to be used as a label switched path, with only a label stack header before the LDP VCID PDU, and the label value in the label stack entry is 4. The reserved label value is needed because the downstream node may receive the message after it has already received the LDP Label Request message, and must be able to tell the VCID PROPOSE message from other traffic. The other messages are sent as TCP packets, as in LDP itself.

The message type values are 0x0501 for the VCID Propose inband message, 0x0502 for the VCID Propose message, 0x0503 for the VCID ACK message, 0x0504 for the VCID NACK message, 0x0505 for the VPID Propose inband message, 0x0506 for the VPID ACK message and 0x0507 for the VPID NACK message. An LSR sends the ACK when it accepts the proposal and the NACK when it does not.

The proposal and acknowledgement messages carry a four-octet message ID, used to identify the message, and a label TLV. The label TLV holds the VCID value, or the VPID value in the VPID messages, and its type is VCID 0x0203 or VPID 0x0703. The outband VCID PROPOSE message also carries a temporary ID TLV of type 0x0702, whose value is the one taken from the user specific field of the BLLI. The acknowledgement and rejection messages carry a VCID message ID TLV of type 0x0701, whose value is the same as the message ID of the proposal being answered.

The objects themselves are simple. The VCID label TLV, used to encode labels for a link that does not have the same data link label at both ends of a circuit, holds a 4-byte VCID value. The VPID label TLV, used in the VPID notification procedure, holds a 2-byte VPID value.

Each message is an LDP header followed by typed fields. The field that carries the VCID is a label TLV of type 0x0203, and the field that echoes the proposal's message ID is a TLV of type 0x0701.

THE VCID AND VPID MESSAGE TYPES
  • 0x0501VCID Propose inband — Sent as a null encapsulation packet through the circuit, with label value 4.
  • 0x0502VCID Propose — Used by the outband procedure with a small-sized signalling field.
  • 0x0503VCID ACK — Sent when the proposal is accepted.
  • 0x0504VCID NACK — Sent when the proposal is not accepted.
  • 0x0505VPID Propose inband — Sent through the virtual path, with label value 4.
  • 0x0506VPID ACK — Sent when the VPID proposal is accepted.
  • 0x0507VPID NACK — Sent when the VPID proposal is not accepted.

§6Security Considerations

The RFC states that the document introduces no new security issues beyond those already present in LDP, and that the same mechanisms proposed for LDP may be used.

Nothing here adds a new security problem. The protections that LDP already has are the ones to use.

§8References