SPI Programming Manual (G06.24+, H06.03+, J06.03+)

General SPI Programming Guidelines
SPI Programming Manual427506-006
5-27
Version Compatibility
The names subsysROOT, BUILDING-BLOCKS, REQUESTER-VISIBLE-1,
REQUESTER-VISIBLE-2, and REQUESTER-VISIBLE-3 are just illustrativeyou can
choose other names, because those names are not of interest to someone who wants
to use the
subsysDDL file just to compile the definitions into a DDL dictionary. That
person just ?SOURCEs in the whole file without naming the sections individually.
Version Compatibility
It is useful to design your subsystem (server) so that when you make future
enhancements to it, older requesters that communicate with it continue to run:
1. Do not change the meaning of token codes, command numbers, object-type
numbers, error numbers, token values, and structure field values.
2. Token values and structure fields should not change size or data type.
3. The offset of fields from the beginning of a structure should not change.
4. Command numbers, object-type numbers, token codes, valid token values, and
valid structure field values should not be deleted.
5. New features can be defined by defining new command numbers, new object-type
numbers, new tokens, new values for existing command tokens, new values for
existing structure fields in command tokens, new fields at the end of extensible
structured tokens, or new fields replacing FILLER in extensible structured tokens.
6. New values of existing response tokens or of existing structure fields in response
tokens can be defined if the new values are returned only as the result of explicit
choice on the part of the requester to make use of optional new capabilities.
7. The size of a command message should not grow larger than the smallest size
accepted by any currently supported version of the server.
Estimate how much growth in command size your server will have to
accommodate during its supported life and make the server accept messages at
least that size.
8. Do not change the names of tokens, literals, structures, and other items declared
in the definition files.
9. To avoid naming conflicts with HP declarations in future RVUs, avoid using names
beginning with
Z
.
10. Unrecognized command numbers, object types, tokens, fields of structured tokens,
values of tokens, or values of fields of structured tokens should cause rejection of
the command.
11. Recognized, but unexpected, tokens (including duplicate tokens if there are more
than expected) should also cause rejection of the command.
12. If the field ZSPI-TKN-MAX-FIELD-VERSION contains a version greater than the
version of the server, your server should reject the command.