Network Working Group						April 1991
Internet Draft							 M.T. Rose


          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


                        An Approach to CO/CL Interworking
                          -- Part II: The Short-Term --
                    Conventions for Transport-Service Bridges
                        in the absence of Internetworking

                             Wed Apr 17 09:21:02 1991


                           CO/CL Interworking Workshop
                                 July 24-26, 1990
                                  April 5, 1991

                                M.T. Rose (editor)
                     Performance Systems International, Inc.
                                  mrose@psi.com







          1.  Status of this Memo

          This document outlines the short-term aspects of the approach
          described in "An Approach to CO/CL Interworking -- Part I:
          Introduction".

          This approach has been developed at the request of the FNC and
          RARE communities, but may be applicable to other communities.
          This memo does not explicitly specify a standard, however, it
          may form the basis for policy within the FNC, RARE, or other
          communities.

          Distribution of this memo is unlimited.  Questions should be
          directed to the editor.














          M.T. Rose (editor)                                    [Page 1]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          2.  Introduction

          The short-term approach outlined in [1] is based on the use of
          transport-layer relays known as transport service bridges, or
          TS-bridges.  Further, the short-term approach also assumes
          that knowledge of the TS-bridges is present in the end-
          systems.  The companion memo [2] identifies solutions in which
          end-system knowledge of transport-layer relays is avoided.

          The purpose of this memo is two-fold: first, modifications to
          the operational characteristics of end-systems are described;
          and, second, the operational characteristics of TS-bridges are
          described.





































          M.T. Rose (editor)                                    [Page 2]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          3.  Impact of TS-bridges on End-Systems

          The fundamental characteristic of the short-term solution is
          that initiating end-systems must have knowledge of TS-bridges;
          further, the short-term solution requires that the initiating
          end-system act in a non-standard fashion in order to establish
          a connection when using a TS-bridge.


          3.1.  Initiator use of TS-bridges

          Section 3 of [1] describes a conceptual algorithm that might
          be used by an initiating end-system during transport
          connection establishment.  For an initiating transport entity,
          knowledgeable about TS-bridges, these three steps are followed
          in order to establish a connection:

          (1)  The local transport entity looks at each network address
               in the transport address, determines the OSI community
               (as defined in [1]) that the network address belongs to,
               and associates the corresponding TS-stack with each
               address.

               For each network address, if the initiating end-system
               does not belong to the OSI community for that address,
               the entity sees if there is a reachable TS-bridge that
               services that community.  If not, the address is removed
               from further consideration.  Otherwise the address is
               marked with a reference to that TS-bridge.

               If all of the addresses are removed, then there are no
               known TS-bridges to any of the network addresses, and the
               local transport entity immediately generates a transport
               disconnect.

          (2)  The remaining network addresses are then ordered, based
               on the desired QoS and the "closeness" of the actual
               network address.

          (3)  For each network address, if there is an associated TS-
               bridge, then the local transport entity starts the
               protocol for the TS-stack which can reach the TS-bridge.
               When establishing the connection, the entity replaces the
               called transport selector with a new string of octets
               formed by encoding the original network address and the





          M.T. Rose (editor)                                    [Page 3]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


               original transport selector.  If there is a possibility
               that the local network address will not be carried by the
               underlying network service, then as a local option, the
               local transport entity may also encode its local network
               address and transport selector as the calling transport
               selector.

               Otherwise, if there is no TS-bridge associated with the
               network address, the local transport entity starts the
               protocol machine for the TS-stack associated with that
               address.

               In either case, this results in a transport protocol and
               underlying network service being invoked.  Once a
               transport connection is established, the remaining
               network addresses are ignored.


          3.1.1.  Use of TS-bridge knowledge

          During the steps above, the initiating end-system must be able
          to make these decisions:

          (1)  Does the destination network address share a community in
               common with the initiating end-system (is a destination
               network address directly reachable)?

               Local knowledge is used to make this determination; for
               example, a table or local directory may be employed.

          (2)  If a destination network address is not directly
               reachable, which TS-bridge shall be used?

               Communities participating in the short-term solution will
               manually maintain tables, which contain this information.
               A separate table will be maintained for each initiating
               community.  The table will contain two columns: the first
               containing the NSAP prefix of a group of destination
               addresses, and the second column containing the network
               address of a TS-bridge which can be used to reach end-
               systems in that group.  Multiple entries may be present
               for the same NSAP prefix if several TS-bridges can be
               used to reach end-systems in that group; each site
               administrator will be responsible for ordering the TS-
               bridges to account for "closeness".  Note that since a





          M.T. Rose (editor)                                    [Page 4]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


               destination community can be described as a set of NSAP
               prefixes, there may be several entries in the table for a
               particular destination community.

               For ease of use, each table may be available as an ASCII
               file, with each entry terminated by a CR-LF sequence.
               Within an entry, the NSAP prefix along with the network
               addresses of each TS-bridge may be expressed using
               Kille's string encoding[3].  For example:

               NS+540072872203  Int-X25(80)=23426020017299+PID+03018000


          (3)  How is the destination network address and transport
               selector encoded?

               A compact binary encoding scheme is used to represent the
               destination network address and transport selector as an
               octet string of length m:

                  octets         contents                     encoding
               -----------    ---------------     -----------------------------
- -
                     0        length of NSAP      "n" as an unsigned-integer
                     1        length of NSAP      "n" as an unsigned-integer
                   2-(n+1)    destination NSAP    concrete binary representatio
n
               (n+2)-(m-1)    destination TSEL    string of octets

               The resulting string of octets is placed in the called
               transport selector by the initiating end-system.  When
               examining a transport selector, s, of length m octets, a
               simple check can be used to see if it encodes a network
               address and transport selector:

               (m > 4) AND (s[0] = s[1]) AND (s[0] > 2) AND (s[0] <= (m-2))

               This is termed the encoded-TSEL test.

               Note that if the encoding of the original called network
               address and transport selector exceeds the limitation of
               the local transport entity (usually 32 octets), then a
               TS-bridge can not be used.









          M.T. Rose (editor)                                    [Page 5]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          3.1.2.  Redirection procedure

          The procedure for selection of a TS bridge described in
          Section 3.1.1 is based on tables describing the relation
          between bridges and communities.  These tables may be
          difficult to export to a large number of stations, and there
          is always the risk that the knowledge table in a particular
          end-system be partial, or partially out-of-date.  In order to
          ease the management of these end-systems, a "redirection
          procedure" is introduced:

          (1)  When a TS-bridge determines that a transport connection
               request is misrouted, it can invoke a T-DISCONNECT.REQ
               primitive, passing routing information in the "disconnect
               information" parameter of this primitive.

          (2)  Upon reception of the T-DISCONNECT.IND, the requesting
               transport station decodes the "disconnect information",
               and uses the routing information to renew the T-
               CONNECT.REQ.

          The "disconnect information" parameter is described in the
          transport protocol specification as a string of octets.  The
          routing information will be encoded as an octet string of
          length m:

            octets      contents            encoding
            ------      --------            ---------
            0           length of SNPA      "n" as an unsigned-integer
            1           length of SNPA      "n" as an unsigned-integer
            2-(n+1)     destination SNPA    representation depends of
                                                subnet technology
            (n+2)-(m-1) destination TSEL    string of octets

          The resulting string of octet is placed in the disconnect
          information by the TS-bridge that initiates the redirection
          procedure.  When receiving a T-DISCONNECT.IND, the transport
          station will check that the "cause" parameter is equal to
          "address unknown" and that the disconnect information
          parameter is present, as a string, s, of m octets, and that it
          verifies:

          (m > 4) AND (s[0] = s[1]) AND (s[0] > 2) AND (s[0] <= (m-2))

          This is termed the encoded-REDIRECT test.





          M.T. Rose (editor)                                    [Page 6]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          If this test fails, the T-DISCONNECT.IND should be passed to
          the transport user.

          The encoding of the destination SNPA depends on the network
          technology. Two encoding are specified for RFC-1006 and X.25
          based subnetworks:

          (1)  When the subnetwork uses RFC-1006 technology, the SNPA is
               encoded on 6 octets.  The first four octets encode the IP
               address, in network order.  The last two octets encode
               the TCP port, in network order.

          (2)  When the subnetwork uses X.25 technology, the "n" octets
               are split into a first octet which encode the length of
               the X.121 address in unsigned binary format, then "p"
               octets which encode the X.121 address itself as a string
               of ASCII digits, then the remaining "n-p-1" octets which
               encode the X.25 "protocol identifier" passed in the call
               user data field, as a string of octets.


          3.1.3.  If the initiator can not be modified

          Of course, there is always the question of how can a transport
          entity, which can not be modified, be forced to use a TS-
          bridge.  In most circumstances, these implementations can be
          "tricked" to use a TS-bridge, on a case-by-case basis.

          Usually, these "out of the box" implementations have an
          address database.  For a small number of end-systems in other
          OSI communities that the end-system needs to talk to, the
          address database can be modified by hand; i.e., the address
          database is modified such that these end-systems are listed as
          having the same network address as the TS-bridge, and the
          transport selector for the services offered by those end-
          systems is modified to encode the actual network address and
          transport selector.

          Obviously, such an approach does not scale, but for
          implementations so limited it is a work-around.










          M.T. Rose (editor)                                    [Page 7]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          3.2.  Responder use of TS-bridges

          A responding transport entity need not be modified with this
          approach.

          However, as a local matter responding implementations may
          apply the encoded-TSEL test to the calling transport selector
          and accordingly note the actual initiator transport address.










































          M.T. Rose (editor)                                    [Page 8]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          4.  Operation of TS-bridges

          The state machine and parameterization described in Sections
          6.1 and 6.2 of [1] is used.

          When a TS-bridge receives a T-CONNECT.IND primitive, as
          described in [4]:

          (1)  If the called transport selector fails the encoded-TSEL
               test, the incoming connection is disconnected.
               Otherwise, the TS-bridge decodes the actual destination
               network address and transport selector from the called
               transport selector.

          (2)  The TS-bridge examines the calling transport selector,
               and if this fails the encoded-TSEL test, then the
               encoding is applied to the calling network address and
               transport selector, and the resulting string of octets
               replaces the calling transport selector.  If the length
               of the resulting string of octets exceeds the limitation
               of the local transport entity (usually 32 octets), then
               no substitution is made.

          (3)  The TS-bridge now determines if it can directly reach the
               destination network address.  If so, a T-CONNECT.REQ
               primitive is invoked with the called transport selector
               equal to the value determined in step 1 (the actual
               destination transport selector), and the calling
               transport selector equal to the value determined in step
               2.

          (4)  If the TS-bridge determines that it can not directly
               reach the destination network address, then the TS-bridge
               determines the network address of the next TS-bridge in
               sequence, and invokes a T-CONNECT.REQ primitive, with the
               original (encoded) called transport selector, and the
               calling transport selector equal to the value determined
               in step 2.

          (5)  If the TS-bridge determines that the network address of
               the next TS-bridge (step 4) or that of the called system
               (step 3) is reachable via the same "subnetwork" through
               which the call is incoming, then the TS-bridge can elect
               to use the redirection procedure specified in Section
               3.1.2.  It will invoke a T-DISCONNECT.REQ primitive,





          M.T. Rose (editor)                                    [Page 9]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


               where the DR information parameter will contain the
               encoding of the address to use on the "subnetwork" and
               that of the "called transport selector" determined in
               step 3 or step 4, and where the "cause" parameter will be
               set to "address unknown".

          When a TS-bridge receives a T-CONNECT.CNF primitive, as
          described in [4]:

          (1)  The TS-bridge invokes a T-CONNECT.RSP primitive with an
               empty responding address parameter.

          If instead of receiving a T-CONNECT.CNF primitive the TS-
          bridge receives receives a T-DISCONNECT.IND it will:

          (1)  Check whether the "cause" and "disconnect information"
               parameter pass the encoded-REDIRECT test.  Otherwise, the
               incoming connection will be disconnected.

          (2)  Check whether this call has already been redirected.  If
               a "maximum number of redirection" threshold is reached,
               the incoming connection will be disconnected.

          (3)  Invoke a new T-CONNECT.REQ primitive towards the address
               deduced in step 1 from the "disconnect information"
               parameter, using the called transport selector determined
               in step 1 and the calling transport selector of the
               original T-CONNECT.REQ primitive.






















          M.T. Rose (editor)                                   [Page 10]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          5.  Operation of TS-Bridge Where X.25(84) With Address
          Extension Fields is Supported

          The procedures in section 4 of this document are modified as
          described below when TP0 is operating over X.25(84) with
          address extension facilities which can accommodate 40
          digits/20 octets NSAP addresses.  In this environment the TS-
          bridge and initiating systems on the X.25(84) subnetwork
          insert the called and calling NSAP addresses in the address
          extension fields and the Transport selectors are not used to
          carry NSAP addresses.  Thus the encoding scheme in 3.1.1 item
          (3) does not apply over the X.25(84) hop and the Transport
          selectors are used for their normal purposes, or may be null.


          5.1.  For calls to the TP0/X.25(84) subnetwork

          When a TS-bridge receives a T-CONNECT.IND primitive, as
          described in [4]:

          (1)  If the called transport selector fails the encoded-TSEL
               test, the incoming connection is disconnected.
               Otherwise, the TS-bridge decodes the actual called NSAP
               address and transport selector from the called transport
               selector.  The called NSAP address is inserted in the
               X.25(84) called address extension field.

          (2)  The TS-bridge decodes the calling transport selector and
               inserts the derived calling NSAP address in the X.25(84)
               calling address extension field.  If the calling
               transport selector fails the encoded-TSEL test, then the
               transport selector is passed on unmodified and nothing is
               inserted in the X.25(84) calling address extension field.

          (3)  The TS-bridge now determines if it can directly reach the
               destination NSAP address.  If so, a T-CONNECT.REQ
               primitive is invoked with the called transport selector
               equal to the value determined in step 1, and the calling
               transport selector equal to the value determined in step
               2.  The associated X.25 network connection uses the NSAP
               addresses derived from steps 1 and 2 in the address
               extension fields.

          (4)  If the TS-bridge determines that it cannot directly reach
               the destination NSAP address, then the TS-bridge





          M.T. Rose (editor)                                   [Page 11]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


               determines the X.25 subnetwork address of the next TS-
               bridge in sequence, and invokes a T-CONNECT.REQ
               primitive, and associated X.25 network conection with the
               parameters as described in (3).

          When a TS-bridge receives a T-CONNECT.CNF primitive, as
          described in [4]:

          (1)  The TS-bridge invokes a T-CONNECT.RSP primitive with an
               empty responding address parameter.


          5.2.  For calls from the TP0/X.25(84) subnetwork

          When a TS-bridge receives a T-CONNECT.IND primitive, as
          described in [4]:

          (1)  If the incoming call does not contain a called address
               extension field the procedures of section 4 apply.  If
               there is a called address extension field present, then
               the encoding is applied to this NSAP address and the
               called transport selector, and the resulting string of
               octets replaces the called transport selector.  If the
               length of the resulting string of octets exceeds the
               limitation of the local transport entity (usually 32
               octets), the incoming connection is disconnected.

          (2)  The encoding is applied to the calling NSAP address, if
               present, and the calling transport selector, and the
               resulting string of octets replaces the calling transport
               selector.  If the length of the resulting string of
               octets exceeds the limitation of the local transport
               entity (usually 32 octets), no substitution is made.

          (3)  The TS-bridge now determines if it can directly reach the
               destination NSAP address.  If so, a T-CONNECT.REQ
               primitive is invoked with the called transport selector
               equal to the value derived in step 1, and the calling
               transport selector equal to the value derived in step 2.

          (4)  If the TS-bridge determines that it cannot directly reach
               the destination NSAP address, then the TS-bridge
               determines the subetwork address of the next TS-bridge in
               sequence, and invokes a T-CONNECT.REQ primitive, with
               called and calling transport selectors derived in steps 1





          M.T. Rose (editor)                                   [Page 12]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


               and 2.

          When a TS-bridge receives a T-CONNECT.CNF, as described in
          [4]:

          (1)  The TS-bridge invokes a T-CONNECT.RSP primitive with an
               empty responding address parameter.











































          M.T. Rose (editor)                                   [Page 13]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          6.  Acknowledgements

          The original version of this memo was produced by the CO/CL
          Interworking Workshop, which met on July 24-26, 1990:

               Les Clyne, JNT
               Walid Dabbous, INRIA
               Phill Gross, NRI
               Christian Huitema, INRIA
               Steve Kille, UCL
               Kevin Mills, NIST
               Julian Onions, Nottingham University
               Marshall Rose, PSI
               Rachid Sijelmassi, NIST
               Mitchell Tasman, University of Wisconsin



































          M.T. Rose (editor)                                   [Page 14]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          7.  References

          [1]  M.T. Rose (editor).  An Approach to CO/CL Interworking:
               Part I: Introduction, CO/CL Interworking Workshop,
               (April, 1991).


          [2]  C. Huitema (editor).  An Approach to CO/CL Interworking:
               -- Part III: The Long-Term -- Conventions for Network-
               Layer Relays and Transport-Service Bridges in the
               presence of Internetworking, CO/CL Interworking Workshop,
               (April, 1991).


          [3]  S.E. Kille.  A string encoding of Presentation Address.
               Research Note RN/89/14.  Department of Computer Science,
               University College London, (February, 1989).


          [4]  International Organization for Standardization.
               Information Processing Systems--Open Systems
               Interconnection--Transport Service Definition.
               International Standard 8072.  (June, 1986).



























          M.T. Rose (editor)                                   [Page 15]





          Internet Draft      CO/CL Interworking -- Short-Term         Apr 91


          Table of Contents


          1 Status of this Memo ...................................    1
          2 Introduction ..........................................    2
          3 Impact of TS-bridges on End-Systems ...................    3
          3.1 Initiator use of TS-bridges .........................    3
          3.1.1 Use of TS-bridge knowledge ........................    4
          3.1.2 Redirection procedure .............................    6
          3.1.3 If the initiator can not be modified ..............    7
          3.2 Responder use of TS-bridges .........................    8
          4 Operation of TS-bridges ...............................    9
          5 Operation of TS-Bridge Where X.25(84)  With  Address
               Extension Fields is Supported ......................   11
          5.1 For calls to the TP0/X.25(84) subnetwork ............   11
          5.2 For calls from the TP0/X.25(84) subnetwork ..........   12
          6 Acknowledgements ......................................   14
          7 References ............................................   15
































          M.T. Rose (editor)                                   [Page 16]


------- End of Forwarded Message