Internet-Draft                                             Nancy Feldman
Expiration Date: May 1998                                      IBM Corp.

                                                             Paul Doolan
                                                       Ennovate Networks

                                                          Andre Fredette
                                                        Bay Networks Inc

                                                           Loa Andersson
                                                                Ericsson

                                                           November 1997






                           LDP Specification

                    <draft-feldman-ldp-spec-00.txt>



Status of This Memo

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

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

   To learn the current status of any Internet-Draft, please check the
   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).


Abstract

   An overview of Multi Protocol Label Switching (MPLS) is provided in
   [FRAMEWORK] and a proposed architecture in [ARCH]. A fundamental



Feldman, et al.           Expiration: May 1998                  [Page 1]


Internet-Draft        Label Distribution Protocol          November 1997


   concept in MPLS is that two Label Switching Routers (LSRs) must agree
   on the meaning of the labels used to forward traffic between and
   through them. This common understanding is achieved by using the
   Label Distribution Protocol (LDP) referenced in [FRAMEWORK] and
   [ARCH].  This document defines the LDP protocol.














































Feldman, et al.           Expiration: May 1998                  [Page 2]


Internet-Draft        Label Distribution Protocol          November 1997


   Table of Contents

       1.       Protocol Overview ........................ 4
       2.       Local and Egress Control ................. 5
       3.       Selecting Streams ........................ 6
       4.       LDP Messaging ............................ 8
       4.1.     Hello Message ............................ 8
       4.2.     Protocol Message Overview ................ 8
       4.2.1.   Adjacency Class Messages ................. 8
       4.2.2.   Advertisement Class Messages ............. 8
       4.3.     Advertisement Message .................... 9
       4.3.1.   Local Control ............................ 9
       4.3.2.   Egress Control ........................... 10
       4.3.3.   Label Use ................................ 10
       4.4.     Request Message .......................... 10
       4.5.     Withdraw Message ......................... 11
       4.6.     Release Message .......................... 11
       4.7.     Acknowledge Message ...................... 12
       4.8.     Query Message ............................ 12
       5.       Loop Detection ........................... 12
       6.       Loop Prevention via Diffusion ............ 12
       7.       Merging .................................. 14
       8.       Specification ............................ 14
       8.1.     LDP Hello mechanism ...................... 14
       8.2.     Common Header ............................ 15
       8.3.     Object Header ............................ 16
       8.4.     Adjacency Class Messages ................. 17
       8.5.     Advertisement Class ...................... 17
       8.6.     LDP Object definitions ................... 18
       8.6.1.   MsgType Object ........................... 18
       8.6.2.   LSR Object ............................... 19
       8.6.3.   LabelRange Object ........................ 20
       8.6.4.   Stream Member Descriptor (SMD) Object .... 21
       8.6.5.   Label Object ............................. 26
       8.6.6.   Class-of-Service Object .................. 26
       8.6.7.   LSR Path Vector Object ................... 27
       8.6.8.   Hop Count Object ......................... 28
       8.6.9.   MTU Object ............................... 28
       8.6.10.  Stack Object ............................. 29
       8.6.11.  Error Object ............................. 30
       9.       Intellectual Property Considerations ..... 31
       10.      Acknowledgments .......................... 31
       11.      References ............................... 31
       12.      Author Information ....................... 32







Feldman, et al.           Expiration: May 1998                  [Page 3]


Internet-Draft        Label Distribution Protocol          November 1997


1. Protocol Overview

   LDP is the set of procedures and messages by which one LSR informs
   another of the mappings between labels and Streams that it has made.
   Two LSRs which use an LDP to exchange label/Stream mapping
   information are known as "LDP Peers" with respect to that information
   and we speak of there being an "LDP Adjacency" between them. A single
   LDP adjacency allows each peer to learn the other's label mappings ie
   the protocol is bidirectional.

   LDP provides a mechanism whereby LSRs continually indicate their
   presence in a network using advertisements which are sent as UDP
   packets to the LDP port at the 'all routers' group multicast address.
   When, perhaps in response to hearing an advertisement, one LSR
   decides to establish an adjacency with another it uses the
   initialization procedure of LDP. On succesful completion of this
   initialization procedure the two LSRs are LDP peers and may exchange
   label mappings.

   Note that this document is written with respect to unicast routing
   only.  Multicast will be addressed in a future revision.

   LDP messages are broken into two classes: those required to establish
   and maintain neighbor adjacencies, and those which deal with the
   advertisement of label mappings.

   Correct operation of the label forwarding paradigm requires that
   forwarding peers agree on the 'meaning' of labels. This imposes
   certain requirements on the LDP including reliable and in order
   delivery of mappings (although there are circumstances when this
   second requirement could be relaxed). To satisfy these requirements
   LDP uses the TCP transport.

   The convention used in this document is the same as that used in the
   documentation of the internet protocols [rfc1700] ie to express
   numbers in decimal and to picture data in "big-endian" order. Fields
   are described left to right, with the most significant octet on the
   left and the least significant octet on the right.

   The order of transmission of the header and data described in this
   document is resolved to the octet level.  Whenever a diagram shows a
   group of octets, the order of transmission of those octets is the
   normal order in which they are read in English.  For example, in the
   following diagram the octets are transmitted in the order they are
   numbered.






Feldman, et al.           Expiration: May 1998                  [Page 4]


Internet-Draft        Label Distribution Protocol          November 1997


   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       1       |       2       |       3       |       4       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       5       |       6       |       7       |       8       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       9       |      10       |      11       |      12       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Transmission Order of Bytes


   Whenever an octet represents a numeric quantity the left most bit in the
   diagram is the high order or most significant bit.  That is, the bit
   labeled 0 is the most significant bit.
   Similarly, whenever a multi-octet field represents a numeric quantity
   the left most bit of the whole field is the most significant bit.  When
   a multi-octet quantity is transmitted the most significant octet is
   transmitted first.


2. Local and Egress Control

   Each LSR must be configured for local or egress control, to determine
   the behavior for the initial setup of LSPs.

   When LSP control is done locally, each node may at any time pass
   label mappings to its neighbors for each stream recognized by that
   node.  When the neighboring nodes recognize the same streams, they
   map incoming labels to received outgoing labels.

   When LSP control is done via egress control, then only the egress
   node may initiate the transmission of label mappings.  Non-egress
   nodes wait until they get a label from downstream for a recognized
   stream before mapping the stream and passing a corresponding label
   for the stream to upstream peers.

   An LSR behaves as an egress (that is, initiating mappings) on a per
   stream basis. Thus, an LSR may be considered an egress for a
   particular set of streams, and a non-egress for others.  An LSR is an
   egress LSR, with respect to a particular stream, under any of the
   following conditions:




        1.   The stream refers to the LSR itself (including one of its



Feldman, et al.           Expiration: May 1998                  [Page 5]


Internet-Draft        Label Distribution Protocol          November 1997


             directly

             attached interfaces).


        2.   The stream is reachable via a next hop router that is out-
             side the LSR switching infrastructure.


        3.   The stream is reachable by crossing a routing domain boun-
             dary, such as another area for OSPF summary net-works, or
             another autonomous system for OSPF AS externals and BGP
             routes [rfc1583] [rfc1771].


3. Selecting Streams

   A stream is an aggregate of one or more flows, treated as one for the
   purpose of forwarding; that is, all aggregate flows use a single
   label.

   Following are the currently defined streams. New streams types may be
   added as needed:



        a)   IPv4 address
             This stream is a single a IP prefix.  This identifier is
             used for host or CIDR prefixes [rfc1519].  This type
             results in each IP destination prefix sustaining its own
             LSP tree.  It is recommended in environments where no
             aggregation information is provided by the routing proto-
             cols (such as RIP), or in networks where the number of des-
             tination prefixes is limited.

        b)   BGP Next Hop
             This stream is the value in the BGP NEXT_HOP attribute.  It
             may be the IP address of a BGP border router (enabling one
             LSP tree for all destinations reachable through the same
             egress point), or the address of an external BGP peer (ena-
             bling one LSP tree for all routes destinated to the same
             external peer).  This identifier provides the maximum
             obtainable aggregation.

        c)   OSPF Router ID
             This stream is the OSPF Router ID of the router that ini-
             tiated the link state advertisement.  This type allows
             aggregation of traffic on behalf of multiple datagram



Feldman, et al.           Expiration: May 1998                  [Page 6]


Internet-Draft        Label Distribution Protocol          November 1997


             protocols routed by OSPF.

        d)   OSPF Area Border Router
             This stream is the OSPF Router ID of the border router.
             This identifier is used in OSPF external link advertisement
             with a non-zero forwarding address.

        e)   Explicit Path
             This stream is an explicitly defined source-routed path.
             This information may be provided via configuration, or may
             be computed via a Dijkstra calculation for a certain metric
             (e.g. QoS, Tos), and may be used for point-to-point,
             point-to-multipoint, or multipoint-to-point LSPs.  This
             type of stream may be initiated by an ingress or egress
             LSR.

        f)   Aggregate group
             This stream is a list of prefixes that are to share a com-
             mon egress point.  This type is configured, and may be used
             when additional aggregation not provided by the routing
             protocols is required.

        g)   Flow
             This stream contains information pertaining to a constant
             set of datagram information, such as port, dest-addr, src-
             addr, etc.  This feature provides the user with the ability
             to use MPLS with no aggregation.  This type of stream may
             be initiated by an ingress or egress LSR.

        h)   Multicast (S,G)
             This stream is a unique (Source, Group) multicast pair. It
             creates one LSP tree per (S,G) pair.  It is used by DVMRP
             and PIM-DM.

        i)   Multicast (G)
             This stream is a unique multicast group on a multicast
             tree.  It creates one switched path tree per group.  It is
             used by PIM-SM.













Feldman, et al.           Expiration: May 1998                  [Page 7]


Internet-Draft        Label Distribution Protocol          November 1997


4. LDP Messaging


4.1. Hello Message

   The hello message is periodically transmitted to autodiscover LSR
   peers.  The are transmitted as UDP packets to the LDP port at the
   'all routers' group multicast address.


4.2. Protocol Message Overview

   The protocol  messages are constructed from a common header followed
   by one or more message 'objects'.  The message object structure is of
   the form Type, Length, Value.


4.2.1. Adjacency Class Messages



   Initialization
      Transmitted after neighbor discovery, to exchange LSR characteris-
      tics, and establish a neighbor adjacency.

   KeepAlive
      Periodically transmitted to maintain a neighbor adjacency. It need
      be sent only when no other MPLS messages are transmitted within
      the KeepAlive timer interval.

   Shutdown
      Transmitted to ACTIVE neighbors, to terminate a neighbor adja-
      cency.


4.2.2. Advertisement Class Messages


   Mapping
      Transmitted to establish an LSP by transmitting a mapping between
      a stream and a label, with associated characteristics.

   Request
      Transmitted to request a label mapping for a stream.

   Withdraw
      Transmitted to withdraw a previously allocated label.




Feldman, et al.           Expiration: May 1998                  [Page 8]


Internet-Draft        Label Distribution Protocol          November 1997


   Release
      Transmitted to indicate a previously received label is no longer
      in use.

   Query
      Transmitted when diffusion is in use, to verify that a new routed
      path to the stream is loop free.

   Acknowledge
      An error transmitted on the receipt of an Advertisement Class mes-
      sage, or as a response to a query message


4.3. Advertisement Message

   The Advertisement message is used by a downstream LSR distribute a
   label mapping for a stream to its LDP peers.   If an LSR must distri-
   bute a mapping for a stream to multiple MPLS peers,  it is a local
   matter whether it maps a single label to the stream, and distributes
   that mapping to all its peers, or whether it uses a different mapping
   for each of its peers.

   It is the responsibility of the downstream LSR to keep track of the
   mappings which it has distributed, and to ensure that the upstream
   peer always has these mappings.


4.3.1. Local Control

   If an LSR is configured for local control, an advertisement is
   transmitted by an LSR to upstream peers upon any of the following
   conditions:

     1.   The LSR recognizes a new stream via the forwarding table.

     2.   The LSR receives a Request Advertisement from an upstream peer
          for a stream present in the LSR's forwarding table.

     3.   The next hop for a stream changes.

     4.   The next hop for a stream changes to another LDP peer.

     5.   The receipt of a mapping from the downstream next hop.








Feldman, et al.           Expiration: May 1998                  [Page 9]


Internet-Draft        Label Distribution Protocol          November 1997


4.3.2. Egress Control

   If an LSR is configured for egress control, an advertisement is
   transmitted by downstream LSRs upon any of the following conditions:

     1.   The LSR recognizes a new stream via the forwarding table, and
          is the egress for the stream.

     2.   The LSR receives a Request Advertisement from an upstream peer
          for a stream present in the LSR's forwarding table, and the
          LSR is the egress for that stream OR has a downstream mapping
          for that stream.

     3.   The next hop for a stream changes to another LDP peer.

     4.   The attributes of a mapping change.

     5.   The receipt of a mapping from the downstream next hop.



4.3.3. Label Use

   An upstream LSR uses a mapping received from the downstream peer if
   that peer is the next hop for the stream, and a routed path loop is
   not detected via the LSR-path-vector object (see section 8.6.7).  If
   diffusion is configured, a diffusion algorith may need to be per-
   formed before the label is used (see section 6).  If, at the time the
   mapping is received, the downstream peer is NOT the LSR's Next Hop
   for the stream, or an object is determined to be in a loop, the LSR
   will not use of the mapping at that time.



4.4. Request Message

   The Request message is used by the upstream LSR to explicitly request
   that the downstream LSR map and advertise a label for a stream.

   An LSR transmits a Request message under any of the following condi-
   tions:

     1.   The LSR recognizes a new stream via the forwarding table, and
          the next hop is an ACTIVE MPLS peer.

     2.   The  next hop to the stream changes, and one doesn't already
          have a mapping from that next hop for the given stream.




Feldman, et al.           Expiration: May 1998                 [Page 10]


Internet-Draft        Label Distribution Protocol          November 1997


   If a request cannot be satisfied by the downstream LSR, the request-
   ing LSR may optionally choose to request again at a later time, or
   may wait for the mapping, assuming that the the downstream LSR will
   provide the mapping automatically when it is available.



4.5. Withdraw Message

   A downstream LSR distributes a Withdraw message to upstream peers
   when it decides to break the mapping between a stream and a label.
   Note that if a downstream LSR peer becomes non-ACTIVE, all labels
   received from that peer are to be considered withdrawn.

   An LSR transmits a Withdraw message under the following condition:

     1.   The LSR no longer recognizes a previously known stream.

     2.   Optionally, the LSR has unspliced an upstream label from the
          downstream label.

   Note that a withdrawn label MAY NOT be reused until the upstream peer
   has acknowledged the withdraw via a Release message.


4.6. Release Message

   An LSR transmits a Release message to a downstream peer when it is
   not using a label previously received from that peer.

   An LSR transmits a Release message under any of the following condi-
   tions:

     1.   The downstream LSR which sent the label mapping is not the
          next hop for the mapped stream.

     2.   The downstream LSR which sent the label has ceased to be the
          next hop for a stream.

     3.   The LSR has received a Withdraw message for a previously
          received label.

   Note that if an LSR is configured for "liberal mode", a release mes-
   sage will never be transmitted.  In this case, the upstream LSR keeps
   each unused label, so that it can immediately be used later if the
   downstream peer becomes the next hop for the stream.





Feldman, et al.           Expiration: May 1998                 [Page 11]


Internet-Draft        Label Distribution Protocol          November 1997


4.7. Acknowledge Message

   An LSR transmits an acknowledge message if it cannot process a
   received Advertisement message, or in response to the receipt of a
   diffusion query message.



4.8. Query Message

   The Query message is used with the diffusion algorithm to verify that
   new paths are loop-free before creating an LSP on the new path.  See
   diffusion section ???



5. Loop Detection

   All LSRs perform loop detection via the LSR-path-vector object con-
   tained within each label advertisement.  Upon receiving such a mes-
   sage, the LSR performs loop detection by verifying that its unique
   router-id is not already present in the list.  If a loop is detected,
   the LSR must transmit a NAK message to the sending node, and not
   install the mapping or propagate the message any further.  In addi-
   tion, if there is an upstream label spliced to the downstream label
   for the stream, the LSR must unsplice the labels. On those messages
   in which no loop is detected, the LSR must concatenate itself to the
   LSR-path-vector before propagating.



6. Loop Prevention via Diffusion

   LSR diffusion support is a configurable option, which permits an LSR
   to verify that a new routed path is loop free before installing an
   LSP on that path.  An LSR which supports diffusion does not splice an
   upstream label a new downstream label until it ensures that concate-
   nation of the upstream path with the new downstream path will be loop
   free.

   A LSR which detects a new nexthop for a stream transmits a query mes-
   sage containing its unique router id to each of its upstream peers.
   A node that receives such a query processes the query as follows:


     o    If the sending LSR not the correct next hop for the given
          stream, the receiving LSR responds with a positive acknowledge
          message, indicating that the sending LSR may change to the new



Feldman, et al.           Expiration: May 1998                 [Page 12]


Internet-Draft        Label Distribution Protocol          November 1997


          path.

     o    If the sending LSR is the correct next hop for the given
          stream, the receiving LSR performs loop detection via the
          LSR-path-vector.

     o    If a loop is detected, the receiving LSR responds with a nega-
          tive "prune" acknowledgment, and unsplices all connections to
          the sending node, thereby pruning itself off of the tree.

     o    If a loop is not detected, the receiving node concatenates its
          unique router-id to the LSR-path-vector, and propagates the
          query message to its upstream neighbors.

     o    Each LSR which receives a query acknowledgement from its
          upstream neighbor in turn forwards the acknowledgement to the
          downstream LSR which sent the query advertisement.

     o    If an LSR doesn't receive an acknowledgment within a "reason-
          able" period of time, it "unsplices" its unsplice the upstream
          neighbor that has not responded, and responds with a negative
          "prune" acknowledgement.

     o    An LSR which receives a new query advertisement for a stream
          before it has received responses from all of its upstream
          neighbors for a previous query advertisement must concaten-
          tated the old and the new LSR-path-vector within the new query
          advertisement before propagating.

     o    The diffusion computation continues until each upstream path
          responds with an acknowledgment.  An LSR that does not have
          any upstream MPLS neighbors must acknowledge the query adver-
          tisement.

   The LSR which began the diffusion may splice its upstream label to
   the new downstream label only after receiving an acknowledge message
   from the upstream peer.

   As LSR diffusion support is a configurable option, an LSRs which do
   not support diffusion will never originate a query advertisement.
   However, these LSRs must still recognize and process the query mes-
   sage, as described above.









Feldman, et al.           Expiration: May 1998                 [Page 13]


Internet-Draft        Label Distribution Protocol          November 1997


7. Merging

   VC/VP merging, non-merging, and interoperability will be addressed in
   a future revision.



8. Specification

   The hello mechanism is described first. Following that we define the
   structure of the common header and of the objects. We then provide
   definitions of the adjacency and advertisement messages and follow
   that with definitions for the objects that constitute those messages.


8.1. LDP Hello mechanism

   Hello 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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Version    |   Reserved    |         Length                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        IP Address                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Version:
       This one octet unsigned integer contains the version number of
       the protocol. This version of the specification specifies
       protocol Version = 0x01.

    Reserved
       This field is reserved. It must be set to zero on transmission and
       must be ignored on receipt.

    Length:
       This two octet integer specifies the total length of this
       PDU in bytes.

    Network Address
       This 4 octet integer contains the address of the
       LSR which originated the discovery message.








Feldman, et al.           Expiration: May 1998                 [Page 14]


Internet-Draft        Label Distribution Protocol          November 1997


8.2. Common Header

   All LDP PDUs, with the exception of the hello message, must begin
   with the following common header:

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Version    |    Reserved   |         Length                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        MPLS Identifier                        |
   +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Version:
      One octet unsigned integer containing the version number of
      the protocol.  This version of the specification specifies
      protocol Version = 0x01.

   Length:
      Two octet integer specifying the total length of this
      PDU in bytes, including the common header.

   MsgClass
      One octet integer defining the class of the MPLS message.
      This version of the specification defines:
      Adjacency Class     = 1
      Advertisement Class = 2

   MPLS Identifier:
      Six octet unsigned integer containing a unique identifier for the
      LSR that generated the PDU. The value of this Identifier is deter-
      mined  on startup. The first four octets encode an IP address
      assigned to the LSR. The last two octets represent the 'instance'
      of MPLS on the LSR. A LSR with only one active MPLS session would
      supply the value zero in this field.

   Res:
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.










Feldman, et al.           Expiration: May 1998                 [Page 15]


Internet-Draft        Label Distribution Protocol          November 1997


8.3. Object Header

   All objects in an MPLS message must begin with the following object
   header. Objects must be placed back-to-back within the message, and
   must be padded to a word boundary.

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Obj Type   |    Sub Type   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Object Type
     This one octet field specifies the type of the object following.

     This version of the specification defines the following
     objects for adjacency class messages:

                 MSGTYPE_OBJECT          = 1
                 LSR_OBJECT              = 2
                 LABELRANGE_OBJECT       = 3


     This version of the specification defines the following
     objects for advertisement class messages:

                 MSGTYPE_OBJECT          = 1
                 SMD_OBJECT              = 2
                 LABEL_OBJECT            = 3
                 COS_OBJECT              = 4
                 LSR_PATH_VECTOR_OBJECT  = 5
                 HOPCOUNT_OBJECT         = 6
                 MTU_OBJECT              = 7
                 STACK_OBJECT            = 8
                 ERROR_OBJECT            = 9

   Sub Type
      This one octet field specifies the subtype of this object.
      See each of the object definitions for a definition of the subtypes.

   Length
      This two octet unsigned integer specifies the length of the object,
      including this object header.








Feldman, et al.           Expiration: May 1998                 [Page 16]


Internet-Draft        Label Distribution Protocol          November 1997


8.4. Adjacency Class Messages

   The following notations show the objects that are valid with each
   Advertisement Class Message.  Only one message may be contained
   within a single Adjacency Class PDU.

    Initialization Message:
      <Common Header>
      <MSGTYPE_OBJECT>
      <LSR_OBJECT>
      <LABELRANGE_OBJECT>

    KeepAlive Message:
      <Common Header>
      <MSGTYPE_OBJECT>

   Shutdown Message:
      <Common Header>
      <MSGTYPE_OBJECT>



8.5. Advertisement Class

   All Advertisement Class PDUs begin with a common header:
   <Common Header>

   The following notations show the objects that are valid with each
   Advertisement Class Message.  Multiple messages may be contained
   within a single Advertisement Class PDU.


   Mapping Message:
      <MSGTYPE_OBJECT>
      <SMD>
         [ <SMD> ] ...

      <SMD> := <SMD_OBJECT> <LABEL> [MTU_OBJECT] [STACK_OBJECT]
      <LABEL> := <LABEL_OBJECT> <LSR_PATH_VECTOR_OBJECT> [COS_OBJECT]
                         [HOPCOUNT_OBJECT]

   Request Message:
      <MSGTYPE_OBJECT>
      <SMD_OBJECT>
         [SMD_OBJECT] ...

   Withdraw Message:
      <MSGTYPE_OBJECT>



Feldman, et al.           Expiration: May 1998                 [Page 17]


Internet-Draft        Label Distribution Protocol          November 1997


      <SMD_OBJECT>
      <LABEL_OBJECT>
         [<SMD_OBJECT>
          <LABEL_OBJECT>] ...

   Release Message:
      <MSGTYPE_OBJECT>
      <SMD_OBJECT>
      <LABEL_OBJECT>
         [<SMD_OBJECT>
          <LABEL_OBJECT>] ...

   Query Message:
      <MSGTYPE_OBJECT>
      <SMD_OBJECT>
      <LSR_PATH_VECTOR_OBJECT>

   Acknowledge Message:
      <MSGTYPE_OBJECT>
      <SMD_OBJECT>
      [<LABEL_OBJECT>]
      <ERROR_OBJECT>
         [<SMD_OBJECT>
          [<LABEL_OBJECT>]
          <ERROR_OBJECT>] ...




8.6. LDP Object definitions

8.6.1. MsgType Object
   MsgClass = Adjacency or Advertisement
   ObjType = 1

   SubType = 1  Initialization Message
             2  KeepAlive Message
             3  ShutDown Message
             4  Mapping Message
             5  Withdraw Message
             6  Request Message
             7  Release Message
             8  Query Message
             9  Acknowledge Message

   The MsgType object identifies the type of message to be
   processed.  This object has no additional fields.  The
   length is a fixed 4 bytes.



Feldman, et al.           Expiration: May 1998                 [Page 18]


Internet-Draft        Label Distribution Protocol          November 1997


8.6.2. LSR Object

   MsgClass = Adjacency
   ObjType = 2

   The LSR object exchanges LSR characteristics with peers at initiali-
   zation.

   SubType = 1    ATM

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       KeepAlive Timer         | Merge Type    |  NULL Encap   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   KeepAlive Timer
      Two octet unsigned non zero integer that indicates the number of
      seconds that the peer initiating the connection proposes for the
      value of the KeepAlive Interval.  The receiving LSR MUST
      MUST calculate the value of the KeepAlive Timer by using the
      smaller of its configured KEEPALIVE_TIME and the KEEPALIVE_TIME
      received in the PDU.  The value chosen for KEEPALIVE_TIME
      indicates the maximum number of seconds that may elapse between
      the receipt of successive PDUs from the LSR peer. The Hold Timer
      is reset each time a PDU arrives.

   MergeType
      One octet integer specifying the switch merge capabilities.
      The following values are supported in this version of the
      specification:

                 Non Merge      = 0
                 VP Merge       = 1
                 VC Merge       = 2
                 VP & VC Merge  = 3

   NULL Encap
      One octet parameter set to non-zero when the LSR supports
      the null encapsulation of [rfc1483] for its data VCs. In this
      case IP packets are carried directly inside AAL5 frames.










Feldman, et al.           Expiration: May 1998                 [Page 19]


Internet-Draft        Label Distribution Protocol          November 1997


8.6.3. LabelRange Object

   MsgClass = Adjacency
   ObjType = 3

   The LabelRange object contains the label range supported by the
   transmitting LSR.  A receiving LSR MUST calculate the intersection
   between the received range and its own supported label range.  The
   intersection is the range in which the LSR may allocate and accept
   labels.  LSRs may NOT establish an adjacency with neighbors whose
   intersection range is NULL.

   SubType = 1  Default

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Res  |    Minimum VPI        |        Minimum VCI            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Res  |    Maximum VPI        |        Maximum VCI            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Res
       This field is reserved. It must be set to zero on transmission and
       must be ignored on receipt.

    Minimum VPI (12 bits)
       This 12 bit field specifies the lower bound of a block of
       Virtual Path Identifiers that is supported on the
       originating switch.  If the VPI is less than 12-bits it
       should be right justified in this field and preceding bits
       should be set to 0.

    Minimum VCI (16 bits)
       This 16 bit field specifies the lower bound of a block of
       Virtual Connection Identifiers that is supported on the
       originating switch.  If the VCI is less than 16-bits it
       should be right justified in this field and preceding bits
       should be set to 0.

    Maximum VPI (12 bits)
       This 12 bit field specifies the upper bound of a block of
       Virtual Path Identifiers that is supported on the
       originating switch.  If the VPI is less than 12-bits it
       should be right justified in this field and preceding bits
       should be set to 0.

    Maximum VCI (16 bits)



Feldman, et al.           Expiration: May 1998                 [Page 20]


Internet-Draft        Label Distribution Protocol          November 1997


       This 16 bit field specifies the upper bound of a block of
       Virtual Connection Identifiers that is supported on the
       originating switch.  If the VCI is less than 16-bits it
       should be right justified in this field and preceding bits
       should be set to 0.


8.6.4. Stream Member Descriptor (SMD) Object

   MsgClass = Advertisement
   ObjType = 2

   This mandatory object specifies the streams for which LSPs are
   created.  All objects following an SMD_OBJECT are associated with the
   SMD, until the next SMD_OBJECT or MSGTYPE_OBJECT.

   SubType = 1   Wild Card

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Place Holder                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Place Holder
      Four octet integer set to all 0s.  This field is used in
      association with a Label Object, to indicate ALL SMDs
      associated with the given label are to be processed.

   SubType = 2   Network Address

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Prefix Len     |     Prefix  (length variable )
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+............................

   Prefix Len
      One octet unsigned integer containing the length in bits of the
      address prefix that follows.

   Prefix:
      A variable length field containing an address prefix whose length,
      in bits, was specified in the previous (Prefix Len) field. A Prefix
      must be padded with sufficient trailing zero bits  to cause the end
      of the field to fall on a word boundary.

   SubType = 3   BGP Next Hop



Feldman, et al.           Expiration: May 1998                 [Page 21]


Internet-Draft        Label Distribution Protocol          November 1997


   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     BGP Next Hop IPv4 Address                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   BGP Next Hop
      Four octet IPv4 address of the BGP Next Hop router.

   SubType = 4   OSPF Router Id

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        OSPF Router Id                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   OSPF Router ID
      Four octet router identifier of an OSPF node.

   SubType = 5   OSPF Area Border Router

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  OSPF Area Border Router ID                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Prefix Len     |     Prefix  (length variable )
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+............................

   OSPF Area Border Router ID
      Four octet router identifier of the OSPF ABR node.

   Prefix Len
      One octet unsigned integer containing the length in bits of the
      address prefix that follows.

   Prefix:
      A variable length field containing an address prefix whose length,
      in bits, was specified in the previous (Prefix Len) field. A Prefix
      must be padded with sufficient trailing zero bits  to cause the end
      of the field to fall on a word boundary.









Feldman, et al.           Expiration: May 1998                 [Page 22]


Internet-Draft        Label Distribution Protocol          November 1997


   SubType = 6   Aggregation list

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Aggregate Router-Id                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Prefix Count             |  Prefix Len   |  Prefix ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      .... (variable length)
   +-+-+-+-+-+-+-+-+-+-+-+-+-

   Aggregate Router-Id
      Four octet unique identifier on an LSR which is initiating
      the aggregation.

   Prefix Count
      Two octet number of address prefixes in this object, which
      comprise the set of prefixes that are to be aggregated
      together.

   Prefix Len
      One octet unsigned integer containing the length in bits of the
      address prefix that follows.

   Prefix:
      A variable length field containing an address prefix whose length,
      in bits, was specified in the previous (Prefix Len) field. The
      last prefix in the list must be padded with sufficient trailing
      zero bits to cause the end of the field to fall on a word boundary.





















Feldman, et al.           Expiration: May 1998                 [Page 23]


Internet-Draft        Label Distribution Protocol          November 1997


   SubType = 7   Explicit Route

   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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |D|          Reserved           |          Current              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Network Address                         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   NN-Cnt      |   NN-Offset   |   NN-Offset   |   ...         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    ~                                                               ~
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Network Address                         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   NN-Cnt      |   NN-Offset   |   NN-Offset   |   ...         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   D-bit (Direction)
      One-bit field indicating the direction of the LSP.  Field is set to 0
      when initiated by an ingress LSR. Field is set to 1 when initiated
      by an egress LSR.  All explicit routes must have an end-to-end
      acknowledgment.  In the case of ingress initiated explicit, the
      egress LSR is responsible for initiating the assignment of labels
      with a mapping advertisement.  In the case of egress initiated explicit,
      the ingress LSR is responsible for initiating an acknowledge message
      back to the egress.  Note that each LSR receiving an explicit object
      must keep explicit path state, in order to process the label mapping
      or acknowledgment when it arrives.

   Reserved
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.

   Current
      Two-octet pointer to the current network address location in the
      explicit path.

   Network Address
      Four-octet network address of a node in the LSP.  Note this value
      may not be word aligned.

   NN-Cnt (Next-Node Count)
      One-octet field containing the number of next-nodes corresponding
      to the network address, for which the explicit message need be
      forwarded to.  If this value is greater than 1, a mpt-to-pt or



Feldman, et al.           Expiration: May 1998                 [Page 24]


Internet-Draft        Label Distribution Protocol          November 1997


      pt-to-mpt explicit path is created.  A value of 0 indicates the end
      of the list.

   NN-Offset (Next-Node Offset)
      One-octet relative offset from the corresponding network address to
      the location within the object of a next-hop network address.


   SubType = 8   Hop-by-Hop Tunnel

   SubType = 9   Flow

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Network Source Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Network Dest Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Source Port           |        Dest Port              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Protocol   |   Direction   |        Reserved               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Network Source Address
      Four octet source Network address.

   Network Destination Address
      Four octet destination Network address.

   Source Port
      Two octet source port.

   Destination Port
      Two octet destination port.

   Protocol
      Protocol type.

   Direction
      One octet indicating the direction of the LSP.  Field
      is set to 1 on Downstream; field is set to 2 on Upstream.









Feldman, et al.           Expiration: May 1998                 [Page 25]


Internet-Draft        Label Distribution Protocol          November 1997


8.6.5. Label Object

   MsgClass = Advertisement
   ObjType = 3

   This object specifies a link-layer label associated with an SMD.

   SubType = 1   ATM

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Res| V |          VPI          |              VCI              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Res
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.

   V-bits
      Two-bit switching indicator.  If V-bits is 00, both the VPI and
      VCI are significant.  If V-bits is 01, only the VPI field is
      significant.  If V-bit is 10, only the VCI is significant.

   VPI (12 bits)
      Virtual Path Identifier. If VPI is less than 12-bits it should
      be right justified in this field and preceding bits should be
      set to 0.  If both the VPI and the VCI are 0, the receiver
      allocates the label.

   VCI (16 bits)
      Virtual Connection Identifier. If the VCI is less than 16-bits,
      it should be right justified in the field and the preceding
      bits must be set to 0. If Virtual Path switching is indicated
      in the V-bits field, then this field must be ignored by the
      receiver and set to 0 by the sender.  If both the VPI and the VCI
      are 0, the receiver allocates the label.

   SubType = 2   Shim


8.6.6. Class-of-Service Object

   MsgClass = Advertisement
   ObjType = 4

   This object specifies a class of service that is to be associated
   with a label.



Feldman, et al.           Expiration: May 1998                 [Page 26]


Internet-Draft        Label Distribution Protocol          November 1997


   SubType = 1   Default

   This object to be specified in a future revision.


8.6.7. LSR Path Vector Object

   MsgClass = Advertisement
   ObjType = 5

   This mandatory object contains the LSR path the advertisement has
   traversed.  Any LSR that finds its own unique LSR Id in the received
   LSR Path Vector is determined to be in a loop.

   SubType = 1  Default

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         LSR Id Count          |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            LSR Id 1                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~                                                               ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            LSR Id n                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Reserved
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.

   Router Id Count
      Two octet number of Router Identifiers in this object.

   Router Id 1 to n-1
      A series of LSR Identifiers indicating the path that the
      mapping message has traversed.  Each LSR Id must be
      unique within the LSR network.

   Router Id n
      LSR Identifier of the router that sent the current message.
      Each LSR receiving this object MUST append its own unique
      LSR Id to the object before forwarding the object.





Feldman, et al.           Expiration: May 1998                 [Page 27]


Internet-Draft        Label Distribution Protocol          November 1997


8.6.8. Hop Count Object

   MsgClass = Advertisement
   ObjType = 6

   This object calculates the number of LSR hops along a LSP.

   SubType = 1  Default

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Hop Count   |                     Reserved                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Hop Count
      The number of LSR hops along the LSP.  It is incremented by
      one at each LSR forwarding the object.

   Reserved
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.


8.6.9. MTU Object

   MsgClass = Advertisement
   ObjType = 7

   This object identifies the MTU along an LSP.  An LSR initiating data
   along the LSP path may not transmit data larger than the given MTU.

   SubType = 1  Default

   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        MTU                                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   MTU
      The maximum transmission unit for a given LSP.  Any
      LSR receiving the MTU object must compare the given value with
      its own MTU on the receiving link.  The minimum of these values
      is the MTU to be associated with the LSP and forwarded in the
      object.





Feldman, et al.           Expiration: May 1998                 [Page 28]


Internet-Draft        Label Distribution Protocol          November 1997


8.6.10. Stack Object

   MsgClass = Advertisement
   ObjType = 8

   This object contains a stacked label and a list of prefixes which are
   to use the stacked label.  This enables a deaggregating LSR to avoid
   L3 forwarding, by removing an incoming L2 header with the label given
   in a LABEL_OBJECT, and then continuing switching on the given stack
   label.

   SubType = 1   ATM

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Res| V |          VPI          |              VCI              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Prefix Count             |  Prefix Len   |  Prefix ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      .... (variable length)
   +-+-+-+-+-+-+-+-+-+-+-+-+-

   Res
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.

   V-bits
      Two-bit switching indicator.  If V-bits is 00, both the VPI and
      VCI are significant.  If V-bits is 01, only the VPI field is
      significant.  If V-bit is 10, only the VCI is significant.

   VPI (12 bits)
      Virtual Path Identifier. If VPI is less than 12-bits it should
      be right justified in this field and preceding bits should be
      set to 0.  If both the VPI and the VCI are 0, the receiver
      allocates the label.

   VCI (16 bits)
      Virtual Connection Identifier. If the VCI is less than 16-bits,
      it should be right justified in the field and the preceding
      bits must be set to 0. If Virtual Path switching is indicated
      in the V-bits field, then this field must be ignored by the
      receiver and set to 0 by the sender.  If both the VPI and the VCI
      are 0, the receiver allocates the label.

   Prefix Count
      Two octet number of address prefixes in this object, which



Feldman, et al.           Expiration: May 1998                 [Page 29]


Internet-Draft        Label Distribution Protocol          November 1997


      comprise the set of prefixes that are use the given label.

   Prefix Len
      One octet unsigned integer containing the length in bits of the
      address prefix that follows.

   Prefix:
      A variable length field containing an address prefix whose length,
      in bits, was specified in the previous (Prefix Len) field. The
      last prefix in the list must be padded with sufficient trailing
      zero bits to cause the end of the field to fall on a word boundary.


8.6.11. Error Object

   MsgClass = Advertisement
   ObjType = 9

   This object contains an error code associated with an SMD.

   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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   MsgType     |E|   Reserved  |             Error             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   MsgType
      Two-octet value indicating the Advertisement message type being
      acknowledged.

   E-bit (End-to-End Ack)
      One-bit value indicating whether the error is to be forwarded
      to the associated SMDs next hop, or next node in the case of
      explicit paths.  A value of 0 indicates DO NOT FORWARD; A value
      of 1 indicates FORWARD.

   Reserved
      This field is reserved. It must be set to zero on transmission and
      must be ignored on receipt.

   Error
      An error code.  A value of 0 indicates no error.
      Error values TBA.








Feldman, et al.           Expiration: May 1998                 [Page 30]


Internet-Draft        Label Distribution Protocol          November 1997


9. Intellectual Property Considerations

10. Acknowledgments

   The ideas and text in this document have been collected from a number
   of sources. We would like to thank Rick Boivie, Ross Callon, Eric
   Rosen, Yakov Rekhter, and Arun Viswanathan.


11. References

   [FRAMEWORK] Callon et al, "A Framework for Multiprotocol Label
   Switching" draft-ietf-mpls-framework-01.txt, July 1997

   [ARCH] Rosen et al, "A Proposed Architecture for MPLS" draft-ietf-
   mpls-arch-00.txt, August 1997

   [rfc1700] J. Reynolds, J. Postel, "Assigned Numbers", RFC 1700, ISI,
   October 1994

   [rfc1583] J. Moy, "OSPF Version 2", RFC 1583, Proteon Inc, March 1994

   [rfc1771] Y. Rekhter, T. Li, "A Border Gateway Protocol 4 (BGP-4)",
   RFC 1771, IBM Corp, Cisco Systems, March 1995

   [rfc1519] V. Fuller, T. Li, J. Yu, K. Varadhan, "Classless Inter-
   Domain Routing (CIDR):  an Address Assignment and Aggregation Stra-
   tegy", RFC 1519, BARRNET, Cisco Systems, MERIT, OARnet, September,
   1993

   [rfc1483] J. Heinanen, "Multiprotocol Encapsulation over ATM Adapta-
   tion Layer 5", RFC 1483, Telecom Finland, July 1993



















Feldman, et al.           Expiration: May 1998                 [Page 31]


Internet-Draft        Label Distribution Protocol          November 1997


12. Author Information

   Loa Andersson
   Ericsson
   Phone: + 46 8 719 52 67
   email: loa.andersson@etx.ericsson.se

   Paul Doolan
   Ennovate Networks
   330 Codman Hill Rd
   Marlborough MA 01719
   Phone: 978 263-2002
   email: pdoolan@cisco.com

   Nancy Feldman
   IBM Corp.
   17 Skyline Drive
   Hawthorne NY 10532
   Phone:  914-784-3254
   email: nkf@vnet.ibm.com

   Andre Fredette
   Bay Networks Inc
   3 Federal Street
   Billerica, MA  01821
   Phone:  508-916-8524
   email: fredette@baynetworks.com
























Feldman, et al.           Expiration: May 1998                 [Page 32]