These tables describe all state transitions associated with the Transport Interface.
``Transport interface states'' defines the states used to describe the Transport Interface state transitions.
Transport interface states
|T_UNINIT||uninitialized - initial and final state of interface||T_COTS, T_COTS_ORD, T_CLTS|
|T_UNBND||initialized but not bound||T_COTS, T_COTS_ORD, T_CLTS|
|T_IDLE||no connection established||T_COTS, T_COTS_ORD, T_CLTS|
|T_OUTCON||outgoing connection pending for client||T_COTS, T_COTS_ORD|
|T_INCON||incoming connection pending for server||T_COTS, T_COTS_ORD|
|T_DATAXFER||data transfer||T_COTS, T_COTS_ORD|
|T_OUTREL||outgoing orderly release (waiting for orderly release indication)||T_COTS_ORD|
|T_INREL||incoming orderly release (waiting to send orderly release request)||T_COTS_ORD|
The outgoing events described in ``Outgoing events'' correspond to the return of the specified transport routines, where these routines send a request or response to the transport provider.
In the table, some events (such as acceptN) are distinguished by the context in which they occur. The context is based on the values of the following variables:
|opened||successful return of t_open||T_COTS, T_COTS_ORD, T_CLTS|
|bind||successful return of t_bind||T_COTS, T_COTS_ORD, T_CLTS|
|optmgmt||successful return of t_optmgmt||T_COTS, T_COTS_ORD, T_CLTS|
|unbind||successful return of t_unbind||T_COTS, T_COTS_ORD, T_CLTS|
|closed||successful return of t_close||T_COTS, T_COTS_ORD, T_CLTS|
|connect1||successful return of t_connect in synchronous mode||T_COTS, T_COTS_ORD|
|connect2||TNODATA error on t_connect in asynchronous mode, or TLOOK error due to a disconnect indication arriving on the transport endpoint, or TSYSERR error and errno set to EINTR||T_COTS, T_COTS_ORD|
|accept1||successful return of t_accept with ocnt == 1, fd == resfd||T_COTS, T_COTS_ORD|
|accept2||successful return of t_accept with ocnt == 1, fd != resfd||T_COTS, T_COTS_ORD|
|accept3||successful return of t_accept with ocnt > 1||T_COTS, T_COTS_ORD|
|snd||successful return of t_snd||T_COTS, T_COTS_ORD|
|snddis1||successful return of t_snddis with ocnt <= 1||T_COTS, T_COTS_ORD|
|snddis2||successful return of t_snddis with ocnt > 1||T_COTS, T_COTS_ORD|
|sndrel||successful return of t_sndrel||T_COTS_ORD|
|sndudata||successful return of t_sndudata||T_CLTS|
The incoming events correspond to the successful return of the specified routines, where these routines retrieve data or event information from the transport provider. The only incoming event not associated directly with the return of a routine is pass_conn, which occurs when a user transfers a connection to another transport endpoint. This event occurs on the endpoint that is being passed the connection, despite the fact that no Transport Interface routine is issued on that endpoint. pass_conn is included in the state tables to describe the behavior when a user accepts a connection on another transport endpoint.
In ``Incoming events'', the rcvdis events are distinguished by the context in which they occur. The context is based on the value of ocnt, which is the count of outstanding connect indications on the transport endpoint.
|listen||successful return of t_listen||T_COTS, T_COTS_ORD|
|rcvconnect||successful return of t_rcvconnect||T_COTS, T_COTS_ORD|
|rcv||successful return of t_rcv||T_COTS, T_COTS_ORD|
|rcvdis1||successful return of t_rcvdis with ocnt == 0||T_COTS, T_COTS_ORD|
|rcvdis2||successful return of t_rcvdis with ocnt == 1||T_COTS, T_COTS_ORD|
|rcvdis3||successful return of t_rcvdis with ocnt > 1||T_COTS, T_COTS_ORD|
|rcvrel||successful return of t_rcvrel||T_COTS_ORD|
|rcvudata||successful return of t_rcvudata||T_CLTS|
|rcvuderr||successful return of t_rcvuderr||T_CLTS|
|pass_conn||receive a passed connection||T_COTS, T_COTS_ORD|
In the state tables that follow, some state transitions are accompanied by a list of actions the transport user must take. These actions are represented by the notation [n], where n is the number of the specific action as described below.
The following tables describe the Transport Interface state transitions. Given a current state and an event, the transition to the next state is shown, as well as any actions that must be taken by the transport user (indicated by [n]). The state is that of the transport provider as seen by the transport user.
The contents of each box represent the next state, given the current state (column) and the current incoming or outgoing event (row). An empty box represents a state/event combination that is invalid. Along with the next state, each box may include an action list (as specified in the previous section). The transport user must take the specific actions in the order specified in the state table.
The following should be understood when studying the state tables:
A separate table is shown for common local management steps, data transfer in connectionless-mode, and connection-establishment/connection-release/data-transfer in connection-mode.
Common local management state table
|Event||State T_UNINIT||State T_UNBND||State T_IDLE|
Connectionless-mode state table
Connection-mode state table
|Event||State T_IDLE||State T_OUTCON||State T_INCON||State T_DATAXFER||State T_OUTREL||State T_INREL|
|listen||T_INCON ||T_INCON |