IEN 192 HOST/SATNET PROTOCOL Bolt Beranek and Newman Inc. July 1981 Host/SATNET Protocol IEN 192 TABLE OF CONTENTS 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Satellite IMP Implementation Details . . . . . . . . . . . 4 2.1 Initialization . . . . . . . . . . . . . . . . . . . . 5 2.2 Host-to-Satellite IMP Input . . . . . . . . . . . . . . 6 2.3 Satellite IMP-to-Host Output . . . . . . . . . . . . . 8 3. DATAGRAM ACCESS PROTOCOL . . . . . . . . . . . . . . . . . 10 3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Types of Service . . . . . . . . . . . . . . . . . . . 11 3.3 Addressing . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Message Length . . . . . . . . . . . . . . . . . . . . 12 3.5 Host/SATNET Flow Control . . . . . . . . . . . . . . . 13 3.6 Status Messages . . . . . . . . . . . . . . . . . . . . 14 3.7 Hello Messages . . . . . . . . . . . . . . . . . . . . 14 3.8 Message Reference Numbers . . . . . . . . . . . . . . . 15 3.9 Initialization . . . . . . . . . . . . . . . . . . . . 15 3.10 Format Errors . . . . . . . . . . . . . . . . . . . . 16 3.11 Loop Detection . . . . . . . . . . . . . . . . . . . . 16 3.12 Piggybacked Control Messages . . . . . . . . . . . . . 17 3.13 Formats . . . . . . . . . . . . . . . . . . . . . . . 17 3.13.1 Control Codes . . . . . . . . . . . . . . . . . . 17 3.13.2 Data Messages . . . . . . . . . . . . . . . . . . 18 3.13.2.1 Type of Service Word . . . . . . . . . . . . . 19 3.13.2.2 Acceptance Status Word . . . . . . . . . . . . 20 3.13.3 ACCEPTED Messages . . . . . . . . . . . . . . . . 21 3.13.4 REFUSED Messages . . . . . . . . . . . . . . . . . 21 3.13.5 STATUS REQUEST Messages . . . . . . . . . . . . . 22 3.13.6 STATUS MESSAGES . . . . . . . . . . . . . . . . . 23 3.13.7 HELLO Message . . . . . . . . . . . . . . . . . . 23 3.13.8 FORMAT ERROR Message . . . . . . . . . . . . . . . 23 3.13.9 RESTART REQUEST Message . . . . . . . . . . . . . 24 3.13.10 RESTART COMPLETE Message . . . . . . . . . . . . 25 4. STREAM ACCESS PROTOCOLS . . . . . . . . . . . . . . . . . 26 4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . 26 4.2 Stream Data Messages . . . . . . . . . . . . . . . . . 27 4.3 Stream Request Replies and Notifications . . . . . . . 28 4.3.1 CREATE . . . . . . . . . . . . . . . . . . . . . . 31 4.3.2 DELETE . . . . . . . . . . . . . . . . . . . . . . 32 4.3.3 JOIN . . . . . . . . . . . . . . . . . . . . . . . 33 4.3.4 LEAVE . . . . . . . . . . . . . . . . . . . . . . . 34 4.3.5 CHANGE . . . . . . . . . . . . . . . . . . . . . . 34 4.4 SATNET Termination and Suspension of Streams . . . . . 35 - i - Host/SATNET Protocol IEN 192 5. Land Modem Interface . . . . . . . . . . . . . . . . . . . 37 6. Local Host Interface . . . . . . . . . . . . . . . . . . . 37 APPENDIX A. . . . . . . . . . . . . . . . . . . . . . . . . 38 A.1 Table 1 -- Request Codes . . . . . . . . . . . . . . . 38 A.2 Table 2 -- Reply Codes . . . . . . . . . . . . . . . . 38 A.3 Table 3 -- Error Codes in D3 . . . . . . . . . . . . . 39 A.4 Table 4 -- Notification Codes . . . . . . . . . . . . 39 A.5 Table 5 -- SATNET Data Message Types . . . . . . . . . 39 A.6 Table 6 -- SATNET Logical Address Map . . . . . . . . 40 APPENDIX B. . . . . . . . . . . . . . . . . . . . . . . . . 43 B.1 Figure 1. Restart State Diagram . . . . . . . . . . . 43 B.2 Figure 2. General Message Format . . . . . . . . . . 44 B.3 Figure 3. Block DATA Message . . . . . . . . . . . . 45 B.4 Figure 4. Type of Service Word . . . . . . . . . . . 46 B.5 Figure 5. Acceptance Status Word . . . . . . . . . . 46 B.6 Figure 6. ACCEPTED Message . . . . . . . . . . . . . 46 B.7 Figure 7. REFUSED Message . . . . . . . . . . . . . . 46 B.8 Figure 8. STATUS REQUEST Message . . . . . . . . . . 47 B.9 Figure 9. STATUS Message . . . . . . . . . . . . . . 47 B.10 Figure 10. HELLO Message . . . . . . . . . . . . . . 48 B.11 Figure 11. FORMAT ERROR Message . . . . . . . . . . 48 B.12 Figure 12. RESTART REQUEST Message . . . . . . . . . 48 B.13 Figure 13. RESTART COMPLETE Message . . . . . . . . 48 B.14 Figure 14. Stream Data Format . . . . . . . . . . . 49 B.15 Figure 15. Request Message Format . . . . . . . . . 50 B.16 Figure 16. Reply Message Format . . . . . . . . . . 51 B.17 Figure 17. Notification Message Format . . . . . . . 52 B.18 Figure 18. Create Request Words . . . . . . . . . . 53 B.19 Figure 19. Delete, Join, Leave Request Words . . . . 54 - ii - Host/SATNET Protocol IEN 192 PREFACE This document describes the current SATNET Host Access protocol. This supersedes PSPWN #100 (SATNET Host Access protocol) and PSPWN #104 (Host/SATNET Stream Access protocol). The differences are: (1) The initialization state diagram has been changed so that neither side will enter the ON state unless both sides of the connecting transmission line are working. (2) A "Host type" field was added to the Restart Request and Restart Complete messages. (3) The numeric values of some error codes have been changed, as have the detailed meanings of some of those codes. (4) Some Stream Reply Codes have been changed. (5) Some significant changes have been made to the information supplied by hosts in Stream Create and Change request messages. (6) Hosts must use the acceptance/refusal flow control strategy in response to data messages from Satellite IMPs (i.e., this is no longer an option). - iii - Host/SATNET Protocol IEN 192 1. Overview In determining an appropriate host access protocol, several factors must be considered. One set of factors concerns regulation of transfers in either direction across the host-network interface. A second set of factors concerns actions associated with the transmission of messages across the network. While there are several different protocols in existence which deal with link and network access (e.g., SDLC and X.25), none satisfies the totality of user services and other factors unique to SATNET. Thus to allow flexible exploration of access issues, a special protocol was developed for the network transmission level. (For implementation convenience, however, an existing ARPANET link error control protocol was used to provide reliable interface transfers.) The network-level access factors include the passing of type-of-service information such as priority and delay class, the passing of flow and congestion control information, coordination of stream data messages with their scheduled times, and mechanisms for dynamic stream and addressing setups. The type-of-service information is dealt with by defining an appropriate field in the message headers. This field currently consists of eight bits in SATNET: Two bits for message type (datagram/stream and internet designations), two bits to specify - 1 - Host/SATNET Protocol IEN 192 one of four priorities, two bits to specify one of four delay classes, one bit to specify a holding time choice, and one bit to specify reliability. The delay class choices presently consist of one second, five seconds, twenty seconds, and two minutes. The holding time choice consists of either twice the specified delay class or two minutes. The reliability choice consists of "high", which causes channel retransmissions to be used, or "standard", which inhibits the use of retransmissions and allows messages with bad data checksums (but good checksums on their control information) to be delivered to users. Standard reliability is designed for applications which can tolerate occasional bit errors, but cannot tolerate lost or out-of-order packets (e.g. packet speech). Flow and congestion control information is passed by the use of two distinct mechanisms. First, status information reflecting current congestion control is sent in all data and related control messages; in the absence of other traffic, a special status message is sent periodically. This information indicates which priority and delay classes are currently being accepted by the network. The second mechanism consists of specific information concerning the disposition of each data message passed to the network. Each data message is numbered (modulo 128) by the - 2 - Host/SATNET Protocol IEN 192 sending host for identification purposes. Upon receipt, the network returns an "acceptance" or "refusal" indication to the host. An acceptance implies the network believes it can deliver the message to its destination and is proceeding to do so; delivery, however, is not guaranteed. A refusal means the network has discarded the message; in this case a refusal subcode is included to indicate the reason. Messages may be refused because, for example, the destination is down or does not exist, because its priority or delay class is not being accepted, or because of temporary flow control reasons associated with source or destination buffering. In the latter case the message is assigned to one of several categories used for subsequent notification purposes. A bit representing each category is passed along with the priority-delay class status information in all messages. When the message is refused the number of the assigned category is returned to the sender, with the values of subsequent category status bits indicating when messages of that category will again be accepted. In order to minimize message delays and to schedule stream slots efficiently, the coordination of stream data messages involves establishment of the correct time window in which the host should pass each message to the network. The present system uses explicit accept/refuse messages to accomplish this. Stream and addressing setups are accomplished by using datagram messages between the hosts and the network. - 3 - Host/SATNET Protocol IEN 192 2. Satellite IMP Implementation Details For each physical host port the software uses the following data structures: Protocol state word, Category queues, Host output queue, Accept/refuse queue (HAQ), Interface property table, Last-heard word (LSTHRD). The protocol state word indicates whether the protocol is in initialization or running state. If in initialization state, no messages will be accepted or delivered until the necessary handshaking procedure, as described below, is completed. The four category queues are used to store messages that have been refused by a host. If a host refuses a message and provides an appropriate category indication, the message will be stored on the specified category queue until the host indicates it is willing to accept messages of that category. If a message reaches its maximum holding time before the host will accept it, it will be dropped from the queue. The host output queue is a queue of data messages waiting to be delivered to the appropriate host. Ordered by urgency, all messages remain on this queue until they are transferred into the HAQ just prior to being sent to the host or until their holding time expires. - 4 - Host/SATNET Protocol IEN 192 The HAQ is a storage location for a message that has been sent to the host and is awaiting an accept or refuse response. If a response is received, the message is removed from the queue. If no response is received, the message will be removed when its maximum holding time has expired. The interface property table (IPT) is used to indicate any of the various protocol options selected by a host. One such option is whether to allow piggybacking of Host/SATNET control messages. Another option is that the host may decline to do accept/reject decisions on traffic that it receives from SATNET. The last-heard word indicates when the host was last heard from. The host is declared down if it has not been heard from in a specified time, currently about thirty seconds. The host will remain down until the necessary handshaking is completed. 2.1 Initialization Whenever a host or Satellite IMP is restarted, it sends a RESTART-REQUEST control message to the other party. This message will be repeated periodically until a RESTART-COMPLETE message is received from the other party. When the RESTART-COMPLETE message is received by the first party, it will then also send a RESTART-COMPLETE message. - 5 - Host/SATNET Protocol IEN 192 2.2 Host-to-Satellite IMP Input For datagram traffic, SATNET accepts variable-length messages of up to a fixed maximum length (currently 128 16-bit words). The host prefixes each message with a header which provides addressing and control information. The control information specifies priority, desired delivery delay, maximum holding time, and selection of message control options such as reliability. Each datagram message from a host is accepted or rejected by the Satellite IMP according to the current network loading and other factors. The Satellite IMP always returns a control message indicating acceptance or refusal. The message control parameters have the following possible values: Priority is an integer from zero to three, with three being the lowest priority and zero the highest. There are four possible delay classes: 1 second, 5 seconds, 20 seconds, and 120 seconds. There are two possible choices for maximum holding time: twice the delay class or the maximum system holding time. Reliability may be either normal or high reliability (zero or one). Initially, when a message is offered by a host, a minimal amount of buffer is requested at high priority, and the header of the message is copied into this buffer in SATNET internal format. The information in the header is then presented to the - 6 - Host/SATNET Protocol IEN 192 Accept/Reject module. If the message is accepted the additional buffer needed is obtained, the rest of the message is copied into the buffer, and an accept message is placed on the accept/reject notification list (ARN). If the message is rejected, the appropriate rejection code is placed on the ARN and the buffer space is freed. It is left for the host to decide whether to resubmit the message at a later time. The rejection code will also inform the host of which priority and delay classes are currently being accepted, to assist the host in making message offering decisions. The accept/reject decision is performed as follows: The first checks are made to ensure a valid source ID, adequate buffer in the Satellite IMP, and a message size not exceeding the maximum allowed size. The Satellite IMP must also be in the In-Sync state to be able to accept the message. For any message passing these tests, its TTG and priority are calculated, and used to form its urgency value. Next a check is made to see if the message can be delivered to the destination, which involves checking a table of destination parameters. The Satellite IMP verifies that the destination Satellite IMP and host are up and are receiving messages of the same category as the offered message. - 7 - Host/SATNET Protocol IEN 192 Although not implemented, the following checks are considered useful. If the reservation-making queue contains too much traffic of higher urgency or if the number of free buffers is below a fixed threshold, the message will be refused. Also, a maximum buffer usage may be assigned to each host for messages of each category; messages will be refused if the threshold is exceeded for messages of the same category. A stream packet undergoes a different set of checks before it is accepted by the Satellite IMP. The stream must exist, the length of the message must not exceed the maximum allowable for that stream, and there must be room available on the stream queue for another packet. Also, the offering host must be designated as a member of that stream. 2.3 Satellite IMP-to-Host Output Whenever there is an opportunity to send a message to a host, the Satellite IMP will examine every eligible queue to determine which message should be sent first. This includes the host output queue, the four category queues, and the control message waiting queue (ARN). If ARN is longer than a specified threshold, sending of control messages will take precedence over sending of data messages, until the ARN length falls below the threshold. Otherwise, if piggybacking is allowed, a data message will be sent to the host with a control message piggybacked. If - 8 - Host/SATNET Protocol IEN 192 no piggybacking is allowed, then control messages and data messages will compete. Competition is always on the basis of urgency (priority and TTG). A category queue may be ineligible if the host is not accepting messages of that category. In the absence of other traffic, a Satellite IMP will send a 'HELLO' message every second. Once a data message has been selected it is queued in HAQ and transmitted to the host. If the host fails to respond in time, the message will be deleted from HAQ when its holding time expires. If the host accepts, the message will be removed from HAQ and discarded. If the host refuses and specifies a category, the message will be removed from HAQ and placed on the specified category queue. If the message is refused for urgency reasons, the message will be requeued on the host output queue. HAQ, the category queues, the host output queues, and ARN are all kept ordered by urgency, so that testing for the most urgent message consists of testing only the first message on each queue. - 9 - Host/SATNET Protocol IEN 192 3. DATAGRAM ACCESS PROTOCOL 3.1 Overview For datagram traffic, SATNET accepts variable-length messages of up to 128 words of data. The source host prefixes each message with a leader which provides addressing and control information. The control information specifies message priority, desired delivery delay, delay at which the message should be discarded if not yet delivered ("maximum holding time"), and selection of one or more message control options. Each datagram message from a source host is accepted or refused by the source Satellite IMP according to current network loading and other factors, with a control message always returned by the source Satellite IMP indicating the acceptance or refusal. Upon acceptance, SATNET then attempts to deliver the message within its specified delay. However, it will continue trying to deliver if late, until its maximum holding time is exceeded. Datagram messages always have at least a two-hop delay (about 0.6 seconds) within SATNET. A lower-level protocol is assumed to provide reliable exchanges of data and control messages on the link connecting a host and Satellite IMP, and is assumed transparent to the protocol defined in this document. The Honeywell 316 Satellite IMPs use the ARPANET VDH protocol for this purpose. The new BBN - 10 - Host/SATNET Protocol IEN 192 C/30 Satellite IMPs support in addition ARPANET 1822 local host and distant host protocol. 3.2 Types of Service The type-of-service fields in the SATNET leader of each datagram message allows the following choices to be specified to SATNET for each message: Priority: 4 choices. This is used in conjunction with the acceptable delivery delay to arbitrate for SATNET resources. Acceptable Delivery Delay: 1 second, 5 seconds, 20 seconds, and 120 seconds. Holding Time: This is the maximum time an undelivered message should be held within SATNET before discarding. There are two choices: (1) twice the specified delivery delay, or (2) the maximum system holding time (currently about two minutes). Reliability: There are two choices, "standard" and "high". If standard is specified, a satellite channel acknowledgment is not used for the message, and it is not retransmitted by the source Satellite IMP in case of errors; if the packet is received at the destination Satellite IMP with a good message leader but errors in - 11 - Host/SATNET Protocol IEN 192 the data portion of the message, it is marked as such and delivered to its destination. If "high" is specified, the message is retransmitted as many times as necessary until a positive acknowledgment is received by the source Satellite IMP, up to the specified message holding time (duplicate copies may be delivered to the destination host in this case). 3.3 Addressing SATNET uses logical addressing, with each host assigned a 16-bit permanent address. Each data message sent to SATNET must contain both a source and destination logical address, and is delivered to the specified destination(s) with these addresses unchanged. Table 6 in Appendix A contains the current list of addresses. 3.4 Message Length Datagrams may have variable lengths, where these lengths are integer multiples of 16-bit words. Maximum length of the data portion of a datagram message is 128 words. The "data portion" excludes the SATNET leader but includes an internet header if present. - 12 - Host/SATNET Protocol IEN 192 3.5 Host/SATNET Flow Control Each message sent by a host is accepted or refused by the Satellite IMP based upon various network and local congestion and status factors. If accepted, an ACCEPTED control message is returned to the host containing the message ID assigned by the host in the data message leader. If refused, a REFUSED control message is returned containing the message ID and a refusal code C. If the message itself is bad, a FORMAT ERROR control message is returned containing the message ID. The value of C is used to indicate to the host when it should subsequently retry the message. This is accomplished by also sending the host an "acceptance status" word at frequent intervals to inform it of the categories currently being accepted. The host may ignore the category information if it chooses, or map the categories into a smaller subset if convenient. The use of the categories allows the host to retry those messages first which are most likely to be accepted by the Satellite IMP. The "acceptance status" word also contains information indicating which message priorities and delivery delay classes are currently being accepted, allowing the host to also avoid unnecessarily sending new messages which will be refused. The acceptance status word is sent to the host in every data and - 13 - Host/SATNET Protocol IEN 192 control message from the Satellite IMP; in the absence of regular traffic, a "Hello" message containing the acceptance status word is sent once per second. Hosts must return an explicit acceptance or refusal for each message received from the Satellite IMP. Note that a "refusal" by the host is a request to the Satellite IMP to requeue the message in question and submit it again later. Currently, refused messages are immediately discarded, so as to eliminate a line congestion problem seen with the catenet. 3.6 Status Messages A host can request current status information from SATNET by sending a "Status Request" control message. The Satellite IMP will return a status message containing the acceptance status word, SATNET global time, and an indicator of the current delay expected for each delivery delay class. (Inclusion of host status information is still under study.) 3.7 Hello Messages When it is not sending data or control messages, the Satellite IMP or host must send a "Hello" control message once every second. In addition to providing frequent updating of acceptance status, the hello message allows the receiver to maintain the up/down status of the sender. The Satellite IMP - 14 - Host/SATNET Protocol IEN 192 will do this by resetting a timeout counter whenever anything is received from the host; if the timeout expires, the host will be declared down and the Satellite IMP will begin sending restart messages as described in the next section. The timeout value used by the Satellite IMP is thirty seconds. 3.8 Message Reference Numbers To support message-by-message acknowledgements, each data message is assigned a 7-bit "message reference number" by its sender. Its purpose is to allow referencing of the message in a subsequent acknowledgement (ACCEPTED, REFUSED, or FORMAT ERROR) message. Reference numbers may be assigned in any order, except that a particular number may not be reused until the message it refers to has been acknowledged. All reference numbers are automatically released whenever the Host/SATNET interface is reinitialized. 3.9 Initialization Since the Host/SATNET protocol requires an explicit acknowledgement for each message, the initialization procedure ensures that full two-way communication is possible before allowing either side to begin transmitting data. Whenever a host or a Satellite IMP is restarted, it sends a RESTART REQUEST control message to the other party once every ten seconds until a RESTART COMPLETE is received, at which time it sends a RESTART - 15 - Host/SATNET Protocol IEN 192 COMPLETE. The procedure in initializing the interface is shown in Figure 1 in Appendix B. The initialization action indicated in Figure 1 consists of flushing all queued control messages waiting to be sent, and of flushing all received data messages for which an ACCEPTED or REFUSED message has not already been sent. Note that data messages waiting to be sent need not be flushed; they can continue to be queued during the 'waiting' state and their transmission begun once the 'on' state is entered. 3.10 Format Errors Whenever an invalid leader field value or message length is detected in a received message a FORMAT ERROR control message is returned to the sending host or Satellite IMP. An error code is returned in this message to indicate the detected condition (these codes are defined in the Formats section of this document, section 3.13). 3.11 Loop Detection To allow a Satellite IMP or host to detect situations in which the interface may be externally looped (crosspatched), a Host/Satellite IMP address bit is included in all data and control messages, identifying the sender of each message. - 16 - Host/SATNET Protocol IEN 192 3.12 Piggybacked Control Messages Control messages of the ACCEPT, REFUSE, FORMAT ERROR, and RESTART COMPLETE types may be piggybacked onto data messages by including the control message in the 16-bit "piggyback" field of the data message header. The Satellite Imp interprets all piggybacked control information before examining the rest of the data message, so, for example, a piggybacked RESTART COMPLETE takes effect immediately. 3.13 Formats The general format used for Host/SATNET interface exchanges is shown in Figure 2 (all figures are in Appendix B). The control code always defines the message format; for all except data messages, it also implicitly defines the message length. Exact data message length is assumed to be derived from the host or Satellite IMP interface transfer, and is always an integer multiple of 16-bit words. 3.13.1 Control Codes Each distinct message type is identified by a unique 4-bit control code. Codes currently defined are: - 17 - Host/SATNET Protocol IEN 192 1 = DATA 2 = ACCEPTED 3 = REFUSED 4 = STATUS REQUEST 5 = STATUS 6 = HELLO 7 = DATA WITH ERRORS 13 = FORMAT ERROR 14 = RESTART REQUEST 15 = RESTART COMPLETE 3.13.2 Data Messages Figure 3 shows the format for datagram DATA messages (the width of each word in this and subsequent figures is 16 bits). Words 1, 2, and 3 are defined by the interface sender (host or Satellite IMP); words 4, 5, and 6 are defined by the source host. Word 1, datagram message control word: - H/S, bit 1: 0 = from Satellite IMP, 1 = from host - message ID, bits 2-8: defined in Section 3.6 - block length, bits 9-12: the number of 64-word blocks of data words following the message leader: a block length of 1 means the message contains between 1 and 64 data words; a length of 2 means 65 and 128 data words, etc. The maximum datagram length is defined by Section 3.2. A length of 0 means a null DATA message. - Control Code, bits 13-16: 1 = DATA (no detected errors) - 18 - Host/SATNET Protocol IEN 192 7 = DATA WITH ERRORS -- used only if "standard reliability" service is designated and one or more data errors were detected by SATNET in the data portion of the message. Applies only to packets delivered by SATNET to hosts. Word 2, acceptance status: (defined below). Word 3, piggyback field: This word may contain any of the one-word control messages defined by codes 2, 3, 13, and 15. A value of zero means the word is not used. Word 4, Type of Service Word: (defined below). Word 5, destination host: a 16-bit SATNET logical address. Word 6, source host: a 16-bit SATNET logical address. 3.13.2.1 Type of Service Word Figure 4 shows the details of word 4 of datagram DATA message leaders. M, bits 1-2: DATA message type; 0 = datagram, internet format 1 = stream, internet format 2 = datagram, local format 3 = stream, local format - 19 - Host/SATNET Protocol IEN 192 P, bits 3-4: priority; 0 = highest priority, 3 = lowest. D, bits 5-6: acceptable delivery delay ("delay class"); delay class value ----------- ----- 0 1 second 1 5 seconds 2 20 seconds 3 120 seconds H, bit 7: holding time; 0 = maximum (120 seconds*), 1 = twice the specified delay class. R, bit 8: reliability; 0 = high, 1 = standard 3.13.2.2 Acceptance Status Word Figure 5 shows the details for this word. If the entire word equals 0, everything is being accepted. Category bits, bits 1-4: each bit defines the current acceptance/refusal status for the category corresponding to the bit number (e.g., bit 3 represents category 3). 0 = accepting for this category 1 = refusing Delay Class Priority, bits 5-16 (not currently implemented): each delay class is identified by its position within the acceptance status word; e.g., bits 14-16 contain information for delay class 3. The content of each three-bit field is a binary number defining the current priorities being accepted for that delay class, interpreted as follows: - 20 - Host/SATNET Protocol IEN 192 0 = all priorities accepted 1 = lowest priority (3) not accepted 2 = lowest two priorities (2,3) not accepted 3 = lowest three priorities (1,2,3) not accepted 7 = none accepted 3.13.3 ACCEPTED Messages Figure 6 shows the format of ACCEPTED messages. (An acceptance status word, as defined in Figure 5, is always the second word of this and all other messages.) H/S, bit 1: same as for Data messages. Data message ID, bits 2-8: The message ID of the DATA message being accepted. Control Code, bits 13-16: ACCEPTED = 2. 3.13.4 REFUSED Messages Figure 7 shows the format of REFUSED messages. H/S, bit 1: same as for DATA messages. Data message ID, bits 2-8: The message ID of the DATA message being refused. C, bits 9-12: refusal category. A value of 0 to 4 means a refusal due to temporarily unavailable resources. Messages refused with category values 1 to 4 will not be accepted until the corresponding category - 21 - Host/SATNET Protocol IEN 192 bit in the acceptance status word becomes 0. A category value of 0 means the refusal is because of the message priority and/or delay class; acceptance information for this case is given by the delay class priority bits in the acceptance status word. Values of C have the following meanings (acceptance status word information does not apply to values 8 to 15): 0 = refused for priority/delay class 1 = category 1 refusal 2 = category 2 refusal 3 = category 3 refusal 4 = category 4 refusal 5 = undefined 6 = undefined 7 = undefined *8 = data length greater than stream length 9 = destination host has been declared in a "refusing" state 10 = destination host is not reachable 11 = destination host's Satellite IMP is not reachable 12 = unrecognized destination address 13 = destination host access not allowed 14 = illegal source host *15 = no active stream with that stream ID *(See Section 4 on stream access) Control Code, bits 13-16: REFUSED = 3. 3.13.5 STATUS REQUEST Messages Figure 8 shows the format of STATUS REQUEST messages. H/S bit 1: same as DATA messages. Control code, bits 13-16: STATUS REPORT = 4. - 22 - Host/SATNET Protocol IEN 192 3.13.6 STATUS MESSAGES Figure 9 shows the format of STATUS messages. Word 1: H/S bit, bit 1 = same as DATA messages. Control Code, bits 13-16: STATUS = 5. Word 2: ACCEPTANCE STATUS Word 3, SATNET global time: current internally synchronized clock time used by Satellite IMPs; unit of time = 10.24 milliseconds, maximum value equals 2{16} -1 units. Words 4-7: current expected delay for the indicated delay class (values to be defined). 3.13.7 HELLO Message Figure 10 shows the status of Hello messages. H/S bit 1: same as DATA messages. Control Code, bits 13-16: HELLO = 6. 3.13.8 FORMAT ERROR Message Figure 11 shows the format of FORMAT ERROR messages. - 23 - Host/SATNET Protocol IEN 192 H/S bit 1: same as DATA messages. Error Message ID, bits 2-8: ID of DATA message with format error (if applicable, otherwise = 0). Error Code, bits 9-12: 0 = undefined error 1 = data message length exceeds SATNET maximum size 2 = illegal control code 3 = block length disagrees with message length. 4 = illegal control code in piggyback word of data message. 5 = undefined category value (5-7) in REFUSED message. Control Code, bits 13-16: FORMAT ERROR = 13. Note: Implementation of error codes 2 to 5 is optional; however, a FORMAT ERROR message should be returned with (at least) error codes 0 and 1 for illegal conditions. 3.13.9 RESTART REQUEST Message Figure 12 shows the format of RESTART REQUEST message. H/S bit 1: same as DATA messages. Host Type, bits 9-12: presently undefined. Control Code, bits 13-16: RESTART REQUEST = 14. - 24 - Host/SATNET Protocol IEN 192 3.13.10 RESTART COMPLETE Message Figure 13 shows the format of RESTART COMPLETE messages. H/S bit 1: same as DATA messages. Host Type, bits 9-12: presently undefined. Control Code, bits 13-16: RESTART COMPLETE = 15. Note: All Restart Request and Complete messages sent by the Satellite IMP have bits 9 to 12 set to zero. - 25 - Host/SATNET Protocol IEN 192 4. STREAM ACCESS PROTOCOLS 4.1 Overview In addition to datagram message service, SATNET provides a service called 'stream'. A stream is a sort of virtual circuit in which information must be established within Satellite IMP tables for the duration of the stream use. This information maintains an outstanding reservation for the stream, causing channel time to be scheduled at more or less regular intervals specified in the stream setup. This mechanism provides one of the important performance properties of a stream which motivates its use: one-hop for each stream data packet (as opposed to at least two hops for datagrams). Any number of hosts can use the same stream; host membership is accomplished by special Host/SATNET messages. Each stream is identified by a SATNET-assigned Stream ID, which has two distinct functions. The first is to allow Satellite IMPs to identify the transmission properties being used for each stream data message including verification that the sending host is a stream member. The second Stream ID function is its optional use as a destination address in a stream or datagram data message, causing delivery to the Stream ID members. (Its use in datagram messages allows "out of band" signaling messages to be sent while the stream data messages are also being sent.) - 26 - Host/SATNET Protocol IEN 192 The destination address in a stream data message is not limited to the Stream ID, however; any SATNET address may be used. Thus, a host can set up a simplex stream in which it is the only member, and therefore the only sender, and send messages to different hosts using the single stream. Or, a set of hosts can use a single stream in an arbitrarily shared manner (determined by the hosts) to send to arbitrary destinations. More typically, a stream would be used by a set of hosts for voice conferencing, in which the Stream ID would be used as the destination address. Note that, in all cases of shared use, hosts must provide a protocol to determine how the stream is shared. If every member host presented a stream data packet to its Satellite IMP at the same time, they would all be sent simultaneously in the satellite channel with resultant destructive interference. (Note: the addressing use of a Stream ID is not presently implemented -- only permanent SATNET addresses, either point or group, are allowed.) 4.2 Stream Data Messages Stream data messages have the format shown in Figure 14. The message type (bits 1 and 2 of word H4) may be either 1 (stream data, internet format) or 3 (stream data, local format).(1) Bits 3 to 16 of word H4 contain a Stream ID, _________________________________________________________________ (1) Table 5 in Appendix A defines all SATNET message types. - 27 - Host/SATNET Protocol IEN 192 assigned by SATNET as described in the next section. The destination address in word H5 can be any SATNET address. The source host address in word H6 must be assigned to the Satellite IMP port used to send the message into SATNET, and must be a member of the Stream ID. An ACCEPTED or REFUSED message will be returned by the Satellite IMP for each stream data message, the same as for datagrams. Stream data messages will normally always be accepted unless they are greater than (to be determined) seconds early relative to the next stream slot time, or the stream is being preempted by higher priority traffic. Internal SATNET channel acknowledgments are not used for stream data messages. 4.3 Stream Request Replies and Notifications Streams can be used by a Host only by first establishing certain information within SATNET. The following requests are used: CREATE DELETE JOIN LEAVE CHANGE Each request is sent by the host, along with supplemental information, in the data portion of a datagram message to the - 28 - Host/SATNET Protocol IEN 192 SATNET Service Host. A Request message is accepted or refused by the local Satellite IMP the same as any other datagram message; if accepted it is delivered to an internal host within the local Satellite IMP which acts on the request, returning a datagram message reply to the source host indicating its disposition. The reply always contains a Request ID supplied by the host in its Request message, allowing the host to relate the response to its earlier request (more than one Request message may be outstanding from a host; the maximum number outstanding will be limited implicitly by the datagram message refusal mechanism). Figure 15 shows the format used for Request messages, which are always local datagram (type 2). The Request message priority PR in header word H4 may be assigned the same as for other datagram traffic. The source host address must be assigned to the Satellite IMP port used for the message. The first data word D1 contains one of the Request Codes defined in Table 1. The Request ID in word D2 is chosen by the host, and should not be re-used until a Reply message is received with the same ID to avoid ambiguity. Figure 16 shows the format used for Reply messages, which are always local datagram (type 2). The values of PR and the Request ID are those used by the host in the Request messages; the source host address of the Request message is used as the destination host address. Word D1 contains a Reply Code in bits - 29 - Host/SATNET Protocol IEN 192 2 to 16 indicating the action taken on the request; bit 1 is always zero. The contents of words D3-D6 depends on the Reply Code; whether used or not, all Reply messages will contain six data words. Table 2 lists the possible Reply Codes. In addition to Reply messages, a Notification message may be sent to a host by SATNET concerning streams for which the host has previously established membership. The Notification message format is shown in Figure 17, and is also a local datagram type message. The notification message priority PS in word H4 is that assigned to the stream; the Stream ID involved in the notification is contained in data word D2. A Notification Code is contained in bits 2 to 16 of word D1; bit 1 of this word is always set to 1 to distinguish Notification messages from Reply messages. As in the case of Reply messages a Notification message always contains words D3 to D6, whose contents depend on the Notification Code. Table 4 lists the Notification Codes. (Notifications not implemented.) Except when a request is refused as a result of information local to the source Satellite IMP, Notification messages have a delay of at least one satellite hop (about 0.25 seconds) relative to the request message, and are initiated at approximately the same global SATNET time by Satellite IMPs to their involved hosts. A Reply indicating successful completion of a stream request requires at least five seconds' delay after receipt of the request. - 30 - Host/SATNET Protocol IEN 192 4.3.1 CREATE The words used in the data portion of a CREATE request are shown in Figure 18. Word D3 contains a zero if a new stream is being requested (the use of non-zero values will be defined in a later version of the Host/SATNET access protocol). Words D4-D6 contain a Key which is used to authenticate subsequent requests from any host concerning the stream. Any 48-bit value may be used, including zero; however, all subsequent Request message Keys for this stream must equal this Key to be honored. Words D7-D9 define the parameters to be used for the stream by SATNET. Ps is the priority to be used for the stream data messages. Bits 7 to 16 of word D7 indicate the maximum number L of 16-bit data words which will be sent in any data message using the stream. The queue length, bits 1-4 of D8, is the maximum number of messages that may be queued at once awaiting transmission using the stream. The stream interval is a 24-bit quantity indicating the time (in ten microsecond units) between stream messages. The high order eight bits are in D8, bits 9-16, and the low 16 bits are in D9. A suitable time for messages in this stream will be computed using the stream interval given. If the CREATE is honored, Stream Started Reply message will be returned with the Stream ID assigned by SATNET in word D3 (words D4-D6 are not used). The first stream channel allocation - 31 - Host/SATNET Protocol IEN 192 is begun approximately one stream interval I following generation of the Reply message. If refused, a Stream Creation Refused will be returned with a reason code in Word D3. Each CREATE message received with word D3 set to zero will cause the creation of a new stream (resources permitting), independently of the Key or other field values contained in the CREATE message. Note that different streams may use the same Key; the SATNET-assigned Stream ID supplied by hosts in subsequent Request messages provides unique referencing to the stream in question. 4.3.2 DELETE Figure 19 shows the data words sent in a DELETE Request. Word D1 contains the DELETE STREAM Request Code; word D2 contains the host's Request ID (this ID need not relate to any previous Request message); word D3 contains the Stream ID; words D4-D6 contain the Key. If the DELETE STREAM request is honored, the stream channel allocations will be terminated and a Stream Deleted Reply message will be returned with the Stream ID in word D3; words D4-D6 are not used. In addition, a Notification message ("Stream Deleted by Host X") will be sent to all other member hosts, with the address of the requesting host in D3 (not implemented yet); words D4-D6 are not used. All Satellite IMP table entries concerning - 32 - Host/SATNET Protocol IEN 192 the stream will be cleared and the Stream ID released for re-use. If the DELETE STREAM request is not honored, a Stream Deletion Refused Reply will be returned. Word D3 will indicate why the request was refused. Table 3 indicates the refusal reasons that can appear in D3. 4.3.3 JOIN A JOIN Request (not implemented yet) is used by a host to establish membership in a stream previously created by another host. (It is the responsibility of the creating host to distribute the assigned Stream ID and Key to those hosts it wishes to have participate in the use of the stream.) The format shown in Figure 19 is used for a JOIN, with the JOIN STREAM Request Code in word D1. If the stream exists and the correct Key is supplied, a Stream Joined Reply message is returned approximately one stream interval prior to the next scheduled channel allocation for the stream. Word D3 of the reply message contains the Stream ID; words D4-D6 contain the parameters currently used for the stream, formatted according to words D7 to D9 of Figure 5. Also, a Notification Code 3 Message ("Stream Joined by Host X") is sent to all other member hosts--word D3 contains the address of the newly joined host; words D4-D6 are not used. - 33 - Host/SATNET Protocol IEN 192 If the JOIN is not honored, a Join Refused Reply message will be returned with a Table error code as appropriate. 4.3.4 LEAVE A host may leave a stream of which it is a member by use of a LEAVE Request (not implemented yet). The format of Figure 19 is again used, with the Request Code = 4. If the stream exists and the host is entered as a member in Satellite IMP tables, a Stream Left Reply message will be returned. Note that the Key is not used for this request. Also, a Notification Code 4 message ("Stream Left by Host X") is sent to all member hosts; word D3 contains the address of the departed host; words D4-D6 are not used. A Leave request will always succeed. However, in some cases it may be impossible to notify other stream members of the event. If so, a Leave Without Notification Reply message will be returned. Word D3 will indicate why notification could not be made. 4.3.5 CHANGE A host can request changes to the parameters defining a stream by use of a CHANGE request (not implemented yet). This message is identical to the CREATE message format of Figure 18, except that the Request code is set to 5 in word D1 and word D3 - 34 - Host/SATNET Protocol IEN 192 contains the Stream ID. All parameters of words D7-D9 must be defined, whether or not their values are being changed -- if allowed, the parameters will be used to re-define the stream characteristics just as if they were being supplied in a CREATE request. If the changes can be honored, a Stream Changed Reply message will be returned with the Stream ID in word D3; words D4-D6 are not used. Also, a Notification code 5 message ("Stream Changed by Host X") is sent to the other member hosts; word D3 contains the address of the requesting host; words D4-D6 contain the new parameters. If the changes cannot be made, a Stream Changes Refused Reply message is returned to the requesting host, with a reason code in word D3 (see Table 3). 4.4 SATNET Termination and Suspension of Streams A stream termination will be initiated by SATNET if (1) a data message is not sent in the stream by any of the member hosts for sixty seconds, or (2) if the stream's channel allocation cannot be honored for N (to be determined) consecutive stream intervals I due to higher priority traffic (not implemented yet). If either of these occurs, a Notification code 1 message ("Stream Deleted by SATNET") will be sent to all member hosts with an appropriate reason code in word D3; words D4-D6 are not used. - 35 - Host/SATNET Protocol IEN 192 All Satellite IMP table entries concerning the stream will be deleted and the Stream ID released for re-use. Whenever a stream's channel allocation has not been honored by SATNET for M (to be determined) consecutive stream intervals I following the last allocation, a Notification Code 6 message ("Stream Suspended") is sent to all member hosts (M will be much smaller than N). If the allocations are resumed before N consecutive non-allocations, a Notification Code 7 message ("Stream Resumed") is sent to all member hosts. (These are not implemented yet.) - 36 - Host/SATNET Protocol IEN 192 5. Land Modem Interface A Satellite IMP communicates with other IMPs and with Very Distant Hosts via communication circuits, such as those provided by the various common carriers (Bell, Western Electric, etc.) The exact nature of the synchronous modems and dedicated full duplex lines varies from site to site. The hardware interface to the modem is the standard BBN IMP-modem interface which is logically identical to the Bell 303 interface with the exception that the mark and space convention is inverted for characters sent to the modem (i.e., binary "one" equals high current). The control lines, however, are not inverted. 6. Local Host Interface Local Host computers interface to the Satellite IMP via a hardware interface which is electrically equivalent to that used in the ARPANET between hosts and IMPs. The electrical specification for this interface appears in BBN Report No. 1822 entitled "Specifications for the Interconnection of a host and an IMP". - 37 - Host/SATNET Protocol IEN 192 APPENDIX A. A.1 Table 1 -- Request Codes 1 -- Create Stream 2 -- Delete Stream 3 -- Join Stream 4 -- Leave Stream 5 -- Change Stream Parameters A.2 Table 2 -- Reply Codes 1 -- Stream Started 2 -- Stream Deleted 3 -- Stream Joined 4 -- Stream Left 5 -- Stream Changed 6 -- Stream Creation Refused 7 -- Stream Deletion Refused 8 -- Join Refused 9 -- Leave without Notification 10 -- Stream Changes Refused 11 -- Illegal Request Code - 38 - Host/SATNET Protocol IEN 192 A.3 Table 3 -- Error Codes in D3 0 -- System busy; unable to handle request 1 -- Unimplemented function 2 -- Invalid protection Key 3 -- Not member of stream 4 -- Stream does not exist 5 -- Net trouble 6 -- Insufficient resources to handle request 7 -- Improper format for request 8 -- Channel protocol does not support streams 9 -- Illegal argument in stream request 10 -- Channel access not allowed A.4 Table 4 -- Notification Codes 1 -- Stream Deleted by SATNET 2 -- Stream Deleted by Host X 3 -- Stream Joined by Host X 4 -- Stream Left by Host X 5 -- Stream Changed by Host X 6 -- Stream Suspended 7 -- Stream Resumed A.5 Table 5 -- SATNET Data Message Types 0 -- Datagram, internet format 1 -- Stream data, internet format 2 -- Datagram, local format 3 -- Stream data, local format - 39 - Host/SATNET Protocol IEN 192 A.6 Table 6 -- SATNET Logical Address Map 0 -- 0 SATNET Service Host 1 -- Etam EXPAK fake host 2 -- Goonhilly EXPAK fake host 3 -- Tanum EXPAK fake host 4 -- Clarksburg EXPAK fake host 5 -- Etam Message Generator/Sink #0 6 -- Etam Message Generator/Sink #1 7 -- Etam Message Generator/Sink #2 8 -- Etam Message Generator/Sink #3 9 -- Goonhilly Message Generator/Sink #0 10 -- Goonhilly Message Generator/Sink #1 11 -- Goonhilly Message Generator/Sink #2 12 -- Goonhilly Message Generator/Sink #3 13 -- Tanum Message Generator/Sink #0 14 -- Tanum Message Generator/Sink #1 15 -- Tanum Message Generator/Sink #2 16 -- Tanum Message Generator/Sink #3 17 -- Clarksburg Message Generator/Sink #0 18 -- Clarksburg Message Generator/Sink #1 19 -- Clarksburg Message Generator/Sink #2 20 -- Clarksburg Message Generator/Sink #3 21 -- Etam Internal Gateway 22 -- Goonhilly Internal Gateway 23 -- Tanum Internal Gateway 24 -- unused 25 -- unused 26 -- unused 27 -- unused 28 -- unused 29 -- unused 30 -- Clarksburg Internal Gateway 31 -- unused 32 -- unused 33 -- unused 34 -- unused 35 -- unused 36 -- unused 37 -- Universal Message Sink (equivalent name) 38 -- Tanum NDRE Gateway 39 -- Clarksburg COMSAT Gateway 40 -- Universal Satellite Echo (equivalent name) 41 -- Etam Monitor Fake Host 42 -- Goonhilly Monitor Fake Host 43 -- Tanum Monitor Fake Host 44 -- Clarksburg Monitor Fake Host 45 -- Etam Packet Core Fake Host 46 -- Goonhilly Packet Core Fake Host - 40 - Host/SATNET Protocol IEN 192 47 -- Tanum Packet Core Fake Host 48 -- Clarksburg Packet Core Fake Host 49 -- Etam TTY Fake Host 50 -- Goonhilly TTY Fake Host 51 -- Tanum TTY Fake Host 52 -- Clarksburg TTY Fake Host 53 -- Etam DDT Fake Host 54 -- Goonhilly DDT Fake Host 55 -- Tanum DDT Fake Host 56 -- Clarksburg DDT Fake Host 57 -- unused 58 -- unused 59 -- unused 60 -- Goonhilly UCL Gateway 61 -- Etam BBN Gateway 62 -- Etam Echo Fake Host 63 -- Goonhilly Echo Fake Host 64 -- Tanum Echo Fake Host 65 -- Clarksburg Echo Fake Host 66 -- unused 67 -- unused 68 -- unused 69 -- unused 70 -- unused 71 -- unused 72 -- Raisting External Gateway 73 -- unused 74 -- unused 75 -- unused 76 -- Raisting Internal Gateway 77 -- Raisting Echo Fake Host 78 -- Raisting Monitor Fake Host 79 -- Raisting EXPAK Fake Host 80 -- Raisting Packet Core Fake Host 81 -- Raisting DDT Fake Host 82 -- Raisting TTY Fake Host 83 -- Raisting Message Generator/Sink #0 84 -- Raisting Message Generator/Sink #1 85 -- Raisting Message Generator/Sink #2 86 -- Raisting Message Generator/Sink #3 87 -- unused 88 -- Fucino External Gateway 89 -- unused 90 -- unused 91 -- unused 92 -- Fucino Internal Gateway 93 -- Fucino Echo Fake Host - 41 - Host/SATNET Protocol IEN 192 94 -- Fucino Monitor Fake Host 95 -- Fucino EXPAK Fake Host 96 -- Fucino Packet Core Fake Host 97 -- Fucino DDT Fake Host 98 -- Fucino TTY Fake Host 99 -- Fucino Message Generator/Sink #0 100 -- Fucino Message Generator/Sink #1 101 -- Fucino Message Generator/Sink #2 102 -- Fucino Message Generator/Sink #3 103 -- unused - 42 - Host/SATNET Protocol IEN 192 +-------+ | | | OFF | | | TO = TIMEOUT +-------+ RR = RESTART REQUEST | RC = RESTART COMPLETE |INIT & SEND RR | V +-------+ --->| |--------------- / | | \ | | | \ | | INIT | | | | |<--- | \ | | \ | ----| | | | 10 SEC TO +-------+ | | ------- | | | SEND RR |RCVD RR | | | ----- | | |SEND RC | | V | | +-------+ | | -------------->| | | | / | | / | / --->| |---- | | / |WAITING| 100 SEC TO | | | | | -------- | | \ | | SEND RR | | ----| | | | 10 SEC TO +-------+ | | ------- | | | SEND RC | | | |RCVD RC | | | | \ V / \ +-------+ / ---------------| |<-------------- RCVD RR | ON | RCVD RC ------------ | | ----- INIT & SEND RC +-------+ SEND RC B.1 Figure 1. Restart State Diagram - 43 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| | CONTROL CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | | | | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.2 Figure 2. General Message Format - 44 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| MESSAGE ID | BLOCK LENGTH | CODE = 1 or 7 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H3 | PIGGYBACK WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 | TYPE OF SERVICE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H5 | DESTINATION HOST(S) ADDRESS | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H6 | SOURCE HOST ADDRESS | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D1 | | | | | DATA | | | DN | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.3 Figure 3. Block DATA Message - 45 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 | M | P | D | H | R | (unused) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.4 Figure 4. Type of Service Word 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | C | D0 | D1 | D2 | D3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.5 Figure 5. Acceptance Status Word 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| DATA MESSAGE ID | (unused) | CODE = 2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.6 Figure 6. ACCEPTED Message 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| DATA MESSAGE ID | C | CODE = 3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.7 Figure 7. REFUSED Message - 46 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| (unused) | CODE = 4 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.8 Figure 8. STATUS REQUEST Message MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| (unused) | CODE = 5 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H3 | SATNET GLOBAL TIME | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 | CURRENT DELAY FOR CLASS 0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H5 | CURRENT DELAY FOR CLASS 1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H6 | CURRENT DELAY FOR CLASS 2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H7 | CURRENT DELAY FOR CLASS 3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.9 Figure 9. STATUS Message - 47 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| (unused) | CODE = 6 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.10 Figure 10. HELLO Message 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| ERROR MESSAGE ID | ERROR CODE | CODE = 13 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.11 Figure 11. FORMAT ERROR Message 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| (unused) | HOST TYPE | CODE = 14 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.12 Figure 12. RESTART REQUEST Message 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| (unused) | HOST TYPE | CODE = 15 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.13 Figure 13. RESTART COMPLETE Message - 48 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| MESSAGE ID | BLOCK LENGTH | CODE = 1 or 7 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H3 | PIGGYBACK WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 | 1 or 3| STREAM ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H5 | DESTINATION HOST(S) ADDRESS | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H6 | SOURCE HOST ADDRESS | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | (INTERNET HEADER IF TYPE=1) | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D1 | | | | | STREAM DATA | | | DN | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.14 Figure 14. Stream Data Format - 49 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| MESSAGE ID | BLOCK LENGTH | CODE = 1 or 7 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H3 | PIGGYBACK WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 |0 or 2 | PR | 0 | 0 | 0 | (unused) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H5 | SATNET SERVICE HOST (CURRENT ADDRESS = 0) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H6 | SOURCE HOST ADDRESS | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | (INTERNET HEADER IF TYPE=0) | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D1 | REQUEST CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D2 | REQUEST ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D3 | | | | | REQUEST INFORMATION | | | DN | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.15 Figure 15. Request Message Format - 50 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| MESSAGE ID | BLOCK LENGTH | CODE = 1 or 7 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H3 | PIGGYBACK WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 |0 or 2 | PR | 0 | 0 | 0 | (unused) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H5 | REQUESTING HOST | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H6 | SATNET SERVICE HOST (CURRENT ADDRESS = 0) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | (INTERNET HEADER IF TYPE=0) | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D1 | 0 | REPLY CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D2 | REQUEST ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D3 | | | | | REPLY INFORMATION | | | D6 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.16 Figure 16. Reply Message Format - 51 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H1 |H/S| MESSAGE ID | BLOCK LENGTH | CODE = 1 or 7 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H2 | ACCEPTANCE STATUS WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H3 | PIGGYBACK WORD | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H4 |0 or 2 | PS | 0 | 0 | 0 | (unused) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H5 | MEMBER HOST | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ H6 | SATNET SERVICE HOST (CURRENT ADDRESS = 0) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | (INTERNET HEADER IF TYPE=0) | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D1 | 1 | NOTIFICATION CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D2 | STREAM ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D3 | | | | | NOTIFICATION INFORMATION | | | D6 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.17 Figure 17. Notification Message Format - 52 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D1 | REQUEST CODE = 1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D2 | REQUEST ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D3 | STREAM ID = 0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D4 | | | | D5 | KEY | | | D6 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D7 | (unused) | PS | MAXIMUM DATA LENGTH (L) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D8 | QUEUE LENGTH | (unused) | STREAM INTERVAL (HIGH BITS) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D9 | STREAM INTERVAL (LOW BITS) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.18 Figure 18. Create Request Words - 53 - Host/SATNET Protocol IEN 192 MSB LSB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | = 2: DELETE | D1 | REQUEST CODE = 3: JOIN | | = 4: LEAVE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D2 | REQUEST ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D3 | STREAM ID | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ D4 | | | | D5 | KEY | | | D6 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ B.19 Figure 19. Delete, Join, Leave Request Words - 54 -