Subject: Clarification of LDP session establishment procedure

From: Bob Thomas <[email-masked]>
Date: Wed, 23 Aug 2000 13:41:34 -0400 (EDT)

Hi,

The procedure for session establishment in Section 2.5.2 (Transport
Connection Establishment) of draft-ietf-mpls-ldp-10.txt is under
specified.

The following addition to draft-ietf-mpls-ldp-10.txt clarifies the
procedure:

 * page 16 add new paragraph following step (3):

   Note that when an LSR sends a Hello it selects the transport address
   for its end of the session connection and uses the Hello to advertise
   the address, either explicitly by including it in an optional
   Transport Address TLV or implicitly by omitting the TLV and using it
   as the Hello source address.

   An LSR MUST advertise the same transport address in all Hellos that
   advertise the same label space.  This requirement ensures that two
   LSRs linked by multiple Hello adjacencies using the same label spaces
   play the same connection establishment role for each adjacency.

Attached below is the complete revised text for Section 2.5.2 with the
change highlighted.

Note that these additions are intended as a clarification of the
procedure, not a change to the procedure.

This clarfication will be added to draft-ietf-mpls-ldp-11.txt to be posted
shortly.

Bob

2.5.2. Transport Connection Establishment

   The exchange of Hellos results in the creation of a Hello adjacency
   at LSR1 that serves to bind the link (L) and the label spaces LSR1:a
   and LSR2:b.

     1.  If LSR1 does not already have an LDP session for the exchange
         of label spaces LSR1:a and LSR2:b it attempts to open a TCP
         connection for a new LDP session with LSR2.

         LSR1 determines the transport addresses to be used at its end
         (A1) and LSR2's end (A2) of the LDP TCP connection.  Address A1
         is determined as follows:

         a.  If LSR1 uses the Transport Address optional object (TLV) in
             Hello's it sends to LSR2 to advertise an address, A1 is the
             address LSR1 advertises via the optional object;

         b.  If LSR1 does not use the Transport Address optional object,
             A1 is the source address used in Hellos it sends to LSR2.

         Similarly, address A2 is determined as follows:

         a.  If LSR2 uses the Transport Address optional object, A2 is
             the address LSR2 advertises via the optional object;

         b.  If LSR2 does not use the Transport Address optional object,
             A2 is the source address in Hellos received from LSR2.

     2.  LSR1 determines whether it will play the active or passive role
         in session establishment by comparing addresses A1 and A2 as
         unsigned integers.  If A1 > A2, LSR1 plays the active role;
         otherwise it is passive.

         The procedure for comparing A1 and A2 as unsigned integers is:

           - If A1 and A2 are not in the same address family, they are
             incomparable, and no session can be established.

           - Let U1 be the abstract unsigned integer obtained by
             treating A1 as a sequence of bytes, where the byte which
             appears earliest in the message is the most significant
             byte of the integer and the byte which appears latest in
             the message is the least significant byte of the integer.

             Let U2 be the abstract unsigned integer obtained from A2 in
             a similar manner.

           - Compare U1 with U2.  If U1 > U2, then A1 > A2; if U1 < U2,
             then A1 < A2.

     3.  If LSR1 is active, it attempts to establish the LDP TCP
         connection by connecting to the well-known LDP port at address
         A2.  If LSR1 is passive, it waits for LSR2 to establish the LDP
         TCP connection to its well-known LDP port.

   Note that when an LSR sends a Hello it selects the transport address    ***
   for its end of the session connection and uses the Hello to advertise   ***
   the address, either explicitly by including it in an optional           ***
   Transport Address TLV or implicitly by omitting the TLV and using it    ***
   as the Hello source address.                                            ***
                                                                           ***
   An LSR MUST advertise the same transport address in all Hellos that     ***
   advertise the same label space.  This requirement ensures that two      ***
   LSRs linked by multiple Hello adjacencies using the same label spaces   ***
   play the same connection establishment role for each adjacency.         ***