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.
Nagami, K., Katsube, Y., Demizu, N., Esaki, H., and P. Doolan, "VCID Notification over ATM link for LDP", RFC 3038, DOI 10.17487/RFC3038, January 2001, <https://www.rfc-editor.org/info/rfc3038>.
@misc{rfc3038,
series = {Request for Comments},
number = 3038,
howpublished = {RFC 3038},
publisher = {RFC Editor},
doi = {10.17487/RFC3038},
url = {https://www.rfc-editor.org/info/rfc3038},
author = {K. Nagami and Y. Katsube and N. Demizu and H. Esaki and P. Doolan},
title = {{VCID Notification over ATM link for LDP}},
pagetotal = 19,
year = 2001,
month = jan,
} RFC text
Contents
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
§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.
| Kind of link | Procedure | Reason given |
|---|---|---|
| Transparent point-to-point link | None | The label is the same at each end of the circuit. |
| Virtual path | Inband, VPID, or none | The VPI may differ at the two ends, but the VCI does not when there is only one path. |
| Permanent virtual circuit THIS RFC | Inband | The labels at each end of the circuit may not be the same. |
| Switched virtual circuit | Outband, outband with a small field, or inband | Depends 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.
- VCID PROPOSECarries the VCID value and a message ID over the new circuit.
- VCID ACKRepeats the same VCID and message ID.
- LDP Label RequestCarries the message ID used in the proposal.
- 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.
- 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.