diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc1434.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc1434.txt')
-rw-r--r-- | doc/rfc/rfc1434.txt | 1851 |
1 files changed, 1851 insertions, 0 deletions
diff --git a/doc/rfc/rfc1434.txt b/doc/rfc/rfc1434.txt new file mode 100644 index 0000000..4eb1fe1 --- /dev/null +++ b/doc/rfc/rfc1434.txt @@ -0,0 +1,1851 @@ + + + + + + +Network Working Group R. Dixon +Request for Comments: 1434 D. Kushi + IBM + March 1993 + + + Data Link Switching: Switch-to-Switch Protocol + +Status of this Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard. Distribution of this memo is + unlimited. + +Abstract + + This RFC describes IBM's support of Data Link Switching over TCP/IP. + The RFC is being distributed to members of the Internet community in + order to solicit their reactions to the proposals contained in it. + While the issues discussed may not be directly relevant to the + research problems of the Internet, they may be interesting to a + number of researchers and implementors. + + Any questions or comments relative to the contents of this RFC should + be sent to the following Internet address: dlsw@ralvma.vnet.ibm.com. + +Table of Contents + + 1. Introduction 2 + 2. Overview 2 + 3. Transport Connection 4 + 3.1. SSP Frame Formats 5 + 3.2. Address Parameters 8 + 3.3. Message Types 10 + 4. Protocol Specification 11 + 4.1. Protocol Flow Diagrams 11 + 4.1.1. Connect Protocols 11 + 4.1.2. Link Restart Protocols 13 + 4.1.3. Disconnect Protocols 15 + 4.2. DLS State Machine 16 + 4.2.1 Data Link Switch States 16 + 4.2.2 State Transition Tables 21 + 4.3. NetBIOS Datagrams 30 + Acknowledgments 32 + References 32 + Security Considerations 32 + Authors' Addresses 33 + + + + +Dixon & Kushi [Page 1] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + +1. Introduction + + Data Link Switching (DLS) is a forwarding mechanism for the IBM SNA + and IBM NetBIOS protocols. It does not provide full routing, but + instead provides switching at the Data Link layer and encapsulation + in TCP/IP for transport over the Internet. This memo documents the + Switch-to-Switch Protocol (SSP) that is used between IBM 6611 Network + Processors. + + Today, the IBM 6611 supports SNA (PU 2 and PU 4) systems and NetBIOS + systems attached to token-ring networks, as well as SNA (PU 2) + systems attached to SDLC links. For the later case, the SDLC + attached systems are provided with a LAN appearance within the IBM + 6611. For the LAN attached systems, the IBM 6611 appears as a + source-routing bridge. Remote systems that are accessed through the + IBM 6611 appear as systems attached to an adjacent ring. This ring + is a virtual ring that is manifested within each IBM 6611. + +2. Overview + + Data Link Switching was developed to provide support for SNA and + NetBIOS in multi-protocol routers. Since SNA and NetBIOS are + basically connection oriented protocols, the Data Link Control + procedure that they use on the LAN is IEEE 802.2 Logical Link Control + (LLC) Type 2. Data Link Switching also accommodates SNA protocols + over WAN links via the SDLC protocol. + + IEEE 802.2 LLC Type 2 was designed with the assumption that the + network transit delay would be small and predictable (i.e., a local + LAN). Therefore the LLC elements of procedure use a fixed timer for + detecting lost frames. When bridging is used over wide area lines + (especially at lower speeds), the network delay is larger and it can + vary greatly based upon congestion. When the delay exceeds the + time-out value LLC attempts to retransmit. If the frame is not + actually lost, only delayed, it is possible for the LLC Type 2 + procedures to become confused. And as a result, the link is + eventually taken down. + + Given the use of LLC Type 2 services, Data Link Switching addresses + the following bridging problems: + + DLC Time-outs + DLC Acknowledgments over the WAN + Flow and Congestion Control + Broadcast Control of Search Packets + Source-Route Bridging Hop Count Limits + + NetBIOS also makes extensive use of datagram services that use LLC + + + +Dixon & Kushi [Page 2] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Type 1. In this case, Data Link Switching addresses the last two + problems in the above list. + + The principal difference between Data Link Switching and bridging is + that DLS terminates the Data Link Control whereas bridging does not. + The following figure illustrates this difference based upon two end + systems operating with LLC Type 2 services. + + Bridging + -------- Bridge Bridge + +------+ +----+ +----+ +------+ + | End | +---------+ | +-----/ | | +---------+ | End | + |System+-+ LAN +-+ | /------+ +-+ LAN +-+System| + | | +---------+ | | TCP/IP | | +---------+ | | + +------+ +----+ +----+ +------+ + Info-------------------------------------------------------> + <-------------------------------------------------------RR + + Data Link Switching + ------------------- + +------+ +----+ +----+ +------+ + | End | +---------+ | +-----/ | | +---------+ | End | + |System+-+ LAN +-+DLS | /------+ DLS+-+ LAN +-+System| + | | +---------+ | | TCP/IP | | +---------+ | | + +------+ +----+ +----+ +------+ + Info-------------------> -------------> Info + <-------------------RR ----------------> + <----------------RR + + Figure 1. Data Link Switching Contrasted to Bridging + + In traditional bridging, the Data Link Control is end-to-end. Data + Link Switching terminates the LLC Type 2 connection at the switch. + This means that the LLC Type 2 connections do not cross the wide area + network. The DLS multiplexes LLC connections onto a TCP connection + to another DLS. Therefore, the LLC connections at each end are + totally independent of each other. It is the responsibility of the + Data Link Switch to deliver frames that it has received from a LLC + connection to the other end. TCP is used between the Data Link + Switches to guarantee delivery of frames. + + As a result of this design, LLC time-outs are limited to the local + LAN (i.e., they do not traverse the wide area). Also, the LLC Type 2 + acknowledgments (RR's) do not traverse the WAN, thereby reducing + traffic across the wide area links. For SDLC links, polling and poll + response occurs locally, not over the WAN. Broadcast of search + frames is controlled by the Data Link Switches once the location of a + target system is discovered. Finally, the switches can now apply + + + +Dixon & Kushi [Page 3] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + back pressure to the end systems to provide flow and congestion + control. + + Data Link Switching uses LAN addressing to set up connections between + SNA systems. SDLC attached devices are defined with MAC addresses to + enable them to communicate with LAN attached devices. For NetBIOS + systems, Data Link Switching uses the NetBIOS name to forward + datagrams and to set up connections for NetBIOS sessions. For + circuit establishment, SNA systems send TEST (or in some cases, XID) + frames to the null (x'00') SAP. NetBIOS systems have an address + resolution procedure, based upon the Name Query and Name Recognized + frames, that is used to establish an end-to-end circuit. + + Since Data Link Switching may be implemented in multi-protocol + routers, there may be situations where both bridging and switching + are enabled. SNA frames can be identified by their link SAP. + Typical SAP values for SNA are x'04', x'08', and x'0C'. NetBIOS + always uses a link SAP value of x'F0'. + +3. Transport Connection + + Data Link Switches can be in used in pairs or by themselves. A + Single DLS internally switches one data link to another without using + TCP (DLC(1) to DLC(2) in the figure below). A paired DLS multiplexes + data links over a reliable transport using a Switch-to-Switch + Protocol (SSP). This RFC will document the frame formats and + protocols for this multiplexing between Data Link Switches. The + initial implementation of SSP uses TCP as the reliable transport + between Data Link Switches. However, other transport connections + such as OSI TP4 could be used. + + + +-----------------------------------------------+Switch-to-Switch + | DLC Interfaces | Protocol (SSP) + |+------------+ DLC Request +------------+ | + || Data |<---------------- | | |Send SSP Frame + || Link | DLC Indication | | |--------------> + || Control 1 |----------------->| | | + |+------------+ | Data Link | | + |+------------+ DLC Request | Switch | | + || Data |<---------------- | | |Rec. SSP Frame + || Link | DLC Indication | | |<------------- + || Control 2 | ---------------->| | | + |+------------+ +------------+ | + | Multi-Protocol Router | + +-----------------------------------------------+ + + Figure 2. DLS System Diagram + + + +Dixon & Kushi [Page 4] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Before Data Link Switching can occur between two routers, they must + establish a TCP connection between them. Each DLS will maintain a + list of DLS capable routers and their status (active/inactive). Once + this connection is established, the DLS will employ SSP to establish + end-to-end circuits over the transport connection. Within the + transport connection is a specific set of DLS message units. The + message formats and types for these PDUs are documented in the + following sections. + + The default parameters associated with the TCP connections between + Data Link Switches are as follows: + + Socket Family AF_INET (Internet protocols) + Socket Type SOCK_STREAM (stream socket) + Read Port Number 2065 + Write Port Number 2067 + + Two or more Data Link Switches may be attached to the same LAN, + consisting of a number of token-ring segments interconnected by + source-routing bridges. In this case, a TCP connection is not + defined between bridges attached to the same LAN. This will allow + using systems to select one of the possible Data Link Switches in a + similar manner to the selection of a bridge path through a source- + routed bridged network. The virtual ring segment in each Data Link + Switch attached to a common LAN must be configured with the same ring + number. This will prevent LAN frames sent by one Data Link Switch + from being propagated through the other Data Link Switches. + +3.1. SSP Frame Formats + + The following diagrams show the two message headers for traffic + between Data Link Switches. The control message header is used for + all messages except information messages. The information message + header is 16 bytes long, and the control message header is 72 bytes + long. The first sixteen bytes of the control message header are + identical to the information message header. + + + + + + + + + + + + + + + +Dixon & Kushi [Page 5] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + CONTROL MESSAGES (72 Bytes) + +-----------------------------------------------------------------+ + | Version Number Reserved Field | + | Message Length ----> . | + | Remote Data Link Correlator ----> . | + | . . | + | Remote DLC Port ID ----> . | + | . . | + | Reserved Field ----> . | + | Message Type Reserved Field | + | Protocol ID Header Number | + | Header Length ----> . | + | Reserved Field ----> . | + | Reserved Field Message Type | + | Target MAC Address ----> . | + | . . | + | . . | + | Origin MAC Address ----> . | + | . . | + | . . | + | Origin Link SAP Target Link SAP | + | Frame Direction Reserved Field | + | Message Length ----> . | + | DLC Header Length ----> . | + | Origin DLC Port ID ----> . | + | . . | + | Origin Data Link Correlator ----> . | + | . . | + | Origin Transport ID ----> . | + | . . | + | Target DLC Port ID ----> . | + | . . | + | Target Data Link Correlator ----> . | + | . . | + | Target Transport ID ----> . | + | . . | + | Reserved Field ----> . | + | . . | + +-----------------------------------------------------------------+ + (Even Byte) (Odd Byte) + + + + + + + + + + + +Dixon & Kushi [Page 6] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + INFORMATION MESSAGE (16 Bytes) + +-----------------------------------------------------------------+ + | Version Reserved Field | + | Message Length ----> . | + | Remote Data Link Correlator ----> . | + | . . | + | Remote DLC Port ID ----> . | + | . . | + | Reserved Field ----> . | + | Message Type Reserved Field | + +-----------------------------------------------------------------+ + (Even Byte) (Odd Byte) + + The Version Number is set to x'4B', indicating a numeric value of 75. + + The Header Length is x'00 48', indicating a numeric value of 72 + bytes. + + The Header Number is x'01', indicating a value of one. + + The Frame Direction field is set to x'01' for frames sent from the + origin DLS to the target DLS, and is set to x'02' for frames sent + from the target DLS to the origin DLS. + + Note: The Remote Data Link Correlator and Remote DLC Port ID are + set equal to the Target Data Link Correlator and Target DLC Port + ID if the Frame Direction field is set to x'01', and are set equal + to the Origin Data Link Correlator and Origin DLC Port ID if the + Direction Field is set to x'02'. + + The Protocol ID field is set to x'42', indicating a numeric value of + 66. + + The Message Length field defines the number of bytes within the data + field following the header. Note that this value is specified in two + different fields of the message header. + + The DLC Header Length is set to zero for SNA and is set to x'23' for + NetBIOS datagrams, indicating a length of 35 bytes. This includes + the Access Control (AC) field, the Frame Control (FC) field, + Destination MAC Address (DA), the Source MAC Address (SA), the + Routing Information (RI) field (padded to 18 bytes), the Destination + link SAP (DSAP), the Source link SAP (SSAP), and the LLC control + field (UI). + + The values for the Message Type field are defined in a later section. + Note that this value is specified in two different fields of the + message header. + + + +Dixon & Kushi [Page 7] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Reserved fields are set to zero upon transmission and should be + ignored upon receipt. + +3.2. Address Parameters + + A data link is defined as a logical association between the two end + stations using Data Link Switching. It is identified by a Data Link + ID (14 bytes) consisting of the pair of attachment addresses + associated with each end system. Each attachment address is + represented by the concatenation of the MAC address (6 bytes) and the + LLC address (1 byte). + + DATA LINK ID (14 Bytes) + +-----------------------------------------------------------------+ + |Target MAC Address ----> . | + | . . | + | . . | + |Origin MAC Address ----> . | + | . . | + | . . | + |Origin Link SAP Target Link SAP | + +-----------------------------------------------------------------+ + + An end-to-end circuit is identified by a pair of Circuit ID's. A + Circuit ID is a 64 bit number that identifies the DLC circuit within + a single DLS. It consists of a DLC Port ID (4 bytes), and a Data + Link Correlator (4 bytes). This value is unique in a single DLS and + is assigned locally. The pair of Circuit ID's along with the + identifiers of the Data Link Switches, uniquely identify a single + end-to-end circuit. Each DLS must keep a table of these Circuit ID + pairs, one for the local end of the circuit and the other for the + remote end of the circuit. In order to identify which Data Link + Switch originated the establishment of a circuit, the terms, origin + DLS and target DLS, will be employed in this document. + + CIRCUIT ID (8 Bytes) + +-----------------------------------------------------------------+ + |DLC Port ID ----> . | + | . . | + |Data Link Correlator ----> . | + | . . | + +-----------------------------------------------------------------+ + + The Origin Transport ID and the Target Transport ID fields in the + message header are used to identify the individual TCP/IP port on a + Data Link Switch. The values have only local significance. However, + each Data Link Switch is required to reflect the values contained in + these two fields, along with the associated values for DLC Port ID + + + +Dixon & Kushi [Page 8] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + and the Data Link Correlator, when returning a message to the other + Data Link Switch. + + The following figure shows the use of the addressing parameters + during the establishment of an end-to-end connection. The CANUREACH, + ICANREACH, and REACH_ACK messages all carry the Data Link ID, + consisting of the MAC and Link SAP addresses associated with the two + end stations. Upon receipt of a CANUREACH message, the target DLS + starts a data link for each port, thereby obtaining a Data Link + Correlator. If the target station can be reached, an ICANREACH + message is returned to the origin DLS containing the Target Circuit + ID parameter. Upon receipt, the origin DLS starts a data link and + returns the Origin Circuit ID to the target DLS within the REACH_ACK + message. If the REACH_ACK message is not successfully received, the + target Data Link Switch can obtain the Origin Circuit ID from a + subsequent message (i.e., CONTACT, XIDFRAME, or DGRMFRAME). + + +------------+ +------------+ + |Disconnected| |Disconnected| + +------------+ CANUREACH (Data Link ID) +------------+ + -------------------------------------------------> + ICANREACH (Data Link ID, Target Circuit ID) + <------------------------------------------------ + REACH_ACK (Data Link ID, Origin Cir ID, Target Cir ID) + -------------------------------------------------> + +------------+ +------------+ + |Circuit Est.| |Circuit Est.| + +------------+ +------------+ + XIDFRAME (Data Link ID, Origin Cir ID, Target Cir ID) + <------------------------------------------------> + CONTACT (Data Link ID, Origin Cir ID, Target Cir ID) + -------------------------------------------------> + CONTACTED (Data Link ID, Origin Cir ID, Target Cir ID) + <------------------------------------------------- + +------------+ +------------+ + | Connected | | Connected | + +------------+ +------------+ + INFOFRAME (Remote Circuit ID = Target Circuit ID) + -------------------------------------------------> + INFOFRAME (Remote Circuit ID = Origin Circuit ID) + <------------------------------------------------- + + Figure 3. DLS Circuits and Connections + + During the exchange of the XIDFRAME, CONTACT, and CONTACTED messages, + the pair of Circuit ID parameters is included in the message format + along with the DATA LINK ID parameter. Once the connection has been + established, the INFOFRAME messages are exchanged with the shorter + + + +Dixon & Kushi [Page 9] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + header. This header contains only the Circuit ID associated with the + remote DLS. The Remote Data Link Correlator and the Remote DLC Port + ID are set equal to the Data Link Correlator and the DLC Port ID that + are associated with the origin or target Data Link Switch, dependent + upon the direction of the packet. + +3.3. Message Types + + The following table lists the protocol data units that are exchanged + between Data Link Switches. All values not listed are reserved for + potential use in follow-on releases. + + Command Function Hex Value + ------- -------- --------- + CANUREACH Can U Reach Station x'03' + ICANREACH I Can Reach Station x'04' + REACH_ACK Reach Acknowledgment x'05' + DGRMFRAME Datagram Frame (See note) x'06' + XIDFRAME XID Frame x'07' + CONTACT Contact Remote Station x'08' + CONTACTED Remote Station Contacted x'09' + RESTART_DL Restart Data Link x'10' + DL_RESTARTED Data Link Restarted x'11' + INFOFRAME Information (I) Frame x'0A' + HALT_DL Halt Data Link x'0E' + DL_HALTED Data Link Halted x'0F' + NETBIOS_NQ NetBIOS Name Query x'12' + NETBIOS_NR NetBIOS Name Recognized x'13' + DATAFRAME Data Frame (See note) x'14' + NETBIOS_ANQ NetBIOS Add Name Query x'1A' + NETBIOS_ANR NetBIOS Add Name Response x'1B' + + Table 1. SSP Message Types + + Note: Both the DGRMFRAME and DATAFRAME messages are used to carry + information received by the DLC entity within UI frames. As will + be explained below, the DGRMFRAME message is addressed according + to a pair of Circuit IDs, while the DATAFRAME message is addressed + according to a Data Link ID, being composed of a pair of MAC + addresses and a pair of link SAP addresses. The latter is + employed prior to the establishment of an end-to-end circuit when + Circuit IDs have yet to be established. + + For the exchange of NetBIOS control messages, the entire DLC header + is carried as part of the message unit. This includes the MAC + header, with the routing information field padded to 18 bytes, and + the LLC header. The following message types are affected: + NETBIOS_NQ, NETBIOS_NR, NETBIOS_ANQ, NETBIOS_ANR, and DATAFRAME when + + + +Dixon & Kushi [Page 10] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + being used by NetBIOS systems. The routing information in the DLC + header is not used by the remote Data Link Switch upon receiving the + above five messages. + +4. Protocol Specification + + This section provides a description of the Switch-to-Switch + Protocols. Included is a set of high-level protocol flows and a + detail set of state transition tables. The states and the protocols + are described in terms that are intended to be generic to different + platforms. Emphasis of the technical details is to ensure + operability of the IBM 6611 with another vendor's implementation. + Notes are inserted at points where the IBM 6611 performs local + actions that are specific to the AIX platform upon which it operates. + +4.1. Protocol Flow Diagrams + + The switch-to-switch protocols are used to setup and take down + circuits between a pair of Data Link Switches. Once a circuit is + established, the end stations on the local networks can employ LLC + Type 1 (connectionless) protocols. In addition, the end systems can + establish an end-to-end connection for support of LLC Type 2 + (connection oriented) protocols. + + The term, Data Link, is used in this document to refer to both a + "logical data link" when supporting Type 1 LLC services, and a "data + link connection" when supporting Type 2 LLC services. In both cases, + the Data Link in defined by the concatenation of the destination MAC + address (DA), the source MAC address (SA), the destination link SAP + (DSAP) and source link SAP (SSAP). + +4.1.1. Connect Protocols + + The following figure depicts the protocol flows that are used for the + establishment of a circuit between a pair of Data Link Switches, + followed by the establishment of a connection between the pair of end + systems. The figure is drawn assuming that the two end systems are + SNA (the protocol flow for NetBIOS systems is described in a later + paragraph). + + + + + + + + + + + + +Dixon & Kushi [Page 11] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Data Link Data Link Data Link Data Link + Control Switch Switch Control + -------------------- -------------------- + +------------+ +------------+ + |Disconnected| |Disconnected| + +------------+ +------------+ +Test Command CANUREACH Test Comd. + ----------> ---------------------------------------> -------> + (DSAP=Null) (DSAP=SSAP) + Test Response + ICANREACH <--------- +Test Response <--------------------------------------- + <---------- REACH ACK + ---------------------------------------> + +------------+ +------------+ + |Circuit Est.| |Circuit Est.| + +------------+ +------------+ + SABME CONTACT + ----------> ---------------------------------------> SABME + UA -------> + <---------- + RNR UA + <---------- CONTACTED <------- + <--------------------------------------- + +------------+ +------------+ + | Connected | | Connected | + +------------+ +------------+ + RR + <--------- + + Figure 4. DLS Connect Message Protocols + + Upon receipt of a Test command from the origin station, the origin + DLS will send a CANUREACH (i.e., can you reach) message to the target + DLS. If the target DLS is not known to the origin DLS, the CANUREACH + message is sent to all remote Data Link Switches defined to the + origin DLS. The receipt of the CANUREACH message causes the target + DLS to send a Test command searching for the target station. The + target station will return a Test response, causing the target DLS to + return an ICANREACH (i.e., I can reach) message to the origin DLS. + If multiple Data Link Switches can reach the target station, the + origin DLS will receive multiple ICANREACH messages. The origin DLS + will select the first message and send a REACH_ACK (i.e., reach + acknowledgment) message to the selected Data Link Switch. During + this exchange of messages, both Data Link Switches change states from + the Disconected state to the Circuit Established state. Once the + circuit is established, Type-1 frames, such as XID, may be exchanged + between the origin and target stations. + + + +Dixon & Kushi [Page 12] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + To establish a connection, the origin station sends a SABME command. + Upon receipt of this command, the origin DLS will send a CONTACT + message to the target DLS and return a UA response to the origin + station. To inhibit traffic flow until the connection is established + to the remote station, a RNR supervisory frame is sent to the origin + station. The CONTACT message will cause the target DLS to send a + SABME command to the target station, which in return will reply with + a UA response. Upon receipt of the UA response, the target DLS will + send a CONTACTED message to the origin DLS. The origin DLS will now + send an RR supervisory frame to the origin station. During this + exchange of messages, both Data Link Switches change states from the + Circuit Established state to the Connected state. + + For NetBIOS end systems, the protocol flows are similar but employ + different frames and SSP messages. Instead of using a Test command + frame to initiate the circuit, a NetBIOS system will use a Name Query + frame. Receipt of a Name Query frame will cause the Data Link Switch + to issue a NETBIOS_NQ message instead of the CANUREACH message. In a + like fashion, the Test response is replaced with a Name Recognized + frame and the ICANREACH message is replaced with a NETBIOS_NR + message. As with the SNA protocol flows, the receipt of a NETBIOS_NR + message causes the origin Data Link Switch to respond with a + REACH_ACK message. + +4.1.2. Link Restart Protocols + + The following figure depicts the protocol flows that result from + restarting the end-to-end connection. This causes the Data Link + Switches to terminate the existing connection and to enter the + Circuit Established state awaiting the start of a new connection. + + + + + + + + + + + + + + + + + + + + + +Dixon & Kushi [Page 13] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Data Link Data Link Data Link Data Link + Control Switch Switch Control + --------------------- --------------------- + +-----------+ +-----------+ + | Connected | | Connected | + SABME +-----------+ +-----------+ + -----------> RESTART_DL + DM -------------------------------------> DISC + <----------- --------> + UA + DL_RESTARTED (Case 1) <-------- + <------------------------------------- + +-----------+ +-----------+ + |Circuit Est| |Circuit Est| + +-----------+ +-----------+ + ........... or ........... + SABME + -----------> DL_RESTARTED (Case 2) + UA <------------------------------------- + <----------- +-----------+ + |Circuit Est| + CONTACT +-----------+ + RNR ------------------------------------> + <---------- + + Figure 5. DLS Link Restart Message Protocols + + Upon receipt of a SABME command from the origin station, the origin + DLS will send a RESTART_DL message to the target DLS. A DM response + is also returned to the origin station and the data link is + restarted. + + Upon receipt of the RESTART_DL message, the target DLS will issue a + DISC command to the target station. The target station is expected + to return a UA response. The target DLS will then restart its data + link and send an DL_RESTARTED message back to the origin DLS. During + this exchange of messages, both Data Link Switches change states from + Connected state to Circuit Established state. + + If the origin station now resends the SABME command, the origin DLS + will send a CONTACT message to the target DLS. If the SABME command + is received prior to the receipt of the DL_RESTARTED message (case 2 + in the figure), the CONNECT message is delayed until the DL_RESTARTED + message is received. The resulting protocol flows at this point + parallel those given above for the connect sequence. + + + + + + +Dixon & Kushi [Page 14] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + +4.1.3. Disconnect Protocols + + The following figure depicts the protocol flows that result from the + end system terminating an existing connection. Not only is the + connection terminated, but the circuit between the Data Link Switches + is taken down. + + Data Link Data Link Data Link Data Link + Control Switch Switch Control + -------------------- -------------------- + +-----------+ +-----------+ + | Connected | | Connected | + +-----------+ +-----------+ + DISC + ----------> HALT_DL + UA -------------------------------------> DISC + <---------- ---------> + UA + DL_HALTED <-------- + <------------------------------------- + +-----------+ +-----------+ + |Disconnectd| |Disconnectd| + +-----------+ +-----------+ + ......... or .......... + +-----------+ +-----------+ + | Connected | | Connected | + +-----------+ +-----------+ + + + DISC TCP Connection Failure DISC + <-------- <------------------------------------> ---------> + UA UA + --------> <-------- + +-----------+ +-----------+ + |Disconnectd| |Disconnectd| + +-----------+ +-----------+ + + Figure 6. DLS Disconnect Message Protocols + + Upon receipt of a DISC command from the origin station, the origin + DLS will reply with a UA response and issue a HALT_DL message to the + target DLS. Upon receipt of the HALT_DL message, the target DLS will + send a DISC command to the target station. The target station will + then respond with a UA response, causing the target DLS to return a + DL_HALTED message to the origin DLS. During this exchange of + messages, both Data Link Switches change states from the Connected + state to the Disconnected state. + + + + +Dixon & Kushi [Page 15] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + If the TCP connection between two Data Link Switches fails, all + connections that are currently multiplexed on the failed TCP + connection will be taken down. This implies that both Data Link + Switches will send DISC commands to all the local systems that are + associated with the failed connections. Upon sending the DISC + command, the Data Link Switch will enter the DISCONNECT state for + each circuit. + +4.2. DLS State Machine + + The following state tables describe the states for a single + connection through the Data Link Switch. State information is kept + for each connection. The initial state for a connection is + DISCONNECT. The steady state is either CIRCUIT_ESTABLISHED or + CONNECTED. In the former state, an end-to-end circuit has been + established allowing the support of Type 1 LLC between the end + systems. The latter state exists when an end-to-end connection has + been established for the support of Type 2 LLC services between the + end systems. + + For SNA, circuit establishment is via the use of IEEE 802.2 Test or + XID frames. SNA devices send these frames to the null SAP in order + to determine the source route information in support of bridging. + Normally SNA devices use SAP x'04', x'08', or x'0C'. Typically the + SAP would be used to determine if the Test frames should be sent to + the DLS code in the router. If both bridging and DLS are enabled, + this allows the product to ensure that SNA frames are not both + bridged and switched. + + For NetBIOS, circuit establishment is via the Name Query and Name + Recognized frames. These frames are used for both address resolution + and source route determination. Normally NetBIOS devices use SAP + x'F0'. + +4.2.1. Data Link Switch States + + The Switch-to-Switch Protocols will be formally defined through a + single state machine. The following table lists the eleven possible + states. A separate state machine is employed for each end-to-end + circuit that is maintained by the Data Link Switch. The three steady + states are DISCONNECTED, CIRCUIT_ESTABLISHED, and CONNECTED. + + + + + + + + + + +Dixon & Kushi [Page 16] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + State Name Description + ---------- ----------- + CIRCUIT_ESTABLISHED The end-to-end circuit has been + established. At this time LLC Type 1 + services are available from end-to-end. + CIRCUIT_PENDING The target DLS is awaiting a REACH_ACK + response to an ICANREACH message. + CIRCUIT_RESTART The DLS that originated the reset is + awaiting the restart of the data link + and the DL_RESTARTED response to a + RESTART_DL message. + CONNECTED The end-to-end connection has been + established thereby allowing LLC Type 2 + services from end-to-end in addition to + LLC Type 1 services. + CONNECT_PENDING The origin DLS is awaiting the CONTACTED + response to a CONTACT message. + CONTACT_PENDING The target DLS is awaiting the + DLC_CONTACTED confirmation to a DLC_CONTACT + signal (i.e., DLC is waiting for a UA + response to an SABME command). + DISCONNECTED The initial state with no circuit or + connection established, the DLS is awaiting + either a CANUREACH, an ICANREACH, a + NETBIOS_NQ, or a NETBIOS_NR message. + DISCONNECT_PENDING The DLS that originated the disconnect + is awaiting the DL_HALTED response to a + HALT_DL message. + HALT_PENDING The remote DLS is awaiting the DLC_DL_HALTED + indication following the DLC_HALT_DL request + (i.e., DLC is waiting for a UA response to a + DISC command). + RESTART_PENDING The remote DLS is awaiting the DLC_DL_HALTED + indication following the DLC_HALT_DL request + (i.e., DLC is waiting for a UA response to a + DISC command), and the restart of the data + link. + RESOLVE_PENDING The target DLS is awaiting either the + DLC_DL_STARTED indication following the + DLC_START_DL reqest (i.e., DLC is waiting + for a Test response as a result of sending a + Test command), or a NB_Name_Recognized + frame in response to a NB_Name_Query frame. + + Table 2. Data Link Switch States + + The following figure depicts the events that cause a transition to a + new state. The resulting action(s) are not explicitly shown. The + + + +Dixon & Kushi [Page 17] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + DISCONNECT_PENDING state will be entered whenever a DLC error + condition occurs in any of the other states (except RESOLVE_PENDING), + or when a DISC command is received by the DLC. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Dixon & Kushi [Page 18] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + DLC_RESOLVE_C+----+ +----DLC_ERROR---+ + | | \|/ | + +------------+ +>+--+---------+ CANUREACH +-+----------+ + | Disconnect +--DL_HALTED-->|Disconnected|------------>| Resolve | + | Pending |<+ +------->| |<-------+ | Pending | + +---------+--+ | | +-----+------+ | +-----+------+ + /|\ | HALT_DL| /|\ |/|\/|\ | | +DLC_ERROR +----+ | +----+ | | +------+ | DLC_DL_STARTED + | | | |HALT_DL(ts)| +------+ | + | | ICANREACH| | HALT_DL(ts)| + +--HALT_DL(ts)+ | | | | | | + | HALT_DL(ts) | | HALT_DL(ts) | | + | | | | | | | + | +-RESTART_DL(ts)+----+ | | | | | + | | | \|/ \|/| | | \|/ + +----+---+---+ | +-------+----+ | +-+----------+ + | Contact |<-CONTACT--+--+ Circuit |<-REACH_ACK--+ Circuit | + | Pending | | | Established| (DLC not | Pending | + +-----+------+ | +----------+-+ contacted)+-+------+---+ + | /|\ | /|\ /|\ | | | | + | | +--+----+ | | | | | + | +-CONTACT--+--+--------+----+------+----------+ REACH_ACK + | | |RESTART_DL(ts) | (DLC contacted) + DLC_CONTACTED | +------+ | | +--------------+ | + | | | | | DLC_CONTACTED | | + +---------------+-------+ | | +-----------------+ | | + +-----DL_RESTARTED | | | | | | + | (DLC not contacted) \|/| | \|/ | \|/ + +-----+------+ +---+-+------+ CONTACTED +-----+------+ + | Circuit |<-DLC_RESET---+ Connected |<------------+ Connect | + | Restart | | | | Pending | + +----------+-+ +------------+ +-----+------+ + /|\ | DL_RESTARTED /|\ | + | +----------------(DLC contacted)--------------+ | + | | + +-------------------------DLC_RESET--------------------+ + + Figure 7. DLS State Transitions (ts = transitional state) + + The DISCONNECT state is the initial state for a new circuit. One end + station starts the connection via a TEST or XID command (i.e., + DLC_RESOLVE_C) or a NetBIOS Name Query command (not explicitly + shown). Upon receipt, the Data Link Switches exchange a set of + CANUREACH, ICANREACH and REACH_ACK messages. Upon completion of this + three-legged exchange, both Data Link Switches will be in the + CIRCUIT_ESTABLISHED state. Two pending states also exist during this + exchange. The RESOLVE_PENDING state is entered by the target Data + Link Switch awaiting a Test response to a Test Command and the + + + +Dixon & Kushi [Page 19] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + CIRCUIT_PENDING state is entered by the target DLS awaiting the + REACH_ACK reply to an ICANREACH message. + + The CIRCUIT_ESTABLISHED state allows for the exchange of LLC Type 1 + frames such as the XID exchanges between SNA stations that occurs + prior to the establishment of a connection. Also, datagram traffic + (i.e., UI frames) may be sent and received between the end stations. + These exchanges use the XIDFRAME and DGRMFRAME messages sent between + the Data Link Switches. + + In the CIRCUIT_ESTABLISHED state, the receipt of a SABME command + (i.e., DLC_CONTACTED) causes the origin DLS to issue a CONTACT + message, to send an RNR supervisory frame (i.e., DLC_ENTER_BUSY) to + the origin station, and to enter the CONNECT_PENDING state awaiting a + CONTACTED message. The target DLS, upon the receipt of a CONTACT + message, will issue a SABME command (i.e., DLC_CONTACT) and enter the + Contact Pending state. Once the UA response is received (i.e., + DLC_CONTACTED), the target DLS sends a CONTACTED message and enters + the CONNECTED state. When received, the origin DLS enters the + Connected state and sends an RR supervisory frame (i.e., + DLC_EXIT_BUSY). + + The CONNECTED state is the steady state for normal data flow once a + connection has been established. Information frames (i.e., INFOFRAME + messages) are simply sent back and forth between the end points of + the connection. This is the path that should be optimized for + performance. + + The connection is terminated upon the receipt of a DISC frame or + under some other error condition detected by DLC (i.e., DLC_ERROR). + Upon receipt of this indication, the DLS will halt the local data + link, send a HALT_DL message to the remote DLS, and enter the + DISCONNECT_PENDING State. When the HALT_DL frame is received by the + other DLS, the local DLC is halted for this data link, a DL_HALTED + message is returned, and the DISCONNECTED state is entered. Receipt + of this DL_HALTED message causes the other DLS to also enter the + DISCONNECTED state. + + The CIRCUIT_RESTART state is entered if one of the Data Link Switches + receives a SABME command (i.e., DLC_RESET) while in the CONNECTED + state. This causes a DM command to be returned to the origin station + and a RESTART_DL message to be sent to the remote Data Link Switch. + This causes the remote data link to be halted and then restarted. + The remote DLS will then send a DL_RESTARTED message back to the + first DLS. The receipt of the DL_RESTARTED message causes the first + DLS to issue a new CONTACT message, assuming that the local DLC has + been contacted (i.e., the origin station has resent the SABME + command). This is eventually responded to by a CONTACTED message. + + + +Dixon & Kushi [Page 20] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Following this exchange, both Data Link Switches will return to the + CONNECTED state. If the local DLC has not been contacted, the + receipt of a DL_RESTARTED command causes the Data Link Switch to + enter the CIRCUIT_ESTABLISHED state awaiting the receipt of a SABME + command (i.e., DLC_CONTACTED signal). + + In the figure, the transition labeled HALT_DL(ts) represents the + HALT_PENDING state and the transition labeled RESTART_DL(ts) + represents the RESTART_PENDING state. Both these transitional states + have only one input event and only one output action. While in these + states, the Data Link Switch is awaiting responses from the local + station on the adjacent LAN (i.e., a UA response to a DISC command). + Also in the RESTART_PENDING state, the Data Link Switch will attempt + to restart the data link prior to sending a DL_RESTARTED message. + For the IBM 6611 implementation, the start of a data link involves + the exchange of a Test command/response on the adjacent LAN (i.e., + DLC_START_DL). For other implementations, this additional exchange + may not be required. + +4.2.2. State Transition Tables + + This section provides a detail representation of the Data Link + Switch, as document by a set of state machines. The first state + machine documents the sending and receiving of SSP messages. Many of + the transitions are dependent upon local signals between the Data + Link Switch entity and one of the DLC entities. These signals and + their definitions are given in the following tables. + + + + + + + + + + + + + + + + + + + + + + + + +Dixon & Kushi [Page 21] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Event Name Description + ---------- ----------- + DLC_CONTACTED Contact Indication: DLC has received an SABME + command and will send a UA response, or DLC has + received a UA response as a result of sending an + SABME command. + DLC_DGRM Datagram Indication: DLC has received a UI frame. + DLC_ERROR Error condition indicated by DLC: Such a + condition occurs when a DISC command is received + or when DLC experiences an unrecoverable error. + DLC_INFO Information Indication: DLC has received an + Information (I) frame. + DLC_DL_HALTED Data Link Halted Indication: DLC has + received a UA response to a DISC command. + DLC_DL_STARTED Data Link Started Indication: DLC has + received a Test response from the null SAP. + DLC_RESET Reset Indication: DLC has received an SABME + command during the time a connection is + currently active and has responded with DM. + DLC_RESOLVE_C Resolve Command Indication: DLC has received + a Test command addressed to the null SAP, or an + XID command addressed to the null SAP. + DLC_XID XID Indication: DLC has received an XID command + or response to a non-null SAP. + + Table 3. Local DLC Events + + Action Name Description + ----------- ----------- + DLC_CONTACT Contact Station Request: DLC will send a SABME + command. + DLC_DGRM Datagram Request: DLC will send a UI frame. + DLC_ENTER_BUSY Enter Link Station Busy: DLC will send an + RNR supervisory frame. + DLC_EXIT_BUSY Exit Link Station Busy: DLC will send an RR + supervisory frame. + DLC_HALT_DL Halt Data Link Request: DLC will send a DISC + command. + DLC_INFO Information Request: DLC will send an I frame. + DLC_RESOLVE_R Resolve Response Request: DLC will send a + Test response or XID response from the null SAP. + DLC_START_DL Start Data Link Request: DLC will send a Test + command to the null SAP. + DLC_XID XID Request: DLC will send an XID command or an + XID response. + + Table 4. Local DLC Actions + + + + +Dixon & Kushi [Page 22] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + The Data Link Switch may be described by a state transition table + consisting of eleven states. Each of these states is described below + in terms of the events, actions, and next state for each transition. + If a particular event is not listed for a given state, no action and + no state transition should occur for that event. Any significant + comments concerning the transitions within a given state are given + immediately following the table representing the state. + + A separate state machine is maintained by the Data Link Switch for + each end-to-end circuit. The number of circuits that may be + supported by each Data Link Switch is a local implementation option. + +4.2.2.1 DISCONNECTED State + + Event Action(s) Next State + ----- --------- ---------- + Receive CANUREACH DLC_START_DL RESOLVE_PENDING + Receive ICANREACH Send REACH_ACK, CIRCUIT_ESTABLISHED + DLC_RESOLVE_R + (See note 1) + Receive DATAFRAME DLC_DGRM + Receive NETBIOS_NQ DLC_DGRM RESOLVE_PENDING + Receive NETBIOS_NR Send REACH_ACK, CIRCUIT_ESTABLISHED + DLC_DGRM + (See note 2) + DLC_RESOLVE_C Send CANUREACH + DLC_DGRM If NB_Name_Query: + Send NETBIOS_NQ, + Else: + Send DATAFRAME + + It is assumed that each Data Link Switch will build a set of topology + tables giving the identity of each Data Link Switch that can reach a + specific MAC address or a specific NetBIOS name. This table can be + built based upon the origin address information received within the + CANUREACH message or NETBIOS_NQ message and the target address + information within the ICANREACH message or NETBIOS_NR message. As a + consequence, the amount of search traffic can be kept to a minimum. + + Upon receipt of a Test command or XID command to the null SAP (i.e., + DLC_RESOLVE_C signal from DLC), the Data Link Switch will check the + topology table prior to sending the CANUREACH message. If the target + MAC address is in the table, the CANUREACH message will be sent to + only those Data Link Switches that are known to be able to reach the + given MAC address. If the MAC address is not in the table, the + CANUREACH message will be sent to all known Data Link Switches. + Since the destination link SAP (DSAP) value is null, the Target Link + SAP field in the CANUREACH message header is set equal to the Origin + + + +Dixon & Kushi [Page 23] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + Link SAP value. + + Upon receipt of a NB_Name_Query the Data Link Switch will check the + topology table prior to sending the NETBIOS_NQ message. If the + target NetBIOS name is in the table, the NETBIOS_NQ message will be + sent to only those Data Link Switches that are known to be able to + reach the given NetBIOS name. If the NetBIOS name is not in the + table, the NETBIOS_NQ message will be sent to all known Data Link + Switches. + + For SNA, the DISCONNECTED state is exited upon receipt of a CANUREACH + message by a prospective target Data Link Switch, or upon receipt of + an ICANREACH message by the origin Data Link Switch. In the former + case, the Data Link Switch will issue a Test command to the target + station (i.e., DLC_START_DL signal is presented to DLC). In the + later case, a Test response is sent to the origin station (i.e., + DLC_RESOLVE_R will be issued) and a REACH_ACK message will be + returned to the target Data Link Switch. + + Note 1- The IBM 6611 will not send a Test response, but will send + a Test command to the station that originated the resolve + procedure (i.e., a DLC_START_DL will be issued) in order to start + the data link. + + For NetBIOS, the DISCONNECTED state is exited upon the receipt of a + NETBIOS_NQ message by the prospective target Data Link Switch, or + upon the receipt of a NETBIOS_NR message by the origin Data Link + Switch. In the former case, the Data Link Switch will send a + NB_Name_Query frame. In the later case, the Data Link Switch will + send a NB_Name_Recognized frame to the origin station and a REACH_ACK + message will be returned to the target Data Link Switch. + + Note 2- The IBM 6611 will also send a Test command (i.e., a + DLC_START_DL will be issued) to the station that originated the + name resolution in order to start the data link. + +4.2.2.2 RESOLVE_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive DATAFRAME DLC_DGRM + DLC_DL_STARTED Send ICANREACH CIRCUIT_PENDING + DLC_ERROR DISCONNECTED + DLC_DGRM If NB_Name_Recognized: If + Send NETBIOS_NR NB_Name_Recognized: + (See note), CIRCUIT_PENDING + Else: + Send DATAFRAME + + + +Dixon & Kushi [Page 24] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + The RESOLVE_PENDING state is entered upon receipt of a CANUREACH + message or a NETBIOS_NQ message by the target DLS. In the former + case, a data link is started, causing a Test command to be sent by + the DLC. In the later case, a NB_Name_Query frame is sent. This + frame is directed to a group MAC address. + + Any CANUREACH messages received in the RESOLVE_PENDING state will be + responded to if a DLC_DL_STARTED signal is received. The Data Link + Switch may also update its topology information based upon the origin + MAC address information in each CANUREACH message. + + Upon the receipt of a DLC_DL_STARTED signal in the RESOLVE_PENDING + state, the Data Link Switch may update its topology table base upon + the remote MAC address information. The ICANREACH message should be + returned to all Data Link Switches that had sent a CANUREACH message. + In a similar fashion, the Data Link Switch may update its topology + table upon the receipt of a NB_Name_Recognized frame and a NETBIOS_NR + message will be returned to all Data Link Switches that have sent a + NETBIOS_NQ message. + + The RESOLVE_PENDING state is exited once the data link has been + started (i.e., a DLC_DL_STARTED signal is received as a result of a + Test response received by the DLC) or a NB_Name_Recognized frame is + received (i.e., a DLC_DGRM signal is received). The target Data Link + Switch will then enter the CIRCUIT_PENDING state. + + Note: The IBM 6611 will also send a Test command in order to + start the data link to the station that responded to the Name + Query frame (i.e., a DLC_START_DL will be issued). + +4.2.2.3 CIRCUIT_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive CONTACT DLC_CONTACT CONTACT_PENDING + Receive HALT_DL DLC_HALT_DL HALT_PENDING + Receive REACH_ACK If Connected: If Connected: + Send CONTACT CONNECT_PENDING, + else: CIRCUIT_ESTABLISHED + Receive XIDFRAME DLC_XID + Receive DGRMFRAME DLC_DGRM + Receive DATAFRAME DLC_DGRM + DLC_CONTACTED DLC_ENTER_BUSY + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_XID Send XIDFRAME + DLC_DGRM Send DGRMFRAME + + + + + +Dixon & Kushi [Page 25] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + The CIRCUIT_PENDING state is entered by the target Data Link Switch + following the sending of an ICANREACH message or the sending of a + NETBIOS_NR message. In this state it is awaiting the reception of a + REACH_ACK message from the origin Data Link Switch. If a connection + does not exist with the target station (i.e., the normal case), the + Data Link Switch will enter the CIRCUIT_ESTABLISHED state. + + If the target Data Link Switch happens to receive a SABME command + from the target station while in the CIRCUIT_PENDING state (i.e., a + DLC_CONTACTED signal received from the DLC), the reception of the + REACH_ACK message will cause the Data Link Switch to enter the + CONNECT_PENDING state and to send a CONTACT message to the other Data + Link Switch. Thus the target Data Link Switch has assumed the role + of the origin Data Link Switch. + +4.2.2.4 CONNECT_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive CONTACTED DLC_EXIT_BUSY CONNECTED + Receive HALT_DL DLC_HALT_DL HALT_PENDING + Receive DGRMFRAME DLC_DGRM + Receive DATAFRAME DLC_DGRM + DLC_RESET Send RESTART_DL (See note) CIRCUIT_RESTART + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_DGRM Send DGRMFRAME + + The CONNECT_PENDING state is entered by the origin Data Link Switch + when a DLC_CONTACTED signal has been received from the DLC (i.e., a + SABME command has been received). A CONTACT message is then issued. + The state is exited upon the receipt of a CONTACTED message from the + target Data Link Switch. If a DLC_RESET signal is received, the + local data link is restarted and a RESTART_DL message is sent to the + remote DLS. + + Note: The IBM 6611 will also send a Test command in order to + restart the data link to the station that sent the SABME command + (i.e., a DLC_START_DL will be issued). + + + + + + + + + + + + + +Dixon & Kushi [Page 26] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + +4.2.2.5 CIRCUIT_ESTABLISHED State + + Event Action(s) Next State + ----- --------- ---------- + Receive CONTACT DLC_CONTACT CONTACT_PENDING + Receive HALT_DL DLC_HALT_DL HALT_PENDING + Receive XIDFRAME DLC_XID + Receive DGRMFRAME DLC_DGRM + Receive DATAFRAME DLC_DGRM + DLC_CONTACTED Send CONTACT CONNECT_PENDING + DLC_ENTER_BUSY + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_DGRM Send DGRMFRAME + DLC_XID Send XIDFRAME + + The CIRCUIT_ESTABLISHED state is entered by the origin Data Link + Switch from the DISCONNECTED state, and by the target Data Link + Switch from the CIRCUIT_PENDING state. The state is exited when a + connection is started (i.e., DLC receives a SABME command). The next + state is CONTACT_PENDING for the target Data Link Switch and + CONNECT_PENDING for the origin Data Link Switch. + +4.2.2.6 CONTACT_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive HALT_DL DLC_HALT_DL HALT_PENDING + Receive RESTART_DL DLC_HALT_DL RESTART_PENDING + Receive DGRMFRAME DLC_DGRM + Receive DATAFRAME DLC_DGRM + DLC_CONTACTED Send CONTACTED CONNECTED + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_DGRM Send DGRMFRAME + + The CONTACT_PENDING state is entered by the target Data Link Switch + upon the receipt of a CONTACT message. This causes the Data Link + Switch to issue a DLC_CONTACT signal to the DLC (i.e., DLC sends a + SABME command). This state is then exited upon the receipt of a + DLC_CONTACTED signal from the DLC (i.e., a UA response received). + + If a RESTART_DL message is received, indicating that the remote Data + Link Switch has received a DLC_RESET signal, the local Data Link + Switch will send a DISC command frame on the adjacent LAN (i.e., + DLC_HALT_DL signal) and enter the RESTART_PENDING state. + + + + + + + +Dixon & Kushi [Page 27] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + +4.2.2.7 CONNECTED State + + Event Action(s) Next State + ----- --------- ---------- + Receive HALT_DL DLC_HALT_DL HALT_PENDING + Receive RESTART_DL DLC_HALT_DL RESTART_PENDING + Receive DGRMFRAME DLC_DGRM + Receive INFOFRAME DLC_INFO + Receive DATAFRAME DLC_DGRM + DLC_RESET Send RESTART_DL (See note) CIRCUIT_RESTART + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_DGRM Send DGRMFRAME + DLC_INFO Send INFOFRAME + + The CONNECTED state is entered by the origin Data Link Switch from + the CONNECT_PENDING state upon the receipt of a CONTACTED message. + The CONNECTED state is entered by the target Data Link Switch from + the CONTACT_PENDING state upon the receipt of a DLC_CONTACTED signal. + At this time, the target Data Link Switch will return a CONTACTED + message to the origin Data Link Switch. + + The CONNECTED state is exited usually under one of two conditions: a + DLC_ERROR signal received from the DLC (e.g., a DISC command received + by the local DLC), or a HALT_DL message received from the other Data + Link Switch (e.g., a DISC command received by the remote DLC). + + A SABME command (i.e., a DLC_RESET signal) received by either Data + Link Switch will also cause the two Data Link Switches to leave the + CONNECTED state and eventually restart a new circuit. + + Note: The IBM 6611 will also send a Test command in order to + restart the data link to the station that sent the SABME command + (i.e., a DLC_START_DL will be issued). + + Following the receipt of a reset signal, the Data Link Switch will + send a RESTART_DL message to the other Data Link Switch and will + enter the CIRCUIT_RESTART state. Upon the receipt of the RESTART_DL + message, the remote Data Link Switch will send a DISC command (i.e., + DLC_HALT_DL signal) and enter the RESTART_PENDING state. + +4.2.2.8 CIRCUIT_RESTART State + + Event Action(s) Next State + ----- --------- ---------- + Receive DL_RESTARTED If Connected: If Connected: + Send CONTACT CONNECT_PENDING, + else: CIRCUIT_ESTABLISHED + Receive DATAFRAME DLC_DGRM + + + +Dixon & Kushi [Page 28] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_DGRM Send DATAFRAME + + The CIRCUIT_RESTART state is entered if a DLC_RESET signal is + received from the local DLC. This was caused by the receipt of a + SABME command while a connection was currently active. A DM response + will be issued to the SABME command and the Data Link Switch will + attempt to restart the end-to- end circuit. + + The CIRCUIT_RESTART state is exited through one of two transitions. + The next state depends upon the time the local DLC has reached the + contacted state (i.e., a DLC_CONTACTED signal is presented) relative + to the receipt of the DL_RESTARTED message. This signal is caused by + the origin station resending the SABME command that initially caused + the DATA Link Switch to enter the CIRCUIT_RESTART state. The two + cases are as follows: + + 1) DL_RESTARTED message received before the + DLC_CONTACTED signal- In this case, the + CIRCUIT_ESTABLISHED state is entered. + + 2) DL_RESTARTED message received after the + DLC_CONTACTED signal- In this case, the + CONNECT_PENDING state is entered. + +4.2.2.9 DISCONNECT_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive DL_HALTED DISCONNECTED + Receive HALT_DL Send DL_HALTED + Receive DATAFRAME DLC_DGRM + DLC_DGRM Send DATAFRAME + + + The DISCONNECT_PENDING state is entered when a DLC_ERROR signal is + received from the local DLC. Upon receipt of this signal, a HALT + message is sent. Once an DL_HALTED message is received, the state is + exited, and the Data Link Switch enters the DISCONNECTED state. + +4.2.2.10 RESTART_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive DATAFRAME DLC_DGRM + DLC_DL_HALTED (See note) Send DL_RESTARTED CIRCUIT_ESTABLISHED + DLC_ERROR Send HALT_DL DISCONNECT_PENDING + DLC_DGRM Send DATAFRAME + + + +Dixon & Kushi [Page 29] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + The RESTART_PENDING state is entered upon the receipt of a RESTART_DL + message from the remote DLS while the local Data Link Switch is in + either the CONTACT_PENDING state or the CONNECTED state. These cause + the local DLC to issue a DISC command. Upon the receipt of the UA + response (DLC_DL_HALTED), the data link is restarted, a DL_RESTARTED + message is returned to the remote DLS, and the CIRCUIT_ESTABLISHED + state is entered. + + Note: The IBM 6611 will send a Test command in order to restart + the data link to the target station (i.e., a DLC_START_DL will be + issued) prior to sending the DL_RESTARTED message. + +4.2.2.11 HALT_PENDING State + + Event Action(s) Next State + ----- --------- ---------- + Receive DATAFRAME DLC_DGRM + DLC_DL_HALTED Send DL_HALTED DISCONNECTED + DLC_ERROR Send DL_HALTED DISCONNECTED + DLC_DGRM Send DATAFRAME + + The HALT_PENDING state is entered upon the receipt of a HALT_DL + message. This causes the local DLC to issue a DISC command. Upon + the receipt of the UA response (DLC_DL_HALTED), a DL_HALTED message + is returned to the remote DLS and the DISCONNECTED state is entered. + +4.3. NetBIOS Datagrams + + The NetBIOS protocols use a number of UI frames for directory + services and the transmission of datagrams. Most of these frames are + directed to a group MAC address (GA) with the routing information + field indicating spanning tree explorer (STE). Two of the frames, + NB_Add_Name_Response and NB_Status_Response, are directed to a + specific MAC address with the routing information field indicating a + specifically routed frame (SRF). The handling of these frames is + summarized in the following table. + + Event Action(s) Comment + ----- --------- ------- + DLC_DGRM (NB Group Address): Send NETBIOS_ANQ Transmitted to all + NB_Add_Name_Query remote DLS + DLC_DGRM (Specific Address): Send NETBIOS_ANR Transmitted to + NB_Add_Name_Response specific DLS + DLC_DGRM (Specific Address): Send DATAFRAME Transmitted to all + NB_Status_Response remote DLS + DLC_DGRM (NB Group Address): Send DATAFRAME Transmitted to all + NB_Name_in_Conflict, remote DLS + NB_Add_Group_Name_Query, + + + +Dixon & Kushi [Page 30] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + NB_Datagram, + NB_Datagram_Broadcast, + NB_Status_Query, + NB_Terminate_Trace + + Table 5. NetBIOS DLC Frames + + The above actions do not apply in the following states: + CIRCUIT_ESTABLISHED, CONTACT_PENDING, CONNECT_PENDING, CONNECTED, and + CIRCUIT_PENDING. The handling of the remaining two UI frames used by + NetBIOS systems, NB_Name_Query and NB_Name_Recognized, are documented + as part of the DLS state machine in the previous section (i.e., + DISCONNECTED and RESOLVE_PENDING states). Furthermore, the handling + of NetBIOS datagrams (i.e., NB_Datagram) sent to a specific MAC + address is also governed by the DLS state machine. + + Note: The IBM 6611 will also issue Test frames during the + exchange of the NetBIOS, NB_Name_Query and NB_Name_Recognized. + This exchange of protocol data units occurs during the start of a + data link and is used to determine the routing information. Most + other implementations of NetBIOS will use the + NB_Name_Query/NB_Name_Recognized exchange to determine routes in + conjunction with resolving the NetBIOS names. These differences + are not reflected in the SSP protocols. + + The handling of the NetBIOS specific SSP messages is given in the + following table. + + Event Action(s) Comment + ----- --------- ------- + NETBIOS_ANQ DLC_DGRM: Routed STE + NB_Add_Name_Query (NB Group Address) + NETBIOS_ANR DLC_DGRM: Routed SRF + NB_Add_Name_Response (Specific MAC Address) + NETBIOS_NQ DLC_DGRM: Routed STE + NB_Name_Query (NB Group Address) + NETBIOS_NR DLC_DGRM: Routed SRF + NB_Name_Recognized (Specific MAC Address) + DATAFRAME DLC_DGRM Routed STE + (If NB_Status_Response: + Specific MAC Address + Else: NB Group Address) + + Table 6. NetBIOS SSP Messages + + The above actions apply to all DLS states. The handling of NetBIOS + datagrams sent within DGRMFRAME messages is governed by the DLS state + machine. The DGRMFRAME message type is employed instead of the + + + +Dixon & Kushi [Page 31] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + + DATAFRAME message type once the end-to-end circuit has been + established. At that time, the message is addressed according to the + pair of Circuit IDs in the message header instead of relying upon the + MAC address information in the token ring header. + +Acknowledgments + + Randall Campbell, David Miller, Gene Cox, Ravi Periasamy, and The + Ghost of Christmas Past. + +References + + 1) ISO 8802-2/IEEE Std 802.2 International Standard, + Information Processing Systems, Local Area Networks, Part 2: + Logical Link Control, December 31, 1989 + + 2) The NETBIOS Frames Protocol, IBM Local Area Technical + Reference, SC30-3383-03, Chapter 5, December 1990 + + 3) ISO/IEC DIS 10038 DAM 2, MAC Bridging, Source Routing + Supplement, December 1991 + +Security Considerations + + Security issues are not discussed in this memo. + + + + + + + + + + + + + + + + + + + + + + + + + + +Dixon & Kushi [Page 32] + +RFC 1434 DLS: Switch-to-Switch Protocol March 1993 + + +Authors' Addresses + + Roy C. Dixon + IBM Networking Systems + Department B57, Building 060 + P.O. Box 12195 + Research Triangle Park, NC 27709 + + Phone: (919) 543-3380 + EMail: rcdixon@ralvmg.vnet.ibm.com + + + David M. Kushi + IBM Research Division + T. J. Watson Research Center + Room H0-C07 + 30 Saw Mill River Road + Hawthorne, NY 10532 + + Phone: (914) 784-7815 + EMail: kushi@watson.ibm.com + + Note: Any questions or comments relative to the contents of this RFC + should be sent to the following Internet address: + dlsw@ralvma.vnet.ibm.com. This address will be used to coordinate + the handling of responses. + + + + + + + + + + + + + + + + + + + + + + + + + +Dixon & Kushi [Page 33] +
\ No newline at end of file |