in group membership do not cause the stream to be modified.
Caution: Stream creation involves allocation of specific network
resources along specific routes for delivery of that traffic. A
stream message sent to hosts other than those specified via Setup
will probably be undeliverable. A stream message to a group address
that has gained new members since the stream's last Setup may be
undeliverable to the new members.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | 0 | STREAM ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | 0 | ADDRESS LIST LENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
S5-SN : ADDRESS LIST :
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
CREATE STREAM REPLY
Figure 9
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code. Any reply other than "Stream created"
means the stream was not created.
0 = Stream created
8 = Network trouble
12 = Stream precedence not being accepted
17 = Insufficient network resources
18 = Requested bandwidth too large
21 = Max. messages per interval too small
22 = Reply lost in network
23 = Illegal precedence value
24 = Invalid destination address in list
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-5] Reserved. Must be zero.
S3[6-15] Stream ID. This field contains a stream ID assigned by
the network. It must be included in all stream data
messages sent by the host to allow the WPS to associate
the message with stored stream characteristics and the
resources reserved for that stream's traffic.
S4[0-5] Reserved. Must be zero.
S4[6-15] Address list length. The number of entries in the
Address List field.
S5-SN Address list. This contains the destination addresses
from the Create Stream Request that were invalid or
unreachable. Unreachable destinations are listed as a
group if every member of the group was unreachable, or
individually otherwise; i.e., group addresses are
expanded and the unreachable members are included in
the list. The list of unreachable destinations will be
truncated, if needed, to limit this Reply to a single,
maximum length HAP message.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 7 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | 0 | STREAM ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | MAX MES | PRE | INT | RLY | RLEN |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | DATA WORDS PER INTERVAL |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | INTERVAL |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S7 | 0 | ADDRESS LIST LENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
S8-SN : DESTINATION ADDRESS LIST :
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
CHANGE STREAM REQUEST
Figure 10
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 7 (Change Stream).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-5] Reserved. Must be zero.
S3[6-15] Stream ID.
S4[0-3] New Maximum Messages Per Interval.
S4[4-5] New Precedence.
S4[6-7] New Interval selection.
S4[8-9] New Reliability.
S4[10-15] New Reliability Length.
S5[0-15] New Data Words Per Interval.
S6[0-15] New Interval (ignored unless INT = 3).
S7[0-7] Reserved. Must be zero.
S7[8-15] Destination Address List length. This field specifies
the number of entries in the new Destination Address
List. Allowed values are 0-8. Use zero (indicating no
addresses in the list) to avoid changing the list of
recipient hosts.
S8-SN New Destination Address List. The new, complete, list
of recipient hosts. Membership of group addresses is
evaluated at setup execution time. Subsequent changes
in group membership do not cause the stream to be
modified. Note that using the same destination address
list in the Change Stream Request as was used in the
Create Stream Request can result in a change in the
list of recipient hosts if membership in a group has
changed.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | 0 | ADDRESS LIST LENGTH |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| |
S4-SN : ADDRESS LIST :
| |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
CHANGE STREAM REPLY
Figure 11
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code. The number in parentheses indicates the
processing phase at the time of the error (see Caution
below). Phase zero and phase one errors leave the
stream unchanged; errors from later phases may leave
the stream partially modified.
4 = Stream changed
8 = (1) Network trouble
10 = (0) Stream ID nonexistent
11 = (0) Not creator of stream
12 = (0) Stream precedence not being accepted
16 = (3) Unable to add all the new recipients
17 = (2) Insufficient network resources
18 = (2) Requested bandwidth too large
21 = (0) Maximum messages per interval too small
22 = (2) Reply lost in network
23 = (0) Illegal precedence value
24 = (0) Invalid destination address in list
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-5] Reserved. Must be zero.
S3[6-15] Address list length. This field specifies the number
of addresses in the Address List.
S4-SN Address list. This contains the destination addresses
from the Change Stream Request that were invalid (phase
0 errors) or unreachable (phase 3 errors). Unreachable
destinations are listed as a group if every member of
the group was unreachable, or individually otherwise;
i.e., group addresses are expanded and the unreachable
members are included in the list. The list of
unreachable destinations will be truncated, if needed,
to limit this Reply to a single, maximum length HAP
message.
Caution: The Change Stream Reply will indicate failure if any
aspect of the requested changes did not occur. However, the
stream may have been partially modified. Processing is performed
in the following phases:
0: check for invalid requests;
1: drop former recipients that are not in the latest list;
2: increase or decrease the stream's bandwidth allocation
(decreases are normally successful); then
3: extend the stream to any new recipients.
If phase 2 fails, phase 3 is not performed, the Reply Code will
indicate an error and the stream parameters will be unchanged.
If phase 3 fails, the Address List will contain the destinations,
if any, from the latest list that the stream does not reach.
Phase 1 only fails if the stream has been suspended (see
Notifications) or the WPS is experiencing network connectivity
problems.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 6 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | 0 | STREAM ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
DELETE STREAM REQUEST
Figure 12
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 6 (Delete Stream).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-5] Reserved. Must be zero.
S3[6-15] Stream ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
DELETE STREAM REPLY
Figure 13
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code. If the request was valid, the Service
Agent will have marked the stream for deletion even if
the stream resources have not actually been deleted
yet.
1 = Stream deleted
10 = Stream ID nonexistent
11 = Not creator of stream
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 9 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
DELETE ALL STREAMS REQUEST
Figure 14
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 9 (Delete All Streams).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
DELETE ALL STREAMS REPLY
Figure 15
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code. The Service Agent will have marked all of
the host's streams for deletion, even if the stream
resources have not actually been deleted yet.
1 = Streams deleted
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
6.2. Group Setup Messages
Group (multicast) addressing allows a host to send the same message
to N different hosts without having to send N copies of the message.
The network duplicates the message as required. In addition to
reducing the burden on the originating host, multicasting reduces the
load on the network because the network no longer has to carry the
duplicates along the common portions of the paths between the source
and destinations. Multicasting is particularly recommended for
multi-site conferencing and distributed simulations.
Group addresses are dynamically created and deleted via setup
messages exchanged between the hosts and the Service Agent.
Membership in a group may be any arbitrary subset of the network
hosts. A datagram message or stream message addressed to a group is
delivered to all hosts that are members of that group (exception:
stream messages sent to a group address that includes hosts the
stream was not set up to reach). The group setup messages, each of
which has a Request and a Reply, are Create Group, Delete Group, Join
Group, Leave Group, Add Group Member, and Remove Group Member.
Figure 16 shows a typical use of group setup messages. The figure
illustrates a scenario of exchanges between three hosts and the
Service Agent. In the scenario one host, Host A, creates a group
which is joined by hosts B and C. The hosts then exchange some data
messages using the group address. Note that multicast messages are
not returned to their originator. Hosts A and C then leave the
group, and Host B decides to delete the group. As in the scenario in
Section 6.1, A/R indications have been omitted for clarity.
Part of the group creation procedure involves the Service Agent
returning to the creating host a 48-bit key along with the 16-bit
group address. The creating host must pass the key along with the
group address to other hosts that want to join the group. These
other hosts must supply the key along with the group address in their
Join Group Requests. The key is used by the network to authenticate
these operations and thereby minimize the probability that unwanted
hosts will deliberately or inadvertently become members of the group.
The procedure used by a host to distribute the group address and key
is not within the scope of HAP.
In the figure below, the network Service Agent is pictured as a
single entity for simplicity.
Service Host Host Host
Agent A B C
Create Group Request |<-------|
Create Group Reply |------->|
Reply Acknowledgment |<-------|
: :
Distribute Group Adr & Key |---->|
Distribute Group Adr & Key |---------->|
: :
Join Group Request (C) |<-------------------|
Join Group Reply |------------------->|
Reply Acknowledgment |<-------------------|
Join Group Request (B) |<-------------|
Join Group Reply |------------->|
Reply Acknowledgment |<-------------|
: :
Data Message 1 (A to B and C) |---->|---->|
Data Message 2 (B to A and C) |<----|---->|
Data Message 3 (C to A and B) |<----|<----|
: :
Leave Group Request (C) |<-------------------|
Leave Group Reply |------------------->|
Reply Acknowledgment |<-------------------|
Leave Group Request (A) |<-------|
Leave Group Reply |------->|
Reply Acknowledgment |<-------|
Delete Group Request |<-------------|
Delete Group Reply |------------->|
Reply Acknowledgment |<-------------|
GROUP EXAMPLE
Figure 16
An alternative method of adding and removing group members is the use
of Add Group Member and Remove Group Member. These setup requests
allow hosts that are already members of the group to add or delete
other hosts.
The Setup requests Join Group, Leave Group, Add Group Member, Remove
Group Member, and Delete Group are authenticated using the 48-bit
key. Leave Group and Remove Group Member will remove a host from the
group membership list but will not alter the existence of the group.
Delete Group expunges all knowledge of the group from the network.
HAP permits any host with the proper key to delete the group at any
time. Thus, group addresses can be deleted even if the host which
originally created the group has left the group or has crashed.
Moreover, groups may exist for which there are currently no members
because each member has executed a Leave while none has executed a
Delete. It is the responsibility of the hosts to coordinate and
manage the use of group addresses.
Note that group addresses, like all other resources allocated by the
network, may be reclaimed by the network if unused for too long.
Currently, if no traffic is sent to the group address in a 6 minute
interval, the network may delete the group and notify all members
that the group no longer exists.
The Create Group Request (Figure 17) is used to establish a multicast
address. After the network has processed the Create Group Request,
the Service Agent will respond by sending a Create Group Reply
(Figure 18) to the host.
A host may become a member of a group, once it knows the group
address and the 48-bit key, by sending the Service Agent the Join
Group Request message (Figure 19). The Service Agent will respond to
the Join Group Request with a Join Group Reply (Figure 20). The host
which creates a group automatically becomes a member of that group
without any need for an explicit Join Group Request.
A member host may add another host to the group by sending the
Service Agent the Add Group Member Request message (Figure 21). The
Service Agent will respond with an Add Group Member Reply (Figure
22).
At any time after becoming a member of a group, a host may choose to
drop out of the group. To do this, the host sends the Service Agent
a Leave Group Request (Figure 23). The Service Agent will respond
with a Leave Group Reply (Figure 24).
One member host may expel another member of the group by sending the
Service Agent the Remove Group Member Request message (Figure 25).
The Service Agent will respond with a Remove Group Member Reply
(Figure 26).
A host can delete an existing group via a Delete Group Request
(Figure 27). The Service Agent will respond with a Delete Group
Reply (Figure 28). The Service Agent will also send the other
members of the group, if any, a notification that the group has been
deleted (see Section 6.3).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 1 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
CREATE GROUP REQUEST
Figure 17
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 1 (Create Group).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | GROUP ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
CREATE GROUP REPLY
Figure 18
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code.
0 = Group created
8 = Network trouble
17 = Insufficient network resources
22 = Reply lost in network
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-15] Group Address. This field contains the 16-bit
multicast address that any group member may use to
reach the other group members. Multicast addresses are
dynamically assigned by the network.
S4-S6 Key. This field contains a 48-bit key assigned by the
network which is associated with the group address. It
must be provided for subsequent Join Group, Leave
Group, Add Group Member, Remove Group Member, and
Delete Group requests which reference the group
address.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 3 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | GROUP ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S7 | 0 | MGP |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
JOIN GROUP REQUEST
Figure 19
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 3 (Join Group).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-15] Group Address. This is the group that the host wishes
to join. Upon successfully joining the group, the host
may send messages to the group and will receive
messages sent to the group when those messages have a
priority of MGP or higher.
S4-S6 Key. This is the key associated with the group
address.
S7[0-13] Reserved. Must be zero.
S7[14-15] Minimum group message priority. The host will not
receive messages sent to the group that have a message
priority less than MGP. Send another Join Group
Request message to change the minimum priority.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
JOIN GROUP REPLY
Figure 20
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code.
2 = Host added to group
9 = Bad key
10 = Group address nonexistent
17 = Insufficient network resources
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 10 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | GROUP ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S7 | HOST ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ADD GROUP MEMBER REQUEST
Figure 21
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 3 (Join Group).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-15] Group Address. This is the group the host will join.
Upon successfully joining the group, the host may send
messages to the group and will receive messages sent to
the group by other hosts (the initial minimum priority
will be 0).
S4-S6 Key. This is the key associated with the group
address.
S7[0-15] Host address. The network address of the host to add
to the group.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ADD GROUP MEMBER REPLY
Figure 22
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code.
2 = Host added to group (or was already a member)
9 = Bad key
10 = Group address nonexistent
11 = Requestor is not a member of the group
17 = Insufficient network resources
22 = Reply lost in network
24 = Host address was invalid
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 4 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | GROUP ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
LEAVE GROUP REQUEST
Figure 23
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 4 (Leave Group).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-15] Group Address. This is the group that the host wishes
to cease being a member of. After leaving the group,
the host will cease receiving messages sent to the
group and will be unable to send to the group.
S4-S6 Key. This is the key associated with the group
address.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
LEAVE GROUP REPLY
Figure 24
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code.
3 = Host deleted from group
9 = Bad key
10 = Invalid group address
11 = Not member of group
17 = Insufficient network resources
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 11 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | GROUP ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S7 | HOST ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
REMOVE GROUP MEMBER REQUEST
Figure 25
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 4 (Leave Group).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-15] Group Address. This is the group from which the host
should be removed. After leaving the group, that host
will cease receiving messages sent to the group and
will be unable to send to the group.
S4-S6 Key. This is the key associated with the group
address.
S7[0-15] Host address. The network address of the host to
remove from the group.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
REMOVE GROUP MEMBER REPLY
Figure 26
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code.
3 = Host deleted from group (or was not a member)
9 = Bad key
10 = Invalid group address
11 = Requestor is not a member of the group
17 = Insufficient network resources
22 = Reply lost in network
24 = Host address was invalid
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 1 | 2 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S3 | GROUP ADDRESS |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S4 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S5 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S6 | KEY |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
DELETE GROUP REQUEST
Figure 27
S0[0-7] Setup Type = 1 (Request).
S0[8-15] Request Type = 2 (Delete Group).
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
S3[0-15] Group Address. This is the multicast address to
delete. If the group is deleted, the other remaining
members of the group, if any, will be notified of the
group's deletion.
S4-S6 Key.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S0 | 2 | REPLY CODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S1 | SETUP CHECKSUM |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
S2 | REQUEST ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
DELETE GROUP REPLY
Figure 28
S0[0-7] Setup Type = 2 (Reply).
S0[8-15] Reply Code.
1 = Group deleted
8 = Network trouble
9 = Bad key
10 = Invalid group address
17 = Insufficient network resources
22 = Reply lost in network
S1[0-15] Setup Checksum. (See setup header description.)
S2[0-15] Request ID.
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