Table Of Contents
Endpoint State Transitions
Overview
Defined Endpoint States
The State Transition Tables
Endpoint States for TSCLOSED, TSOPENED, and TSDSABLED
Endpoint States for TSENABLD, TSINCONN, and TSOUCONN
Endpoint States for TSCONNCT, TSINRLSE, and TSOURLSE
Endpoint State Transitions
This appendix lists and describes all of the state transitions that may occur at an endpoint. It includes these sections:
•
Overview
Briefly describes the defined endpoint states.
•
The State Transition Tables
Includes array tables that show how endpoint and current state are used to determine new endpoint states.
Overview
A machine-readable endpoint state transition table is interpreted by API routines to manage a state variable maintained for each endpoint. This state variable is used to control the execution sequence of API service functions. The state variable can be read with the TSTATE function, and is returned as part of a state word defined by the TSW dsect.
Defined Endpoint States
These nine endpoint states are defined:
Table A-1 Defined Endpoint States
TSCLOSED |
Closed |
TSOPENED |
Opened |
TSDSABLD |
Disabled |
TSENABLD |
Enabled |
TSINCONN |
Connect indication pending |
TSOUCONN |
Connect in progress (awaiting confirm indication) |
TSCONNCT |
Connected (or associated) |
TSINRLSE |
Release indication pending |
TSOURLSE |
Release in progress (awaiting release indication) |
The State Transition Tables
The tables in this section list the nine state transitions that may occur at an endpoint. Each state transition table is organized as an array where each row represents an event and each column represents one of the possible endpoint states. Given some event and the current state of the endpoint, the array element at the intersection of the row and column is the new state of the endpoint. If the array element is null (blank), the event is invalid for the current state.
Each table includes the same event state information in the EVENT columns, and three of the nine endpoint states in the CURRENT STATE columns.
Each event listed in the state table consists of the successful completion of a particular API service function, and various conditions that were in effect during its execution. Conditions listed in uppercase represent parameters or option codes provided with the service request. Conditions listed in lowercase apply to internal variables maintained by the API. Each event also lists the service type that must be in effect for the endpoint.
These are the variables:
qlstn |
The negotiated size of the connect indication queue specified by the QLSTN parameter in a successful TBIND request. |
count |
The number of pending connect indications. |
Note
These notes correspond to the numbers (for example, 3) in the tables:
1 - Connectionless Transport Service (CLTS) service mode is valid only when using associations. TYPE=(CLTS,ASSOC) must have been specified when the endpoint was opened.
2 - Connection-Oriented Transport Service (COTS) service mode is valid only when orderly release is supported by the transport provider. TYPE=(COTS,ORDREL) must have been specified when the endpoint was opened.
3 - Control of the endpoint is passed to another task or address space. On completion of TOPEN, the state of the new endpoint is the same as the state of the old endpoint before it was closed.
4 - This event represents the state transition for the endpoint to which a connection is accepted when the endpoint is different from the one receiving the connect indication.
5 - The number of pending connect indications is incremented by one.
6 - The number of pending connect indications is decremented by one.
Endpoint States for TSCLOSED, TSOPENED, and TSDSABLED
This table lists the endpoint states for the TSCLOSED, TSOPENED, and TSDSABLED states:
Table A-2 Endpoint States for TSCLOSED, TSOPENED, and TSDASABLED
Event
|
Current State:
|
Function
|
Conditions
|
Service Type
|
TSCLOSED
|
TSOPENED
|
TSDSABLD
|
TACCEPT |
count=1, NEWEP=EP |
COTS, CLTS, 1 |
|
|
|
|
count=1, NEWEP=EP |
COTS, CLTS, 1 |
|
|
|
|
count>1, NEWEP=EP |
COTS, CLTS, 1 |
|
|
|
|
4 |
COTS, CLTS, 1 |
|
|
TSCONNCT |
TADDR |
OPTCD=LOCAL |
COTS, CLTS |
|
|
TSDSABLD |
|
OPTCD=REMOTE |
COTS, CLTS |
|
|
|
TBIND |
QLSTN=0 |
COTS, CLTS |
|
TSDSABLD |
|
|
QLSTN>0 |
COTS, CLTS |
|
TSENABLD |
TSENABLD |
TCLEAR |
qlstn=0 |
COTS, CLTS, 1 |
|
|
|
|
qlstn>0, count=0 |
COTS, CLTS, 1 |
|
|
|
|
qlstn>0, count=1 |
COTS, CLTS, 1 |
|
|
|
|
qlstn>0, count>1 |
COTS, CLTS, 1 |
|
|
|
TCLOSE |
OPTCD=DELETE |
COTS, CLTS |
|
TSCLOSED |
TSCLOSED |
|
OPTCD=PASS |
COTS, CLTS |
|
3 |
3 |
TCONFIRM |
|
COTS, CLTS, 1 |
|
|
|
TCONNECT |
|
COTS, CLTS, 1 |
|
|
TSOUCONN |
TDISCONN |
qlstn=0 |
COTS, CLTS, 1 |
|
|
|
|
qlstn>0 |
COTS, CLTS, 1 |
|
|
|
TINFO |
|
COTS, CLTS |
|
TSOPENED |
TSDSABLD |
TLISTEN |
count<qlstn |
COTS, CLTS, 1 |
|
|
|
TOPEN |
OPTCD=NEW |
COTS, CLTS |
TSOPENED |
|
|
|
OPTCD=OLD |
COTS, CLTS |
3 |
|
|
TOPTION |
|
COTS, CLTS |
|
TSOPENED |
TSDSABLD |
TRECV |
|
COTS, CLTS, 1 |
|
|
|
TRECVERR |
|
CLTS |
|
|
TSDSABLD |
TRECVFR |
|
CLTS |
|
|
TSDSABLD |
TREJECT |
count=1 |
COTS, CLTS, 1 |
|
|
|
|
count>1 |
COTS, CLTS, 1 |
|
|
|
TRELACK |
qlstn=0 |
COTS, 2 |
|
|
|
|
qlstn>0 |
COTS, 2 |
|
|
|
TRELEASE |
qlstn=0 |
COTS, 2 |
|
|
|
|
qlstn>0 |
COTS, 2 |
|
|
|
TRETRACT |
|
COTS, CLTS, 1 |
|
|
|
TSEND |
|
COTS, CLTS, 1 |
|
|
|
TSENDTO |
|
CLTS |
|
|
TSDSABLD |
TUNBIND |
|
COTS, CLTS |
|
|
TSOPENED |
TUSER |
|
COTS, CLTS |
|
TSOPENED |
TSDSABLD |
Endpoint States for TSENABLD, TSINCONN, and TSOUCONN
This table lists the endpoint states for the TSENABLD, TSINCONN, and TSOUCONN states:
Table A-1 Endpoint States for TSENABLD, TSINCONN, and TSOUCONN
Event
|
Current State:
|
Function
|
Conditions
|
Service Type
|
TSENABLD
|
TSINCONN
|
TSOUCONN
|
TACCEPT |
count=1, NEWEP=EP |
COTS, CLTS, 1 |
|
TSCONNCT, 6 |
|
|
count=1, NEWEP=EP |
COTS, CLTS, 1 |
|
TSENABLD, 6 |
|
|
count>1, NEWEP=EP |
COTS, CLTS, 1 |
|
TSINCONN, 6 |
|
|
4 |
COTS, CLTS, 1 |
|
|
|
TADDR |
OPTCD=LOCAL |
COTS, CLTS |
TSENABLD |
TSINCONN |
TSOUCONN |
|
OPTCD=REMOTE |
COTS, CLTS |
|
|
|
TBIND |
QLSTN=0 |
COTS, CLTS |
|
|
|
|
QLSTN>0 |
COTS, CLTS |
|
|
|
TCLEAR |
qlstn=0 |
COTS, CLTS, 1 |
|
|
TSDSABLD |
|
qlstn>0, count=0 |
COTS, CLTS, 1 |
|
|
|
|
qlstn>0, count=1 |
COTS, CLTS, 1 |
|
TSENABLD, 6 |
|
|
qlstn>0, count>1 |
COTS, CLTS, 1 |
|
TSINCONN, 6 |
|
TCLOSE |
OPTCD=DELETE |
COTS, CLTS |
TSCLOSED |
TSCLOSED |
TSCLOSED |
|
OPTCD=PASS |
COTS, CLTS |
3 |
|
|
TCONFIRM |
|
COTS, CLTS, 1 |
|
|
TSCONNCT |
TCONNECT |
|
COTS, CLTS, 1 |
|
|
|
TDISCONN |
qlstn=0 |
COTS, CLTS, 1 |
|
|
TSDSABLD |
|
qlstn>0 |
COTS, CLTS, 1 |
|
|
|
TINFO |
|
COTS, CLTS |
TSENABLD |
TSINCON |
TSOUCONN |
TLISTEN |
count<qlstn |
COTS, CLTS, 1 |
TSINCONN, 5 |
TSINCONN, 5 |
|
TOPEN |
OPTCD=NEW |
COTS, CLTS |
|
|
|
|
OPTCD=OLD |
COTS, CLTS |
|
|
|
TOPTION |
|
COTS, CLTS |
TSENABLD |
|
|
TRECV |
|
COTS, CLTS, 1 |
|
|
|
TRECVERR |
|
CLTS |
|
|
|
TRECVFR |
|
CLTS |
|
|
|
TREJECT |
count=1 |
COTS, CLTS, 1 |
|
TSENABLD, 6 |
|
|
count>1 |
COTS, CLTS, 1 |
|
TSINCONN, 6 |
|
TRELACK |
qlstn=0 |
COTS, 2 |
|
|
|
|
qlstn>0 |
COTS, 2 |
|
|
|
TRELEASE |
qlstn=0 |
COTS, 2 |
|
|
|
|
qlstn>0 |
COTS, 2 |
|
|
|
TRETRACT |
|
COTS, CLTS, 1 |
TSENABLD |
TSINCONN |
|
TSEND |
|
COTS, CLTS, 1 |
|
|
|
TSENDTO |
|
CLTS |
|
|
|
TUNBIND |
|
COTS, CLTS |
TSOPENED |
|
|
TUSER |
|
COTS, CLTS |
TSENABLD |
|
|
Endpoint States for TSCONNCT, TSINRLSE, and TSOURLSE
This table lists the endpoint states for the TSCONNCT, TSINRLSE, and TSOURLSE states:
Table A-2 Endpoint States for TSCONNCT, TSINRLSE, and TSOURLSE
Event
|
Current State:
|
Function
|
Conditions
|
Service Type
|
TSCONNCT
|
TSINRLSE
|
TSOURLSE
|
TACCEPT |
count=1, NEWEP=EP |
COTS, CLTS, 1 |
|
|
|
|
count=1, NEWEP=EP |
COTS, CLTS, 1 |
|
|
|
|
count>1, NEWEP=EP |
COTS, CLTS, 1 |
|
|
|
|
4 |
COTS, CLTS, 1 |
|
|
|
TADDR |
OPTCD=LOCAL |
COTS, CLTS |
TSCONNCT |
TSINRLSE |
TSOURLSE |
|
OPTCD=REMOTE |
COTS, CLTS |
TSCONNCT |
TSINRLSE |
TSOURLSE |
TBIND |
QLSTN=0 |
COTS, CLTS |
|
|
|
|
QLSTN>0 |
COTS, CLTS |
|
|
|
TCLEAR |
qlstn=0 |
COTS, CLTS, 1 |
TSDSABLD |
TSDSABLD |
TSDSABLD |
|
qlstn>0, count=0 |
COTS, CLTS, 1 |
TSENABLD |
TSENABLD |
TSENABLD |
|
qlstn>0, count=1 |
COTS, CLTS, 1 |
|
|
|
|
qlstn>0, count>1 |
COTS, CLTS, 1 |
|
|
|
TCLOSE |
OPTCD=DELETE |
COTS, CLTS |
TSCLOSED |
TSCLOSED |
TSCLOSED |
|
OPTCD=PASS |
COTS, CLTS |
3 |
|
|
TCONFIRM |
|
COTS, CLTS, 1 |
|
|
|
TCONNECT |
|
COTS, CLTS, 1 |
|
|
|
TDISCONN |
qlstn=0 |
COTS, CLTS, 1 |
TSDSABLD |
TSDSABLD |
TSDSABLD |
|
qlstn>0 |
COTS, CLTS, 1 |
TSENABLD |
TSENABLD |
TSENABLD |
TINFO |
|
COTS, CLTS |
TSCONNCT |
TSINRLSE |
TSOURLSE |
TLISTEN |
count<qlstn |
COTS, CLTS, 1 |
|
|
|
TOPEN |
OPTCD=NEW |
COTS, CLTS |
|
|
|
|
OPTCD=OLD |
COTS, CLTS |
|
|
|
TOPTION |
|
COTS, CLTS |
TSCONNCT |
|
|
TRECV |
|
COTS, CLTS, 1 |
TSCONNCT |
|
TSOURLSE |
TRECVERR |
|
CLTS |
|
|
|
TRECVFR |
|
CLTS |
|
|
|
TREJECT |
count=1 |
COTS, CLTS, 1 |
|
|
|
|
count>1 |
COTS, CLTS, 1 |
|
|
|
TRELACK |
qlstn=0 |
COTS, 2 |
TSINRLSE |
|
TSDSABLD |
|
qlstn>0 |
COTS, 2 |
TSINRLSE |
|
TSENABLD |
TRELEASE |
qlstn=0 |
COTS, 2 |
TSOURLSE |
TSDSABLD |
|
|
qlstn>0 |
COTS, 2 |
TSOURLSE |
TSENABLD |
|
TRETRACT |
|
COTS, CLTS, 1 |
|
|
|
TSEND |
|
COTS, CLTS, 1 |
TSCONNCT |
TSINRLSE |
|
TSENDTO |
|
CLTS |
|
|
|
TUNBIND |
|
COTS, CLTS |
|
|
|
TUSER |
|
COTS, CLTS |
TSCONNCT |
|
|