16087 06/97 C615/U023
Contents: XO_TPI-1R1, XO_TPI-2/3, XO_TPI-4R2, XO_TPI-5/6.
Change number: XO_TPI-1R1
Title: Correction to manual page definition for TPI primitive T_OPTDATA_IND
Qualifier: Major Technical
Rationale: The man-page definition for T_OPTDATA_IND was incorrectly copied from its T_OPTDATA_REQ counterpart when applied to the TPI specification.
The change to add these two primitives was originally specified in CR Sun-003 (email XoTGnet 5427), which was accepted as recorded in email XoTGnet 5540. Although this CR was accepted before company review of the TPI Specification started, it was missed from being included in the TPI company review copy. This omission was noted in company review CR SUN:TPI-005,so was applied to the TPI sanity check copy. As we know, the T_OPTDATA_IND definition was incorrectly applied but was not picked up during the TPI sanity check.
Rather than list in this correction CR the changes to the published T_OPTDATA_IND definition, the following change presents the complete correct man-page definition.
Change: Replace the manual page definition for T_OPTDATA_IND on pages 48-49 with the following:
NAME
T_OPTDATA_IND - Data indication with
options
SYNOPSIS
The message consists of one M_PROTO message
block followed by zero or more message blocks, where each M_DATA
message block contains zero or more bytes of data. The format of
the M_PROTO message block is as follows:
struct T_optdata_ind {
t_scalar_t PRIM_type; /* always T_OPTDATA_IND */
t_scalar_t DATA_flag; /* flag bits associated with data */
t_scalar_t OPT_length; /* options length */
t_scalar_t OPT_offset; /* options offset */
};
DESCRIPTION
The primitive indicates to the transport
user that the message contains a transport interface data unit.
One or more transport interface data units form a transport
service data unit (TSDU).
Note that the maximum transport service and data unit sizes allowed by a transport provider is indicated to the user by the T_INFO_ACK primitive.
This primitive has a mechanism that indicates the beginning and end of a transport service data unit. However not all transport providers support the concept of a transport service data unit.
This primitive also provides mechanisms to have options associated with the data being transferred.
PARAMETERS
The fields of this message have the
following semantics:
PRIM_type
identifies the primitive type
DATA_flag
This field specifies bit fields specific general properties
associated with the data being transferred. The following
settings are currently defined:
T_ODF_MORE
When set, this bit indicates that the next T_OPTDATA_IND
primitive is also part of this transport service data unit.
OPT_length
the length of the requested options asociated with the primitive
OPT_offset
the offset (from the beginning of the M_PROTO message block)
where the options asociated with this primitive begin.
RULES
If a TSDU spans multiple T_OPTDATA_IND
message blocks, then an ETSDU may be placed between two
T_DATA_IND message blocks. Once an ETSDU is started, then the
ETSDU must be completed before any T_OPTDATA_IND message blocks
defining a TSDU are resumed.
MODES
Only connection mode.
ORIGINATOR
Transport provider.
Change number: XO_TPI-2
Title: Clarification of an unresolved cross-reference
Qualifier: Major Editorial
Rationale: In the manual page definition for T_CONN_RES, the description for parameter ACCEPTORid concludes with a typographical error whcich includes an unresolved cross reference. The cause is a format coding error. The printed cross reference "acceptorid" should point the reader to Appendix A.
Change: Correct the format coding for the "acceptorid" cross reference, to refer to "Appendix A on page 61."
Change number: XO_TPI-3
Title: Correction for truncated List of Contents
Qualifier: Major Editorial
Rationale: The printed version of the TPI CAE Specification has a Contents list which stops at page 21. Since the electronic file for this contents list shows a complete (i.e. not truncated) list, the reasons why this error occurred in the printed version are unknown, though human error is almost certainly the cause.
Change: Replace the Contents pages iii and iv with the following:
Contents
Chapter 1 Introduction
........................................ 1
1.1 STREAMS-based Transport Provider Interface ........ 1
1.2 How TPI Works ..................................... 2
1.3 Overview of Error Handling Capabilities ........... 3
1.3.1 Non-fatal Errors ................................ 3
1.3.2 Fatal Errors .................................... 3
1.4 Rules for Transport Service Interface Sequence of Primitives
....... 4
1.5 Rules for Precedence of TPI Primitives on a Stream 5
1.6 Rules for Flushing Queues ......................... 5
Chapter 2 Transport Primitives ................................ 7
Chapter 3 Allowable Sequence of TPI Primitives ................ 9
3.1 State Table ....................................... 10
3.2 Variables ......................................... 11
3.3 Outgoing Events ................................... 11
3.4 Incoming Events ................................... 12
3.5 Transport Service State Tables .................... 13
Chapter 4 Transport Primitive Precedence ......................
17
Chapter 5 TPI Message Formats .................................
19
T_ADDR_ACK ........................................ 20
T_ADDR_REQ ........................................ 21
T_BIND_ACK ........................................ 22
T_BIND_REQ ........................................ 24
T_CONN_CON ........................................ 26
T_CONN_IND ........................................ 27
T_CONN_REQ ........................................ 28
T_CONN_RES ........................................ 30
T_DATA_IND ........................................ 33
T_DATA_REQ ........................................ 34
T_DISCON_IND ...................................... 36
T_DISCON_REQ ...................................... 37
T_ERROR_ACK ....................................... 39
T_EXDATA_IND ...................................... 40
T_EXDATA_REQ ...................................... 41
T_INFO_ACK ........................................ 42
T_INFO_REQ ........................................ 44
T_OK_ACK .......................................... 45
T_OPTMGMT_ACK ..................................... 46
T_OPTDATA_IND ..................................... 48
T_OPTDATA_REQ ..................................... 50
T_OPTMGMT_REQ ..................................... 52
T_ORDREL_IND ...................................... 54
T_ORDREL_REQ ...................................... 55
T_UDERROR_IND ..................................... 56
T_UNBIND_REQ ...................................... 57
T_UNITDATA_IND .................................... 58
T_UNITDATA_REQ .................................... 59
Appendix A Connection Acceptance ...............................
61
A.1 Accepting Incoming Connections .................... 61
A.2 The Common Single Type Model Implementation ....... 62
A.3 Possible Multiple Type Model Implementation Methodologies
............... 63
Glossary ......................................................... 65
Index ............................................................ 67
List of Figures
1-1 Example of a Stream from a User to a Transport Provider
............... 2
List of Tables
2-1 Transport Service Primitives ...................... 7
3-1 Kernel Level Transport Interface States ........... 10
3-2 State Table Variables .... ........................ 11
3-4 Kernel Level Transport Interface Incoming Events
...................... 12
3-5 Initialization State Table ........................ 13
3-6 Data Transfer State Table for Connection Oriented Service
.................... 14
3-7 Data Transfer State Table for Connectionless Service
.................... 15
4-1 Stream Write Queue Precedence Table ............... 17
4-2 Stream Read Queue Precedence Table ................ 18
Change number: XO_TPI-4
Title: Clarification of what O_T_BIND_REQ means
Qualifier: Minor Technical
Rationale: The manual page definition for T_BIND_REQ (on Page 24) refers to O_T_BIND_REQ as an alternative. The O_primitive name originates from earlier development work elsewhere to take care of compatibility issues.
However, O_primitives are not needed in this TPI specification, so all mention of the O_T_BIND_REQ primitive should be deleted.
Change:
1. In the manual page definition for T_BIND_ACK on page 22,
change the description for RULES 3rd bullet point from
+ If the transport provider cannot bind the specified address, it may assign another address to the user if the primitive O_T_BIND_REQ was used. In this case, it is the transport user's responsibility to check the protocol address returned in the T_BIND_ACK primitive to see if it is the same as the one requested, and take appropriate action. If T_BIND_REQ was used, the provider should return an error.
to
+ If the transport provider cannot bind the specified address the provider will return [TADDRBUSY].
2. In the manual page definition for T_BIND_ACK on page 23, first bullet point, delete the second sentence ("If a O_T_BIND_REQ primitive .... another protocol address to the user.)"
3. In the manual page definition for T_BIND_REQ on page 25, description for [TADDRBUSY], delete the second and third sentences ("In other words, the transport user .... for the behavior of O_T_BIND_REQ in this instance.").
4. Throughout the TPI specification (affects pages 22-25), replace all instances of "T_BIND_REQ/O_T_BIND_REQ" with "T_BIND_REQ".
Change number: XO_TPI-5
Title: Various editorial corrections
Qualifier: Minor Editorial
Rationale: Several minor editorial errors were noted during the thorough review of the TPI CAE Specification stimulated by the report of the errors addressed by XO_TPI-1 and XO_TPI-2. This CR captures these errors.
Change:
1. Page xii, add ISO/IEC 8072 to Referenced Documents, as called in the final paragraph of section 1.2:
ISO/IEC 8072
ISO 8072:\|1986, Information Processing Systems - Open Systems
Interconnection - Transport Service Definition.
2. Page 1, final paragraph, insert "of" to give ... extensive descriptions of STREAMS ...
3. Page 7, add the following entries to the start of table 2-1:
T_ADDR_REQ Get Protocol Address Request
M_PCPROTO
T_ADDR_ACK Protocol Address Acknowledgement M_PCPROTO
4. Pages 46-47, move man-page definition for T_OPTMGMT_ACK to after that for T_OPTDATA_REQ, to maintain alphabetic ordering of TPI definitions. Amend the Contents list accordingly (see XO_TPI-3).
5. Page 31, move description for error TPROVMISMATCH to new line.
6. Page 53, place all the error returns for T_OPTMGMT_REQ in square brackets, to conform to TOG style.
Change number: XO_TPI-6
Title: Correct the State Tables in Chapter 3
Qualifier: Minor Technical
Rationale: The State tables are inconsistent with XTI. The mechanism of change is to remove all mention of the T_OPTMGMT_{REQ,ACK} messages from the tables. This puts that message in the same category as, for example, T_INFO_{REQ,ACK} which can occur any time and makes no state change.
Change:
1. On Page 10, Table 3-1, remove the line describing
TS_WACK_OPTREQ (sta_4).
2. On page 13, Table 3-5:
+ remove the line describing optmgmt_req
+ remove the line describing optmgmt_ack
+ remove the column headed TS_WACK_OPTREQ
+ delete the note [5] and its description.
3. On page 14, Table 3-6:
+ remove the line describing optmgmt_req
+ delete the note [5] and its description.