Appendix D. LU Finite-State Machines

To be able to fully control the SSCP-LU and LU-LU half-sessions of an LU in all details, the LU finite-state machine fsm_lu may be retrieved by the application via the gfsm verb. The fsm_lu contains most of IBM's FAPL-defined finite-state machines of the Data Flow Control and Transmission Control layers.

The fsm_lu is a structure with the following members:

hex

cp_sess

 

DFC SSCP-LU session

 

 

 

status

hex

cp_im_s

DFC SSCP-LU

 

 

immediate request

 

 

mode send

hex

lu_sess

DFC LU-LU session

 

 

status status

hex

chain_r

DFC LU-LU chain

 

 

receive

hex

chain_s

DFC LU-LU chain send

hex

qec_r

DFC LU-LU quiesce

 

 

receive

hex

qec_s

DFC LU-LU quiesce

 

 

send

hex

rtr_fsp

DFC LU-LU ready to

 

 

receive first speaker

hex

shutd_r

DFC LU-LU shutdown

 

 

receive

hex

lu_im_s

DFC LU-LU immediate

 

 

request mode send

hex

dt_r

TC LU-LU data traffic

 

 

receive

hex

rqr_s

TC LU-LU request

 

 

recovery send

hex

stsn_r

TC LU-LU set and test

 

 

sequence numbers

 

 

receive

hex

pac_s

TC LU-LU pacing send

cp_sess is the finite-state machine used to control the state of the secondary SSCP-LU half-session. The following states are maintained by this FSM:

P01_CPLU 

Reset.

P02_CPLU 

An ACTLU has been received but not responded to.

P03_CPLU 

An ACTLU has been positively responded to.

P04_CPLU 

A DACTLU (not SON) has been received but

 

not responded to.

P05_CPLU 

A DACTLU (SON) has been received but not

 

responded to.

cp_im_s is the finite-state machine used to enforce the immediate request mode protocol for the normal flow of the SSCP-LU session. The following states are maintained by this FSM:

P01_CPIM 

Not in chain, no definite response required.

P02_CPIM 

Definite response required, CANCEL not sent.

P03_CPIM 

In chain.

P04_CPIM 

Response received while in chain.

P05_CPIM 

Definite response to CANCEL required.

lu_sess is the finite-state machine used to control the state of the secondary
LU-LU half-session. This state and the remainder of the states in this structure refer to the LU_LU session. The following states are maintained by this FSM:

P01_LULU 

Reset.

P02_LULU 

A BIND has been received but not responded to.

P03_LULU 

A BIND has been positively responded to.

P04_LULU 

An UNBIND (not SON) has been received but not responded to.

P05_LULU 

An UNBIND has been sent but not responded to.

P06_LULU 

An UNBIND has been both sent and received but not responded to.

P07_LULU 

An UNBIND (SON) has been received but not responded to.

chain_r is used to enforce the chaining protocol for received chains. The following states are maintained by this FSM:

P01_CHNR 

Between chain.

P02_CHNR 

In chain.

P03_CHNR 

Purge up to end of chain.

chain_s is used to enforce the chaining protocol for sending chains. The following states are maintained by this FSM:

P01_CHNS 

Between chain.

P02_CHNS 

In chain.

qec_r is used to enforce the quiesce protocol for the half-session that received the Quiesce-at-End-of-Chain (QEC) request. The following states are maintained by this FSM:

P01_QECR 

QEC not received or not yet responded to.

P02_QECR 

Positive response sent to QEC.

P03_QECR 

QC sent.

qec_s is used to enforce the quiesce protocol for the half-session that sent the QEC request. The following states are maintained by this FSM:

P01_QECS 

QEC not sent or no QEC-response received.

P02_QECS 

Positive response received to QEC

P03_QECS 

QC received.

rtr_fsp is used to enforce the Ready-to-Receive (RTR) portion of the bracket protocol for the first speaker. The following states are maintained by this FSM:

P01_RTRF 

Transmission of RTR not required.

P02_RTRF 

RTR should be sent.

shutd_r is used to enforce the shutdown protocol for the half-session that receives the Shutdown (SHUTD). The following states are maintained by this FSM:

P01_SHDR 

No SHUTD received or no SHUTD- response sent.

P02_SHDR 

Positive response sent to SHUTD.

P03_SHDR 

Positive SHUTC-response received.

lu_im_s is used to enforce the immediate request mode protocol for normal flow. The following states are maintained by this FSM:

P01_LUIM 

Reset.

P02_LUIM 

Sent RQD, no cancel.

P03_LUIM 

In chain.

P04_LUIM 

In chain, response received.

P05_LUIM 

Sent RQD, cancel.

dt_r is used to record the ability for data to flow on the LU-LU session. The following states are maintained by this FSM:

P01_DTR 

Reset.

P02_DTR 

An SDT is being processed.

P03_DTR 

All traffic may flow.

P04_DTR 

A CLEAR is being processed.

rqr_s records if a Request Recovery (RQR) request has been sent. The following states are maintained by this FSM:

P01_RQRS 

No outstanding RQR.

P02_RQRS 

RQR outstanding.

stsn_r records the receipt of the Set and Test Sequence Numbers (STSN) request. The following states are maintained by this FSM:

P01_STSN 

No outstanding STSN.

P02_STSN 

STSN outstanding.

pac_s records the ability to send a session-level pacing request for send pacing. The following states are maintained by this FSM:

P01_PACS 

A pacing request may be sent.

P02_PACS 

Pacing request sent but no response received.