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/rfc2166.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2166.txt')
-rw-r--r-- | doc/rfc/rfc2166.txt | 1907 |
1 files changed, 1907 insertions, 0 deletions
diff --git a/doc/rfc/rfc2166.txt b/doc/rfc/rfc2166.txt new file mode 100644 index 0000000..eef4f42 --- /dev/null +++ b/doc/rfc/rfc2166.txt @@ -0,0 +1,1907 @@ + + + + + + +Network Working Group D. Bryant +Request for Comments: 2166 3Com Corp +Category: Informational P. Brittain + Data Connection Ltd. + June 1997 + + APPN Implementer's Workshop + Closed Pages Document + + DLSw v2.0 Enhancements + +Status of this Memo + +This memo provides information for the Internet community. This memo +does not specify an Internet standard of any kind. Distribution of +this memo is unlimited. + +Abstract + + This document specifies + + - a set of extensions to RFC 1795 designed to improve the scalability + of DLSw + - clarifications to RFC 1795 in the light of the implementation + experience to-date. + + It is assumed that the reader is familiar with DLSw and RFC 1795. No + effort has been made to explain these existing protocols or + associated terminology. + + This document was developed in the DLSw Related Interest Group (RIG) + of the APPN Implementers Workshop (AIW). If you would like to + participate in future DLSw discussions, please subscribe to the DLSw + RIG mailing lists by sending a mail to majordomo@raleigh.ibm.com + specifying 'subscribe aiw-dlsw' as the body of the message. + +Table of Contents + + 1. INTRODUCTION ................................................ 3 + 2. HALT REASON CODES............................................ 3 + 3. SCOPE OF SCALABILITY ENHANCEMENTS............................ 4 + 4. OVERVIEW OF SCALABILITY ENHANCEMENTS......................... 6 + 5. MULTICAST GROUPS AND ADDRESSING.............................. 7 + 5.1 USING MULTICAST GROUPS...................................... 8 + 5.2 DLSW MULTICAST ADDRESSES.................................... 8 + 6. DLSW MESSAGE TRANSPORTS...................................... 8 + 6.1 TCP/IP CONNECTIONS ON DEMAND................................ 9 + 6.1.1 TCP CONNECTIONS ON DEMAND RACE CONDITIONS................ 9 + + + +Bryant & Brittain Informational [Page 1] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 6.2 SINGLE SESSION TCP/IP CONNECTIONS........................... 9 + 6.2.1 EXPEDITED SINGLE SESSION TCP/IP CONNECTIONS.............. 10 + 6.2.1.1 TCP PORT NUMBERS...................................... 10 + 6.2.1.2 TCP CONNECTION SETUP.................................. 10 + 6.2.1.3 SINGLE SESSION SETUP RACE CONDITIONS.................. 10 + 6.2.1.4 TCP CONNECTIONS WITH NON-MULTICAST CAPABLE DLSW PEERS. 11 + 6.3 UDP DATAGRAMS............................................... 12 + 6.3.1 VENDOR SPECIFIC FUNCTIONS OVER UDP....................... 12 + 6.3.2 UNICAST UDP DATAGRAMS.................................... 12 + 6.3.3 MULTICAST UDP DATAGRAMS.................................. 13 + 6.4 UNICAST UDP DATAGRAMS IN LIEU OF IP MULTICAST............... 13 + 6.5 TCP TRANSPORT............................................... 14 + 7. MIGRATION SUPPORT............................................ 14 + 7.1 CAPABILITIES EXCHANGE....................................... 14 + 7.2 CONNECTING TO NON-MULTICAST CAPABLE NODES................... 15 + 7.3 COMMUNICATING WITH MULTICAST CAPABLE NODES.................. 15 + 8. SNA SUPPORT.................................................. 16 + 8.1 ADDRESS RESOLUTION.......................................... 16 + 8.2 EXPLORER FRAMES............................................. 16 + 8.3 CIRCUIT SETUP............................................... 17 + 8.4 EXAMPLE SNA SSP MESSAGE SEQUENCE............................ 17 + 8.5 UDP RELIABILITY............................................. 19 + 8.5.1 RETRIES.................................................. 19 + 9. NETBIOS...................................................... 20 + 9.1 ADDRESS RESOLUTION.......................................... 21 + 9.2 EXPLORER FRAMES............................................. 21 + 9.3 CIRCUIT SETUP............................................... 21 + 9.4 EXAMPLE NETBIOS SSP MESSAGE SEQUENCE........................ 22 + 9.5 MULTICAST RELIABILITY AND RETRIES........................... 24 + 10. SEQUENCING.................................................. 24 + 11. FRAME FORMATS............................................... 25 + 11.1 MULTICAST CAPABILITIES CONTROL VECTOR...................... 25 + 11.1.1 DLSW CAPABILITIES NEGATIVE RESPONSE..................... 26 + 11.2 UDP PACKETS................................................ 26 + 11.3 VENDOR SPECIFIC UDP PACKETS................................ 27 + 12. COMPLIANCE STATEMENT........................................ 28 + 13. SECURITY CONSIDERATIONS..................................... 29 + 14. ACKNOWLEDGEMENTS............................................ 29 + 15. AUTHORS' ADDRESSES.......................................... 30 + 16. APPENDIX - CLARIFICATIONS TO RFC 1795....................... 31 + + + + + + + + + + + +Bryant & Brittain Informational [Page 2] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 1. Introduction + + This document defines v2.0 of Data Link Switching (DLSw) in the form + of a set of enhancements to RFC 1795. These enhancements are designed + to be fully backward compatible with existing RFC 1795 + implementations. As a compatible set of enhancements to RFC 1795, + this document does not replace or supersede RFC 1795. + + The bulk of these enhancements address scalability issues in DLSw + v1.0. Reason codes have also been added to the HALT_DL and + HALT_DL_NOACK SSP messages in order to improve the diagnostic + information available. + + Finally, the appendix to this document lists a number of + clarifications to RFC 1795 where the implementation experience to- + date has shown that the original RFC was ambiguous or unclear. These + clarifications should be read alongside RFC 1795 to obtain a full + specification of the base v1.0 DLSw standard. + +2. HALT Reason codes + + RFC 1795 provides no mechanism for a DLSw to communicate to its peer + the reason for dropping a circuit. DLSw v2.0 adds reason code fields + to the HALT_DL and HALT_DL_NOACK SSP messages to carry this + information. + + The reason code is carried as 6 bytes of data after the existing SSP + header. The format of these bytes is as shown below. + + Byte Description + 0-1 Generic HALT reason code in byte normal format + + 2-5 Vendor-specific detailed reason code + + The generic HALT reason code takes one of the following decimal + values (which are chosen to match the disconnect reason codes + specified in the DLSw MIB). + + 1 - Unknown error + 2 - Received DISC from end-station + 3 - Detected DLC error with end-station + 4 - Circuit-level protocol error (e.g., pacing) + 5 - Operator-initiated (mgt station or local console) + + The vendor-specific detailed reason code may take any value. + + + + + + +Bryant & Brittain Informational [Page 3] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + All V2.0 DLSws must include this information on all HALT_DL and + HALT_DL_NOACK messages sent to v2.0 DLSw peers. For backwards + compatibility with RFC 1795, DLSw V2.0 implementations must also + accept a HALT_DL or HALT_DL_NOACK message received from a DLSw peer + that does not carry this information (i.e. RFC 1795 format for these + SSP messages). + +3. Scope of Scalability Enhancements + + The DLSw Scalability group of the AIW identified a number of + scalability issues associated with existing DLSw protocols as defined + in RFC 1795: + + - Administration + + RFC 1795 implies the need to define the transport address of all + DLSw peers at each DLSw. In highly meshed situations (such as + those often found in NetBIOS networks), the resultant + administrative burden is undesirable. + + - Address Resolution + + RFC 1795 defines point to point TCP (or other reliable transport + protocol) connections between DLSw peers. When attempting to + discover the location of an unknown resource, a DLSw sends an + address resolution packet to each DLSw peer over these connections. + In highly meshed configurations, this can result in a very large + number of packets in the transport network. Although each packet + is sent individually to each DLSw peer, they are each identical in + nature. Thus the transport network is burdened with excessive + numbers of identical packets. Since the transport network is most + commonly a wide area network, where bandwidth is considered a + precious resource, this packet duplication is undesirable. + + - Broadcast Packets + + In addition to the address resolution packets described above, RFC + 1795 also propagates NetBIOS broadcast packets into the transport + network. The UI frames of NetBIOS are sent as LAN broadcast + packets. RFC 1795 propagates these packets over the point to point + transport connections to each DLSw peer. In the same manner as + above, this creates a large number of identical packets in the + transport network, and hence is undesirable. Since NetBIOS UI + frames can be sent by applications, it is difficult to predict or + control the rate and quantity of such traffic. This compounds the + undesirability of the existing RFC 1795 propagation method for + these packets. + + + + +Bryant & Brittain Informational [Page 4] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + - TCP (transport connection) Overhead + + As defined in RFC 1795, each DLSw maintains a transport connection + to its DLSw peers. Each transport connection guarantees in order + packet delivery. This is accomplished using acknowledgment and + sequencing algorithms which require both CPU and memory at the DLSw + endpoints in direct proportion to the number transport connections. + The DLSw Scalability group has identified two scenarios where the + number of transport connections can become significant resulting in + excessive overhead and corresponding equipment costs (memory and + CPU). The first scenario is found in highly meshed DLSw + configurations where the number of transport connections + approximates n2 (where n is the number of DLSw peers). This is + typically found in DLSw networks supporting NetBIOS. The second + scenario is found in networks where many remote locations + communicate to few central sites. In this case, the central sites + must support n transport connections (where n is the number of + remote sites). In both scenarios the resultant transport + connection overhead is considered undesirable depending upon the + value of n. + + - LLC2 overhead + + RFC 1795 specifies that each DLSw provides local termination for + the LLC2 (SDLC or other SNA reliable data link protocol) sessions + traversing the SSP. Because these reliable data links provide + guaranteed in order packet delivery, the memory and CPU overhead of + maintaining these connections can also become significant. This + is particularly undesirable in the second scenario described above, + because the number of reliable connections maintained at the + central site is the aggregate of the connections maintained at each + remote site. + + It is not the intent of this document to address all the undesirable + scalability issues associated with RFC 1795. This paper identifies + protocol enhancements to RFC 1795 using the inherent multicast + capabilities of the underlying transport network to improve the + scalability of RFC 1795. It is believed that the enhancements + defined, herein, address many of the issues identified above, such as + administration, address resolution, broadcast packets, and, to a + lesser extent, transport overhead. This paper does not address LLC2 + overhead. Subsequent efforts by the AIW and/or DLSw Scalability + group may address the unresolved scalability issues. + + + + + + + + +Bryant & Brittain Informational [Page 5] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + While it is the intent of this paper to accommodate all transport + protocols as best as is possible, it is recognized that the multicast + capabilities of many protocols is not yet well defined, understood, + or implemented. Since TCP is the most prevalent DLSw transport + protocol in use today, the DLSw Scalability group has chosen to focus + its definition around IP based multicast services. This document only + addresses the implementation detail of IP based multicast services. + + This proposal does not consider the impacts of IPv6 as this was + considered too far from widespread use at the time of writing. + +4. Overview of Scalability Enhancements + + This paper describes the use of multicast services within the + transport network to improve the scalability of DLSw based + networking. There are only a few main components of this proposal: + + - Single session TCP connections + + RFC 1795 defines a negotiation protocol for DLSw peers to choose + either two unidirectional or one bi-directional TCP connection. + DLSws implementing the enhancements described in this document must + support and use(whenever required and possible)a single bi- + directional TCP connection between DLSw peers. That is to say that + the single tunnel negotiation support of RFC 1795 is a prerequisite + function to this set of enhancements. Use of two unidirectional TCP + connections is only allowed (and required)for migration purposes + when communicating with DLSw peers that do not implement these + enhancements. + + This document also specifies a faster method for bringing up a + single TCP connection between two DLSw peers than the negotiation + used in RFC 1795. This faster method, detailed in section 6.2.1, + must be used where both peers are known to support DLSw v2.0. + + - TCP connections on demand + + Two DLSw peers using these enhancements will only establish a TCP + connection when necessary. SSP connections to DLSw peers which do + not implement these enhancements are assumed to be established by + the means defined in RFC 1795. DLSws implementing v2.0 utilize UDP + based transport services to send address resolution packets + (CANUREACH_ex, NETBIOS_NQ_ex, etc.). If a positive response is + received, then a TCP connection is only established to the + associated DLSw peer if one does not already exist. + Correspondingly, TCP connections are brought down when there are no + circuits to a DLSw peer for an implementation defined period of + time. + + + +Bryant & Brittain Informational [Page 6] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + - Address resolution through UDP + + The main thrust of this paper is to utilize non-reliable transport + and the inherent efficiencies of multicast protocols whenever + possible and applicable to reduce network overhead. Accordingly, + the address resolution protocols of SNA and NetBIOS are sent over + the non-reliable transport of IP, namely UDP. In addition, IP + multicast/unicast services are used whenever address resolution + packets must be sent to multiple destinations. This avoids the need + to maintain TCP SSP connections between two DLSw peers when no + circuits are active. CANUREACH_ex and ICANREACH_ex packets can be + sent to all the appropriate DLSw peers without the need for pre- + configured peers or pre-established TCP/IP connections. In + addition, most multicast services (including TCP's MOSPF, DVMRP, + MIP, etc.) replicate and propagate messages only as necessary to + deliver to all multicast members. This avoids duplication and + excessive bandwidth consumption in the transport network. + + To further optimize the use of WAN resources, address resolution + responses are sent in a directed fashion (i.e., unicast) via UDP + transport whenever possible. This avoids the need to setup or + maintain TCP connections when they are not required. It also + avoids the bandwidth costs associated with broadcasting. + + Note: It is also permitted to send some address resolution traffic + over existing TCP connections. The conditions under which this is + permitted are detailed in section 7. + + - NetBIOS broadcasts over UDP + + In the same manner as above, NetBIOS broadcast packets are sent via + UDP (unicast and multicast) whenever possible and appropriate. This + avoids the need to establish TCP connections between DLSw peers + when there are no circuits required. In addition, bandwidth in + the transport network is conserved by utilizing the efficiencies + inherent to multicast service implementation. Details covering + identification of these packets and proper propagation methods are + described in section 10. + +5. Multicast Groups and Addressing + + IP multicast services provides an unreliable datagram oriented + delivery service to multiple parties. Communication is accomplished + by sending and/or listening to specific 'multicast' addresses. When + a given node sends a packet to a specific address (defined to be + within the multicast address range), the IP network (unreliably) + delivers the packet to every node listening on that address. + + + + +Bryant & Brittain Informational [Page 7] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + Thus, DLSws can make use of this service by simply sending and + receiving (i.e., listening for) packets on the appropriate multicast + addresses. With careful planning and implementation, networks can be + effectively partitioned and network overhead controlled by sending + and listening on different addresses groups. It is not the intent of + this paper to define or describe the techniques by which this can be + accomplished. It is expected that the networking industry (vendors + and end users alike) will determine the most appropriate ways to make + use of the functions provided by use of DLSw multicast transport + services. + +5.1 Using Multicast Groups + + The multicast addressing as described above can be effectively used + to limit the amount of broadcast/multicast traffic in the network. + It is not the intent of this document to describe how individual + DLSw/SSP implementations would assign or choose group addresses. The + specifics of how this is done and exposed to the end user is an issue + for the specific implementor. In order to provide for multivendor + interoperability and simplicity of configuration, however, this paper + defines a single IP multicast address, 224.0.10.000, to be used as a + default DLSw multicast address. If a given implementation chooses to + provide a default multicast address, it is recommended this address + be used. In addition, this address should be used for both + transmitting and receiving of multicast SSP messages. Implementation + of a default multicast address is not, however, required. + +5.2 DLSw Multicast Addresses + + For the purpose of long term interoperability, the AIW has secured a + block of IP multicast addresses to be used with DLSw. These + addresses are listed below: + + Address Range Purpose + -------------------------------------------------------------------- + 224.0.10.000 Default multicast address + 224.0.10.001-191 User defined DLSw multicast groups + 224.0.10.192-255 Reserved for future use by the DLSw RIG in DLSw + enhancements + +6. DLSw Message Transports + + With the introduction of DLSw Multicast Protocols, SSP messages are + now sent over two distinct transport mechanisms: TCP/IP connections + and UDP services. Furthermore, the UDP datagrams can be sent to two + different kinds of IP addresses: unique IP addresses (generally + associated with a specific DLSw), and multicast IP addresses + (generally associated with a group of DLSw peers). + + + +Bryant & Brittain Informational [Page 8] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +6.1 TCP/IP Connections on Demand + + As is the case in RFC 1795, TCP/IP connections are established + between DLSw peers. Unlike RFC 1795, however, TCP/IP connections are + only established to carry reliable circuit data (i.e., LLC2 based + circuits). Accordingly, a TCP/IP connection is only established to a + given DLSw peer when the first circuit to that DLSw is required + (i.e., the origin DLSw must send a CANUREACH_CS to a target DLSw peer + and there is no existing TCP connection between the two). In + addition, the TCP/IP connection is brought down an implementation + defined amount of time after the last active (not pending) circuit + has terminated. In this way, the overhead associated with + maintaining TCP connections is minimized. + + With the advent of TCP connections on demand, the activation and + deactivation of TCP connections becomes a normal occurrence as + opposed to the exception event it constitutes in RFC 1795. For this + reason, it is recommended that implementations carefully consider the + value of SNMP traps for this condition. + +6.1.1 TCP Connections on Demand Race Conditions + + Non-circuit based SSP packetsn (e.g.,CANUREACH_ex, etc.) may still be + sent/received over TCP connections after all circuits have been + terminated. Taking this into account implementations should still + gracefully terminate these TCP connections once the connection is no + longer supporting circuits. This may require an implementation to + retransmit request frames over UDP when no response to a TCP based + unicast request is received and the TCP connection is brought down. + This is not required in the case of multicast requests as these are + received over the multicast transport mechanism. + +6.2 Single Session TCP/IP Connections + + RFC 1795 defines the use of two unidirectional TCP/IP sessions + between any pair of DLSw peers using read port number 2065 and write + port number 2067. Additionally, RFC 1795 allows for implementations + to optionally use only one bi-directional TCP/IP session. Using one + TCP/IP session between DLSw peers is believed to significantly + improve the performance and scalability of DLSw protocols. + Performance is improved because TCP/IP acknowledgments are much more + likely to be piggy-backed on real data when TCP/IP sessions are used + bi-directionally. Scalability is improved because fewer TCP control + blocks, state machines, and associated message buffers are required. + For these reasons, the DLSw enhancements defined in this paper + REQUIRE the use of single session TCP/IP sessions. + + + + + +Bryant & Brittain Informational [Page 9] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + Accordingly, DLSws implementing these enhancements must carry the TCP + Connections Control Vector in their Capabilities Exchange. In + addition, the TCP Connections Control Vector must indicate support + for 1 connection. + +6.2.1 Expedited Single Session TCP/IP Connections + + In RFC 1795, single session TCP/IP connections are accomplished by + first establishing two uni-directional TCP connections, exchanging + capabilities, and then bringing down one of the connections. In + order to avoid the unnecessary flows and time delays associated with + this process, a new single session bi-directional TCP/IP connection + establishment algorithm is defined. + +6.2.1.1 TCP Port Numbers + + DLSws implementing these enhancements will use a TCP destination port + of 2067 (as opposed to RFC 1795 which uses 2065) for single session + TCP connections. The source port will be a random port number using + the established TCP norms which exclude the possibility of either + 2065 or 2067. + +6.2.1.2 TCP Connection Setup + + DLSw peers implementing these enhancements will establish a single + session TCP connection whenever the associated peer is known to + support this capability. To do this, the initiating DLSw simply + sends a TCP setup request to destination port 2067. The receiving + DLSw responds accordingly and the TCP three way handshake ensues. + Once this handshake has completed, each DLSw is notified and the DLSw + capabilities exchange ensues. As in RFC 1795, no flows may take + place until the capabilities exchange completes. + +6.2.1.3 Single Session Setup Race Conditions + + The new expedited single session setup procedure described above + opens up the possibility of a race condition that occurs when two + DLSw peers attempt to setup single session TCP connections to each + other at the same time. To avoid the establishment of two TCP + connections, the following rules are applied when establishing + expedited single session TCP connections: + + 1.If an inbound TCP connect indication is received on port 2067 while + an outbound TCP connect request (on port 2067) to the same DLSw (IP + address) is in process or outstanding, the DLSw with the higher IP + address will close or reject the connection from the DLSw with the + lower IP address. + + + + +Bryant & Brittain Informational [Page 10] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 2.To further expedite the process, the DLSw with the lower IP address + may choose (implementation option) to close its connection request + to the DLSw with the higher address when this condition is + detected. + 3.If the DLSw with the lower IP address has already sent its + capabilities exchange request on its connection to the DLSw with + the higher IP address, it must resend its capabilities exchange + request over the remaining TCP connection from its DLSw peer (with + the higher IP address). + 4.The DLSw with the higher IP address must ignore any capabilities + exchange request received over the TCP connection to be terminated + (the one from the DLSw with the lower IP address). + +6.2.1.4 TCP Connections with Non-Multicast Capable DLSw peers + + During periods of migration, it is possible that TCP connections + between multicast capable and non-multicast capable DLSw peers will + occur. It is also possible that multicast capable DLSws may attempt + to establish TCP connections with partners of unknown capabilities + (e.g., statically defined peers). To handle these conditions the + following additional rules apply to expedited single session TCP + connection setup: + + 1.If the capability of a DLSw peer is not known, an implementation + may choose to send the initial TCP connect request to either port + 2067 (expedited single session setup) or port 2065 (standard RFC + 1795 TCP setup). + 2.If a multicast capable DLSw receives an inbound TCP connect request + on port 2065 while processing an outbound request on 2067 to the + same DLSw, the sending DLSw will terminate its 2067 request and + respond as defined in RFC 1795 with an outbound 2065 request + (standard RFC 1795 TCP setup). + 3.If a multicast capable DLSw receives an indication that the DLSw + peer is not multicast capable (the port 2067 setup request times + out or a port not recognized rejection is received), it will send + another connection request using port 2065 and the standard RFC + 1795 session setup protocol. + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 11] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +6.3 UDP Datagrams + + As mentioned above, UDP datagrams can be sent two different ways: + unicast (e.g., sent to a single unique IP address) or multicast + (i.e., sent to an IP multicast address). Throughout this document, + the term UDP datagram will be used to refer to SSP messages sent over + UDP, while unicast and multicast SSP messages will refer to the + specific type/method of UDP packet transport. In either case, + standard UDP services are used to transport these packets. In order + to properly parse the inbound UDP packets and deliver them to the SSP + state machines, all DLSw UDP packets will use the destination port of + 2067. + + In addition, the checksum function of UDP remains optional for DLSw + SSP messages. It is believed that the inherent CRC capabilities of + all data link transports will adequately protect SSP packets during + transmission. And the incremental exposure to intermediate nodal + data corruption is negligible. For further information on UDP packet + formats see the “Frame Formats” section. + +6.3.1 Vendor Specific Functions over UDP + + In order to accommodate vendor specific capabilities over UDP + transport, a new SSP packet format has been defined. This new packet + format is required because message traffic of this type is not + necessarily preceded by a capabilities exchange. Accordingly, DLSw's + wishing to invoke a vendor specific function may send out this new + SSP packet format over UDP. + + Because this packet can be sent over TCP connections and non- + multicast capable nodes may not be able to recognize it, + implementations may only send this packet over TCP to DLSw peers + known to understand this packet format (i.e., multicast capable). To + avoid this situation in the future, DLSws implementing these + enhancements must ignore SSP packets with an unrecognized DLSw + version number in the range of x'31' to x'3F'. Further information + and the precise format for this new packet type is described below in + the “Frame Formats” section. + +6.3.2 Unicast UDP Datagrams + + Generically speaking, a unicast UDP datagram is utilized whenever an + SSP message (not requiring reliable transport) must be sent to a + unique set (not all) of DLSw peers. This avoids the overhead of + having to establish and maintain TCP connections when they are not + required for reliable data transport. + + + + + +Bryant & Brittain Informational [Page 12] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + A typical example of when unicast UDP might be used would be an + ICANREACH_ex response from a peer DLSw (with which no TCP connection + currently exists). In this case, the sending DLSw knows the IP + address of the intended receiver and can simply send the response via + unicast UDP. In addition, there are a number of NetBIOS cases where + unicast UDP is used to handle UI frames directed to a specific DLSw + (e.g., NetBIOS STATUS_RESPONSE). Further detail is provided in the + NetBIOS section of this document. + +6.3.3 Multicast UDP Datagrams + + In a broad sense, multicast UDP datagrams are used whenever a given + SSP message must be sent to multiple DLSw peers. In the case of SNA, + this is primarily the CANUREACH_ex packets. In the case of NetBIOS, + multicast datagrams are used to send broadcast UI frames such as + NetBIOS user datagrams and broadcast datagrams. + + Note, however, it is sometimes possible to avoid broadcasting certain + NetBIOS frames that would otherwise be broadcast in the LAN + environment. This is typically accomplished using name caching + techniques not described in this paper. In cases of this type when a + single destination DLSw can be determined, unicast transport can be + used to send the 'broadcast' NetBIOS frame to a single destination. + A more detailed listing of NetBIOS SSP packets and transport methods + can be found in the NetBIOS section of this document. + +6.4 Unicast UDP Datagrams in Lieu of IP Multicast + + Because the use of IP multicast services is actually a function of IP + itself and not DLSw proper, it is possible for implementations to + simply make use of the UDP transport mechanisms described in this + paper without making direct use of the IP multicast function. While + this is not considered to be as efficient as using multicast + transport mechanisms, this practice is not explicitly prohibited. + + Implementations which choose to make use of UDP transport in this + manner must first know the IP address of all the potential target + DLSw peers and send individual unicast packets to each. How this + information is obtained and/or maintained is outside the scope of + this paper. + + As a matter of compliance, implementers need not send SSP packets + outbound over UDP as there are some conditions where this may not be + necessary or desirable. It is, however, required that implementers + provide an option to receive SSP packets over UDP. + + + + + + +Bryant & Brittain Informational [Page 13] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +6.5 TCP Transport + + Despite the addition of UDP based packet transport, TCP remains the + fundamental form of communications between DLSw peers. In + particular, TCP is still used to carry all LLC2 based circuit data. + + Throughout this document wherever UDP unicast (not multicast) is + discussed, the reader should be aware that TCP may be used instead. + Moreover, it is strongly recommended that TCP be used in preference + to UDP whenever a TCP connection to the destination already exists. + Implementations, however, should be prepared to receive SSP packets + from either transport (TCP or UDP). + +7. Migration Support + + It is anticipated that some networks will experience a transition + stage where both RFC 1795 (referred to as 'non-multicast' DLSws) and + It will be important for these two DLSw node types to interoperate + and thus the following accommodations for non-multicast DLSws are + required: + +7.1 Capabilities Exchange + + In order to guarantee both backward and forward capability, DLSws + which implement these multicast enhancements will carry a “Multicast + Capabilities” Control Vector in their capabilities exchange (see RFC + 1795 for an explanation of capabilities exchange protocols). + Presence of the Multicast Capabilities control vector indicates + support for the protocols defined in this document on a per DLSw peer + basis. Conversely, lack of the Multicast Capabilities control vector + indicates no support for these extensions on a per DLSw peer basis. + + Additionally, nodes implementing these enhancement will carry a + modified DLSw Version control vector (x'82') indicating support for + version 2 release 0. + + Lastly, presence of these control vectors mandates a TCP Connections + Control Vector indicating support for 1 TCP connection in the same + Capabilities exchange. + + If a multicast capable DLSw receives a Capabilities Exchange CV that + includes the Multicast Capabilites CV but does not meet the above + criteria, it must reject the capabilities exchange by sending a + negative response as described in section 11.1.1. + + + + + + + +Bryant & Brittain Informational [Page 14] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +7.2 Connecting to Non-Multicast Capable Nodes + + It is assumed that TCP connections to DLSw peers which do not support + multicast services are established by some means outside the scope of + this paper (i.e., non-multicast partner addresses are configured by + the customer). TCP connections must be established and maintained to + down level nodes in the exact same manner as RFC 1795 requires, + establishes, and maintains them. And because non-multicast DLSw + peers will not indicate support for multicast services in their + capabilities exchange, a multicast capable DLSw will know all its + non-multicast peers. + +7.3 Communicating with Multicast Capable Nodes + + Because non-multicast nodes will not receive SSP frames via UDP + (unicast or multicast) transmission, SSP messages to these DLSw peers + must be sent over TCP connections. Therefore, nodes which implement + the multicast protocol enhancements must keep track of which DLSw + peers do not support multicast extensions (as indicated in the + capabilities exchange). When a given packet is sent out via + multicast services, it must also be sent over multicast UDP(to reach + other multicast capable DLSw peers) and over the TCP connection to + each non-multicast node. And although the multicast service requires + periodic retransmissions (for reliability reasons), this is not the + case with TCP connections to non-multicast nodes. Therefore, + multicast capable DLSws should not resend SSP packets over TCP + transport connection but rather, rely upon TCP to recover any lost + packets. Furthermore, communications with non-multicast nodes should + be in exact compliance with RFC 1795 protocols. + + When sending a unicast UDP message, it is important to know that the + destination DLSw supports multicast services. This knowledge can be + obtained from previous TCP connections/capabilities exchanges or + inferred from a previously received UDP message, but how this + information is obtained is outside the scope of this paper. In the + latter case, if the DLSw is non-multicast, then there would be a TCP + connection to it and it would be known to be non-multicast. If it is + multicast capable and a TCP connection is in existence, then its + level is known (via the prior capabilities exchange). If its + capabilities are not known and there is not an existing TCP + connection, then it can be implied to be multicast capable by virtue + of a cached entry but no active TCP connection (e.g., TCP peer on + demand support). This inference, however, could be erroneous in + cases where the TCP connection (to a non-multicast DLSw) has failed + for some reason. But normal UDP based unicast verification mechanisms + will detect no active path to the destination and circuit setup will + proceed correctly (i.e., succeed or fail in accordance with true + connectivity). + + + +Bryant & Brittain Informational [Page 15] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +8. SNA Support + + Note: This paper does not attempt to address the unique issues + presented by SNA/HPR and its non-ERP data links + + In SNA protocols the generalized packet sequence of interest is a + test frame exchange followed by an XID exchange. In all cases, DLSw + uses the CANUREACH_ex and ICANREACH_ex SSP packets to complete + address resolution and circuit establishment. The following table + describes how these packets are transported via UDP between two + multicast capable DLSw peers. + + Transport + Message Event Action Mechanism Retry + -------------------------------------------------------------------- + TEST SEND CANUREACH_ex Multicast/Unicast Yes + TEST RESPONSE SEND ICANREACH_ex Unicast No + + + The following paragraphs provide more detail on how UDP transport and + multicast protocol enhancements are used to establish SNA data links. + +8.1 Address Resolution + + When a DLSw receives an incoming test frame from an attached data + link, the assumption is that this is an exploratory frame in + preparation for an XID exchange and link activation. The DLSw must + determine a correlation between the destination LSAP (mac and sap + pairing) and some other DLSw in the transport network. This paper + generically refers to this process as “address resolution”. + +8.2 Explorer frames + + Address resolution messages may be sent over a TCP connection to a + multicast capable DLSw peer if such a connection already exists in + order that they take advantage of the guaranteed delivery of TCP. + This is particularly recommended for ICANREACH_ex frames. + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 16] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +8.3 Circuit Setup + + Circuit setup is accomplished in the same manner as described in RFC + 1795. More specifically, CANUREACH_cs, ICANREACH_cs, REACH_ACK, + XIDFRAME, etc. are all sent over the TCP connection to the + appropriate DLSw. This, of course, assumes the existence of a TCP + connection between the DLSw peers. If the sending DLSw (sending a + CANUREACH_cs ) detects no active TCP connection to the DLSw peer, + then a TCP connection setup is initiated and the packet sent. All + other circuit setup (and takedown) related sequences are now passed + over the TCP connection. + +8.4 Example SNA SSP Message Sequence + + The following diagram provides an example sequence of flows + associated with an SNA LLC circuit setup. All flows and states + described below correspond precisely with those defined in RFC 1795. + The only exception is the addition of a TCP connection setup and DLSw + capabilities exchange that occurs when the origin DLSw must send a + CANUREACH_CS and no TCP connection yet exists to the target DLSw + peer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 17] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + ====== ___ ====== + | | --------- __/ \__ --------- | | + | | __| _|_ |__ / IP \ __| _|_ |__ | | + ====== | | | < Network > | | | ====== +/______\ --------- \__ __/ --------- /______\ + Origin Origin DLSw \___/ Target DLSw Target + Station partner partner Station + + disconnected disconnected + +TEST_cmd DLC_RESOLVE_C CANUREACH_ex TEST_cmd +-----------> -----------> -----------> ----------> + TEST_rsp DLC_RESOLVE_R ICANREACH_ex TEST_rsp + <--------- <----------- <----------- <---------- +null XID DLC_XID +-----------> -----------> + circuit_start + + TCP Connection Setup + <-------------> + Capabilities Exch. + <-------------> + + CANUREACH_cs DLC_START_DL + -----------> -----------> + resolve_pending + ICANREACH_cs DLC_DL_STARTED + <----------- <------------- + circuit_established circuit_pending + REACH_ACK + -----------> circuit_established + + XIDFRAME DLC_XID null XID + -----------> ---------> --------> + XID DLC_XID XIDFRAME DLC_XID XID + <-------- <----------- <----------- <----------- <-------- + XIDs DLC_XIDs XIDFRAMEs DLC_XIDs XIDs +<----------> <----------> <------------> <------------> <---------> +SABME DLC_CONTACTED CONTACT DLC_CONTACT SABME +-----------> -----------> -----------> -----------> --------> + connect_pending contact_pending + + UA DLC_CONTACT CONTACTED DLC_CONTACTED UA + <--------- <----------- <----------- <----------- <-------- + connected connected +IFRAMEs DLC_INFOs IFRAMEs DLC_INFOs IFRAMEs +<----------> <-----------> <------------> <------------> <--------> + + + + +Bryant & Brittain Informational [Page 18] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +8.5 UDP Reliability + + It is important to note, that UDP (unicast and multicast)transport + services do not provide a reliable means of delivery. Existing RFC + 1795 protocols guarantee the delivery (or failure notification) of + CANUREACH_ex and ICANREACH_ex messages. UDP will not provide the + same level of reliability. It is, therefore, possible that these + messages may be lost in the network and (CANUREACH_ex) retries will + be necessary. + +8.5.1 Retries + + Test Frames are generally initiated by end stations every few + seconds. Many existing RFC 1795 DLSw implementations take advantage + of the reliable SSP TCP connections and filter out end station Test + frame retries when a CANUREACH_ex is outstanding. Given the + unreliable nature of UDP transport for these messages, however, this + filtering technique may not be advisable. Neither RFC 1795 nor this + paper address this issue specifically. It is simply noted that the + UDP transport mechanism is unreliable and implementations should take + this into account when determining a scheme for Test frame filtering + and explorer retries. Accordingly, the “Retry” section in the table + above only serves as an indicator of situations where retries may be + desirable and/or necessary, but does not imply any requirement to + implement retries. Also note, that retry logic only applies to non- + response type packets. It is not appropriate to retry response type + SSP packets (i.e., ICANREACH_ex) as there is no way of knowing if the + original response was ever received (and whether retry is necessary). + So in the case of SNA, CANUREACH_ex messages may need retry logic and + ICANREACH_ex messages do not. + + + + + + + + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 19] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +9. NetBIOS + + With the introduction of DLSw Multicast transport, all multicast + NetBIOS UI frames are carried outside the TCP connections between + DLSw peers (i.e., via UDP datagrams). The following table defines + the various NetBIOS UI frames and how they are transported via UDP + between multicast capable DLSw peers: + + Transport +Message Event Action Mechanism Retry +--------------------------------------------------------------------------- +ADD_GROUP_NAME_QUERY SEND DATAFRAME Multicast Yes +ADD_NAME_QUERY SEND NETBIOS_ANQ Multicast Yes +ADD_NAME_RESPONSE SEND NETBIOS_ANR Unicast1 No +NAME_IN_CONFLICT SEND DATAFRAME Multicast No +STATUS_QUERY SEND DATAFRAME Unicast/Multicast(2) Yes +STATUS_RESPONSE SEND DATAFRAME Multicast(5) No +TERMINATE_TRACE (x'07') SEND DATAFRAME Multicast No +TERMINATE_TRACE (X'13') SEND DATAFRAME Multicast No +DATAGRAM SEND DATAFRAME(3) Unicast/Multicast(2) No +DATAGRAM_BROADCAST SEND DATAFRAME Multicast No +NAME_QUERY SEND NETBIOS_NQ_ex Unicast/Multicast(2) Yes +NAME_RECOGNIZED SEND NETBIOS_NR_ex Unicast(4) No + + Note 1: + Upon receipt of an ADD_NAME_RESPONSE frame, a NETBIOS_ANR SSP message + is returned via unicast UDP to the originator of the NETBIOS_ANQ + message. + + Note 2: + These frames may be sent either Unicast or Multicast UDP. If the + implementation has sufficient cached information to resolve the + NetBIOS datagram destination to a single DLSw peer, then the SSP + message can and should be sent via unicast. If the cache does not + contain such information then the resultant SSP message must be sent + via multicast UDP. + + Note 3: + Note that this frame is sent as either a DATAFRAME or DGRMFRAME + according to the rules as specified in RFC 1795. + + Note 4: + Upon receipt of a NAME_RECOGNIZED frame, a NETBIOS_NR_ex SSP message + is returned via unicast UDP to the originator of the NETBIOS_NQ_ex + frame. Notice that although the NAME_RECOGNIZED frame is sent as an + All Routes Explorer (source routing LANs only) frame, the resultant + NETBIOS_NR_ex is sent as a unicast UDP directed response to the DLSw + originating the NETBIOS_NQ_ex. This is because there is no value in + + + +Bryant & Brittain Informational [Page 20] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + sending NETBIOS_NR_ex as a multicast packet in the transport network. + The use of ARE transmission in the LAN environment is to accomplish + some form of load sharing in the source routed LAN environment. + Since no analogous capability exists in the (TCP) transport network, + it is not necessary to emulate this function there. It is important + to note, however, that when converting a received NETBIOS_NR_ex to a + NAME_RECOGNIZED frame, the DLSw sends the NAME_RECOGNIZED frame onto + the LAN as an ARE (source routing LANs only) frame. This preserves + the source route load sharing in the LAN environments on either side + of the DLSw transport network. + + Note 5: + Although RFC 1795 does not attempt to optimize STATUS_RESPONSE + processing, it is possible to send a STATUS_RESPONSE as a unicast UDP + response. To do this, DLSws receiving an incoming SSP DATAFRAME + containing a STATUS_QUERY must remember the originating DLSw's + address and STATUS_QUERY correlator. Then upon receipt of the + corresponding STATUS_RESPONSE, the DLSw responds via unicast UDP to + the originating DLSw(using the remembered originating DLSw address). + Note, however, that in order to determine whether a frame is a + STATUS_QUERY, all multicast capable DLSw implementations will need to + parse the contents of frames that would normally be sent as DATAFRAME + SSP messages. + + All other multicast frames are sent into the transport network using + the appropriate multicast group address. + +9.1 Address Resolution + + Typical NetBIOS circuit setup using multicast services is essentially + the same as specified in RFC 1795. The only significant difference + is that NETBIOS_NQ_ex messages are sent via UDP to the appropriate + unicast/multicast IP address and the NETBIOS_NR_ex is sent via + unicast UDP to the DLSw originating the NETBIOS_NQ_ex. + +9.2 Explorer Frames + + Address resolution messages may be sent over a TCP connection to a + multicast capable partner if such a connection already exists in + order that they take advantage of the guaranteed delivery of TCP. + This is particularly recommended for NETBIOS_NR_ex frames. + +9.3 Circuit Setup + + Following successful address resolution, a NetBIOS end station + typically sends a SABME frame to initiate a formal LLC2 connection. + Receipt of this message results in normal circuit setup as described + in RFC 1795 (and the SNA case described above). That is to say that + + + +Bryant & Brittain Informational [Page 21] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + the CANUREACH_cs messages etc. are sent on a TCP connection to the + appropriate DLSw peer. If no such TCP connection exists, one is + brought up. + +9.4 Example NetBIOS SSP Message Sequence + + The following diagram provides an example sequence of flows + associated with a NetBIOS circuit setup. All flows and states + described below correspond precisely with those defined in RFC 1795. + The only exception is the addition of a TCP connection setup and DLSw + capabilities exchange that occurs when the origin DLSw must send a + CANUREACH_cs and no TCP connection yet exists to the target DLSw + peer. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 22] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + ====== ___ ====== + | | --------- __/ \__ --------- | | + | | __| _|_ |__ / IP \ __| _|_ |__ | | + ====== | | | < Network > | | | ====== +/______\ --------- \__ __/ --------- /______\ + Origin Origin DLSw \___/ Target DLSw Target + Station partner partner Station + + disconnected disconnected + +NAME_QUERY DLC_DGRM NETBIOS_NQ_ex DLC_DGRM NAME_QUERY +-----------> -----------> -----------> -----------> ---------> + + NAME_RECOG DLC_DGRM NETBIOS_NR_ex DLC_DGRM NAME_RECOG +<----------- <------------ <----------- <----------- <--------- + +SABME DLC_CONTACTED +-----------> -----------> + circuit_start + + TCP Connection Setup + <-------------> + Capabilities Exch. + <-------------> + + CANUREACH_cs DLC_START_DL + -----------> -----------> + resolve_pending + + + ICANREACH_cs DLC_DL_STARTED + <----------- <----------- + circuit_established circuit_pending + REACH_ACK + -----------> circuit_established + + CONTACT DLC_CONTACT SABME + -----------> -----------> ---------> + connect_pending contact_pending + + UA DLC_CONTACT CONTACTED DLC_CONTACTED UA + <--------- <----------- <----------- <----------- <--------- + connected connected + + IFRAMEs DLC_INFOs IFRAMEs DLC_INFOs IFRAMEs +<------------> <------------> <------------> <------------> <--------> + + + + + +Bryant & Brittain Informational [Page 23] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +9.5 Multicast Reliability and Retries + + In the case of NetBIOS, many more packets are being sent via UDP than + in the SNA case. Therefore, the exposure to the unreliability of + these services is greater than that of SNA. For address resolution + frames, such as NAME_QUERY, etc., successful message delivery is an + issue. In addition, the retry interval for these types of frames is + considerably shorter than SNA with the defaults being: retry interval + = 0.5 seconds and retry count = 6. Once again, neither RFC 1795 nor + this paper attempt to address the issue of LAN frame filtering + optimizations. This issue is outside the scope of this paper. But it + is important for implementers to recognize the inherent unreliable + nature of UDP transport services for frames of this type and to + implement retry schemes that are appropriate to successful operation. + Again, it is only appropriate to consider retry of non-response type + packets. Specific NetBIOS messages where successful message delivery + is considered important (and retries possibly necessary) are + indicated in the table above with an “Yes” in the “Retry” column. + +10. Sequencing + + It is important to note that UDP transport services do not provide + guaranteed packet sequencing like TCP does for RFC 1795. In a steady + state network, in order packet delivery can be generally assumed. + But in the presence of network outages and topology changes, packets + may take alternate routes to the destination and arrive out of + sequence with respect to their original transmission order. For SNA + address resolution this should not be a problem given that there is + no inherent significance to the order of packets being transmitted + via UDP. + + In the case of NetBIOS, in order delivery is not guaranteed in the + normal case (e.g., LANs). This is because LAN broadcasting + mechanisms suffer the same problems of packet sequencing as do WAN + multicast mechanisms. But one might argue the greater likelihood of + topology related changes in the WAN environment and thus a greater + level of concern. The vast majority of NetBIOS UI frames (being + handled via UDP and Multicast) have correlator values and do not rely + upon packet sequencing. + + + + + + + + + + + + +Bryant & Brittain Informational [Page 24] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + The only NetBIOS frames of special note would be: DATAGRAM, + DATAGRAM_BROADCAST, and STATUS_RESPONSE. In the case of DATAGRAM and + DATAGRAM_BROADCAST it is generally assumed that datagrams do not + provide any guarantee of in order packet delivery. Thus applications + utilizing this NetBIOS service are assumed to have no dependency on + in order packet delivery. STATUS_RESPONSE can actually be sent as a + sequence of STATUS_RESPONSE messages. In cases where this occurs, + the STATUS_RESPONSE will be exposed to potential out of sequence + delivery. + +11. Frame Formats + +11.1 Multicast Capabilities Control Vector + + This control vector is carried in the Capabilities Exchange Request. + When present, it must be accompanied by a TCP Connections Control + Vector indicating support for 1 TCP/IP connection and a DLSw version + CV indicating support for version 2 release 0. Like all control + vectors in this SSP message, it is an LT structure. LT structures + consist of a 1 byte length field followed by a 1 byte type field. + The length field includes itself as well as the type and data fields. + + Byte Bit Description + 0 0-7 Length, in binary, of the Multicast Capabilities control + vector (inclusive of this byte, always 3) + + 1 0-7 Type: x'8C' + + 2 0-7 Multicast Version Number: + A binary numerical representation of the level of + multicast services provided. The protocols as identified + in this document constitute version one. Accordingly, + x'01' is encoded in this field. Any subsequent version + must provide the services of all previous versions. + + The intended use of this CV for Multicast support is to detect when + the multicast CANUREACH_ex flows will suffice between partners. If + this CV is present in a CAPEX from a partner, that partner is also + multicast capable and therefore does not need to receive CANUREACH_ex + messages over the TCP link that exists between them (and there must + be one or else the CAPEX would not have flowed) because it will + receive the multicast copies. + + A DLSw includes this control vector on a peer-wise basis. That is to + say, that a DLSw implementation may support multicast services but + choose not to indicate this in its capabilities exchange to all + partners. Therefore, a DLSw may include this capabilities CV with + some DLSw peers and not with others. Not including this vector can + + + +Bryant & Brittain Informational [Page 25] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + be used to force TCP connections with other multicast capable nodes + and degrade to normal RFC 1795 operations. This capability is + allowed to provide greater network design flexibility. + + When sending this capabilities exchange control vector, the following + rules apply: + + Required Allowed @ + ID @ Startup Length Repeatable* Runtime Order Content + ==== ========= ====== ========== ======= ===== =============== + 0x8C Y 0x03 N N 5+ Multicast + Capabilities + +*Note: "Repeatable" means a Control Vector is repeatable within a single + message. + +11.1.1 DLSw Capabilities Negative Response + + DLSws that implement these enhancements must provide support for both + multicast version 1 and single TCP connections. This means that the + capabilities exchange request must contain a DLSw Version ID control + vector (x'82') indicating support for version 2 release 0, a + Multicast Capabilities control vector, and the TCP Connections + control vector indicating support for 1 TCP connection within a given + capabilities exchange. If a multicast capable DLSw receives a + capabilities exchange with a Multicast Capabilities, but either a + missing or inappropriate TCP Connections CV (i.e., connections not + equal to one)or DLSw Version control vector, then the inbound + capabilities exchange should be rejected with a DLSw capabilities + exchange negative response (see RFC 1795) using the following new + reason code: + + x'000D'Inconsistent DLSw Version, Multicast Capabilities, and TCP + Connections CV received on the inbound Capabilities exchange + +11.2 UDP Packets + + SSP frame formats are defined in RFC 1795. Multicast protocol + enhancements do not change these formats in any way. The multicast + protocol enhancements, however, do introduce the notion of SSP packet + transport via UDP. In this case, standard UDP services and headers + are used to transport SSP packets. + + + + + + + + + +Bryant & Brittain Informational [Page 26] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + The following section describes the proper UDP header for DLSw SSP + packets. + + Byte Description + 0-1 Source Port address + In DLSw multicast protocols, this particular field is not + relevant. It may be set to any value. + + 2-3 Destination Port address + Always set to 2067 + + 4-5 Length + + 6-7 Checksum + The standard UDP checksum value. Use of the UDP checksum + function is optional. + +11.3 Vendor Specific UDP Packets + + In order to accommodate the addition of vendor specific functions + over UDP transport, a new SSP packet header has been defined. As + described above, it is possible to receive these packets over both + UDP and TCP (when a TCP connection already exists). + + It is important to note that the first 4 bytes of this packet match + the format of existing RFC 1795 SSP packets. This is done so that + implementations in the future can expect that the DLSw “Version + Number” is found in byte one and that the following bytes describe + the packet header and message length. + + Furthermore, to assist DLSws in detecting 'out-of-sync' conditions + whereby packet or parsing errors lead to improper length + interpretations in the TCP datastream, valid DLSw version numbers + will be restricted to the range of x'31' through x'3F' inclusive. + + DLSw multicast Vendor Specific frame format differs from existing RFC + 1795 packets in the following ways: + + 1) The “Version Number” field is set to x'32' (ASCII '2') and now + represents a packet type more than a DLSw version number. More + precisely, it is permitted and expected that DLSw may send packets of + both types (x'31' and x'32'). + + 2) The message length field is followed by a new 3 byte field that + contains the specific vendor's IEEE Organizationally Unique + Identifier (OUI). + + + + + +Bryant & Brittain Informational [Page 27] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 3) All fields following the new OUI field are arbitrary and defined + by implementers. + + The following section defines this new packet format: + + Byte Description + 0 DLSw packet type, Always set to x'32' + + 1 Header Length + Always 7 or higher + + 2-3 Message Length + Number of bytes within the data field following the + header. + + + 4-6 Vendor specific OUI + The IEEE Organizationally Unique Identifier (OUI) + associated with the vendor specific function in + question. + + 7-n Defined by the OUI owner + + +12. Compliance Statement + + All DLSw v2.0 implementations must support + + - Halt reason codes + - the Multicast Capabilities control vector in the DLSw + capabilities exchanges messages. + + The presence of the Multicast Capabilities control vector in a + capabilities exchange message implies that the DLSw that issued the + message supports all the scalability enhancements defined in this + document. These are: + + - use of multicast IP (if it is available in the underlying network) + - use of 2067 as the destination port for UDP and TCP connections + - single tunnel bring-up of TCP connections to DLSw peers + - peer-on-demand + - quiet ignore of all unrecognized vendor-specific UDP/TCP packets. + + + + + + + + + +Bryant & Brittain Informational [Page 28] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +13. Security Considerations + + This document addresses only scalability problems in RFC 1795. No + attempt is made to define any additional security mechanisms. Note + that, as in RFC 1795, a given implementation may still choose to + refuse TCP connections from DLSw peers that have not been configured + by the user. The mechanism by which the user configures this + behavior is not specified in this document. + +14. Acknowledgements + + This specification was developed in the DLSw Related Interest Group + (RIG) of the APPN Implementers Workshop. This RIG is chaired by + Louise Herndon- Wells (lhwells@cup.portal.com) and edited by Paul + Brittain (pjb@datcon.co.uk). + + Much of the work on the scalability enhancements for v2.0 was + developed by Dave Bryant (3COM). + + Other significant contributors to this document include: + + Frank Bordonaro (Cisco) + Jon Houghton (IBM) + Steve Klein (IBM) + Ravi Periasamy (Cisco) + Mike Redden (Proteon) + Doug Wolff (3COM) + + Many thanks also to all those who participated in the DLSw RIG + sessions and mail exploder discussions. + + If you would like to participate in future DLSw discussions, please + subscribe to the DLSw RIG mailing lists by sending a mail to + majordomo@raleigh.ibm.com specifying 'subscribe aiw-dlsw' as the body + of the message. + + If you would like further information on the activities of the AIW, + please refer to the AIW web site at + http://www.raleigh.ibm.com/app/aiwhome.htm. + + + + + + + + + + + + +Bryant & Brittain Informational [Page 29] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +15. Authors' Addresses + + The editor of this document is: + + Paul Brittain + Data Connection Ltd + Windsor House + Pepper Street + Chester + CH1 1DF + UK + + tel: +44 1244 313440 + email: pjb@datcon.co.uk + + Much of the work on this document was created by: + + David Bryant + 3Com Corporation + 5400 Bayfront Plaza MS 2418 + Santa Clara, CA 95052 + + tel: (408) 764-5272 + email: David_Bryant@3mail.3com.com + + + + + + + + + + + + + + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 30] + +RFC 2166 APPN Implementer's Workshop June 1997 + + +16. Appendix - Clarifications to RFC 1795 + + This appendix attempts to clarify the areas of RFC 1795 that have + proven to be ambiguous or hard to understand in the implementation + experience to- date. These clarifications should be read in + conjunction with RFC 1795 as this document does not reproduce the + complete text of that RFC. + + The clarifications are ordered by the section number in RFC 1795 to + which they apply. Where one point applies to more than one place in + RFC 1795, it is listed below by the first relevant section. + + If any implementers encounter further difficulties in understanding + RFC 1795 or these clarifications, they are encouraged to query the + DLSw mail exploder (see section 1.1) for assistance. + + 3. Send Port + + It is not permitted for a DLSw implementation to check that the send + port used by a partner is 2067. All implementations must accept + connections from partners that do not use this port. + + 3 TCP Tunnel bringup + + The paragraph below the figure should read as follows: + + Each Data Link Switch will maintain a list of DLSw capable routers + and their status (active/inactive). Before Data Link Switching can + occur between two routers, they must establish two TCP connections + between them. These connections are treated as half duplex data + pipes. A Data Link Switch will listen for incoming connections on + its Read Port (2065), and initiate outgoing connections on its + Write Port (2067). Each Switch is responsible for initiating one + of the two TCP connections. After the TCP connections are + established, SSP messages are exchanged to establish the + capabilities of the two Data Link Switches. Once the exchange is + complete, the DLSw will employ SSP control messages to establish + end-to-end circuits over the transport connection. Within the + transport connection, DLSw SSP messages are exchanged. The + message formats and types for these SSP messages are documented in + the following sections. + + + + + + + + + + +Bryant & Brittain Informational [Page 31] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 3.2 RII bit in SSP header MAC addresses + + The RII bit in MAC addresses received from the LAN must be set to + zero before forwarding in the source or destination address field in + a SSP message header. This requirement aims to avoid ambiguity of + circuit IDs. It is also recommended that all implementations ignore + this bit in received SSP message headers. + + 3.3 Transport IDs + + All implementations must allow for the DLSw peer varying the + Transport ID up to and including when the ICR_cs message flows, and + at all times reflect the most recent TID received from the partner in + any SSP messages sent. The TID cannot vary once the ICR_cs message + has flowed. + + 3.4 LF bits + + LF-bits should be propagated from LAN to SSP to LAN (and back) as per + a bridge (i.e. they can only be revised downwards at each step if + required). + + 3.5 KEEPALIVE messages + + The SSP KEEPALIVE message (x1D) uses the short ("infoframe") version + of the SSP header. All DLSw implementation must support receipt and + quiet ignore of this message, but there is not requirement to send + it. There is no response to a KEEPALIVE message. + + 3.5 MAC header for Netbios SSP frames + + The MAC header is included in forwarded SSP Netbios frames in the + format described below: + - addresses are always in non-canonical format + - src/dest addresses are as per the LLC frame + - AC/FC bits may be reset and must be ignored + - SSAP, DSAP and command fields are included + - RII bit in src address is copied from the LLC frame + - the RIF length is not extended to include padding + - all RIFs are padded to 18 bytes so that the data is + in a consistent place. + + 3.5.7 Unrecognized control vectors + + All implementations should quietly ignore unrecognized control + vectors in any SSP messages. In particular, unrecognized SSP frames + or unrecognized fields in a CAPEX message should be quietly ignored + without dropping the TCP connection. + + + +Bryant & Brittain Informational [Page 32] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 5.4 Use of CUR-cs/CUR-ex + + The SSAP and DSAP numbers in CUR_ex messages should reflect those + actually used in the TEST (or equivalent) frame that caused the + CUR_ex message to flow. This would mean that the SAP numbers in a + 'typical' CUR_ex frame for SNA traffic switched from a LAN will be a + source SAP of x04 and a destination SAP of x00. + + The CUR_cs frame should only be sent when the DSAP is known. + Specifically, CUR_ex should be used when a NULL XID is received that + is targeted at DSAP zero, and CUR_cs when a XID specifying the (non- + zero) DSAP is received. + + Note that this does not mean that an implementation can assume that + the DSAP on a CUR_ex will always be zero. The ICR_ex must always + reflect the SSAP and DSAP values sent on the CUR_ex. This is still + true even if an implementation always sends a TEST with DSAP = x00 on + its local LAN(s) in response to a CUR_ex to any SAP. + + An example of a situation where the CUR_ex may flow with a non-zero + DSAP is when there is an APPN stack local to the DLSw node. The APPN + stack may then issue a connection request specifying the DSAP as a + non-zero value. This would then be passed on the CUR_ex message. + + 7.6.1 Vendor IDs + + The Vendor ID field in a CAPEX may be zero. However, a zero Vendor + Context ID is not permitted, which implies that an implementation + that uses a zero ID cannot send any vendor-specific CVs (other than + those specified by other vendors that do have a non-zero ID) + + 7.6.3 Initial Pacing Window + + The initial pacing window may be 1. There is no requirement on an + implementation to use any minimum value for the initial pacing + window. + + 7.6.7 TCP Tunnel bringup + + The third paragraph should read: + + If TCP Connections CV values agree and the number of connections + is one, then the DLSw with the higher IP address must tear down + the TCP connections on its local port 2065. This connection is + torn down after a CAPEX response has been both sent and received. + After this point, the remaining TCP connection is used to exchange + data in both directions. + + + + +Bryant & Brittain Informational [Page 33] + +RFC 2166 APPN Implementer's Workshop June 1997 + + + 7.7 CAPEX negative responses + + If a DLSw does not support any of the options specified on a CAPEX + received from a partner, or if it thinks the CAPEX is malformed, it + must send a CAPEX negative response to the partner. The receiver of + a CAPEX negative response is then responsible for dropping the + connection. It is not permitted to drop the link instead of sending + a CAPEX negative response. + + 8.2 Flow Control ACKs + + The first flow-control ack (FCACK) does not have to be returned on + the REACH_ACK even if the ICR_cs carried the FCIND bit. However it + should be returned on the first SSP frame flowing for that circuit + after the REACH_ACK. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Bryant & Brittain Informational [Page 34] + |