An Echo Function for ISO 8473 Network Working Group IETF-NOOP Working Group INTERNET DRAFT R. Hagens January 1990 Revised C. Wittbrodt 1. Status of this Memo This memo is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. This Internet Draft defines an echo function for the connection-less network layer protocol. This memo is not intended to compete with an ISO standard. This is a Pro- posed Elective Standard for the Internet. Distribution of this memo is unlimited. 2. Abstract This memo defines an echo function for the connection-less network layer protocol. The mechanism that is recommended here is in the final process of being standardized by ISO as "Amendment X: Addition of an Echo function to ISO 8473" This document is intended to mirror the ISO work and provide easy access to that information to the Internet community 3. Table of Contents November 10, 1992 Expires May 10, 1992 Page 1 An Echo Function for ISO 8473 Section 1 Status of this Memo ......................... 1 Section 2 Abstract .................................... 1 Section 3 Table of Contents............................ 1 Section 4 Introduction ................................ 2 Section 5 The Generic Echo Function ................... 3 Section 5.1 The Echo Request .......................... 3 Section 5.2 The Echo Reply ............................ 3 Section 6 The Implementation Mechanism ................ 4 Section 6.1 The Echo Request .......................... 4 Section 6.2 The Echo Reply ............................ 4 Section 7 Implementation Notes ........................ 4 Section 7.1 Discarding PDUs ........................... 4 Section 7.2 Error Report Flag ......................... 4 Section 7.3 Use of the Lifetime Field ................. 5 Section 7.4 Echo request function ..................... 5 Section 7.5 Echo response function .................... 7 Section 7.6 Use of the Priority Option ................ 8 Section 7.7 Use of the Source Route Option ............ 8 Section 7.8 Transmission of Multiple Echo Requests .... 8 Section 8 Security Considerations ..................... 9 4. Introduction The OSI Connection-less network layer protocol (ISO 8473) defines a means for transmitting and relaying data and error report PDUs through an OSI internet. Unfortunately, the world that these packets travel through is imperfect. Gate- ways and links may fail. This memo defines an echo function to be used in the debugging and testing of the OSI network layer. Network management protocols can be used to determine the state of a gateway or link. However, since these protocols themselves utilize a protocol that may experience packet loss, it cannot be guaranteed that the network management applications can be utilized. A simple mechanism in the network layer is required so that systems can be probed to determine if the lowest levels of the networking software are operating correctly. This mechanism is not intended to compete with or replace network management; rather it should be viewed as an addition to the facilities offered by net- work management. The code-path consideration requires that the echo path through a system is identical (or very close) to the path used by normal data. An echo path must succeed and fail in unison with the normal data path or else it will not provide a useful diagnostic tool. Although backward compatibility is an important considera- tion whenever a change is made to a protocol, it is more important at this point that the echo mechanisms used on the November 10, 1992 Expires May 10, 1992 Page 2 An Echo Function for ISO 8473 Internet interoperate. For this reason, this memo defines one implementation mechanism. 5. The Generic Echo Function The following section will describe the echo function in a generic fashion. This memo defines an echo-request entity. The function of the echo-request entity is to accept an incoming echo-request PDU, perform some processing, and gen- erate an echo-reply PDU. The echo implementation may be thought of as an entity that coexists with the network layer. Subsequent sections will detail the implementation mechanism. For the purposes of this memo, the term "ping" shall be used to mean the act of transmitting an echo-request PDU to a remote system (with the expectation that an echo-reply PDU will be sent back to the transmitter). 5.1. The Echo Request When a system decides to ping a remote system, an echo- request is built. All fields of the PDU header are assigned normal values (see implementation specific sections for more information). The address of the system to be pinged is inserted as the destination NSAP address. The rules of seg- mentation defined for a DT PDU also apply to the echo- request PDU. The echo-request is switched through the network toward its destination. Upon reaching the destination system, the PDU is processed according to normal processing rules. At the end of the input processing, the echo-request PDU is delivered to the echo- request entity. The echo-request entity will build and dispatch the echo- reply PDU. This is a new PDU. Except as noted below, this second PDU is built using the normal construction pro- cedures. The destination address of the echo-reply PDU is taken from the source address of the echo-request PDU. Most options present in the echo-request PDU are copied into the echo-reply PDU (see implementation notes for more informa- tion). 5.2. The Echo Reply The entire echo-request PDU is included in the data portion of the echo-reply PDU. This includes the echo-request PDU header as well as the any data that accompanies the echo- request PDU. The entire echo-request PDU is included in the November 10, 1992 Expires May 10, 1992 Page 3 An Echo Function for ISO 8473 echo-reply so that fields such as the echo-request lifetime may be examined when the reply is received. After the echo-reply PDU is built, it is transmitted toward the new destination (the original source of the echo- request). The rules of segmentation defined for a DT PDU also apply to the echo-reply PDU. The echo-reply PDU is relayed through the network toward its destination. Upon reaching its destination, it is processed by the PDU input function and delivered to the entity that created the echo-request. 6. The Implementation Mechanism The implementation mechanism will define two new 8473 PDU types: ERQ (echo-request) and ERP (echo-reply). With the exception of a new type code, these PDUs will be identical to the DT PDU in every respect. 6.1. The Echo Request The type code for the ERQ PDU is decimal 30. 6.2. The Echo Reply The type code for the ERP PDU is decimal 31. 7. Implementation Notes The following notes are an integral part of memo. It is important that implementors take heed of these points. 7.1. Discarding PDUs The rules used for discarding a DT PDU (8473, sec 6.9 - sec 6.10) are applied when an echo-request or echo-reply is dis- carded. 7.2. Error Report Flag The error report flag may be set on the echo-request PDU, the echo-reply PDU, or both. If an echo-request is dis- carded, the associated ER PDU will be sent to the echo- request source address on the originating machine. If an echo-reply is discarded, the associated ER PDU will be sent to the echo-reply source address. In general, this will be November 10, 1992 Expires May 10, 1992 Page 4 An Echo Function for ISO 8473 the address of the echo-request entity. It should be noted that the echo-request entity and the originator of the echo-request PDU are not required to process ER PDUs. 7.3. Use of the Lifetime Field The lifetime field of the echo-request and echo-reply PDU should be set to the value normally used for a DT PDU. Note: although this memo does not prohibit the generation of a PDU with a smaller-than-normal lifetime field, this memo explicitly does not attempt to define a mechanism for vary- ing the lifetime field set in the echo-reply PDU. This memo recommends that the normal DT lifetime value should be set in the echo-request and echo-reply PDU. 7.4. Echo request function "Extracted from ISO 8473/PDAMx Addition of an Echo function to ISO 8473" Section 6.19 from ISO 8473 This function is invoked by system management to obtain information about the dynamic state of the Network layer with respect to (a) the reachability of specific network- entities, and (b) the characteristics of the path or paths that can be created between network-entities through the operation of Network layer routing functions. When invoked, the Echo request function causes an Echo request (ERQ) PDU to be created. The ERQ PDU shall be constructed and pro- cessed by ISO 8473 network-entities in end systems and intermediate systems in exactly the same way as the DT PDU, with the following caveats: a) Since the Echo request function is invoked by system management, rather than by a N-UNITDATA request, the infor- mation available to the PDU composition function (ISO 8473 clause 6.1) consists of current state, local information, and information supplied by system management; the refer- ences in ISO 8473 clause 6.1 to information obtained from parameters of the N-UNITDATA request do not apply to the composition of an ERQ PDU. b) The source and destination address fields of the ERQ PDU shall contain, respectively, a Network entity title of the originating network-entity and a Network entity title of the destination network-entity (which may be in either an end system or an intermediate system). NOTE: A Network entity title is syntactically indistinguishable from an NSAP address. The additional information in an NSAP address, if any, beyond that which is present in a Network entity title, November 10, 1992 Expires May 10, 1992 Page 5 An Echo Function for ISO 8473 is relevant only to the operation of the PDU decomposition function in a destination end system, and therefore is not needed for the processing of an ERQ PDU (from which no N- UNITDATA indication is ever produced). The fact that the source and destination address fields of the ERQ PDU contain NETs rather than NSAP addresses therefore does not affect the processing of an ERQ PDU by any network-entity. c) When an ERQ PDU has reached its destination, as deter- mined by the Header format analysis function (ISO 8473 clause 6.3), the Echo response function (ISO 8473 clause 6.20), rather than the PDU decomposition function (ISO 8473 clause 6.2), shall be invoked. It is a local matter whether or not this involves an interaction with system management. NOTE: Since the Echo response function is a type 2 function (see ISO 8473 clause 6.21), the destination network-entity may or may not perform the Echo response function upon receiving an ERQ PDU. System management must therefore con- sider, when the Echo request function is invoked, that non- receipt of a corresponding Echo response PDU may be due to non-support of the Echo response function by the destination network-entity. d) The maximum length of the ERQ PDU is equal to the maximum length of the Echo response PDU minus the maximum length of the Echo response PDU header. This ensures that the entire ERQ PDU can be contained within the data field of the Echo response PDU (see ISO 8473 clause 6.20). e) The data part of the ERQ PDU may, as a local matter, con- tain zero or more octets with any values (subject to the overall maximum length of the ERQ PDU specified in (d) above). If the first octet of the data part contains the binary value 1000 0001 (the NLPID for ISO 8473), then the first n octets of the data part (where n is the value of the second octet of the data part) shall contain an entire Echo response PDU header, in which every field in the fixed part and address part, except the segment length and checksum fields, must contain a valid value. The "more segments" flag shall have the value zero. If and only if the "segmen- tation permitted" flag is set to 1, the segmentation part shall be present. The options part, if present, may contain any of the options described in ISO 8473 clause 7.5. NOTE: This ERP PDU header, if present in the data part of an ERQ PDU, may be, but is not required to be, used in whole or in part by the destination network-entity to compose an ERP PDU (see ISO 8473 clause 6.20 (d)). NOTE: If this information is not present in the data part of the ERQ PDU, it may not be possible for the Echo response function of the destination network-entity to select an appropriate value for the lifetime field of the ERP PDU. November 10, 1992 Expires May 10, 1992 Page 6 An Echo Function for ISO 8473 7.5. Echo response function "Extracted from ISO 8473/PDAMx Addition of an Echo function to ISO 8473" Section 6.20 from ISO 8473 This function is performed by a network-entity when it has received an ERQ PDU that has reached its destination, as determined by the Header format analysis function (ISO 8473 clause 6.3) Q that is, an ERQ PDU which contains, in its destination address field, a Network entity title that iden- tifies the network-entity. When invoked, the Echo response function causes an Echo response (ERP) PDU to be created. The ERQ PDU shall be constructed and processed by ISO 8473 network-entities in end systems and intermediate systems in exactly the same way as the DT PDU, with the following caveats: a) Since the Echo response function is not invoked by a N- UNITDATA request, the information available to the PDU com- position function (ISO 8473 clause 6.1) consists of current state, local information, and information contained in the corresponding ERQ PDU; the references in ISO 8473 clause 6.1 to information obtained from parameters of the N- UNITDATA request do not apply to the composition of an ERP PDU. b) The source address field of the ERP PDU shall contain the value of the destination address field of the corresponding ERQ PDU. The destination address field of the ERP PDU shall contain the value of the source address field of the corresponding ERQ PDU. NOTE: The observation contained in the NOTE following ISO 8473 clause 6.19 (b) applies also to the ERP PDU. c) The ERQ PDU, in its entirety, shall be placed into the data part of the ERP PDU. The data part of the ERP PDU shall contain only the corresponding ERQ PDU. d) If the data part of the ERQ PDU contains an ERP PDU header (see ISO 8473 clause 6.19 (e)), the PDU composition function may, but is not required to, use some or all of the information contained therein to select values for the fields of the ERP PDU header. In this case, however, the value of the lifetime field contained in the ERP PDU header in the ERQ PDU data part must be used as the value of the lifetime field in the ERP PDU. The values of the segment length and checksum fields shall be computed by the network-entity regardless of the contents of those fields in the ERP PDU header in the data part of the ERQ PDU. e) The options part of the ERP PDU may contain any (or none) November 10, 1992 Expires May 10, 1992 Page 7 An Echo Function for ISO 8473 of the options described in ISO 8473 clause 7.5. The values for these options, if present, are determined by the network-entity as a local matter. They may be, but are not required to be, either identical to or derived from the corresponding options in the ERQ PDU and/or the ERP PDU header contained in the data part of the ERQ PDU (if present). The source routing option in the ERP PDU shall not be identical to (copied from) the source routing option in the ERQ PDU header. If the recording of route option in the ERP PDU is identical to (copied from) the recording of route option in the ERQ PDU header, the second octet of the parameter value field shall be set to the value 3. f) It is a local matter whether or not the destination network-entity performs the lifetime control function on an ERQ PDU before performing the Echo response function. The destination network-entity shall make the same decision in this regard that it would make, as a local matter, for a DT PDU in accordance with ISO 8473 clause 6.4. 7.6. Use of the Priority Option If the priority option is included, it will normally be set to value 0 (default priority). This memo allows for prior- ity values higher than 0 to be set in the echo-request or echo-reply header, but cautions against this practice. 7.7. Use of the Source Route Option Use of the source route option in ISO 8473 may cause packets to loop until their lifetime expires. For this reason, this memo recommends against the use of the source route option in either an echo-request or echo-reply PDU. If the source route option is used to specify the route that the echo- request PDU takes toward its destination, this memo does not recommend the use of an automatically generated source route on the echo-reply PDU. 7.8. Transmission of Multiple Echo Requests The echo function may be utilized by more than one process on any individual machine. The mechanism by which multiple echo-requests and echo-replies are correlated between multi- ple processes on a single machine is a local matter and not defined by this memo. November 10, 1992 Expires May 10, 1992 Page 8 An Echo Function for ISO 8473 8. Security Considerations Security issues are not addressed in this memo. November 10, 1992 Expires May 10, 1992 Page 9