The tables describe the XTI/TLI state transitions. Each box contains the next state, given the current state (column) and the current event (row). An empty box is an invalid state/event combination. Each box can also have an action list. Actions must be done in the order specified in the box.
The following should be understood when studying the state tables:
t_close(3NSL) causes an established connection to be terminated for a connection-oriented transport provider. The connection termination will be orderly or abortive, depending on the service type supported by the transport provider. See t_getinfo(3NSL).
If a transport user issues a function out of sequence, the function fails and t_errno is set to TOUTSTATE. The state does not change.
The error codes TLOOK or TNODATA after t_connect(3NSL) can result in state changes described in "Event Handling". The state tables assume correct use of XTI/TLI.
Any other transport error does not change the state, unless the manual page for the function says otherwise.
The support functions t_getinfo(3NSL), t_getstate(3NSL), t_alloc(3NSL), t_free(3NSL), t_sync(3NSL), t_look(3NSL), and t_error(3NSL) are excluded from the state tables because they do not affect the state.
Table 3-11, Table 3-12, Table 3-13, and Table 3-14 show endpoint establishment, data transfer in connectionless mode, and connection establishment/connection release/data transfer in connection mode.
Table 3-11 Connection Establishment State
Event/State |
T_UNINIT |
T_UNBND |
T_IDLE |
---|---|---|---|
opened |
T_UNBND |
|
|
bind |
|
T_IDLE[1] |
|
|
|
T_IDLE |
|
unbind |
|
|
T_UNBND |
closed |
|
T_UNINIT |
|
Table 3-12 Connection Mode State--Part 1
Event/State |
T_IDLE |
T_OUTCON |
T_INCON |
T_DATAXFER |
---|---|---|---|---|
connect1 |
T_DATAXFER |
|
|
|
connect2 |
T_OUTCON |
|
|
|
rcvconnect |
|
T_DATAXFER |
|
|
listen |
T_INCON [2] |
|
T_INCON [2] |
|
accept1 |
|
|
T_DATAXFER [3] |
|
accept2 |
|
|
T_IDLE [3] [4] |
|
accept3 |
|
|
T_INCON [3] [4] |
|
snd |
|
|
|
T_DATAXFER |
rcv |
|
|
|
T_DATAXFER |
snddis1 |
|
T_IDLE |
T_IDLE [3] |
T_IDLE |
snddis2 |
|
|
T_INCON [3] |
|
rcvdis1 |
|
T_IDLE |
|
T_IDLE |
rcvdis2 |
|
|
T_IDLE [3] |
|
rcvdis3 |
|
|
T_INCON [3] |
|
sndrel |
|
|
|
T_OUTREL |
rcvrel |
|
|
|
T_INREL |
pass_conn |
T_DATAXFER |
|
|
|
T_IDLE |
T_OUTCON |
T_INCON |
T_DATAXFER |
|
closed |
T_UNINIT |
T_UNINIT |
T_UNINIT |
T_UNINIT |
Table 3-13 Connection Mode State--Part 2
Event/State |
T_OUTREL |
T_INREL |
T_UNBND |
---|---|---|---|
connect1 |
|
|
|
connect2 |
|
|
|
rcvconnect |
|
|
|
listen |
|
|
|
accept1 |
|
|
|
accept2 |
|
|
|
accept3 |
|
|
|
snd |
|
T_INREL |
|
rcv |
T_OUTREL |
|
|
snddis1 |
T_IDLE |
T_IDLE |
|
snddis2 |
|
|
|
rcvdis1 |
T_IDLE |
T_IDLE |
|
rcvdis2 |
|
|
|
rcvdis3 |
|
|
|
sndrel |
|
T_IDLE |
|
rcvrel |
T_IDLE |
|
|
pass_conn |
|
| |
optmgmt |
T_OUTREL |
T_INREL |
T_UNBND |
closed |
T_UNINIT |
T_UNINIT |
|
Table 3-14 Connectionless Mode State
Event/State |
T_IDLE |
---|---|
snudata |
T_IDLE |
rcvdata |
T_IDLE |
rcvuderr |
T_IDLE |