SLI_BID
This verb tells an SLI application program that a message is pending to be read by SLI_RECEIVE or that status is presented. SLI_BID is used to preview the pending data so the application can formulate a strategy for receiving the data. When data or status arrives for the SLI application program, SLI_BID is posted if an eligible SLI_RECEIVE is not active. The application program issues an SLI_BID verb after the session opens successfully (or during the SLI_OPEN if the initiation type is primary with SSCP access) to indicate that the application program will use the bid mechanism.
Supplied Parameters
- lua_verb
- LUA_VERB_SLI
The verb-code indicator for the LUA verbs.
- lua_verb_length
- The length of the verb control block. This number must equal the length expected by the SLI for the SLI_BID verb.
- lua_opcode
- LUA_OPCODE_SLI_BID
The operation code for the verb.
- lua_correlator
- A value that links the verb with other user-supplied information. This parameter is not used by the LUA interface.
- lua_luname
- The local LU name in ASCII. If the name contains fewer than 8 characters, you must pad it with blanks. LUA examines this parameter only if lua_sid is 0. Using the lua_luname parameter on all verbs helps make debugging easier, especially when multiple LUs are configured.
- lua_sid
- The session ID returned by SLI_OPEN that identifies the session to be used. If this parameter is 0, the lua_luname parameter is used for identification.
- lua_post_handle
- This is a 4-byte handle that is used to post the completion of asynchronous verbs.
Returned Parameters
- lua_prim_rc
- The primary return code, set by the verb function.
- lua_sec_rc
- The secondary return code, set by the verb function.
- lua_data_length
- The length of the peek data received.
- lua_peek_data
- This parameter contains up to the first 12 bytes of RU data to be read. The length of the data returned in this parameter is in the lua_data_length parameter.
- lua_th
- A 6-byte parameter that contains the SNA transmission header (TH) for the message.
- lua_rh
- A 3-byte parameter that contains the SNA request/response header (RH) for the message.
- lua_message_type
- The type of SNA data and commands. The valid message types follow:
- LUA_MESSAGE_TYPE_LU_DATA
- LUA_MESSAGE_TYPE_SSCP_DATA
- LUA_MESSAGE_TYPE_RSP
- LUA_MESSAGE_TYPE_BID
- LUA_MESSAGE_TYPE_BIND
- LUA_MESSAGE_TYPE_BIS
- LUA_MESSAGE_TYPE_CANCEL
- LUA_MESSAGE_TYPE_CHASE
- LUA_MESSAGE_TYPE_LUSTAT_LU
- LUA_MESSAGE_TYPE_LUSTAT_SSCP
- LUA_MESSAGE_TYPE_QC
- LUA_MESSAGE_TYPE_QEC
- LUA_MESSAGE_TYPE_RELQ
- LUA_MESSAGE_TYPE_RTR
- LUA_MESSAGE_TYPE_SBI
- LUA_MESSAGE_TYPE_SIGNAL
- LUA_MESSAGE_TYPE_STSN
The SLI receives and responds to the BIND and STSN requests through the LUA interface extension routines.
LU_DATA, LUSTAT_LU, LUSTAT_SSCP, and SSCP_DATA are not SNA commands.
- lua_flag2
- A 1-byte flag that contains bits used as output parameters. At verb
completion, all bits that are not described by value are reserved and must
be set to 0. The flag in the high-order half-byte follows:
- lua_flag2.async
- A flag that indicates that this verb completes asynchronously
The low-order half-byte contains flags that describe the message session and flow. One of the following flags is returned:- lua_flag2.sscp_exp
- Specifies SSCP-expedited flow
- lua_flag2.sscp_norm
- Specifies SSCP-normal flow
- lua_flag2.lu_exp
- Specifies LU-expedited flow
- lua_flag2.lu_norm
- Specifies LU-normal flow
- lua_prim_rc
- The primary return code, set by the verb function. For details, see LUA Verb Return Codes.
- lua_sec_rc
- The secondary return code, set by the verb function. For details, see LUA Verb Return Codes.
Usage Notes
Only one SLI_BID can be active for each session. The application program can be bid once for each flow if the SLI_BID is reactivated, even if the data is not read. If the application program does not read the bid data, it is not bid again for that specific flow.
- By calling the SLI again with the address of an SLI_BID verb control block.
- By issuing an SLI_RECEIVE with the lua_flag1.bid_enable parameter set to 1. If SLI_RECEIVE with lua_flag1.bid_enable is issued, the SLI uses the address of the last-accepted SLI_BID verb control block as the active bid.
- If multiple flows have data available when the SLI_BID is issued, the data returned by the SLI_BID is
from the highest priority flow that has data. From highest to lowest, the
priorities are:
- SSCP–expedited
- LU–expedited
- SSCP–normal
- LU–normal
- If, following SLI_BID completion, the LUA application
issues an SLI_RECEIVE with multiple lua_flag1 flow
flags set, the data read could be for a different flow from the data returned
by the SLI_BID. This could happen if higher priority
data arrived from the host between the time that the SLI_BID completed and the SLI_RECEIVE was issued.
The LUA application can, however, guarantee that an SLI_RECEIVE reads the data for which it was just bid. It does so by setting only one of the lua_flag1 flow flags in the control block for the SLI_RECEIVE verb, specifying the same flow as that returned in the lua_flag2 field of the completed SLI_BID.
The SLI_BID completes as soon as an RU arrives. This RU could be the only RU in a chain, or it could be the first RU in a multiple-RU chain. At SLI_BID completion, a single element chain is the only time a complete chain is bid to the application.
If the SLI_BID completes with the first RU of a multiple-RU chain and the subsequent SLI_RECEIVE specifies the lua_flag1.nowait option, the lua_flag1.nowait option is ignored. The SLI_RECEIVE verb returns in progress and will complete asynchronously after all RUs in the chain arrive.
- SLI_SEND verbs on the SSCP flow
- SLI_CLOSE
When the primary return code is STATUS, the only SLI_BID parameters returned are lua_prim_rc, lua_sec_rc, and lua_sid. If SLI_BID and SLI_RECEIVE are both active when status becomes available, only the SLI_BID is posted with the status. When the application program is bid for status, all information is presented and no SLI_RECEIVE is required.
- READY
Indicates the SLI session is now ready for processing all additional commands. The READY status is issued after a prior NOT_READY status was received.
- NOT_READY
Indicates that a CLEAR command or an UNBIND command with a type value of X'02' or X'01' was received from the host. The SLI session is suspended.
- When a CLEAR arrives, the session is suspended until an SDT command is received.
- When an SNA UNBIND type X'02' (UNBIND with BIND forthcoming) arrives, the session is suspended until BIND, optional CRV and STSN, and SDT commands are received. Any user extension routines must be reentrant.
- When an UNBIND type X'01' (UNBIND normal) arrives and the SLI_OPEN verb for this session specified an lua_session_type of
LUA_SESSION_TYPE_DEDICATED, the session is suspended until BIND, optional
CRV and STSN, and SDT commands are received. User extension routines provided
to process these commands must be reentrant.
After the CLEAR, UNBIND type X'02', or UNBIND type X'01' arrives, the application can send SSCP data before reading the NOT_READY status, and can both send and receive SSCP data after reading the NOT_READY status.
- SESSION_END_REQUESTED
Indicates that a SHUTD command was received from the host. The host is requesting that the SLI application end the session as soon as convenient.
When the application is ready to end the session, it should issue an SLI_OPEN.
- INIT_COMPLETE
Indicates that an RUI_INIT verb completed during SLI_OPEN processing. This status is returned only when the SLI_OPEN lua_init_type parameter is LUA_INIT_TYPE_PRIM_SSCP.
After this status is received, the application can send and receive data on the SSCP-normal flow.
- Parameters
- lua_prim_rc
- OK (X'0000')
- lua_sec_rc
- OK (X'00000000')
- lua_rh.rri
- bit off (request unit)
- lua_rh.sdi
- bit on (sense data included)
- Bytes 0—3 contain sense data defining the error detected. If LUA
converted the request into an EXR, the sense data is one of the following
values:
Sense Data Value of byes 0 - 3 LUA_MODE_INCONSISTENCY X'08090000' LUA_BRACKET_RACE_ERROR X'080B0000' LUA_BB_REJECT_NO_RTR X'08130000' LUA_RECEIVER_IN_TRANSMIT_MODE X'081B0000' LUA_CRYPTOGRAPHY_FUNCTION_INOP X'08480000' LUA_SYNC_EVENT_RESPONSE X'10010000' LUA_RU_DATA_ERROR X'10020000' LUA_RU_LENGTH_ERROR X'10020000' LUA_INCORRECT_SEQUENCE_NUMBER X'20010000'