X3T9.2/88-140 To: The X3T9.2 Committee From: Peter Michels, Adaptec Date: Oct 25, 1988 Subject: Communications Device Model Please add the following text as section 17.1. 17.1 Communications Device Model The SCSI communications device is a target with the characteristics of a network access device, typically attached to a local area network (LAN), public telecommunications network, private telecommunications network, or packet switching network, etc., with no theoretical limits. Such a communications device is often called a network node. The communications device transmits or receives packets of data as requested by the initiator. The contents and meaning of the data packets is not defined by this standard. A communications device may or may not have the capability of acting as an initiator. In the SCSI communications device, the target accepts and provides the data packets transferred according to the commands of the initiator. The initiator and the communications device are both assumed to know the rules by which information is exchanged between them, how the information is interpreted by the communications device, and when it is allowable to exchange the information. These rules are not specified by this standard. The initiator requests that the communications device accept a packet of data by transmitting a SEND MESSAGE command. The initiator requests that the communications device return a packet of data by transmitting a GET MESSAGE command. The communications device also supports commands related to configuration of the network access device and network management of the particular environment. MODE SENSE and MODE SELECT are examples of these configuration commands. If a communications device temporarily has no resource available to handle a data packet from the initiator, has no data packet to provide to the initiator, or has no resources assigned to perform the operation, the device may then choose one of the following responses: (1) Terminate the command with CHECK CONDITION status and the sense key set to Not Ready with the appropriate additional sense code for the condition. (2) Disconnect until the necessary resource or data packet becomes available, and then reconnect to the initiator and resume the operation. (3) Terminate the command with BUSY status. More than one Logical Unit can be implemented by a communications device. Logical Units can serve as multiple paths to a single network access device, and/or each logical unit can serve as a discrete path to different resources within the device. A single logical unit may also serve as a path to multiple resources if the communications device can interpret information within the data packet and route the packet to the appropriate resource. If the logical unit addressed by the initiator does not have an available resource or data packet associated with it, the communications device may choose to treat the logical unit as an invalid logical unit (see section 6.5.3) or respond as described in the previous paragraph. If the communications device determines that an error or unusual condition has occurred while performing an operation specified by the contents of a data packet, the information describing the condition is normally returned as a part of a data packet from another network device. If the communications device determines that an error or unusual condition has occurred while 1) executing the SCSI command from the initiator, or 2) during a network medium access transaction, the command is terminated with a CHECK CONDITION and the failures are identified through a REQUEST SENSE command. The SCSI communications device is distinguished from a SCSI processor device by the fact that generally, the primary destination of the data packets transferred to the communications device is not the target device itself, but another network node. A SCSI communications device passes the data on to an ultimate destination outside the target through a network. In contrast, the SCSI processor device is the primary destination of the data packets. Devices requiring protocols and command sets that are totally incompatible with the communications device protocols should be examined carefully to be sure that the incompatibilities are based on functional requirements. If they are, they should be treated as vendor unique device types. Several examples of communications device implementations are provided to clarify the range of utility of the SCSI communications device. Communications device to host communications device, SEND MESSAGE only: A communications device (Comm A) is attached to a network (Net A) and another communications device (Comm B) is attached to a network (Net B). Comm A takes the initiator role and selects a communications device (Comm B), transmitting a packet to Comm B using the SEND MESSAGE command. After transmitting the packet on the attached network medium (Net B), the action required by the SEND MESSAGE command, Comm B assumes the initiator mode and selects Comm A as a communications device and uses a SEND MESSAGE command to transmit a packet on the network (Net A) attached to Comm A. Note that the SEND MESSAGE command is sufficient to perform complete transactions between communications devices if both Comm A and Comm B can both assume the initiator mode. This provides the function of a network bridge or gateway for high bandwidth intercommunication among nearby host processors. Host (CPU) to communications device, SEND MESSAGE and GET MESSAGE: A host system, Host A, takes the initiator role and selects a communications device (Comm A) attached to a network (Net A), transmitting a packet on network Net A to some other network node(s) using the SEND MESSAGE command to Comm A. Host A then assumes that a result will be obtained by the other network node(s) consistent with rules understood by all involved network devices. Host A generates a GET MESSAGE command to obtain packets from other network nodes. If there are no packets that need handling pending at Comm A, Comm A may disconnect until a packet arrives. Comm A can then complete the transaction reconnect to the Host A and the requested data packet can be returned to Host A. Note that Host A need not support target mode and Comm A need not support initiator mode to successfully complete an exchange between the two devices. Note that the host system (Host A) can be replaced by communications device that is capable of acting as an initiator. Communications device to communications device, SEND MESSAGEs & GET MESSAGEs: A communications device (Comm A) is attached to a network (Net A) and another communications device (Comm B) is attached to a network (Net B). Comm A takes the initiator role and selects a communications device (Comm B). Comm A transmits a packet for network Net B using the SEND MESSAGE command to Comm B. Comm A then requests data packets from Net B by issuing a GET MESSAGE command to the Comm B device. Following these actions, Comm B assumes the initiator role and transmits a packet using the SEND MESSAGE command to Comm A for transmission to network node(s) located on Net A. Comm B then requests data packets from Net A by issuing a GET MESSAGE command to Comm A.