6.3. Notifications Notifications are Setup exchanges initiated by the WPS to inform a host of changes in the status of a network resource. The format of Notification messages is shown in Figure 29.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S0 | 3 | CODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S1 | CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S2 | NOTIFICATION ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S3 | NOTIFICATION INFO | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ NOTIFICATION MESSAGE Figure 29 S0[0-7] Message Type = 3 (Notification). S0[8-15] Code. This indicates what the Notification signifies. 0 = Stream suspended 1 = Stream resumed 2 = Stream deleted 3 = Group deleted by a host 4 = Group deleted by network 5 = All streams deleted 6 = All groups deleted 7 = Group changed by a host 8 = Group changed by network S1[0-15] Checksum. (See Service Agent Header description.) S2[0-15] Notification ID. S3[0-15] Notification Information. For notification types 0, 1, and 2, NOTIFICATION INFO contains the following: +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S3 | 0 | stream ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ For notification types 3, 4, 7, and 8, NOTIFICATION INFO contains the following:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S3 | group address | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ For notification types 5 and 6, which refer to all streams or groups, NOTIFICATION INFO is zero. 6.4. Setup Acknowledgments The host must acknowledge receipt of Setup Replies and Notifications from the Service Agent, as described earlier. The format for the Setup Acknowledgment message is shown in Figure 30. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S0 | 0 | CODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S1 | CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S2 | MESSAGE ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ SETUP ACKNOWLEDGMENT Figure 30 S0[0-7] Message Type = 0 (Acknowledgment). S0[8-15] Code. This field indicates the type of acknowledgment. 0 = Reply acknowledgment 1 = Notification acknowledgment S1[0-15] Checksum. (See Service Agent Header description.) S2[0-15] Message ID. This is either a Request ID or a Notification ID. 6.5. Information Request / Reply Messages The host may obtain information about WPS state and about what resources the WPS currently has allocated for the host by sending an Information Request message to the Service Agent. The Information Reply that is returned will enable the host to determine 1) what
resources the WPS has allocated to the host, and 2) the current state of the network and, possibly, certain network parameters. This allows the host to refrain from trying to use resources it no longer has, and to regain information it may have lost on its network resources. This communication also informs the host of the network state so that it may make priority and routing decisions. Each Information Request (Figure 31) and Information Reply (Figure 32) message deals with a single type of resource at a time. The header of the Information Reply message contains the number of entries within the message, the number of 16-bit words in each entry, and an instance of the appropriate information structure for each resource the Information Reply message describes. These information structures are described in Figures 33 and 34. Future versions of the HAP protocol may permit queries about network connectivity, estimated delay to a specified destination address under specified conditions, etc. This is a section of the protocol that is likely to expand in the future. Extensions are expected to be backward compatible provided implementors do not hard code the size of the returned information entries. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S0 | 4 | CODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S1 | CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S2 | MESSAGE ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ INFORMATION REQUEST MESSAGE Figure 31 S0[0-7] Message type = 4 (Information Request). S0[8-15] Code. This field identifies the Information Request Type. 1 = streams owned by host 2 = groups to which the host belongs S1[0-15] Checksum. (See Service Agent Header description.)
S2[0-15] Message ID. This field is assigned by the host to uniquely identify outstanding requests (Request ID). This ID is copied into Information Replies by the Service Agent. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S0 | 5 | CODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S1 | CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S2 | MESSAGE ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ S3 | NUMBER OF ENTRIES | WORDS PER ENTRY | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | S4-SN : ENTRIES (0 or more) : | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ INFORMATION REPLY MESSAGE Figure 32 S0[0-7] Message type = 5 (Information Reply). S0[8-15] Code. This field identifies the Information Reply Type. 1 = streams owned by host 2 = groups to which the host belongs 3 = error in Information Request message 4 = network trouble 5 = access not allowed S1[0-15] Checksum. (See Service Agent Header description.) S2[0-15] Message ID. This field is assigned by the host in the Information Request message to uniquely identify outstanding requests. This ID is copied into the Information Reply message by the Service Agent. S3[0-7] Number of entries included in the Information Reply message.
S3[8-15] Number of 16-bit words per entry. S4-SN Zero or more instances of either the stream information or group information structure. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 0 | STREAM ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | STREAM TYPE OF SERVICE WORD | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 2 | STREAM SIZE (bits per interval) | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 3 | STREAM INTERVAL (in units of 0.125 ms.) | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ STREAM INFORMATION Figure 33 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | GROUP ADDRESS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | 0 | MGP | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ GROUP INFORMATION Figure 34 7. Host Access Link Monitoring While the access link is operating, statistics on traffic load and error rate are maintained by the host and WPS. Once a second, the host and WPS exchange this information via Status messages (Figure 35). This periodic exchange of Status messages permits both ends of the link to monitor flows in both directions. The WPS also reports these monitoring statistics to the Network Operations Center (NOC). If either host or WPS fails to receive Status messages for ten seconds, the link will be restarted (see Section 8).
The link restart procedure initializes all internal WPS counts and statistics for that link to zero. As data and control messages are processed, counts are updated to reflect the total number of messages sent, messages received correctly, and messages received with different classes of errors since the last link restart. Whenever a Status message arrives, a snapshot is taken of the local WPS counts. The local receive counts, in conjunction with a sent count contained in the received Status message, permits the computation of traffic statistics in the one second update interval assuming that the set of counts at the time of the previous monitoring report have been saved. By including in the Status message sent (in the opposite direction) the receive counts and the received sent count that was used with them, the transmitting end of the access link as well as the receiving end can determine the link performance from sender to receiver. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 1|LB|GOPRI| 0 | 0 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | HEADER CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 2 | MOST RECENT A/R SENT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 3 | STREAM CAPACITY | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 4 | TIMESTAMP | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 5 | SBU | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 6 | STU | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 7 | RNE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 8 | RWE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 9 | BHC | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 10 | HEI | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ STATUS MESSAGE Figure 35
0[0] Message Class = 1 (Control Message). 0[1] Loopback indicator. 0[2-3] Go-Priority. 0[4-11] Reserved. Must be zero. 0[12-15] Control Message Type = 0 (Status). 1[0-15] Header Checksum. The checksum is the 2's-complement of the 2's-complement sum of words 0-10 (excluding the checksum word itself). 2[0-15] Most Recent A/R Sent. This field is a duplicate of the most recent acceptance/refusal word. It is included in the periodic Status message in case previous transmissions containing A/R information were lost. 3[0-15] Stream Capacity. When sent by the WPS, this field indicates how much stream capacity is unused, in units of data bits per millisecond. There is no guarantee that a request for a stream of this size will succeed. Since available capacity depends directly on a variety of parameters that can be selected by the user, the value of this field is the maximum capacity that could be achieved if existing streams were expanded at low reliability. This field is not meaningful in messages sent from the host to the WPS and must be set to zero. 4[0-15] Timestamp. This field indicates the time that the Status message was generated. When sent by a WPS, the time is in units of seconds since the last link restart. The host should also timestamp its messages in units of seconds. 5[0-15] Sent By Us. Count of messages sent by us since the last link restart (not including this one). 6[0-15] Sent To Us. Count of messages sent to us since the last link restart. This is the count from word 5 of the last Status message received. 7[0-15] Received, No Errors. This is the count of messages received without errors (since the last link restart) at the time that the last Status message was received. 8[0-15] Received With Errors. This is the count of messages
received with errors (since the last link restart) at the time the last Status message was received. 9[0-15] Bad Header Checksums. This is the count of messages received with bad header checksums (since the last link restart) at the time the last Status message was received. 10[0-15] Hardware Error Indication. This is the count of messages received with hardware CRC errors or hardware interface error indications (since the last link restart) at the time the last Status message was received. 8. Initialization The Host Access Protocol uses a number of state variables that must be initialized in order to function properly. These variables are associated with the send and receive message numbers used by the acceptance/refusal mechanism and the statistics maintained to support link monitoring. Link initialization should be carried out when a machine is initially powered up, when it does a system restart, when the ON state (see below) times out, when a loopback condition times out (see Section 9), or whenever the link transitions from non- operational to operational status. Initialization is accomplished by the exchange of Restart Request (RR) and Restart Complete (RC) messages between a host and a WPS. Either end (or both ends) may send an initial RR, and both ends must have sent and received an RC message in order to declare the link up. Because the RC message is a reply (to an RR or RC), receipt of an RC message by both ends guarantees that the physical link is operating in both directions. The initialization state diagram that must be implemented by both WPS and host is shown in Figure 36. Five states are identified in the state diagram: OFF Entered upon recognition of a requirement to restart. The interface in the Host or WPS can recognize this requirement itself or be forced to restart by receipt of an RR message from the other end while in the ON state. INIT Local state variables have been initialized but no RC messages have yet been sent or received. If receipt of an RR initiated the restart, or if an RR has been received since this restart began, send an RC (optional, reduces startup time). Otherwise, send an RR to alert the other end of the restart.
RR-SNT A request to reinitialize (RR) has been sent to the other end, but no RR or RC messages have been received. RC-SNT An RC has been sent to the other end in response to an RR. The interface is waiting to receive an RC. ON RC messages have been both sent and received. Local counters have been zeroed. Data and control messages can now be exchanged between the WPS and host. All states have 10-second timeouts (not illustrated) which return the protocol to the OFF state. The occurrence of any events other than those indicated in the diagram are ignored.
.-----. Any Timeout or ----->| OFF |<----------------------------+ Device Down `--+--' | | | | (When I/O Device Up) | V | .-------. | | INIT | | `---+---' | | | (Yes) V (No) | +---------RR Received?----------+ | | | | | Send RR | | | | | V | | .--------. | Send RC <-----+-------<--------+ RR-SNT | | | | (Rcv RR) `---+----' | | | | (Rcv RC) | V | | | .--------. | | | | RC-SNT +--->--+ Send RC | `----+---' (Rcv RR) | | (Rcv RC) | | | | | | +------->------+-------<--------+ | | | Initialize Status Counters | | | V | .-----. Rcv RR or | Rcv Any +----->| ON +---------------------->------+ Other | `--+--' Fail to Rcv Status message +---------+ for 10 seconds HAP LINK RESTART STATE DIAGRAM Figure 36 The Restart Request control message (Figure 37) is sent by either a host or a WPS when it wishes to restart a link. The Restart Request causes all the monitoring statistics reported in the Status Message to be reset to zero and stops all traffic on the link in both directions. The Restart Complete message (Figure 38) is sent in response to a received Restart Request or Restart Complete to complete link initialization. The Restart Complete carries a field used by the host to enable or disable the acceptance/refusal
mechanism for the link being restarted (see Section 5). After the Restart Complete is processed, traffic may flow on the link. The allocation and state of network resources (streams and groups) are separate from the state of the host's access link(s) to the WPS. The Information Request message (see Section 6.5) may be used by a host to determine what resources it has. If the "SL" bit is set in the Restart Complete message from the WPS, and if the host believes it has resources allocated to it, the host is strongly encouraged to use an Information Request to verify that it still has its resources. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 1|LB| 0 |VERSION | 0 | 3 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | HEADER CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 2 | HOST ADDRESS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 3 | LINK NUMBER | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ RESTART REQUEST Figure 37 0[0] Message Type = 1 (Control Message). 0[1] Loopback indicator. 0[2-4] Reserved. Must be zero. 0[5-7] HAP version number. Use 1. Use of zero invokes backward compatibility code (see Appendix B). 0[8-11] Reserved. Must be zero. 0[12-15] Control Message Type = 3 (Restart Request). 1[0-15] Header Checksum. The checksum is the 2's-complement of the 2's-complement sum of words 0-3 (excluding the checksum word itself). 2[0-15] Host Address. The WPS inserts the primary network address of the host. The host may insert any of its
network addresses in this field (hosts may have more than one logical address per physical port). The WPS will only bring up the HAP link if the host address is valid for the port being used. 3[0-15] Link Number. This field contains the sender's identification of the physical link being used. This information is used to identify the link when reporting errors to the Network Operations Center (NOC). 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 1|LB| 0 |VERSION | 0 |SL|AR| 4 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | HEADER CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 2 | HOST ADDRESS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 3 | LINK NUMBER | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ RESTART COMPLETE Figure 38 0[0] Message Type = 1 (Control Message). 0[1] Loopback indicator. 0[2-4] Reserved. Must be zero. 0[5-7] HAP version number. Use 1. Use of zero invokes backward compatibility code (see Appendix B). 0[8-9] Reserved. Must be zero. 0[10] Service loss alert (boolean) (WPS to host only; host must send zero). If the WPS has any reason to believe that the resources allocated to the host may not match what the host believes is allocated, SL is set to one. If SL is one, a host that believes it owns any resources is strongly encouraged to use an Information Request to verify that the resources are still allocated. SL will be one the first time a link is brought up after a WPS is restarted, and may be set in other cases.
0[11] Acceptance/Refusal Control. This bit is used by the host to enable or disable the acceptance/refusal mechanism for all traffic on the link. 0 = Disable acceptance/refusal 1 = Enable acceptance/refusal 0[12-15] Control Message Type = 4 (Restart Complete). 1[0-15] Header Checksum. Covers words 0-3. 2[0-15] Host Address. 3[0-15] Link Number. 9. Loopback Control The Host Access Protocol provides a Loopback Request control message which can be used by a WPS or a host to request the remote loopback of its HAP messages. Such requests are usually the result of operator intervention for purposes of system fault diagnosis. For clarity in the following discussion, the unit (WPS or host) requesting the remote loopback is referred to as the "transmitter" and the unit implementing (or rejecting) the loopback is referred to as the "receiver". When the host access link is remotely looped, all HAP messages will be returned, unmodified, over the access link by the receiver. (Messages that are too long to be valid HAP messages may be discarded instead of being returned.) The receiver will not send any of its own messages to the transmitter while it is implementing the loop. WPS-generated messages are distinguished from host-generated messages by means of the Loopback indicator that is in every HAP message header. Two types of remote loopback may be requested: loopback at the receiver's interface hardware and loopback at the receiver's I/O driver software. HAP does not specify the manner in which the receiver should implement these loops; additionally, some receivers may use interface hardware which is incapable of looping the transmitter's messages, only allowing the receiver to provide software loops. A receiver may not be able to interpret the transmitter's messages as it is looping them back. If such interpretation is possible, however, the receiver will not act on any of the transmitter's messages other than requests to reinitialize the WPS-host link (Restart Request (RR) control messages; see Section 8.) When a receiver initiates a loopback condition in response to a
loopback request, it makes an implicit promise to maintain the condition for the duration specified in the Loopback Request message. However, if an unanticipated condition such as a system restart occurs in either the transmitter or the receiver, the affected unit will try to reinitialize the WPS-host link by sending an RR message to the other unit. If the RR message is recognized by the other unit, a link initialization sequence can be completed. This will restore the link to an unlooped condition even if the specified loop duration has not yet expired. If a receiver cannot interpret a transmitter's RR messages, and in the absence of operator intervention at the receiver, the loop will remain in place for its duration. HAP does not specify the characteristics of any loopback conditions that may be locally implemented by a given unit. An example of such a condition is that obtained when a WPS commands its host interface to loop back its own messages. If such local loop conditions also cause the reflection of messages received from the remote unit, the remote unit will detect the condition via the HAP header Loopback indicator. A specific sequence must be followed for setting up a remote loopback. It begins after the HAP link has been initialized and a decision is made to request a remote loop. The transmitter then sends a Loopback Request message (Figure 39) to the receiver and waits for either (1) a 10-second timer to expire, (2) a "Can't implement loop" Unnumbered Response message from the receiver, or (3) one of its own reflected messages. If event (1) or (2) occurs the request has failed and the transmitter may, at its option, try again with a new Loopback Request message. If event (3) occurs, the remote loopback condition has been established. While waiting for one of these events, messages from the receiver are processed normally. Note that RR messages arriving from the receiver during this time will terminate the loopback request. When a receiver gets a Loopback Request message, it either implements the requested loop for the specified duration, or returns a "Can't implement loop" response without changing the state of the link. The latter response would be returned, for example, if a receiver is incapable of implementing a requested hardware loop. A receiver should initiate reinitialization of the link with an RR message(s) whenever a loopback condition times out. There is one asymmetry that is required in the above sequence to resolve the (unlikely) case where both WPS and host request a remote loopback at the same time. If a WPS receives a Loopback Request message from a host while it is itself waiting for an event of type (1)-(3), it will return a "Can't implement loop" response to the host
and will continue to wait. A host in the converse situation, however, will abort its loopback request and will instead act on the WPS's loopback request. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 1|LB|GOPRI| 0 | LOOP TYPE | 8 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | HEADER CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 2 | LOOP DURATION | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ LOOPBACK REQUEST Figure 39 0[0] Message Type = 1 (Control Message). 0[1] Loopback indicator. 0[2-3] Go-Priority. 0[4-7] Reserved. Must be zero. 0[8-11] Loop Type. This field indicates the type of loop that is being requested as follows: 0 = Undefined 1 = Loop at interface (hardware loop) 2 = Loop at driver (software loop) 3-15 = Undefined 0[12-15] Control Message Type = 8 (Loopback Request). 1[0-15] Header Checksum. The checksum is the 2's-complement of the 2's-complement sum of words 0-2 (excluding the checksum word itself). 2[0-15] Loop Duration. The transmitter of a Loopback Request message uses this field to specify the number of seconds that the loop is to be maintained by the receiver.
10. Other Control Messages Before a WPS or a host voluntarily disables a WPS-host link, it should send at least one Link Going Down control message (Figure 40) over that link. HAP does not define the action(s) that should be taken by a WPS or a host when such a message is received; informing the Network Operations Center (NOC) and/or the network users of the impending event is a typical course of action. Note that each Link Going Down message only pertains to the WPS-host link that it is sent over; if a host and a WPS are connected by multiple links, these links may be selectively disabled. A No Operation (NOP) control message (Figure 41) may be sent at any time by a WPS or a host. A NOP message contains up to 32 words of arbitrary data which are undefined by HAP. NOP messages may be required in some cases to clear the state of the WPS-host link hardware. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 1|LB|GOPRI| 0 | REASON | 7 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | HEADER CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 2 | TIME UNTIL DOWN | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 3 | DOWN DURATION | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ LINK GOING DOWN Figure 40 0[0] Message Type = 1 (Control Message). 0[1] Loopback indicator. 0[2-3] Go-Priority. 0[4-7] Reserved. Must be zero. 0[8-11] Reason. This field is used by the WPS or the host to indicate the reason for disabling this WPS-host link as follows:
0 = Cancel previous notice, not going down 1 = Unspecified reason 2 = Scheduled PM 3 = Scheduled hardware work 4 = Scheduled software work 5 = Emergency restart 6 = Power outage 7 = Software breakpoint 8 = Hardware failure 9 = Not scheduled up 10 = Last warning: The WPS or host will disable the link in 10 seconds 11-15 = Undefined 0[12-15] Control Message Type = 7 (Link Going Down). 1[0-15] Header Checksum. The checksum is the 2's-complement of the 2's-complement sum of words 0-3 (excluding the checksum word itself). 2[0-15] Time Until Down. This field specifies the amount of time remaining until the WPS or host disables the link (in minutes). An entry of zero indicates that there is less than a minute remaining. 3[0-15] Down Duration. This field specifies the amount of time that the WPS-host link will be down (in minutes). An entry of zero indicates that the down duration will be less than a minute. An entry of -1 (all bits set) indicates an indefinite down duration. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 0 | 1|LB| 0 | LENGTH | 6 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 1 | HEADER CHECKSUM | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | 2-N : ARBITRARY DATA : | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ NO OPERATION (NOP) Figure 41
0[0] Message Type = 1 (Control Message). 0[1] Loopback indicator. 0[2-6] Reserved. Must be zero. 0[7-11] Length. The number of words of arbitrary data. 0[12-15] Control Message Type = 6 (NOP). 1[0-15] Header Checksum. The checksum is the 2's-complement of the 2's-complement sum of words 0-N (excluding the checksum word itself). 2-N Arbitrary Data. Up to 32 words of data may be sent. The data are undefined by HAP. 11. Appendix A -- Future Extensions The extensions to HAP described below are included to provide additional context for the understanding of HAP's current capabilities, as well as suggest how HAP may be enhanced in the future to provide better support for multi-site conferencing. These capabilities are not supported by TWBNET. One change under consideration is the addition of a "conference" resource, which would own some number of streams and groups and improve the network's ability to meet the needs of video conference users. A single request to modify the "conference", such as to add a new member, would result in modifying all the streams in the conference to include the new member, modifying the conference's primary group address to add the new member, etc., in a single network operation. Such a capability would not only simplify conference resource management for hosts, but also reduce the number of network setup operations, permit more nearly "atomic" decisions of whether a particular conference modification is possible, and reduce the problem of recovery if modification is not possible. Another change under consideration is the addition of "shared streams." This capability would allow hosts to share a single allocation of network bandwidth (and other resources) wherever the streams shared a common communication path. Hosts using a shared stream must be willing to restrict their total transmission rate to the rate of the shared bandwidth. Multi-site conferences could use such a capability to avoid allocating full bandwidth for voice data for all conference members. Instead, bandwidth for, say, four active voices at once could be allocated and shared, and voice messages would only be lost when more than four people tried to talk at once.
The Create Shared Stream Request would use a different request code than Create Stream Request, and the setup message would likely contain at least one additional field to identify the set of shared streams. Change and Delete Stream requests could be used for both shared and non-shared streams. 12. Appendix B -- Backward compatibility The WPS will support the use of HAP version 0 by hosts until all hosts have upgraded to version 1. The WPS determines which HAP version the host is using by examining the Restart Request and/or Restart Complete control messages sent by the host to the WPS. If the host initiates a restart and thus sends both a Restart Request and a Restart Complete, and if the HAP version numbers in the two messages differ, the version number in the Restart Complete will prevail. The WPS will always set the version number to 1. If the host sends 0 in the version number field, version 0 compatiblity mode will be invoked. Version 0 of HAP did not contain the PROTOCOL ID field in the datagram and stream message headers. Instead, the IL bit in the Type of Service word was used to indicate the presence or absence of an Internet Protocol (IP) header (any version number) following the HAP header. This is the original description of that bit: 3[1] Internet/Local Flag. This flag is set by a source host to specify to a destination host whether the data portion of the message contains an Internet Protocol (IP) header [3]. This field is passed transparently by the source and destination WPSen for traffic between network hosts. This field is examined by WPS Agents in order to support Internet operation. 0 = Internet 1 = Local Conversion Algorithms Link control messages (e.g., Restart Request) do not require conversion. Datagram and stream messages sent by or to a host running HAP version 0 will be converted by the WPS. Message conversion will probably cause the maximum throughput of hosts using HAP version 0 to be somewhat lower than that of hosts using HAP version 1. HAP version 0 used the IL bit in the HAP Type of Service word to indicate the presence or absence of an IP header. Version 1 uses the Protocol ID field. To convert host-to-WPS messages, the IL bit will
be cleared, and the protocol ID field will be inserted, with the value indicated: IL was Destination Protocol ID set to: ------ ------------- --------------------- 0 any HAP_PROTO_IP (0x800) 1 Service Agent HAP_PROTO_SETUP (1) 1 other HAP_PROTO_NONE (0) To convert WPS-to-host messages, the protocol ID field will be deleted, and the IL bit will be set by: IL = (protocol_id was HAP_PROTO_IP) ? 0 : 1; HAP_PROTO_IP (see Appendix C) will be used for IP "versions" 3 (GG protocol), 4 (IP), and 5 (ST). The datagram message header fields TTL and PRI have been swapped in HAP version 0 compared to version 1. The conversion code swaps the contents of these two fields for hosts running version 0. The stream message header field TTL in HAP version 0 was replaced by the PRE field in version 1. Since the only permitted value of TTL was 1, and it is a valid PRE value, no conversion is necessary. In HAP version 0, messages between a host and the Service Agent were allowed to contain Internet Protocol headers. No hosts use that capability, so no provision will be made to accommodate IP headers in Setups between hosts and the Service Agent. In version 0, the Restart Request control message contained a "reason for restart" field. That field was ignored in all current implementations and has been eliminated in version 1. Current implementations expect the WPS to insert an "incarnation count" in bits 5-10 of the first word of both Restart Request and Restart Complete messages. This functionality has been replaced by the "SL" bit in the Restart Complete message in version 1. Compatibility code will be added if needed, but it is expected that none will be needed. 13. Appendix C -- HAP Protocol ID Assigned Numbers This section lists the values of the PROTOCOL ID field. This part of the specification will be obsolete when a version of the Assigned Numbers RFC containing HAP protocol ID numbers is issued. HAP adopts the Ether-type numbers in the 1500-65535 range. Protocol IDs 256-511 identify ISO protocols. Zero indicates the absence of a
higher level protocol header. Other protocol IDs are reserved for future assignment. Protocol ID Indicates ----------- --------- 0 No higher level protocol 1 For Network Service Agent messages 2-255 Reserved 256-511 ISO protocol identifier + 256 512-1499 Reserved 1500-65535 Identical to Ether-type [10]. HAP PROTOCOL ID NUMBERS Figure 42 REFERENCES 1. Falk, G., Groff, S., Koolish, R., and W. Milliken, "PSAT Technical Report", BBN Technical Report No. 4469, Chapter 4, May 1981. 2. Rees, T., Editor, "A Host Access Protocol Specification", BBN Laboratories, Inc., May 1987. (A revision of RFC 907 that was distributed to DARPA and the WBNET user community but not resubmitted as an RFC.) 3. Postel, J., Editor, "Internet Protocol - DARPA Internet Program Protocol Specification", RFC 791, USC/Information Sciences Institute, September 1981. 4. Topolcic, C., Editor, "Experimental Internet Stream Protocol, Version 2 (ST-II)", RFC 1190, Bolt Beranek and Newman, Inc., October 1990. 5. Edmond, W., Seo, K., Leib, M., and C. Topolcic, "The DARPA Wideband Network Dual Bus Protocol", Proceedings of ACM SIGCOMM '90, pages 79-89, September 24-27, 1990. 6. "Host/SATNET Protocol", Internet Engineering Note (IEN) 192, July 1981. 7. Evenchik, L., McNeill, D., Bressler, R., Owen, A., Rice, Jr., R., Trout, G., Pavey, C., Damer, R., Deckelman, F., and T. Hughes, "MATNET, An Experimental Navy Shipboard Satellite Communications Network", Proceedings of INFOCOM '82, pages 3-11, March 30 - April 1, 1982.
8. Falk, G., Groff, J., Milliken, W., Nodine, M., Blumenthal, S., and W. Edmond, "Integration of Voice and Data in the Wideband Packet Satellite Network", IEEE Journal on Selected Areas in Communications, Vol. SAC-1, No. 6, December 1983. 9. "Interface Message Processor: Specifications for the Interconnection of a Host and an IMP", BBN Technical Report No. 1822, October 1980. 10. Reynolds, J., and J. Postel, "Assigned Numbers", RFC 1060, USC/Information Sciences Institute, March 1990. Security Considerations Security issues are not discussed in this memo. Author's Address Winston Edmond Bolt Beranek and Newman, Inc. Network Technologies Department 10 Moulton Street Cambridge, Massachusetts 02138 Phone: (617) 873-3000 EMail: wbe@bbn.com