home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 1400s / rfc1434.txt < prev    next >
Text File  |  1993-03-15  |  80KB  |  1,851 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          R. Dixon
  8. Request for Comments: 1434                                     D. Kushi
  9.                                                                     IBM
  10.                                                              March 1993
  11.  
  12.  
  13.              Data Link Switching: Switch-to-Switch Protocol
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  It does
  18.    not specify an Internet standard.  Distribution of this memo is
  19.    unlimited.
  20.  
  21. Abstract
  22.  
  23.    This RFC describes IBM's support of Data Link Switching over TCP/IP.
  24.    The RFC is being distributed to members of the Internet community in
  25.    order to solicit their reactions to the proposals contained in it.
  26.    While the issues discussed may not be directly relevant to the
  27.    research problems of the Internet, they may be interesting to a
  28.    number of researchers and implementors.
  29.  
  30.    Any questions or comments relative to the contents of this RFC should
  31.    be sent to the following Internet address: dlsw@ralvma.vnet.ibm.com.
  32.  
  33. Table of Contents
  34.  
  35.    1. Introduction                                                     2
  36.    2. Overview                                                         2
  37.    3. Transport Connection                                             4
  38.       3.1. SSP Frame Formats                                           5
  39.       3.2. Address Parameters                                          8
  40.       3.3. Message Types                                              10
  41.    4. Protocol Specification                                          11
  42.       4.1. Protocol Flow Diagrams                                     11
  43.            4.1.1. Connect Protocols                                   11
  44.            4.1.2. Link Restart Protocols                              13
  45.            4.1.3. Disconnect Protocols                                15
  46.       4.2. DLS State Machine                                          16
  47.            4.2.1 Data Link Switch States                              16
  48.            4.2.2 State Transition Tables                              21
  49.       4.3. NetBIOS Datagrams                                          30
  50.    Acknowledgments                                                    32
  51.    References                                                         32
  52.    Security Considerations                                            32
  53.    Authors' Addresses                                                 33
  54.  
  55.  
  56.  
  57.  
  58. Dixon & Kushi                                                   [Page 1]
  59.  
  60. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  61.  
  62.  
  63. 1. Introduction
  64.  
  65.    Data Link Switching (DLS) is a forwarding mechanism for the IBM SNA
  66.    and IBM NetBIOS protocols.  It does not provide full routing, but
  67.    instead provides switching at the Data Link layer and encapsulation
  68.    in TCP/IP for transport over the Internet.  This memo documents the
  69.    Switch-to-Switch Protocol (SSP) that is used between IBM 6611 Network
  70.    Processors.
  71.  
  72.    Today, the IBM 6611 supports SNA (PU 2 and PU 4) systems and NetBIOS
  73.    systems attached to token-ring networks, as well as SNA (PU 2)
  74.    systems attached to SDLC links.  For the later case, the SDLC
  75.    attached systems are provided with a LAN appearance within the IBM
  76.    6611.  For the LAN attached systems, the IBM 6611 appears as a
  77.    source-routing bridge.  Remote systems that are accessed through the
  78.    IBM 6611 appear as systems attached to an adjacent ring.  This ring
  79.    is a virtual ring that is manifested within each IBM 6611.
  80.  
  81. 2. Overview
  82.  
  83.    Data Link Switching was developed to provide support for SNA and
  84.    NetBIOS in multi-protocol routers.  Since SNA and NetBIOS are
  85.    basically connection oriented protocols, the Data Link Control
  86.    procedure that they use on the LAN is IEEE 802.2 Logical Link Control
  87.    (LLC) Type 2.  Data Link Switching also accommodates SNA protocols
  88.    over WAN links via the SDLC protocol.
  89.  
  90.    IEEE 802.2 LLC Type 2 was designed with the assumption that the
  91.    network transit delay would be small and predictable (i.e., a local
  92.    LAN).  Therefore the LLC elements of procedure use a fixed timer for
  93.    detecting lost frames.  When bridging is used over wide area lines
  94.    (especially at lower speeds), the network delay is larger and it can
  95.    vary greatly based upon congestion.  When the delay exceeds the
  96.    time-out value LLC attempts to retransmit.  If the frame is not
  97.    actually lost, only delayed, it is possible for the LLC Type 2
  98.    procedures to become confused.  And as a result, the link is
  99.    eventually taken down.
  100.  
  101.    Given the use of LLC Type 2 services, Data Link Switching addresses
  102.    the following bridging problems:
  103.  
  104.          DLC Time-outs
  105.          DLC Acknowledgments over the WAN
  106.          Flow and Congestion Control
  107.          Broadcast Control of Search Packets
  108.          Source-Route Bridging Hop Count Limits
  109.  
  110.    NetBIOS also makes extensive use of datagram services that use LLC
  111.  
  112.  
  113.  
  114. Dixon & Kushi                                                   [Page 2]
  115.  
  116. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  117.  
  118.  
  119.    Type 1.  In this case, Data Link Switching addresses the last two
  120.    problems in the above list.
  121.  
  122.    The principal difference between Data Link Switching and bridging is
  123.    that DLS terminates the Data Link Control whereas bridging does not.
  124.    The following figure illustrates this difference based upon two end
  125.    systems operating with LLC Type 2 services.
  126.  
  127.     Bridging
  128.     --------             Bridge           Bridge
  129.     +------+             +----+           +----+             +------+
  130.     | End  | +---------+ |    +-----/     |    | +---------+ | End  |
  131.     |System+-+   LAN   +-+    |    /------+    +-+   LAN   +-+System|
  132.     |      | +---------+ |    |  TCP/IP   |    | +---------+ |      |
  133.     +------+             +----+           +----+             +------+
  134.    Info------------------------------------------------------->
  135.        <-------------------------------------------------------RR
  136.  
  137.     Data Link Switching
  138.     -------------------
  139.     +------+             +----+           +----+             +------+
  140.     | End  | +---------+ |    +-----/     |    | +---------+ | End  |
  141.     |System+-+   LAN   +-+DLS |    /------+ DLS+-+   LAN   +-+System|
  142.     |      | +---------+ |    |  TCP/IP   |    | +---------+ |      |
  143.     +------+             +----+           +----+             +------+
  144.    Info------------------->   -------------> Info
  145.        <-------------------RR                 ---------------->
  146.                                               <----------------RR
  147.  
  148.            Figure 1.  Data Link Switching Contrasted to Bridging
  149.  
  150.    In traditional bridging, the Data Link Control is end-to-end.  Data
  151.    Link Switching terminates the LLC Type 2 connection at the switch.
  152.    This means that the LLC Type 2 connections do not cross the wide area
  153.    network.  The DLS multiplexes LLC connections onto a TCP connection
  154.    to another DLS.  Therefore, the LLC connections at each end are
  155.    totally independent of each other.  It is the responsibility of the
  156.    Data Link Switch to deliver frames that it has received from a LLC
  157.    connection to the other end.  TCP is used between the Data Link
  158.    Switches to guarantee delivery of frames.
  159.  
  160.    As a result of this design, LLC time-outs are limited to the local
  161.    LAN (i.e., they do not traverse the wide area).  Also, the LLC Type 2
  162.    acknowledgments (RR's) do not traverse the WAN, thereby reducing
  163.    traffic across the wide area links.  For SDLC links, polling and poll
  164.    response occurs locally, not over the WAN.  Broadcast of search
  165.    frames is controlled by the Data Link Switches once the location of a
  166.    target system is discovered.  Finally, the switches can now apply
  167.  
  168.  
  169.  
  170. Dixon & Kushi                                                   [Page 3]
  171.  
  172. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  173.  
  174.  
  175.    back pressure to the end systems to provide flow and congestion
  176.    control.
  177.  
  178.    Data Link Switching uses LAN addressing to set up connections between
  179.    SNA systems.  SDLC attached devices are defined with MAC addresses to
  180.    enable them to communicate with LAN attached devices.  For NetBIOS
  181.    systems, Data Link Switching uses the NetBIOS name to forward
  182.    datagrams and to set up connections for NetBIOS sessions.  For
  183.    circuit establishment, SNA systems send TEST (or in some cases, XID)
  184.    frames to the null (x'00') SAP.  NetBIOS systems have an address
  185.    resolution procedure, based upon the Name Query and Name Recognized
  186.    frames, that is used to establish an end-to-end circuit.
  187.  
  188.    Since Data Link Switching may be implemented in multi-protocol
  189.    routers, there may be situations where both bridging and switching
  190.    are enabled.  SNA frames can be identified by their link SAP.
  191.    Typical SAP values for SNA are x'04', x'08', and x'0C'.  NetBIOS
  192.    always uses a link SAP value of x'F0'.
  193.  
  194. 3. Transport Connection
  195.  
  196.    Data Link Switches can be in used in pairs or by themselves.  A
  197.    Single DLS internally switches one data link to another without using
  198.    TCP (DLC(1) to DLC(2) in the figure below).  A paired DLS multiplexes
  199.    data links over a reliable transport using a Switch-to-Switch
  200.    Protocol (SSP).  This RFC will document the frame formats and
  201.    protocols for this multiplexing between Data Link Switches.  The
  202.    initial implementation of SSP uses TCP as the reliable transport
  203.    between Data Link Switches.  However, other transport connections
  204.    such as OSI TP4 could be used.
  205.  
  206.  
  207.     +-----------------------------------------------+Switch-to-Switch
  208.     |               DLC Interfaces                  | Protocol (SSP)
  209.     |+------------+   DLC Request    +------------+ |
  210.     ||    Data    |<---------------- |            | |Send SSP Frame
  211.     ||    Link    | DLC Indication   |            | |-------------->
  212.     ||  Control 1 |----------------->|            | |
  213.     |+------------+                  | Data Link  | |
  214.     |+------------+   DLC Request    |  Switch    | |
  215.     ||    Data    |<---------------- |            | |Rec. SSP Frame
  216.     ||    Link    | DLC Indication   |            | |<-------------
  217.     ||  Control 2 | ---------------->|            | |
  218.     |+------------+                  +------------+ |
  219.     |                   Multi-Protocol Router       |
  220.     +-----------------------------------------------+
  221.  
  222.                      Figure 2.  DLS System Diagram
  223.  
  224.  
  225.  
  226. Dixon & Kushi                                                   [Page 4]
  227.  
  228. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  229.  
  230.  
  231.    Before Data Link Switching can occur between two routers, they must
  232.    establish a TCP connection between them.  Each DLS will maintain a
  233.    list of DLS capable routers and their status (active/inactive).  Once
  234.    this connection is established, the DLS will employ SSP to establish
  235.    end-to-end circuits over the transport connection.  Within the
  236.    transport connection is a specific set of  DLS message units.  The
  237.    message formats and types for these PDUs are documented in the
  238.    following sections.
  239.  
  240.    The default parameters associated with the TCP connections between
  241.    Data Link Switches are as follows:
  242.  
  243.             Socket Family     AF_INET        (Internet protocols)
  244.             Socket Type       SOCK_STREAM    (stream socket)
  245.             Read Port Number  2065
  246.             Write Port Number 2067
  247.  
  248.    Two or more Data Link Switches may be attached to the same LAN,
  249.    consisting of a number of token-ring segments interconnected by
  250.    source-routing bridges.  In this case, a TCP connection is not
  251.    defined between bridges attached to the same LAN.  This will allow
  252.    using systems to select one of the possible Data Link Switches in a
  253.    similar manner to the selection of a bridge path through a source-
  254.    routed bridged network.  The virtual ring segment in each Data Link
  255.    Switch attached to a common LAN must be configured with the same ring
  256.    number.  This will prevent LAN frames sent by one Data Link Switch
  257.    from being propagated through the other Data Link Switches.
  258.  
  259. 3.1. SSP Frame Formats
  260.  
  261.    The following diagrams show the two message headers for traffic
  262.    between Data Link Switches.  The control message header is used for
  263.    all messages except information messages.  The information message
  264.    header is 16 bytes long, and the control message header is 72 bytes
  265.    long.  The first sixteen bytes of the control message header are
  266.    identical to the information message header.
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Dixon & Kushi                                                   [Page 5]
  283.  
  284. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  285.  
  286.  
  287.      CONTROL MESSAGES (72 Bytes)
  288.     +-----------------------------------------------------------------+
  289.     | Version Number                  Reserved Field                  |
  290.     | Message Length               ---->           .                  |
  291.     | Remote Data Link Correlator  ---->           .                  |
  292.     |            .                                 .                  |
  293.     | Remote DLC Port ID           ---->           .                  |
  294.     |            .                                 .                  |
  295.     | Reserved Field               ---->           .                  |
  296.     | Message Type                    Reserved Field                  |
  297.     | Protocol ID                     Header Number                   |
  298.     | Header Length                ---->           .                  |
  299.     | Reserved Field               ---->           .                  |
  300.     | Reserved Field                  Message Type                    |
  301.     | Target MAC Address           ---->           .                  |
  302.     |            .                                 .                  |
  303.     |            .                                 .                  |
  304.     | Origin MAC Address           ---->           .                  |
  305.     |            .                                 .                  |
  306.     |            .                                 .                  |
  307.     | Origin Link SAP                 Target Link SAP                 |
  308.     | Frame Direction                 Reserved Field                  |
  309.     | Message Length               ---->           .                  |
  310.     | DLC Header Length            ---->           .                  |
  311.     | Origin DLC Port ID           ---->           .                  |
  312.     |            .                                 .                  |
  313.     | Origin Data Link Correlator  ---->           .                  |
  314.     |            .                                 .                  |
  315.     | Origin Transport ID          ---->           .                  |
  316.     |            .                                 .                  |
  317.     | Target DLC Port ID           ---->           .                  |
  318.     |            .                                 .                  |
  319.     | Target Data Link Correlator  ---->           .                  |
  320.     |            .                                 .                  |
  321.     | Target Transport ID          ---->           .                  |
  322.     |            .                                 .                  |
  323.     | Reserved Field               ---->           .                  |
  324.     |            .                                 .                  |
  325.     +-----------------------------------------------------------------+
  326.              (Even Byte)                      (Odd Byte)
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Dixon & Kushi                                                   [Page 6]
  339.  
  340. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  341.  
  342.  
  343.      INFORMATION MESSAGE (16 Bytes)
  344.     +-----------------------------------------------------------------+
  345.     | Version                         Reserved Field                  |
  346.     | Message Length               ---->           .                  |
  347.     | Remote Data Link Correlator  ---->           .                  |
  348.     |            .                                 .                  |
  349.     | Remote DLC Port ID           ---->           .                  |
  350.     |            .                                 .                  |
  351.     | Reserved Field               ---->           .                  |
  352.     | Message Type                    Reserved Field                  |
  353.     +-----------------------------------------------------------------+
  354.              (Even Byte)                      (Odd Byte)
  355.  
  356.    The Version Number is set to x'4B', indicating a numeric value of 75.
  357.  
  358.    The Header Length is x'00 48', indicating a numeric value of 72
  359.    bytes.
  360.  
  361.    The Header Number is x'01', indicating a value of one.
  362.  
  363.    The Frame Direction field is set to x'01' for frames sent from the
  364.    origin DLS to the target DLS, and is set to x'02' for frames sent
  365.    from the target DLS to the origin DLS.
  366.  
  367.       Note:  The Remote Data Link Correlator and Remote DLC Port ID are
  368.       set equal to the Target Data Link Correlator and Target DLC Port
  369.       ID if the Frame Direction field is set to x'01', and are set equal
  370.       to the Origin Data Link Correlator and Origin DLC Port ID if the
  371.       Direction Field is set to x'02'.
  372.  
  373.    The Protocol ID field is set to x'42', indicating a numeric value of
  374.    66.
  375.  
  376.    The Message Length field defines the number of bytes within the data
  377.    field following the header.  Note that this value is specified in two
  378.    different fields of the message header.
  379.  
  380.    The DLC Header Length is set to zero for SNA and is set to x'23' for
  381.    NetBIOS datagrams, indicating a length of 35 bytes.  This includes
  382.    the Access Control (AC) field, the Frame Control (FC) field,
  383.    Destination MAC Address (DA), the Source MAC Address (SA), the
  384.    Routing Information (RI) field (padded to 18 bytes), the Destination
  385.    link SAP (DSAP), the Source link SAP (SSAP), and the LLC control
  386.    field (UI).
  387.  
  388.    The values for the Message Type field are defined in a later section.
  389.    Note that this value is specified in two different fields of the
  390.    message header.
  391.  
  392.  
  393.  
  394. Dixon & Kushi                                                   [Page 7]
  395.  
  396. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  397.  
  398.  
  399.    Reserved fields are set to zero upon transmission and should be
  400.    ignored upon receipt.
  401.  
  402. 3.2. Address Parameters
  403.  
  404.    A data link is defined as a logical association between the two end
  405.    stations using Data Link Switching.  It is identified by a Data Link
  406.    ID (14 bytes) consisting of the pair of attachment addresses
  407.    associated with each end system.  Each attachment address is
  408.    represented by the concatenation of the MAC address (6 bytes) and the
  409.    LLC address (1 byte).
  410.  
  411.      DATA LINK ID   (14 Bytes)
  412.     +-----------------------------------------------------------------+
  413.     |Target MAC Address           ---->         .                     |
  414.     |           .                               .                     |
  415.     |           .                               .                     |
  416.     |Origin MAC Address           ---->         .                     |
  417.     |           .                               .                     |
  418.     |           .                               .                     |
  419.     |Origin Link SAP                   Target Link SAP                |
  420.     +-----------------------------------------------------------------+
  421.  
  422.    An end-to-end circuit is identified by a pair of Circuit ID's.  A
  423.    Circuit ID is a 64 bit  number that identifies the DLC circuit within
  424.    a single DLS.  It consists of a DLC Port ID (4 bytes), and a Data
  425.    Link Correlator (4 bytes).  This value is unique in a single DLS and
  426.    is assigned locally.  The pair of Circuit ID's along with the
  427.    identifiers of the Data Link Switches, uniquely identify a single
  428.    end-to-end circuit.  Each DLS must keep a table of these Circuit ID
  429.    pairs, one for the local end of the circuit and the other for the
  430.    remote end of the circuit.  In order to identify which Data Link
  431.    Switch originated the establishment of a circuit, the terms, origin
  432.    DLS and target DLS, will be employed in this document.
  433.  
  434.      CIRCUIT ID   (8 Bytes)
  435.     +-----------------------------------------------------------------+
  436.     |DLC Port ID                  ---->         .                     |
  437.     |           .                               .                     |
  438.     |Data Link Correlator         ---->         .                     |
  439.     |           .                               .                     |
  440.     +-----------------------------------------------------------------+
  441.  
  442.    The Origin Transport ID and the Target Transport ID fields in the
  443.    message header are used to identify the individual TCP/IP port on a
  444.    Data Link Switch.  The values have only local significance.  However,
  445.    each Data Link Switch is required to reflect the values contained in
  446.    these two fields, along with the associated values for DLC Port ID
  447.  
  448.  
  449.  
  450. Dixon & Kushi                                                   [Page 8]
  451.  
  452. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  453.  
  454.  
  455.    and the Data Link Correlator, when returning a message to the other
  456.    Data Link Switch.
  457.  
  458.    The following figure shows the use of the addressing parameters
  459.    during the establishment of an end-to-end connection.  The CANUREACH,
  460.    ICANREACH, and REACH_ACK messages all carry the Data Link ID,
  461.    consisting of the MAC and Link SAP addresses associated with the two
  462.    end stations.  Upon receipt of a CANUREACH message, the target DLS
  463.    starts a data link for each port, thereby obtaining a Data Link
  464.    Correlator.  If the target station can be reached, an ICANREACH
  465.    message is returned to the origin DLS containing the Target Circuit
  466.    ID parameter.  Upon receipt, the origin DLS starts a data link and
  467.    returns the Origin Circuit ID to the target DLS within the REACH_ACK
  468.    message.  If the REACH_ACK message is not successfully received, the
  469.    target Data Link Switch can obtain the Origin Circuit ID from a
  470.    subsequent message (i.e., CONTACT, XIDFRAME, or DGRMFRAME).
  471.  
  472.      +------------+                                  +------------+
  473.      |Disconnected|                                  |Disconnected|
  474.      +------------+     CANUREACH (Data Link ID)     +------------+
  475.            ------------------------------------------------->
  476.                ICANREACH (Data Link ID, Target Circuit ID)
  477.            <------------------------------------------------
  478.          REACH_ACK (Data Link ID, Origin Cir ID, Target Cir ID)
  479.            ------------------------------------------------->
  480.      +------------+                                  +------------+
  481.      |Circuit Est.|                                  |Circuit Est.|
  482.      +------------+                                  +------------+
  483.          XIDFRAME (Data Link ID, Origin Cir ID, Target Cir ID)
  484.            <------------------------------------------------>
  485.           CONTACT (Data Link ID, Origin Cir ID, Target Cir ID)
  486.            ------------------------------------------------->
  487.          CONTACTED (Data Link ID, Origin Cir ID, Target Cir ID)
  488.            <-------------------------------------------------
  489.      +------------+                                  +------------+
  490.      | Connected  |                                  | Connected  |
  491.      +------------+                                  +------------+
  492.             INFOFRAME (Remote Circuit ID = Target Circuit ID)
  493.            ------------------------------------------------->
  494.             INFOFRAME (Remote Circuit ID = Origin Circuit ID)
  495.            <-------------------------------------------------
  496.  
  497.                   Figure 3.  DLS Circuits and Connections
  498.  
  499.    During the exchange of the XIDFRAME, CONTACT, and CONTACTED messages,
  500.    the pair of Circuit ID parameters is included in the message format
  501.    along with the DATA LINK ID parameter.  Once the connection has been
  502.    established, the INFOFRAME messages are exchanged with the shorter
  503.  
  504.  
  505.  
  506. Dixon & Kushi                                                   [Page 9]
  507.  
  508. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  509.  
  510.  
  511.    header.  This header contains only the Circuit ID associated with the
  512.    remote DLS.  The Remote Data Link Correlator and the Remote DLC Port
  513.    ID are set equal to the Data Link Correlator and the DLC Port ID that
  514.    are associated with the origin or target Data Link Switch, dependent
  515.    upon the direction of the packet.
  516.  
  517. 3.3. Message Types
  518.  
  519.    The following table lists the protocol data units that are exchanged
  520.    between Data Link Switches.  All values not listed are reserved for
  521.    potential use in follow-on releases.
  522.  
  523.      Command       Function                       Hex Value
  524.      -------       --------                       ---------
  525.      CANUREACH     Can U Reach Station            x'03'
  526.      ICANREACH     I Can Reach Station            x'04'
  527.      REACH_ACK     Reach Acknowledgment           x'05'
  528.      DGRMFRAME     Datagram Frame (See note)      x'06'
  529.      XIDFRAME      XID Frame                      x'07'
  530.      CONTACT       Contact Remote Station         x'08'
  531.      CONTACTED     Remote Station Contacted       x'09'
  532.      RESTART_DL    Restart Data Link              x'10'
  533.      DL_RESTARTED  Data Link Restarted            x'11'
  534.      INFOFRAME     Information (I) Frame          x'0A'
  535.      HALT_DL       Halt Data Link                 x'0E'
  536.      DL_HALTED     Data Link Halted               x'0F'
  537.      NETBIOS_NQ    NetBIOS Name Query             x'12'
  538.      NETBIOS_NR    NetBIOS Name Recognized        x'13'
  539.      DATAFRAME     Data Frame (See note)          x'14'
  540.      NETBIOS_ANQ   NetBIOS Add Name Query         x'1A'
  541.      NETBIOS_ANR   NetBIOS Add Name Response      x'1B'
  542.  
  543.                       Table 1.  SSP Message Types
  544.  
  545.       Note: Both the DGRMFRAME and DATAFRAME messages are used to carry
  546.       information received by the DLC entity within UI frames.  As will
  547.       be explained below, the DGRMFRAME message is addressed according
  548.       to a pair of Circuit IDs, while the DATAFRAME message is addressed
  549.       according to a Data Link ID, being composed of a pair of MAC
  550.       addresses and a pair of link SAP addresses.  The latter is
  551.       employed prior to the establishment of an end-to-end circuit when
  552.       Circuit IDs have yet to be established.
  553.  
  554.    For the exchange of NetBIOS control messages, the entire DLC header
  555.    is carried as part of the message unit.  This includes the MAC
  556.    header, with the routing information field padded to 18 bytes, and
  557.    the LLC header.  The following message types are affected:
  558.    NETBIOS_NQ, NETBIOS_NR, NETBIOS_ANQ, NETBIOS_ANR, and DATAFRAME when
  559.  
  560.  
  561.  
  562. Dixon & Kushi                                                  [Page 10]
  563.  
  564. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  565.  
  566.  
  567.    being used by NetBIOS systems.  The routing information in the DLC
  568.    header is not used by the remote Data Link Switch upon receiving the
  569.    above five messages.
  570.  
  571. 4. Protocol Specification
  572.  
  573.    This section provides a description of the Switch-to-Switch
  574.    Protocols.  Included is a set of high-level protocol flows and a
  575.    detail set of state transition tables.  The states and the protocols
  576.    are described in terms that are intended to be generic to different
  577.    platforms.  Emphasis of the technical details is to ensure
  578.    operability of the IBM 6611 with another vendor's implementation.
  579.    Notes are inserted at points where the IBM 6611 performs local
  580.    actions that are specific to the AIX platform upon which it operates.
  581.  
  582. 4.1. Protocol Flow Diagrams
  583.  
  584.    The switch-to-switch protocols are used to setup and take down
  585.    circuits between a pair of Data Link Switches.  Once a circuit is
  586.    established, the end stations on the local networks can employ LLC
  587.    Type 1 (connectionless) protocols.  In addition, the end systems can
  588.    establish an end-to-end connection for support of LLC Type 2
  589.    (connection oriented) protocols.
  590.  
  591.    The term, Data Link, is used in this document to refer to both a
  592.    "logical data link" when supporting Type 1 LLC services, and a "data
  593.    link connection" when supporting Type 2 LLC services.  In both cases,
  594.    the Data Link in defined by the concatenation of the destination MAC
  595.    address (DA), the source MAC address (SA), the destination link SAP
  596.    (DSAP) and source link SAP (SSAP).
  597.  
  598. 4.1.1. Connect Protocols
  599.  
  600.    The following figure depicts the protocol flows that are used for the
  601.    establishment of a circuit between a pair of Data Link Switches,
  602.    followed by the establishment of a connection between the pair of end
  603.    systems.  The figure is drawn assuming that the two end systems are
  604.    SNA (the protocol flow for NetBIOS systems is described in a later
  605.    paragraph).
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Dixon & Kushi                                                  [Page 11]
  619.  
  620. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  621.  
  622.  
  623.    Data Link  Data Link                         Data Link  Data Link
  624.     Control    Switch                            Switch     Control
  625.    --------------------                         --------------------
  626.       +------------+                                 +------------+
  627.       |Disconnected|                                 |Disconnected|
  628.       +------------+                                 +------------+
  629. Test Command                  CANUREACH                     Test Comd.
  630.   ---------->    --------------------------------------->     ------->
  631.  (DSAP=Null)                 (DSAP=SSAP)
  632.                                                          Test Response
  633.                               ICANREACH                     <---------
  634. Test Response    <---------------------------------------
  635.   <----------                 REACH ACK
  636.                  --------------------------------------->
  637.       +------------+                                 +------------+
  638.       |Circuit Est.|                                 |Circuit Est.|
  639.       +------------+                                 +------------+
  640.     SABME                      CONTACT
  641.   ---------->    --------------------------------------->     SABME
  642.       UA                                                      ------->
  643.   <----------
  644.      RNR                                                        UA
  645.   <----------                 CONTACTED                      <-------
  646.                  <---------------------------------------
  647.       +------------+                                 +------------+
  648.       | Connected  |                                 | Connected  |
  649.       +------------+                                 +------------+
  650.       RR
  651.    <---------
  652.  
  653.                Figure 4.  DLS Connect  Message Protocols
  654.  
  655.    Upon receipt of a Test command from the origin station, the origin
  656.    DLS will send a CANUREACH (i.e., can you reach) message to the target
  657.    DLS.  If the target DLS is not known to the origin DLS, the CANUREACH
  658.    message is sent to all remote Data Link Switches defined to the
  659.    origin DLS.  The receipt of the CANUREACH message causes the target
  660.    DLS to send a Test command searching for the target station.  The
  661.    target station will return a Test response, causing the target DLS to
  662.    return an ICANREACH (i.e., I can reach) message to the origin DLS.
  663.    If multiple Data Link Switches can reach the target station, the
  664.    origin DLS will receive multiple ICANREACH messages.  The origin DLS
  665.    will select the first message and send a REACH_ACK (i.e., reach
  666.    acknowledgment) message to the selected Data Link Switch.  During
  667.    this exchange of messages, both Data Link Switches change states from
  668.    the Disconected state to the Circuit Established state.  Once the
  669.    circuit is established, Type-1 frames, such as XID, may be exchanged
  670.    between the origin and target stations.
  671.  
  672.  
  673.  
  674. Dixon & Kushi                                                  [Page 12]
  675.  
  676. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  677.  
  678.  
  679.    To establish a connection, the origin station sends a SABME command.
  680.    Upon receipt of this command, the origin DLS will send a CONTACT
  681.    message to the target DLS and return a UA response to the origin
  682.    station.  To inhibit traffic flow until the connection is established
  683.    to the remote station, a RNR supervisory frame is sent to the origin
  684.    station.  The CONTACT message will cause the target DLS to send a
  685.    SABME command to the target station, which in return will reply with
  686.    a UA response.  Upon receipt of the UA response, the target DLS will
  687.    send a CONTACTED message to the origin DLS.  The origin DLS will now
  688.    send an RR supervisory frame to the origin station.  During this
  689.    exchange of messages, both Data Link Switches change states from the
  690.    Circuit Established state to the Connected state.
  691.  
  692.    For NetBIOS end systems, the protocol flows are similar but employ
  693.    different frames and SSP messages.  Instead of using a Test command
  694.    frame to initiate the circuit, a NetBIOS system will use a Name Query
  695.    frame.  Receipt of a Name Query frame will cause the Data Link Switch
  696.    to issue a NETBIOS_NQ message instead of the CANUREACH message.  In a
  697.    like fashion, the Test response is replaced with a Name Recognized
  698.    frame and the ICANREACH message is replaced with a NETBIOS_NR
  699.    message.  As with the SNA protocol flows, the receipt of a NETBIOS_NR
  700.    message causes the origin Data Link Switch to respond with a
  701.    REACH_ACK message.
  702.  
  703. 4.1.2. Link Restart Protocols
  704.  
  705.    The following figure depicts the protocol flows that result from
  706.    restarting the end-to-end connection.  This causes the Data Link
  707.    Switches to terminate the existing connection and to enter the
  708.    Circuit Established state awaiting the start of a new connection.
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Dixon & Kushi                                                  [Page 13]
  731.  
  732. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  733.  
  734.  
  735.      Data Link   Data Link                     Data Link   Data Link
  736.       Control     Switch                        Switch      Control
  737.      ---------------------                     ---------------------
  738.           +-----------+                             +-----------+
  739.           | Connected |                             | Connected |
  740.     SABME +-----------+                             +-----------+
  741.   ----------->                 RESTART_DL
  742.       DM           ------------------------------------->     DISC
  743.   <-----------                                               -------->
  744.                                                                UA
  745.                          DL_RESTARTED (Case 1)              <--------
  746.                    <-------------------------------------
  747.           +-----------+                             +-----------+
  748.           |Circuit Est|                             |Circuit Est|
  749.           +-----------+                             +-----------+
  750.                         ........... or ...........
  751.     SABME
  752.   ----------->           DL_RESTARTED (Case 2)
  753.        UA          <-------------------------------------
  754.   <-----------                                      +-----------+
  755.                                                     |Circuit Est|
  756.                                 CONTACT             +-----------+
  757.       RNR           ------------------------------------>
  758.   <----------
  759.  
  760.              Figure 5.  DLS Link Restart Message Protocols
  761.  
  762.    Upon receipt of a SABME command from the origin station, the origin
  763.    DLS will send a RESTART_DL message to the target DLS.  A DM response
  764.    is also returned to the origin station and the data link is
  765.    restarted.
  766.  
  767.    Upon receipt of the RESTART_DL message, the target DLS will issue a
  768.    DISC command to the target station.  The target station is expected
  769.    to return a UA response.  The target DLS will then restart its data
  770.    link and send an DL_RESTARTED message back to the origin DLS.  During
  771.    this exchange of messages, both Data Link Switches change states from
  772.    Connected state to Circuit Established state.
  773.  
  774.    If the origin station now resends the SABME command, the origin DLS
  775.    will send a CONTACT message to the target DLS.  If the SABME command
  776.    is received prior to the receipt of the DL_RESTARTED message (case 2
  777.    in the figure), the CONNECT message is delayed until the DL_RESTARTED
  778.    message is received.  The resulting protocol flows at this point
  779.    parallel those given above for the connect sequence.
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Dixon & Kushi                                                  [Page 14]
  787.  
  788. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  789.  
  790.  
  791. 4.1.3. Disconnect Protocols
  792.  
  793.    The following figure depicts the protocol flows that result from the
  794.    end system terminating an existing connection.  Not only is the
  795.    connection terminated, but the circuit between the Data Link Switches
  796.    is taken down.
  797.  
  798.      Data Link  Data Link                      Data Link  Data Link
  799.       Control    Switch                         Switch     Control
  800.      --------------------                      --------------------
  801.           +-----------+                             +-----------+
  802.           | Connected |                             | Connected |
  803.           +-----------+                             +-----------+
  804.       DISC
  805.    ---------->                  HALT_DL
  806.        UA         ------------------------------------->      DISC
  807.    <----------                                              --------->
  808.                                                                UA
  809.                                DL_HALTED                    <--------
  810.                   <-------------------------------------
  811.           +-----------+                             +-----------+
  812.           |Disconnectd|                             |Disconnectd|
  813.           +-----------+                             +-----------+
  814.                           ......... or ..........
  815.           +-----------+                             +-----------+
  816.           | Connected |                             | Connected |
  817.           +-----------+                             +-----------+
  818.  
  819.  
  820.        DISC              TCP Connection Failure               DISC
  821.     <--------     <------------------------------------>    --------->
  822.         UA                                                     UA
  823.     -------->                                               <--------
  824.           +-----------+                             +-----------+
  825.           |Disconnectd|                             |Disconnectd|
  826.           +-----------+                             +-----------+
  827.  
  828.               Figure 6.  DLS Disconnect Message Protocols
  829.  
  830.    Upon receipt of a DISC command from the origin station, the origin
  831.    DLS will reply with a UA response and issue a HALT_DL message to the
  832.    target DLS.  Upon receipt of the HALT_DL message, the target DLS will
  833.    send a DISC command to the target station.  The target station will
  834.    then respond with a UA response, causing the target DLS to return a
  835.    DL_HALTED message to the origin DLS.  During this exchange of
  836.    messages, both Data Link Switches change states from the Connected
  837.    state to the Disconnected state.
  838.  
  839.  
  840.  
  841.  
  842. Dixon & Kushi                                                  [Page 15]
  843.  
  844. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  845.  
  846.  
  847.    If the TCP connection between two Data Link Switches fails, all
  848.    connections that are currently multiplexed on the failed TCP
  849.    connection will be taken down.  This implies that both Data Link
  850.    Switches will send DISC commands to all the local systems that are
  851.    associated with the failed connections.  Upon sending the DISC
  852.    command, the Data Link Switch will enter the DISCONNECT state for
  853.    each circuit.
  854.  
  855. 4.2. DLS State Machine
  856.  
  857.    The following state tables describe the states for a single
  858.    connection through the Data Link Switch.  State information is kept
  859.    for each connection.  The initial state for a connection is
  860.    DISCONNECT.  The steady state is either CIRCUIT_ESTABLISHED or
  861.    CONNECTED.  In the former state, an end-to-end circuit has been
  862.    established allowing the support of Type 1 LLC between the end
  863.    systems.  The latter state exists when an end-to-end connection has
  864.    been established for the support of Type 2 LLC services between the
  865.    end systems.
  866.  
  867.    For SNA, circuit establishment is via the use of IEEE 802.2 Test or
  868.    XID  frames.  SNA devices send these frames to the null SAP in order
  869.    to determine the source route information in support of bridging.
  870.    Normally SNA devices use SAP x'04', x'08', or x'0C'.  Typically the
  871.    SAP would be used to determine if the Test frames should be sent to
  872.    the DLS code in the router.  If both bridging and DLS are enabled,
  873.    this allows the product to ensure that SNA frames are not both
  874.    bridged and switched.
  875.  
  876.    For NetBIOS, circuit establishment is via the Name Query and Name
  877.    Recognized frames.  These frames are used for both address resolution
  878.    and source route determination.  Normally NetBIOS devices use SAP
  879.    x'F0'.
  880.  
  881. 4.2.1. Data Link Switch States
  882.  
  883.    The Switch-to-Switch Protocols will be formally defined through a
  884.    single state machine.  The following table lists the eleven possible
  885.    states.  A separate state machine is employed for each end-to-end
  886.    circuit that is maintained by the Data Link Switch.  The three steady
  887.    states are DISCONNECTED, CIRCUIT_ESTABLISHED, and CONNECTED.
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Dixon & Kushi                                                  [Page 16]
  899.  
  900. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  901.  
  902.  
  903.      State Name            Description
  904.      ----------            -----------
  905.      CIRCUIT_ESTABLISHED   The end-to-end circuit has been
  906.                            established.  At this time LLC Type 1
  907.                            services are available from end-to-end.
  908.      CIRCUIT_PENDING       The target DLS is awaiting a REACH_ACK
  909.                            response to an ICANREACH message.
  910.      CIRCUIT_RESTART       The DLS that originated the reset is
  911.                            awaiting the restart of the data link
  912.                            and the DL_RESTARTED response to a
  913.                            RESTART_DL message.
  914.      CONNECTED             The end-to-end connection has been
  915.                            established thereby allowing LLC Type 2
  916.                            services from end-to-end in addition to
  917.                            LLC Type 1 services.
  918.      CONNECT_PENDING       The origin DLS is awaiting the CONTACTED
  919.                            response to a CONTACT message.
  920.      CONTACT_PENDING       The target DLS is awaiting the
  921.                            DLC_CONTACTED confirmation to a DLC_CONTACT
  922.                            signal (i.e., DLC is waiting for a UA
  923.                            response to an SABME command).
  924.      DISCONNECTED          The initial state with no circuit or
  925.                            connection established, the DLS is awaiting
  926.                            either a CANUREACH, an ICANREACH, a
  927.                            NETBIOS_NQ, or a NETBIOS_NR message.
  928.      DISCONNECT_PENDING    The DLS that originated the disconnect
  929.                            is awaiting the DL_HALTED response to a
  930.                            HALT_DL message.
  931.      HALT_PENDING          The remote DLS is awaiting the DLC_DL_HALTED
  932.                            indication following the DLC_HALT_DL request
  933.                            (i.e., DLC is waiting for a UA response to a
  934.                            DISC command).
  935.      RESTART_PENDING       The remote DLS is awaiting the DLC_DL_HALTED
  936.                            indication following the DLC_HALT_DL request
  937.                            (i.e., DLC is waiting for a UA response to a
  938.                            DISC command), and the restart of the data
  939.                            link.
  940.      RESOLVE_PENDING       The target DLS is awaiting either the
  941.                            DLC_DL_STARTED indication following the
  942.                            DLC_START_DL reqest (i.e., DLC is waiting
  943.                            for a Test response as a result of sending a
  944.                            Test command), or a NB_Name_Recognized
  945.                            frame in response to a NB_Name_Query frame.
  946.  
  947.                    Table 2.  Data Link Switch States
  948.  
  949.    The following figure depicts the events that cause a transition to a
  950.    new state.  The resulting action(s) are not explicitly shown.  The
  951.  
  952.  
  953.  
  954. Dixon & Kushi                                                  [Page 17]
  955.  
  956. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  957.  
  958.  
  959.    DISCONNECT_PENDING state will be entered whenever a DLC error
  960.    condition occurs in any of the other states (except RESOLVE_PENDING),
  961.    or when a DISC command is received by the DLC.
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Dixon & Kushi                                                  [Page 18]
  1011.  
  1012. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1013.  
  1014.  
  1015.                DLC_RESOLVE_C+----+        +----DLC_ERROR---+
  1016.                             |    |       \|/               |
  1017.   +------------+            +>+--+---------+  CANUREACH  +-+----------+
  1018.   | Disconnect +--DL_HALTED-->|Disconnected|------------>|  Resolve   |
  1019.   |   Pending  |<+   +------->|            |<-------+    |  Pending   |
  1020.   +---------+--+ |   |        +-----+------+        |    +-----+------+
  1021.    /|\      | HALT_DL|         /|\  |/|\/|\         |          |
  1022. DLC_ERROR   +----+   |     +----+   | |  +------+   |    DLC_DL_STARTED
  1023.     |                |     |        |HALT_DL(ts)|   +------+   |
  1024.                      |     | ICANREACH|         |   HALT_DL(ts)|
  1025.        +--HALT_DL(ts)+     |        | |         |          |   |
  1026.        |               HALT_DL(ts)  | |     HALT_DL(ts)    |   |
  1027.        |                   |        | |         |          |   |
  1028.        |   +-RESTART_DL(ts)+----+   | |         |          |   |
  1029.        |   |               |   \|/ \|/|         |          |  \|/
  1030.   +----+---+---+           |  +-------+----+    |        +-+----------+
  1031.   |  Contact   |<-CONTACT--+--+   Circuit  |<-REACH_ACK--+   Circuit  |
  1032.   |  Pending   |           |  | Established| (DLC not    |   Pending  |
  1033.   +-----+------+           |  +----------+-+   contacted)+-+------+---+
  1034.         |   /|\            |   /|\ /|\   |      |          |      |
  1035.         |    |          +--+----+   |    |      |          |      |
  1036.         |    +-CONTACT--+--+--------+----+------+----------+  REACH_ACK
  1037.         |               |  |RESTART_DL(ts)      |       (DLC contacted)
  1038.     DLC_CONTACTED       |  +------+ |    |      +--------------+  |
  1039.         |               |         | |    | DLC_CONTACTED       |  |
  1040.         +---------------+-------+ | |    +-----------------+   |  |
  1041.         +-----DL_RESTARTED      | | |                      |   |  |
  1042.         |  (DLC not contacted) \|/| |                     \|/  | \|/
  1043.   +-----+------+              +---+-+------+  CONTACTED  +-----+------+
  1044.   |   Circuit  |<-DLC_RESET---+  Connected |<------------+   Connect  |
  1045.   |   Restart  |              |            |             |   Pending  |
  1046.   +----------+-+              +------------+             +-----+------+
  1047.        /|\   |                  DL_RESTARTED              /|\  |
  1048.         |    +----------------(DLC contacted)--------------+   |
  1049.         |                                                      |
  1050.         +-------------------------DLC_RESET--------------------+
  1051.  
  1052.       Figure 7.  DLS State Transitions  (ts = transitional state)
  1053.  
  1054.    The DISCONNECT state is the initial state for a new circuit.  One end
  1055.    station starts the connection via a TEST or XID command (i.e.,
  1056.    DLC_RESOLVE_C) or a NetBIOS Name Query command (not explicitly
  1057.    shown).  Upon receipt, the Data Link Switches exchange a set of
  1058.    CANUREACH, ICANREACH and REACH_ACK messages.  Upon completion of this
  1059.    three-legged exchange, both Data Link Switches will be in the
  1060.    CIRCUIT_ESTABLISHED state.  Two pending states also exist during this
  1061.    exchange.  The RESOLVE_PENDING state is entered by the target Data
  1062.    Link Switch awaiting a Test response to a Test Command and the
  1063.  
  1064.  
  1065.  
  1066. Dixon & Kushi                                                  [Page 19]
  1067.  
  1068. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1069.  
  1070.  
  1071.    CIRCUIT_PENDING state is entered by the target DLS awaiting the
  1072.    REACH_ACK reply to an ICANREACH message.
  1073.  
  1074.    The CIRCUIT_ESTABLISHED state allows for the exchange of LLC Type 1
  1075.    frames such as the XID exchanges between SNA stations that occurs
  1076.    prior to the establishment of a connection.  Also, datagram traffic
  1077.    (i.e., UI frames)  may be sent and received between the end stations.
  1078.    These exchanges use the XIDFRAME and DGRMFRAME messages sent between
  1079.    the Data Link Switches.
  1080.  
  1081.    In the CIRCUIT_ESTABLISHED state, the receipt of a SABME command
  1082.    (i.e., DLC_CONTACTED) causes the origin DLS to issue a CONTACT
  1083.    message, to send an RNR supervisory frame (i.e., DLC_ENTER_BUSY) to
  1084.    the origin station, and to enter the CONNECT_PENDING state awaiting a
  1085.    CONTACTED message.  The target DLS, upon the receipt of a CONTACT
  1086.    message, will issue a SABME command (i.e., DLC_CONTACT) and enter the
  1087.    Contact Pending state.  Once the UA response is received (i.e.,
  1088.    DLC_CONTACTED), the target DLS sends a CONTACTED message and enters
  1089.    the CONNECTED state.  When received, the origin DLS enters the
  1090.    Connected state and sends an RR supervisory frame (i.e.,
  1091.    DLC_EXIT_BUSY).
  1092.  
  1093.    The CONNECTED state is the steady state for normal data flow once a
  1094.    connection has been established.  Information frames (i.e., INFOFRAME
  1095.    messages) are simply sent back and forth between the end points of
  1096.    the connection.  This is the path that should be optimized for
  1097.    performance.
  1098.  
  1099.    The connection is terminated upon the receipt of a DISC frame or
  1100.    under some other error condition detected by DLC (i.e., DLC_ERROR).
  1101.    Upon receipt of this indication, the DLS will halt the local data
  1102.    link, send a HALT_DL message to the remote DLS, and enter the
  1103.    DISCONNECT_PENDING State.  When the HALT_DL frame is received by the
  1104.    other DLS, the local DLC is halted for this data link, a DL_HALTED
  1105.    message is returned, and the DISCONNECTED state is entered.  Receipt
  1106.    of this DL_HALTED message causes the other DLS to also enter the
  1107.    DISCONNECTED state.
  1108.  
  1109.    The CIRCUIT_RESTART state is entered if one of the Data Link Switches
  1110.    receives a SABME command  (i.e., DLC_RESET) while in the CONNECTED
  1111.    state.  This causes a DM command to be returned to the origin station
  1112.    and a RESTART_DL message to be sent to the remote Data Link Switch.
  1113.    This causes the remote data link to be halted and then restarted.
  1114.    The remote DLS will then send a DL_RESTARTED message back to the
  1115.    first DLS.  The receipt of the DL_RESTARTED message causes the first
  1116.    DLS to issue a new CONTACT message, assuming that the local DLC has
  1117.    been contacted (i.e., the origin station has resent the SABME
  1118.    command).  This is eventually responded to by a CONTACTED message.
  1119.  
  1120.  
  1121.  
  1122. Dixon & Kushi                                                  [Page 20]
  1123.  
  1124. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1125.  
  1126.  
  1127.    Following this exchange, both Data Link Switches will return to the
  1128.    CONNECTED state.  If the local DLC has not been contacted, the
  1129.    receipt of a DL_RESTARTED command causes the Data Link Switch to
  1130.    enter the CIRCUIT_ESTABLISHED state awaiting the receipt of a SABME
  1131.    command (i.e., DLC_CONTACTED signal).
  1132.  
  1133.    In the figure, the transition labeled HALT_DL(ts) represents the
  1134.    HALT_PENDING state and the transition labeled RESTART_DL(ts)
  1135.    represents the RESTART_PENDING state.  Both these transitional states
  1136.    have only one input event and only one output action.  While in these
  1137.    states, the Data Link Switch is awaiting responses from the local
  1138.    station on the adjacent LAN (i.e., a UA response to a DISC command).
  1139.    Also in the RESTART_PENDING state, the Data Link Switch will attempt
  1140.    to restart the data link prior to sending a DL_RESTARTED message.
  1141.    For the IBM 6611 implementation, the start of a data link involves
  1142.    the exchange of a Test command/response on the adjacent LAN (i.e.,
  1143.    DLC_START_DL).  For other implementations, this additional exchange
  1144.    may not be required.
  1145.  
  1146. 4.2.2. State Transition Tables
  1147.  
  1148.    This section provides a detail representation of the Data Link
  1149.    Switch, as document by a set of state machines.  The first state
  1150.    machine documents the sending and receiving of SSP messages.  Many of
  1151.    the transitions are dependent upon local signals between the Data
  1152.    Link Switch entity and one of the DLC entities.  These signals and
  1153.    their definitions are given in the following tables.
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Dixon & Kushi                                                  [Page 21]
  1179.  
  1180. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1181.  
  1182.  
  1183.      Event Name      Description
  1184.      ----------      -----------
  1185.      DLC_CONTACTED   Contact Indication:  DLC has received an SABME
  1186.                      command and will send a UA response, or DLC has
  1187.                      received a UA response as a result of sending an
  1188.                      SABME command.
  1189.      DLC_DGRM        Datagram Indication:  DLC has received a UI frame.
  1190.      DLC_ERROR       Error condition indicated by DLC:  Such a
  1191.                      condition occurs when a DISC command is received
  1192.                      or when DLC experiences an unrecoverable error.
  1193.      DLC_INFO        Information Indication:  DLC has received an
  1194.                      Information (I) frame.
  1195.      DLC_DL_HALTED   Data Link Halted Indication:  DLC has
  1196.                      received a UA response to a DISC command.
  1197.      DLC_DL_STARTED  Data Link Started Indication:  DLC has
  1198.                      received a Test response from the null SAP.
  1199.      DLC_RESET       Reset Indication:  DLC has received an SABME
  1200.                      command during the time a connection is
  1201.                      currently active and has responded with DM.
  1202.      DLC_RESOLVE_C   Resolve Command Indication:  DLC has received
  1203.                      a Test command addressed to the null SAP, or an
  1204.                      XID command addressed to the null SAP.
  1205.      DLC_XID         XID Indication:  DLC has received an XID command
  1206.                      or response to a non-null SAP.
  1207.  
  1208.                        Table 3.  Local DLC Events
  1209.  
  1210.      Action Name     Description
  1211.      -----------     -----------
  1212.      DLC_CONTACT     Contact Station Request:  DLC will send a SABME
  1213.                      command.
  1214.      DLC_DGRM        Datagram Request:  DLC will send a UI frame.
  1215.      DLC_ENTER_BUSY  Enter Link Station Busy:  DLC will send an
  1216.                      RNR supervisory frame.
  1217.      DLC_EXIT_BUSY   Exit Link Station Busy:  DLC will send an RR
  1218.                      supervisory frame.
  1219.      DLC_HALT_DL     Halt Data Link Request:  DLC will send a DISC
  1220.                      command.
  1221.      DLC_INFO        Information Request:  DLC will send an I frame.
  1222.      DLC_RESOLVE_R   Resolve Response Request:  DLC will send a
  1223.                      Test response or XID response from the null SAP.
  1224.      DLC_START_DL    Start Data Link Request:  DLC will send a Test
  1225.                      command to the null SAP.
  1226.      DLC_XID         XID Request:  DLC will send an XID command or an
  1227.                      XID response.
  1228.  
  1229.                       Table 4.  Local DLC Actions
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Dixon & Kushi                                                  [Page 22]
  1235.  
  1236. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1237.  
  1238.  
  1239.    The Data Link Switch may be described by a state transition table
  1240.    consisting of eleven states.  Each of these states is described below
  1241.    in terms of the events, actions, and next state for each transition.
  1242.    If a particular event is not listed for a given state, no action and
  1243.    no state transition should occur for that event.  Any significant
  1244.    comments concerning the transitions within a given state are given
  1245.    immediately following the table representing the state.
  1246.  
  1247.    A separate state machine is maintained by the Data Link Switch for
  1248.    each end-to-end circuit.  The number of circuits that may be
  1249.    supported by each Data Link Switch is a local implementation option.
  1250.  
  1251. 4.2.2.1   DISCONNECTED State
  1252.  
  1253.      Event                  Action(s)          Next State
  1254.      -----                  ---------          ----------
  1255.      Receive CANUREACH      DLC_START_DL       RESOLVE_PENDING
  1256.      Receive ICANREACH      Send REACH_ACK,    CIRCUIT_ESTABLISHED
  1257.                             DLC_RESOLVE_R
  1258.                             (See note 1)
  1259.      Receive DATAFRAME      DLC_DGRM
  1260.      Receive NETBIOS_NQ     DLC_DGRM           RESOLVE_PENDING
  1261.      Receive NETBIOS_NR     Send REACH_ACK,    CIRCUIT_ESTABLISHED
  1262.                             DLC_DGRM
  1263.                             (See note 2)
  1264.      DLC_RESOLVE_C          Send CANUREACH
  1265.      DLC_DGRM               If NB_Name_Query:
  1266.                             Send NETBIOS_NQ,
  1267.                             Else:
  1268.                             Send DATAFRAME
  1269.  
  1270.    It is assumed that each Data Link Switch will build a set of topology
  1271.    tables giving the identity of each Data Link Switch that can reach a
  1272.    specific MAC address or a specific NetBIOS name.  This table can be
  1273.    built based upon the origin address information received within the
  1274.    CANUREACH message or NETBIOS_NQ message and the target address
  1275.    information within the ICANREACH message or NETBIOS_NR message.  As a
  1276.    consequence, the amount of search traffic can be kept to a minimum.
  1277.  
  1278.    Upon receipt of a Test command or XID command to the null SAP (i.e.,
  1279.    DLC_RESOLVE_C signal from DLC), the Data Link Switch will check the
  1280.    topology table prior to sending the CANUREACH message.  If the target
  1281.    MAC address is in the table, the CANUREACH message will be sent to
  1282.    only those Data Link Switches that are known to be able to reach the
  1283.    given MAC address.  If the MAC address is not in the table, the
  1284.    CANUREACH message will be sent to all known Data Link Switches.
  1285.    Since the destination link SAP (DSAP) value is null, the Target Link
  1286.    SAP field in the CANUREACH message header is set equal to the Origin
  1287.  
  1288.  
  1289.  
  1290. Dixon & Kushi                                                  [Page 23]
  1291.  
  1292. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1293.  
  1294.  
  1295.    Link SAP value.
  1296.  
  1297.    Upon receipt of a NB_Name_Query the Data Link Switch will check the
  1298.    topology table prior to sending the NETBIOS_NQ message.  If the
  1299.    target NetBIOS name is in the table, the NETBIOS_NQ message will be
  1300.    sent to only those Data Link Switches that are known to be able to
  1301.    reach the given NetBIOS name.  If the NetBIOS name is not in the
  1302.    table, the NETBIOS_NQ message will be sent to all known Data Link
  1303.    Switches.
  1304.  
  1305.    For SNA, the DISCONNECTED state is exited upon receipt of a CANUREACH
  1306.    message by a prospective target Data Link Switch, or upon receipt of
  1307.    an ICANREACH message by the origin Data Link Switch.  In the former
  1308.    case, the Data Link Switch will issue a Test command to the target
  1309.    station (i.e., DLC_START_DL signal is presented to DLC).  In the
  1310.    later case, a Test response is sent to the origin station (i.e.,
  1311.    DLC_RESOLVE_R will be issued) and a REACH_ACK message will be
  1312.    returned to the target Data Link Switch.
  1313.  
  1314.       Note 1-  The IBM 6611 will not send a Test response, but will send
  1315.       a Test command to the station that originated the resolve
  1316.       procedure (i.e., a DLC_START_DL will be issued) in order to start
  1317.       the data link.
  1318.  
  1319.    For NetBIOS, the DISCONNECTED state is exited upon the receipt of a
  1320.    NETBIOS_NQ message by the prospective target Data Link Switch, or
  1321.    upon the receipt of a NETBIOS_NR message by the origin Data Link
  1322.    Switch.  In the former case, the Data Link Switch will send a
  1323.    NB_Name_Query frame.  In the later case, the Data Link Switch will
  1324.    send a NB_Name_Recognized frame to the origin station and a REACH_ACK
  1325.    message will be returned to the target Data Link Switch.
  1326.  
  1327.       Note 2-  The IBM 6611 will also send a Test command (i.e., a
  1328.       DLC_START_DL will be issued) to the station that originated the
  1329.       name resolution in order to start the data link.
  1330.  
  1331. 4.2.2.2   RESOLVE_PENDING State
  1332.  
  1333.      Event                  Action(s)              Next State
  1334.      -----                  ---------              ----------
  1335.      Receive DATAFRAME      DLC_DGRM
  1336.      DLC_DL_STARTED         Send ICANREACH         CIRCUIT_PENDING
  1337.      DLC_ERROR                                     DISCONNECTED
  1338.      DLC_DGRM               If NB_Name_Recognized: If
  1339.                             Send NETBIOS_NR        NB_Name_Recognized:
  1340.                             (See note),            CIRCUIT_PENDING
  1341.                             Else:
  1342.                             Send DATAFRAME
  1343.  
  1344.  
  1345.  
  1346. Dixon & Kushi                                                  [Page 24]
  1347.  
  1348. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1349.  
  1350.  
  1351.    The RESOLVE_PENDING state is entered upon receipt of a CANUREACH
  1352.    message or a NETBIOS_NQ message by the target DLS.  In the former
  1353.    case, a data link is started, causing a Test command to be sent by
  1354.    the DLC.  In the later case, a NB_Name_Query frame is sent.  This
  1355.    frame is directed to a group MAC address.
  1356.  
  1357.    Any CANUREACH messages received in the RESOLVE_PENDING state will be
  1358.    responded to if a DLC_DL_STARTED signal is received.  The Data Link
  1359.    Switch may also update its topology information based upon the origin
  1360.    MAC address information in each CANUREACH message.
  1361.  
  1362.    Upon the receipt of a DLC_DL_STARTED signal in the RESOLVE_PENDING
  1363.    state, the Data Link Switch may update its topology table base upon
  1364.    the remote MAC address information.  The ICANREACH message should be
  1365.    returned to all Data Link Switches that had sent a CANUREACH message.
  1366.    In a similar fashion, the Data Link Switch may update its topology
  1367.    table upon the receipt of a NB_Name_Recognized frame and a NETBIOS_NR
  1368.    message will be returned to all Data Link Switches that have sent a
  1369.    NETBIOS_NQ message.
  1370.  
  1371.    The RESOLVE_PENDING state is exited once the data link has been
  1372.    started (i.e., a DLC_DL_STARTED signal is received as a result of a
  1373.    Test response received by the DLC) or a NB_Name_Recognized frame is
  1374.    received (i.e., a DLC_DGRM signal is received).  The target Data Link
  1375.    Switch will then enter the CIRCUIT_PENDING state.
  1376.  
  1377.       Note:  The IBM 6611 will also send a Test command in order to
  1378.       start the data link to the station that responded to the Name
  1379.       Query frame (i.e., a DLC_START_DL will be issued).
  1380.  
  1381. 4.2.2.3   CIRCUIT_PENDING State
  1382.  
  1383.      Event                  Action(s)         Next State
  1384.      -----                  ---------         ----------
  1385.      Receive CONTACT        DLC_CONTACT       CONTACT_PENDING
  1386.      Receive HALT_DL        DLC_HALT_DL       HALT_PENDING
  1387.      Receive REACH_ACK      If Connected:     If Connected:
  1388.                             Send CONTACT      CONNECT_PENDING,
  1389.                                               else: CIRCUIT_ESTABLISHED
  1390.      Receive XIDFRAME       DLC_XID
  1391.      Receive DGRMFRAME      DLC_DGRM
  1392.      Receive DATAFRAME      DLC_DGRM
  1393.      DLC_CONTACTED          DLC_ENTER_BUSY
  1394.      DLC_ERROR              Send HALT_DL      DISCONNECT_PENDING
  1395.      DLC_XID                Send XIDFRAME
  1396.      DLC_DGRM               Send DGRMFRAME
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Dixon & Kushi                                                  [Page 25]
  1403.  
  1404. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1405.  
  1406.  
  1407.    The CIRCUIT_PENDING state is entered by the target Data Link Switch
  1408.    following the sending of an ICANREACH message or the sending of a
  1409.    NETBIOS_NR message.  In this state it is awaiting the reception of a
  1410.    REACH_ACK message from the origin Data Link Switch.  If a connection
  1411.    does not exist with the target station (i.e., the normal case), the
  1412.    Data Link Switch will enter the CIRCUIT_ESTABLISHED state.
  1413.  
  1414.    If the target Data Link Switch happens to receive a SABME command
  1415.    from the target station while in the CIRCUIT_PENDING state (i.e., a
  1416.    DLC_CONTACTED signal received from the DLC), the reception of the
  1417.    REACH_ACK message will cause the Data Link Switch to enter the
  1418.    CONNECT_PENDING state and to send a CONTACT message to the other Data
  1419.    Link Switch.  Thus the target Data Link Switch has assumed the role
  1420.    of the origin Data Link Switch.
  1421.  
  1422. 4.2.2.4   CONNECT_PENDING State
  1423.  
  1424.   Event                 Action(s)                    Next State
  1425.   -----                 ---------                    ----------
  1426.   Receive CONTACTED     DLC_EXIT_BUSY                CONNECTED
  1427.   Receive HALT_DL       DLC_HALT_DL                  HALT_PENDING
  1428.   Receive DGRMFRAME     DLC_DGRM
  1429.   Receive DATAFRAME     DLC_DGRM
  1430.   DLC_RESET             Send RESTART_DL (See note)   CIRCUIT_RESTART
  1431.   DLC_ERROR             Send HALT_DL                 DISCONNECT_PENDING
  1432.   DLC_DGRM              Send DGRMFRAME
  1433.  
  1434.    The CONNECT_PENDING state is entered by the origin Data Link Switch
  1435.    when a DLC_CONTACTED signal has been received from the DLC (i.e., a
  1436.    SABME command has been received).  A CONTACT message is then issued.
  1437.    The state is exited upon the receipt of a CONTACTED message from the
  1438.    target Data Link Switch.  If a DLC_RESET signal is received, the
  1439.    local data link is restarted and a RESTART_DL message is sent to the
  1440.    remote DLS.
  1441.  
  1442.       Note:  The IBM 6611 will also send a Test command in order to
  1443.       restart the data link to the station that sent the SABME command
  1444.       (i.e., a DLC_START_DL will be issued).
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458. Dixon & Kushi                                                  [Page 26]
  1459.  
  1460. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1461.  
  1462.  
  1463. 4.2.2.5   CIRCUIT_ESTABLISHED State
  1464.  
  1465.   Event                 Action(s)                    Next State
  1466.   -----                 ---------                    ----------
  1467.   Receive CONTACT       DLC_CONTACT                  CONTACT_PENDING
  1468.   Receive HALT_DL       DLC_HALT_DL                  HALT_PENDING
  1469.   Receive XIDFRAME      DLC_XID
  1470.   Receive DGRMFRAME     DLC_DGRM
  1471.   Receive DATAFRAME     DLC_DGRM
  1472.   DLC_CONTACTED         Send CONTACT                 CONNECT_PENDING
  1473.                         DLC_ENTER_BUSY
  1474.   DLC_ERROR             Send HALT_DL                 DISCONNECT_PENDING
  1475.   DLC_DGRM              Send DGRMFRAME
  1476.   DLC_XID               Send XIDFRAME
  1477.  
  1478.    The CIRCUIT_ESTABLISHED state is entered by the origin Data Link
  1479.    Switch from the DISCONNECTED state, and by the target Data Link
  1480.    Switch from the CIRCUIT_PENDING state.  The state is exited when a
  1481.    connection is started (i.e., DLC receives a SABME command).  The next
  1482.    state is CONTACT_PENDING for the target Data Link Switch and
  1483.    CONNECT_PENDING for the origin Data Link Switch.
  1484.  
  1485. 4.2.2.6   CONTACT_PENDING State
  1486.  
  1487.   Event                 Action(s)                    Next State
  1488.   -----                 ---------                    ----------
  1489.   Receive HALT_DL       DLC_HALT_DL                  HALT_PENDING
  1490.   Receive RESTART_DL    DLC_HALT_DL                  RESTART_PENDING
  1491.   Receive DGRMFRAME     DLC_DGRM
  1492.   Receive DATAFRAME     DLC_DGRM
  1493.   DLC_CONTACTED         Send CONTACTED               CONNECTED
  1494.   DLC_ERROR             Send HALT_DL                 DISCONNECT_PENDING
  1495.   DLC_DGRM              Send DGRMFRAME
  1496.  
  1497.    The CONTACT_PENDING state is entered by the target Data Link Switch
  1498.    upon the receipt of a CONTACT message.  This causes the Data Link
  1499.    Switch to issue a DLC_CONTACT signal to the DLC (i.e., DLC sends a
  1500.    SABME command).  This state is then exited upon the receipt of a
  1501.    DLC_CONTACTED signal from the DLC (i.e., a UA response received).
  1502.  
  1503.    If a RESTART_DL message is received, indicating that the remote Data
  1504.    Link Switch has received a DLC_RESET signal, the local Data Link
  1505.    Switch will send a DISC command frame on the adjacent LAN (i.e.,
  1506.    DLC_HALT_DL signal) and enter the RESTART_PENDING state.
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514. Dixon & Kushi                                                  [Page 27]
  1515.  
  1516. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1517.  
  1518.  
  1519. 4.2.2.7   CONNECTED State
  1520.  
  1521.   Event                 Action(s)                   Next State
  1522.   -----                 ---------                   ----------
  1523.   Receive HALT_DL       DLC_HALT_DL                 HALT_PENDING
  1524.   Receive RESTART_DL    DLC_HALT_DL                 RESTART_PENDING
  1525.   Receive DGRMFRAME     DLC_DGRM
  1526.   Receive INFOFRAME     DLC_INFO
  1527.   Receive DATAFRAME     DLC_DGRM
  1528.   DLC_RESET             Send RESTART_DL (See note)  CIRCUIT_RESTART
  1529.   DLC_ERROR             Send HALT_DL                DISCONNECT_PENDING
  1530.   DLC_DGRM              Send DGRMFRAME
  1531.   DLC_INFO              Send INFOFRAME
  1532.  
  1533.    The CONNECTED state is entered by the origin Data Link Switch from
  1534.    the CONNECT_PENDING state upon the receipt of a CONTACTED message.
  1535.    The CONNECTED state is entered by the target Data Link Switch from
  1536.    the CONTACT_PENDING state upon the receipt of a DLC_CONTACTED signal.
  1537.    At this time, the target Data Link Switch will return a CONTACTED
  1538.    message to the origin Data Link Switch.
  1539.  
  1540.    The CONNECTED state is exited usually under one of two conditions: a
  1541.    DLC_ERROR signal received from the DLC (e.g., a DISC command received
  1542.    by the local DLC), or a HALT_DL message received from the other Data
  1543.    Link Switch (e.g., a DISC command received by the remote DLC).
  1544.  
  1545.    A SABME command (i.e., a DLC_RESET signal) received by either Data
  1546.    Link Switch will also cause the two Data Link Switches to leave the
  1547.    CONNECTED state and eventually restart a new circuit.
  1548.  
  1549.       Note:  The IBM 6611 will also send a Test command in order to
  1550.       restart the data link to the station that sent the SABME command
  1551.       (i.e., a DLC_START_DL will be issued).
  1552.  
  1553.    Following the receipt of a reset signal, the Data Link Switch will
  1554.    send a RESTART_DL message to the other Data Link Switch and will
  1555.    enter the CIRCUIT_RESTART state.  Upon the receipt of the RESTART_DL
  1556.    message, the remote Data Link Switch will send a DISC command (i.e.,
  1557.    DLC_HALT_DL signal) and enter the RESTART_PENDING state.
  1558.  
  1559. 4.2.2.8   CIRCUIT_RESTART State
  1560.  
  1561.   Event                 Action(s)             Next State
  1562.   -----                 ---------             ----------
  1563.   Receive DL_RESTARTED  If Connected:         If Connected:
  1564.                         Send CONTACT          CONNECT_PENDING,
  1565.                                               else: CIRCUIT_ESTABLISHED
  1566.   Receive DATAFRAME     DLC_DGRM
  1567.  
  1568.  
  1569.  
  1570. Dixon & Kushi                                                  [Page 28]
  1571.  
  1572. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1573.  
  1574.  
  1575.   DLC_ERROR             Send HALT_DL          DISCONNECT_PENDING
  1576.   DLC_DGRM              Send DATAFRAME
  1577.  
  1578.    The CIRCUIT_RESTART state is entered if a DLC_RESET signal is
  1579.    received from the local DLC.  This was caused by the receipt of a
  1580.    SABME command while a connection was currently active.  A DM response
  1581.    will be issued to the SABME command and the Data Link Switch will
  1582.    attempt to restart the end-to- end circuit.
  1583.  
  1584.    The CIRCUIT_RESTART state is exited through one of two transitions.
  1585.    The next state depends upon the time the local DLC has reached the
  1586.    contacted state (i.e., a DLC_CONTACTED signal is presented) relative
  1587.    to the receipt of the DL_RESTARTED message.  This signal is caused by
  1588.    the origin station resending the SABME command that initially caused
  1589.    the DATA Link Switch to enter the CIRCUIT_RESTART state.  The two
  1590.    cases are as follows:
  1591.  
  1592.           1) DL_RESTARTED message received before the
  1593.           DLC_CONTACTED signal-  In this case, the
  1594.           CIRCUIT_ESTABLISHED state is entered.
  1595.  
  1596.           2) DL_RESTARTED message received after the
  1597.           DLC_CONTACTED signal-  In this case, the
  1598.           CONNECT_PENDING state is entered.
  1599.  
  1600. 4.2.2.9   DISCONNECT_PENDING State
  1601.  
  1602.      Event                     Action(s)             Next State
  1603.      -----                     ---------             ----------
  1604.      Receive DL_HALTED                               DISCONNECTED
  1605.      Receive HALT_DL           Send DL_HALTED
  1606.      Receive DATAFRAME         DLC_DGRM
  1607.      DLC_DGRM                  Send DATAFRAME
  1608.  
  1609.  
  1610.    The DISCONNECT_PENDING state is entered when a DLC_ERROR signal is
  1611.    received from the local DLC.  Upon receipt of this signal, a HALT
  1612.    message is sent.  Once an DL_HALTED message is received, the state is
  1613.    exited, and the Data Link Switch enters the DISCONNECTED state.
  1614.  
  1615. 4.2.2.10  RESTART_PENDING State
  1616.  
  1617.      Event                     Action(s)             Next State
  1618.      -----                     ---------             ----------
  1619.      Receive DATAFRAME         DLC_DGRM
  1620.      DLC_DL_HALTED (See note)  Send DL_RESTARTED     CIRCUIT_ESTABLISHED
  1621.      DLC_ERROR                 Send HALT_DL          DISCONNECT_PENDING
  1622.      DLC_DGRM                  Send DATAFRAME
  1623.  
  1624.  
  1625.  
  1626. Dixon & Kushi                                                  [Page 29]
  1627.  
  1628. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1629.  
  1630.  
  1631.    The RESTART_PENDING state is entered upon the receipt of a RESTART_DL
  1632.    message from the remote DLS while the local Data Link Switch is in
  1633.    either the CONTACT_PENDING state or the CONNECTED state.  These cause
  1634.    the local DLC to issue a DISC command.  Upon the receipt of the UA
  1635.    response (DLC_DL_HALTED), the data link is restarted, a DL_RESTARTED
  1636.    message is returned to the remote DLS, and the CIRCUIT_ESTABLISHED
  1637.    state is entered.
  1638.  
  1639.       Note:  The IBM 6611 will send a Test command in order to restart
  1640.       the data link to the target station (i.e., a DLC_START_DL will be
  1641.       issued) prior to sending the DL_RESTARTED message.
  1642.  
  1643. 4.2.2.11  HALT_PENDING State
  1644.  
  1645.      Event                     Action(s)          Next State
  1646.      -----                     ---------          ----------
  1647.      Receive DATAFRAME         DLC_DGRM
  1648.      DLC_DL_HALTED             Send DL_HALTED     DISCONNECTED
  1649.      DLC_ERROR                 Send DL_HALTED     DISCONNECTED
  1650.      DLC_DGRM                  Send DATAFRAME
  1651.  
  1652.    The HALT_PENDING state is entered upon the receipt of a HALT_DL
  1653.    message.  This causes the local DLC to issue a DISC command.  Upon
  1654.    the receipt of the UA response (DLC_DL_HALTED), a DL_HALTED message
  1655.    is returned to the remote DLS and the DISCONNECTED state is entered.
  1656.  
  1657. 4.3. NetBIOS Datagrams
  1658.  
  1659.    The NetBIOS protocols use a number of UI frames for directory
  1660.    services and the transmission of datagrams.  Most of these frames are
  1661.    directed to a group MAC address (GA) with the routing information
  1662.    field indicating spanning tree explorer (STE).  Two of the frames,
  1663.    NB_Add_Name_Response and NB_Status_Response, are directed to a
  1664.    specific MAC address with the routing information field indicating a
  1665.    specifically routed frame (SRF).  The handling of these frames is
  1666.    summarized in the following table.
  1667.  
  1668.      Event                        Action(s)          Comment
  1669.      -----                        ---------          -------
  1670.      DLC_DGRM (NB Group Address): Send NETBIOS_ANQ   Transmitted to all
  1671.           NB_Add_Name_Query                          remote DLS
  1672.      DLC_DGRM (Specific Address): Send NETBIOS_ANR   Transmitted to
  1673.           NB_Add_Name_Response                       specific DLS
  1674.      DLC_DGRM (Specific Address): Send DATAFRAME     Transmitted to all
  1675.           NB_Status_Response                         remote DLS
  1676.      DLC_DGRM (NB Group Address): Send DATAFRAME     Transmitted to all
  1677.           NB_Name_in_Conflict,                       remote DLS
  1678.           NB_Add_Group_Name_Query,
  1679.  
  1680.  
  1681.  
  1682. Dixon & Kushi                                                  [Page 30]
  1683.  
  1684. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1685.  
  1686.  
  1687.           NB_Datagram,
  1688.           NB_Datagram_Broadcast,
  1689.           NB_Status_Query,
  1690.           NB_Terminate_Trace
  1691.  
  1692.                       Table 5.  NetBIOS DLC Frames
  1693.  
  1694.    The above actions do not apply in the following states:
  1695.    CIRCUIT_ESTABLISHED, CONTACT_PENDING, CONNECT_PENDING, CONNECTED, and
  1696.    CIRCUIT_PENDING.  The handling of the remaining two UI frames used by
  1697.    NetBIOS systems, NB_Name_Query and NB_Name_Recognized, are documented
  1698.    as part of the DLS state machine in the previous section (i.e.,
  1699.    DISCONNECTED and RESOLVE_PENDING states).  Furthermore, the handling
  1700.    of NetBIOS datagrams (i.e., NB_Datagram) sent to a specific MAC
  1701.    address is also governed by the DLS state machine.
  1702.  
  1703.       Note:  The IBM 6611 will also issue Test frames during the
  1704.       exchange of the NetBIOS, NB_Name_Query and NB_Name_Recognized.
  1705.       This exchange of protocol data units occurs during the start of a
  1706.       data link and is used to determine the routing information.  Most
  1707.       other implementations of NetBIOS will use the
  1708.       NB_Name_Query/NB_Name_Recognized exchange to determine routes in
  1709.       conjunction with resolving the NetBIOS names.  These differences
  1710.       are not reflected in the SSP protocols.
  1711.  
  1712.    The handling of the NetBIOS specific SSP messages is given in the
  1713.    following table.
  1714.  
  1715.      Event           Action(s)                  Comment
  1716.      -----           ---------                  -------
  1717.      NETBIOS_ANQ     DLC_DGRM:                  Routed STE
  1718.                          NB_Add_Name_Query      (NB Group Address)
  1719.      NETBIOS_ANR     DLC_DGRM:                  Routed SRF
  1720.                          NB_Add_Name_Response   (Specific MAC Address)
  1721.      NETBIOS_NQ      DLC_DGRM:                  Routed STE
  1722.                          NB_Name_Query          (NB Group Address)
  1723.      NETBIOS_NR      DLC_DGRM:                  Routed SRF
  1724.                          NB_Name_Recognized     (Specific MAC Address)
  1725.      DATAFRAME       DLC_DGRM                   Routed STE
  1726.                                                 (If NB_Status_Response:
  1727.                                                 Specific MAC Address
  1728.                                                 Else: NB Group Address)
  1729.  
  1730.                      Table 6.  NetBIOS SSP Messages
  1731.  
  1732.    The above actions apply to all DLS states.  The handling of NetBIOS
  1733.    datagrams sent within DGRMFRAME messages is governed by the DLS state
  1734.    machine.  The DGRMFRAME message type is employed instead of the
  1735.  
  1736.  
  1737.  
  1738. Dixon & Kushi                                                  [Page 31]
  1739.  
  1740. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1741.  
  1742.  
  1743.    DATAFRAME message type once the end-to-end circuit has been
  1744.    established.  At that time, the message is addressed according to the
  1745.    pair of Circuit IDs in the message header instead of relying upon the
  1746.    MAC address information in the token ring header.
  1747.  
  1748. Acknowledgments
  1749.  
  1750.    Randall Campbell, David Miller, Gene Cox, Ravi Periasamy, and The
  1751.    Ghost of Christmas Past.
  1752.  
  1753. References
  1754.  
  1755.      1) ISO 8802-2/IEEE Std 802.2 International Standard,
  1756.         Information Processing Systems, Local Area Networks, Part 2:
  1757.         Logical Link Control, December 31, 1989
  1758.  
  1759.      2) The NETBIOS Frames Protocol, IBM Local Area Technical
  1760.         Reference, SC30-3383-03, Chapter 5, December 1990
  1761.  
  1762.      3) ISO/IEC DIS 10038 DAM 2, MAC Bridging, Source Routing
  1763.         Supplement, December 1991
  1764.  
  1765. Security Considerations
  1766.  
  1767.    Security issues are not discussed in this memo.
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794. Dixon & Kushi                                                  [Page 32]
  1795.  
  1796. RFC 1434             DLS: Switch-to-Switch Protocol           March 1993
  1797.  
  1798.  
  1799. Authors' Addresses
  1800.  
  1801.    Roy C. Dixon
  1802.    IBM Networking Systems
  1803.    Department B57, Building 060
  1804.    P.O. Box 12195
  1805.    Research Triangle Park, NC 27709
  1806.  
  1807.    Phone: (919) 543-3380
  1808.    EMail: rcdixon@ralvmg.vnet.ibm.com
  1809.  
  1810.  
  1811.    David M. Kushi
  1812.    IBM Research Division
  1813.    T. J. Watson Research Center
  1814.    Room H0-C07
  1815.    30 Saw Mill River Road
  1816.    Hawthorne, NY 10532
  1817.  
  1818.    Phone: (914) 784-7815
  1819.    EMail: kushi@watson.ibm.com
  1820.  
  1821.    Note: Any questions or comments relative to the contents of this RFC
  1822.    should be sent to the following Internet address:
  1823.    dlsw@ralvma.vnet.ibm.com.  This address will be used to coordinate
  1824.    the handling of responses.
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850. Dixon & Kushi                                                  [Page 33]
  1851.