RFC 3038

VCID Notification over ATM link for LDP

๐Ÿ“… published January 2001, from ietf

okay so this one is from January 2001 and it's a Standards Track doc from the Network Working Group ๐ŸŽ€ It was written by K. Nagami, Y. Katsube (Toshiba Corp.), N. Demizu (WaterSprings.ORG), H. Esaki (Univ. of Tokyo), and P. Doolan (Ennovate Networks). The header doesn't list anything it obsoletes or updates, so it's just vibing on its own ๐Ÿฆ‹


Status of this Memo

this doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements ๐Ÿซถ for the current standardization state and status, check the "Internet Official Protocol Standards" (STD 1) โœจ distribution of this memo is unlimited, so share away bestie ๐Ÿ’…

Copyright (C) The Internet Society (2001). All Rights Reserved. ๐ŸŒธ

Abstract

okay so the Asynchronous Transfer Mode Label Switching Router (ATM-LSR) is one of the major applications of label switching ๐Ÿงš the thing is, the ATM layer labels (VPI and VCI) on a VC get rewritten with new values at every ATM switch node, so you literally can't use them to identify a VC in label mapping messages ๐Ÿ˜ญ enter the Virtual Connection Identifier (VCID), which is the fix. the VCID has the same value at both ends of a VC, and this doc spells out how neighboring ATM-LSRs communicate VCID values so that property actually holds ๐Ÿ’œ

1. Introduction โœจ

several label switching schemes have been proposed to integrate Layer 2 and Layer 3, and the ATM Label Switching Router (ATM-LSR) is one of the major applications ๐Ÿ”ฅ

with ATM VCs, the VPI and VCI labels are, in the general case, rewritten with new values at every switch node the VC passes through, so they can't provide end to end identification of a VC ๐Ÿ’€

now in the MPLS world, a 'stream' is a class of packets that share some common characteristic you can work out by looking at the layer 3 header. streams get 'bound' to layer 2 'labels' ๐Ÿ“ those bindings get passed between peer LSRs by a Label Distribution Protocol [LDP] โญ

so to apply MPLS to ATM links, we need a way to identify ATM VCs inside LDP mapping messages. enter the Virtual Connection ID (VCID) ๐Ÿ‘‘ again, VCID has the same value at both ends of a VC, and this doc specifies how neighboring ATM-LSRs communicate VCID values to make that happen ๐ŸŽ€

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, and SVC ๐Ÿ’–

a transparent point-to-point link is one with the same VPI/VCI label at both ends of a VC. for example, two nodes directly connected (no ATM switches in between) or connected through a VP that has the same VPI value at both ends ๐Ÿฆ‹

there are two broad categories of VCID notification procedures: inband and outband. the split is about which connection the notification messages travel over. with inband, the messages go over the VC they're talking about. outband sends them over some other connection instead โœจ

here's the rundown of each link type and the notification procedure it uses, plus the reasoning behind it. the actual procedures get the full treatment in later sections ๐Ÿ’…

Transparent point-to-point link : no VCID notification VCID notification 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. So inband VCID notification gets used here. ๐Ÿซถ
  • VPID notification VCID notification is needed because the VPI at each end of the VC may not be the same. So VPID notification gets used here. ๐Ÿ“
  • No notification if a node has only one VP to a neighboring node, VCID notification is not mandatory. the VCI can be used as the VCID, because the VCI value is the same at each end of the VP ๐ŸŒธ

PVC : inband notification inband VCID notification gets used here, 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 that's big enough to carry a VCID value (e.g., GIT [GIT]), then the VCID gets carried directly in it โญ
  • Outband notification using a small-sized field if a signaling message has a field that's not big enough to carry a VCID value, this procedure is used ๐Ÿ‘‘
  • Inband notification if a signaling message can't carry user information, this procedure is used.

when an LSP is a point-to-multipoint VC and an ATM switch in an LSR isn't 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. yikes, but it's the way it goes ๐Ÿ™ˆ

2.2 VC direction

a VC has a directionality ๐Ÿฆ‹ the VCID procedure for a VC is always triggered from the upstream node, so the upstream node notifies the downstream node of the VCID โœจ

if bidirectional use of a label switched VC is allowed, the VC is called bidirectional. in that case, there are two VCID procedures, one for each direction ๐Ÿ’œ

if bidirectional use isn't allowed, the VC is called unidirectional. then only one VCID procedure gets taken, for the allowed direction ๐ŸŽ€

VC directionality gets communicated through LDP ๐Ÿซถ

3. VCID Notification Procedures ๐Ÿ’…

3.1 Inband Notification Procedures

3.1.1 Inband Notification for Point-to-point VC

VCID notification happens by sending a control message through the VC that was newly established (by signalling or management) to be used as a label switched path (LSP). here's how the procedure goes between two nodes, A and B ๐Ÿ”ฅ

  1. node A establishes a VC to the destination node B (by signalling or management). ๐ŸŒˆ
  2. node A selects a VCID value. ๐Ÿ’–
  3. node A sends a VCID PROPOSE message, which contains the VCID value and a message ID, through the newly established VC to node B. ๐Ÿฆ‹
  4. node A establishes an association between the outgoing label (VPI/VCI) for the VC and the VCID value. โœจ
  5. 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 node B receives the LDP Request message, node B discards any packet received over the VC other than the VCID PROPOSE message. ๐Ÿ™ˆ
  6. node B sends an ACK message to node A. this message contains the same VCID and message ID as in the received message. it's sent through the VC for LDP. ๐Ÿซถ
  7. 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 match, node A regards that node B has established the association between the VC and VCID. otherwise, the message is ignored. if node A doesn't receive the ACK message with the expected message ID and VCID during a given period, node A resends the VCID PROPOSE message to node B. ๐Ÿ˜ญ
  8. after receiving the proposer ACK message, node A sends an LDP REQUEST message to node B. it contains the message ID used for VCID PROPOSE. when node B receives the LDP REQUEST message, it regards that node A has received the ACK correctly. the VCID PROPOSE, VCID ACK, and LDP REQUEST messages together make 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, node B ignores all VCID PROPOSE messages received over the VC. then node B sends an LDP Mapping message, which contains the VCID value in the label TLV. ๐Ÿ‘‘

here's the message flow ๐Ÿงš

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

part 1 of 4, so more is coming bestie ๐ŸŒธโœจ

3.1.2 Inband notification for point-to-multipoint VC โœจ

okay so the current LDP spec doesn't support multicast yet ๐Ÿฅบ but the VCID notification procedure is already defined for future use ๐Ÿ”ฎ the way it works is the upstream node sends a control message through the VC that's gonna be used as an LSP. the upstream node is the one that assigns the VCID value, and then there's a procedure for telling the downstream node what that value is. this procedure runs when a new VC gets created or when a new leaf gets added to the VC ๐Ÿ’…

first up, the procedure for setting up the first VC ๐ŸŽ€

  1. the upstream node assigns a VCID value for the VC. if the VCID value is already assigned to a VC, that one gets used as the VCID.
  2. the upstream node sends a message with the VCID value and a message ID through the VC used for an LSP. this message gets transferred to all leaf nodes.
  3. the upstream node sets up an association between the outgoing label for the VC and the VCID value.
  4. when the downstream nodes get the message, if they already received the LDP REQUEST message for the VC, they throw the received message away. otherwise, the downstream nodes set up an association between the VCID in the message and the VC the message came in on.
  5. the downstream nodes send an ACK message back to the upstream node.
  6. once the upstream node has received the ACK messages, the upstream node and the downstream nodes share the VCID. then the upstream node sends the LDP REQUEST message to make a 3-way handshake ๐Ÿค
    Upstream        Downstream 1   Downstream 2
      |                |               |
      |-----------+--->|               |   VCID PROPOSE
      |           +------------------->|
      |                |               |
      |<---------------|               |
      |  VCID ACK      |               |
      |<-------------------------------|   VCID ACK

next, the procedure for adding a leaf to an existing point-to-multipoint VC ๐ŸŒˆ

  1. the upstream node adds the downstream node, using the ATM signaling.
  2. the VCID value that's already assigned to the VC gets used.
  3. the upstream node sends a message with the VCID value and a message ID through the VC used for an LSP. this message gets transferred to all leaf nodes.
  4. when the downstream nodes get the message, if they already received the LDP REQUEST message for the VC, they discard it. otherwise, the downstream nodes set up an association between the VCID in the message and the VC the message came in on.
  5. once the upstream node has received the ACK messages, the upstream node and the downstream nodes share the VCID. then the upstream node sends the LDP REQUEST message to make a 3-way handshake ๐Ÿซถ

3.2 Outband Notification using a small-sized field โœจ

this method is for when a VC gets set up using an ATM signaling message, and that message has a field that's too small to carry a VCID value ๐Ÿฅน

the SETUP message of the ATM Forum UNI 3.1/4.0 has a 7-bit mandatory field for the user. it's a user specific field inside the Layer 3 protocol field in the BLLI IE (Broadband Low Layer Information Information Element) ๐Ÿงš

the BLLI value acts as a temporary identifier for a VC while a VCID notification procedure is happening. this mechanism is called "Outband Notification using a small-sized field" ๐Ÿ’– the BLLI value of a new VC must not be assigned to other VCs during the procedure, so there are no identifier conflicts ๐Ÿ™…โ€โ™€๏ธ once the association among the BLLI value, a VCID value, and the matching VC is set up, 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 set up 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 that was used to set up the first point-to-point VC of the tree. the same BLLI value can be used in different VC trees only when those VC trees can't add a leaf at the same time. so the BLLI value used in the signaling must be decided by the root node of the multicast tree ๐Ÿ‘‘

[note] the BLLI value is unique at the sender node, but it's not unique at the receiver node, because multiple sender nodes may allocate the same BLLI value. so the receiver node must recognize the BLLI value and the sender address ๐Ÿ•ต๏ธโ€โ™€๏ธ ATM Signaling messages (SETUP and ADD_PARTY) carry both the BLLI and the sender ATM address. that way, the receiver node can figure out which node sent the BLLI message โœจ

3.2.1 Outband notification using a small-sized field for point-to-point VC ๐ŸŽ€

this subsection describes the procedures for setting up a VC and notifying its VCID between neighboring LSRs for unicast traffic ๐Ÿ’…

this is the procedure used when the upstream LSR assigns a VCID:

  1. an upstream LSR sets up a VC to the downstream LSR using ATM signaling, and it supplies a value in the BLLI field that it isn't 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 tell the downstream LSR about the association between the BLLI and VCID values.
  3. the downstream LSR sets up the association between the VC with the BLLI value and the VCID, and then sends an ACK message to the upstream LSR.
  4. once the upstream LSR gets the ACK message, it sets up the association between the VC and the VCID. the VC is ready to be used ๐ŸŽ‰ at this point, the BLLI value used in this transaction is free to be reused.
  5. after VCID notification, the upstream node sends the LDP REQUEST message to the downstream node. the downstream node sends back 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 the procedures for setting up the first VC for a multicast tree, and for adding a new VC leaf to an existing VC tree. it includes notifying the VCID for a multicast stream that uses point-to-multipoint VCs ๐ŸŒˆ

in this procedure, an upstream LSR decides both the VCID and the BLLI value for the multicast case. the reason the BLLI value is decided by an upstream LSR is explained above ๐Ÿง 

first, the procedure for setting up the first VC:

  1. an upstream LSR sets up a VC by the ATM Forum Signaling with the downstream LSR, using 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 sets up the association between the VC with the BLLI value and the VCID, and then sends an ACK message to the upstream LSR. if the VCID is already used by some other VC between the upstream and downstream LSRs, the old VC is discarded ๐Ÿ—‘๏ธ
  4. once 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:

  1. the upstream LSR sets up a VC by the ATM Forum Signaling with its downstream LSR, using 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 signaling procedure that's using this BLLI value to finish ๐Ÿ•
  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 set up using an ATM signaling message, and that message has a field (for example, GIT [GIT]) that's large enough to carry a VCID value ๐Ÿ’œ the message format is described in [GIT]. after the VCID notification, the node A sends the LDP request message 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 used for the VCID notification procedure also works for sharing the same identifier between both ends of a VP ๐Ÿงš the VPID notification procedure is defined for this purpose ๐ŸŽ€

a distinct VPID notification procedure is performed for each direction of each VP ๐Ÿ”

once the VPID notification is finished for a VP, a VCID for a VC in the VP is built from the VPID (MSB) and the VCI (LSB) of the VC. the VCID can be used by LDP without doing the VCID notification procedure ๐Ÿ™Œ the message sequence is below:

  1. an upstream node sends the VPID PROPOSE message. for a bidirectional label switched VC, both the upstream and downstream nodes use VCI=33. for a unidirectional label switched VC, the node with the 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 the VPID notification procedure, so the same encapsulation method can be applied for both the VPID procedure and the 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 that will be used as an LSP ๐Ÿซง there's only the label stack header before the LDP VCID PDU. the label value in the label stack entry [ENCAPS] for the VCID PROPOSE inband message and the VPID PROPOSE message is 4. other messages are sent as TCP packets, the same as LDP ๐ŸŒธ

the VCID message type field looks like this:

      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 โœจ

okay bestie, this one gets sent as a null encapsulation packet with an LDP header and a label stack header, going through a VC that's about to be used as an LSP ๐Ÿฆ‹ The label value is 4. This reserved label is super important because the downstream node might receive this message after it already got the LDP Label Request message, and that can happen with a point-to-multipoint VC ๐Ÿ’€ So the downstream node has to be able to tell the VCID PROPOSE message apart from the other messages, and it should ignore the VCID PROPOSE message if it already got the LDP Label Request message for that VC. no cap, that's a whole plot twist ๐Ÿ˜ญ

    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 ๐ŸŽ€ A four octet integer that identifies this message.

Label TLV ๐ŸŒธ The Label TLV carries the VCID value. The type of this 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 gets sent through the VC for the LDP, so it's basically the LDP lane ๐ŸŒˆ

    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 ๐ŸŽ€ A four octet integer that identifies this message.

Label TLV ๐ŸŒธ The Label TLV carries the VCID value. The type of this label TLV is VCID(0x0203).

Temporary ID TLV ๐Ÿ’œ This carries the value from the user specific field in the layer 3 protocol field in the BLLI ID in the ATM Forum UNI 3.1/4.0. The type of this label TLV is VCID temporary ID(0x0702).

5.1.3 VCID ACK Message ๐Ÿ’–

an LSR sends the VCID ACK message when it accepts the VCID PROPOSE message. yesss, the "you're in" text ๐Ÿ™Œ

    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 ๐ŸŽ€ A four octet integer that identifies this message.

Label TLV ๐ŸŒธ The label TLV carries the VCID value from the received VCID PROPOSE message. The type of label TLV is VCID(0x0203).

VCID Message ID ๐Ÿฆ‹ This value is the same as the one in the received VCID PROPOSE message.

5.1.4 VCID NACK Message ๐Ÿฅ€

an LSR sends the VCID NACK message when it does not accept the VCID PROPOSE message. the "nope, not this time" message, but make it iconic ๐Ÿ’…

    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 ๐ŸŽ€ A four octet integer that identifies this message.

Label TLV ๐ŸŒธ The label TLV carries the VCID value from the received VCID PROPOSE message. The type of label TLV is VCID(0x0203).

VCID Message ID ๐Ÿฆ‹ This value is the same as the one in the received VCID PROPOSE message.

5.1.5 VPID Propose inband Message ๐Ÿ“

this one is sent as a null encapsulation packet with an LDP header and a label stack header, through a VC that's gonna be used as an LSP ๐ŸŒˆ The label value is 4. The downstream node has to tell the VPID PROPOSE message apart from other messages, and it should ignore the VPID PROPOSE message if it already got the LDP Label Request message for that VC. it's giving dรฉjร  vu from 5.1.1 but for VPIDs ๐Ÿ™ˆ

    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 ๐ŸŽ€ A four octet integer that identifies this message.

VPID TLV ๐ŸŒท The VPID TLV carries the VPID value. The type of label TLV is VPID(0x0703).

5.1.6 VPID ACK Message ๐Ÿ’œ

an LSR sends the VPID ACK message when it accepts the VPID PROPOSE message. the VPID version of the "you're in" text ๐Ÿซถ

    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 ๐ŸŽ€ A four octet integer that identifies this message.

VPID TLV ๐ŸŒท The VPID TLV carries the VPID value from the received VPID PROPOSE message.

VCID Message ID ๐Ÿฆ‹ This value is the same as the one in the received VCID PROPOSE message.

5.1.7 VPID NACK Message ๐Ÿฅ€

an LSR sends the VPID NACK message when it accepts the VPID PROPOSE message. ๐Ÿ‘€ yes, the text really says "accepts" here, even though the vibe is "nope". it's the original wording, so it stays exactly like that ๐Ÿ™ˆ

    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 ๐ŸŽ€ A four octet integer that identifies this message.

VPID TLV ๐ŸŒท The VPID TLV carries the VPID value from the received VPID PROPOSE message.

VCID Message ID ๐Ÿฆ‹ This value is the same as the one in the received VCID PROPOSE message.

5.2 Objects ๐Ÿงธ

5.2.1 VCID Label TLV ๐ŸŒˆ

an LSR uses the VCID Label TLV to encode labels for use on the link that does not have the same data link label at both ends of a VC. (plot: the ends don't match, so this TLV does the matchmaking ๐Ÿ’˜)

    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 a 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 a 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 the 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 a 2 byte VPID value.

Security Considerations ๐Ÿ”

Okay bestie, the security part is short but it's serious ๐Ÿ’€. This document does not add any new security issues on top of the ones already in the LDP. It also says it may use the same mechanisms proposed for this technology. So, no new drama, just the LDP drama we already have ๐Ÿซถ

Acknowledgments ๐ŸŒธ

The authors gave a huge shoutout to the people who helped with their technical comments: Yoshihiro Ohba, Shigeo Matsuzawa, Akiyoshi Mogi, Muneyoshi Suzuki, George Swallow, and the members of the LAST-WG of the WIDE Project. Iconic squad ๐Ÿ‘‘

References ๐Ÿ“š

Here's the reading list, with all the details:

[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 ๐Ÿงš

Here's how to reach the squad, with all the contact info:

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

Legal stuff, but make it cute ๐ŸŽ€ The copyright belongs to The Internet Society (2001), and all rights are reserved. The notice itself is kept exactly as written:

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. Thank you for reading, bestie ๐Ÿซถโœจ

๐Ÿ“ฆ where this page comes from