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. |