BIND Checking

The Open(PLU) OK Response contains the connection information control block (CICB), which enables the application to customize certain characteristics of the connection and contains information used in BIND verification. Note that the local node verifies the BIND parameters carried on the Open(PLU) OK Response. It does not maintain a copy of the original BIND request/response unit (RU) from the host. If the BIND is negotiable, the application is permitted to modify the parameters in the BIND RU, but if it is nonnegotiable the application should return the BIND RU unmodified. A negotiable BIND flag is provided in the Open(PLU) Request.

Although many characteristics of the PLU session are determined by the BIND parameters, the application can select certain characteristics by specifying fields in the CICB. For more information, see the following table. More detailed information about CICB usage and the effect on the PLU session of selecting various CICB options is given in context in the topics of this section that deal with PLU session characteristics such as chaining and pacing.

The BIND is verified using a BIND check table entry (whose index is specified in the CICB). The entries in this correspond to the various fields in the BIND. The BIND check table entries are stored in the configuration file. For example, the BIND check table entry can specify that the BIND be accepted if the secondary chain response protocol is either "definite response" or "definite or exception response" (byte 5 bits 2 and 3 = B10 or B11). This would be appropriate if the application did not want to send Request Exception (RQE) chains.

Connection information control block usage is shown in the following table.

Field Explanation
Segment delivery option A value of 0x00 indicates that the local node should perform outbound segment assembly and only deliver complete RUs. A value of 0x01 indicates that the application wants the local node to deliver RU segments. For more information, see Segment Delivery.
Application pacing option A value of 0x00 indicates that the application requires the local node to handle pacing. A value of 0x01 indicates that the application needs to be involved with outbound pacing through Status-Resource messages. For more information, see Pacing and Chunking.
Application cancel option A value of 0x00 indicates that the local node should automatically generate CANCEL. A value of 0x01 indicates that the application will generate CANCEL. For more information, see Inbound Chaining.
Application transaction numbers option A value of 0x00 indicates that the application does not support transaction numbers. A value of 0x01 indicates that the application does support transaction numbers. For more information, see Recovery.
BIND check index Gives the index of the BIND check table entry against which the BIND parameters should be verified. One of the following values should be used:

- 0x01 —3270 printer session
- 0x02 —3270 display session
- 0x10 —LUA (LU type 0) application

The Open(PLU) Confirm from the local node to the application indicates whether the BIND verification was successful, and if so, supplies the bind information control block (BICB). The BICB summarizes the session BIND parameters in a format suitable for high-level languages and effectively defines the characteristics of the PLU session. The application not negotiating the BIND should usually not require to examine the BIND on the Open(PLU) Request and should use the BICB on the Open(PLU) OK Confirm.

The following table summarizes the fields in the BICB and their correspondence to the parameters in the BIND RU. For more detailed information, see the IBM manual Systems Network Architecture: Formats, (GA27-3136).

Position on Open(PLU) OK Confirm Position in Bind RU [byte,bit] Description
dataru[0] [ 2, ] Function management (FM) profile
dataru[1] [ 3, ] Transmission Service profile
dataru[2] [ 4, 0] Primary chaining use
dataru[3] [ 4, 1] Primary request control mode
dataru[4] [ 4,2-3] Primary chain response protocol
dataru[5] [ 4, 4] Primary two-phase commit
dataru[6] [ 4, 6] Primary compression indicator
dataru[7] [ 4, 7] Primary send End Bracket (EB) indicator
dataru[8] [ 5, 0] Secondary chaining use
dataru[9] [ 5, 1] Secondary request control mode
dataru[10] [ 5,2-3] Secondary chain response protocol
ataru[11]** [ 5, 4] Secondary two-phase commit
dataru[12] [ 5, 6] Secondary compression indicator
dataru[13] [ 5, 7] Secondary send EB indicator
dataru[14] [ 6, 1] FM header usage
dataru[15] [ 6, 2] Bracket usage1
dataru[16] [ 6, 2] Bracket reset state2
dataru[17] [ 6, 3] Bracket termination rule
dataru[18] [ 6, 4] Alternate code set indicator
dataru[19] [ 6, 5] Sequence number availability
dataru[20] [ 7,0-1] Normal-flow send/receive mode
dataru[21] [ 7, 7] Half-duplex flip-flop reset
dataru[22] [ 8,2-7] Secondary pacing send window
ataru[23]** [ 9,2-7] Secondary pacing receive window
dataru[24-25]\* [10, ] Secondary send maximum request unit size
dataru[26-27]\* [11, ] Primary send maximum request unit size
dataru[28] [14,1-7] LU-LU session type
dataru[29] [27, ] PLU name size
dataru[30-37] [28, ] PLU name in Extended Binary Coded Decimal Interchange Code (EBCDIC)
dataru[38] [15,0-3] Session type 1: PS Function Management Header (FMH) type
dataru[39] [15,4-7] PS data stream profile
dataru[40] [16, 0] Number of outstanding destinations
dataru[41] [16, 1] Compacted data indicator
ataru[42]** [16, 2] Peripheral Device Information Record (PDIR) allowed indicator
dataru[43] [15, 0] Session type 2 or 3: query support
dataru[44] [24,1-7] Dynamic screen size
dataru[45] [20, ] Basic row size
dataru[46] [21, ] Basic column size
dataru[47] [22, ] Alternate row size
dataru[48] [23, ] Alternate column size

Note

10x00 = Brackets not used. 0x01 = Brackets used.

Note

20x01 = Bracket reset state is BETB (between-brackets). 0x02 = Bracket reset state is INB (in-bracket).

Note

These values are of type INTEGER (all others are of type CHAR).

The opening PLU sequence can fail if the application rejects the Open(PLU) Request (for example, if the BIND parameters are unacceptable on a nonnegotiable BIND) by sending Open(PLU) Error Response and appropriate sense codes. The local node sends to the host a negative response to the BIND request containing the supplied sense codes. The PLU connection is considered to be closed after an Open(PLU) Error Response, and the local node does not generate an Open(PLU) Confirm. The following figure shows a failure to open the PLU connection (for a nonnegotiable BIND), due to the application rejecting the Open(PLU) Request.

Image that shows the failure to open the PLU connection process.
Failure to open the PLU connection

  • The opening PLU sequence can also fail if the BIND verification against the BIND check table entry specified by the application fails. In this case, the local node does the following: Sends to the host a negative response to the BIND request with appropriate sense codes.

  • Sends to the application an Open(PLU) Error Confirm with the first word of the sense codes as the first error code and the index of the BIND parameter in error as the second error code.

    The PLU connection is considered to be closed after the Open(PLU) Error Confirm. The following figure shows failure to open the PLU connection due to BIND verification failure. Note that error code 2 gives the index in the RU of the BIND parameter in error.

    Image that shows the failure to open the PLU connection due to BIND verification failure process.
    Failure to open the PLU connection due to BIND verification failure