gtps2m3hACF/SNA Data Communications Reference

Data Flow Control (DFC) Considerations

The SNA architecture defines the Data Flow Control (DFC) layer to provide the following services for LU-LU sessions:

Although DFC may provide all of these services for a particular LU-LU session, all may not be supported for that session. The options to be supported (for example BRACKETS) are agreed upon at session establishment time (BIND).

Associated with each RSC defined at TPF SNA generation time, certain services are available and/or precluded depending upon the device type specified. For example, BRACKET and Definite Response protocols are precluded for NPSI (MCH and VC) LUs, but available for 3270s. Thus, TPF supports a specific set of BIND values (images) for each device type and the generation process forces the device definition to conform to one of the supported images for that device.

The TPF SNA DFC layer communicates with the network through the TPF-provided lower level Transmission Control (TC) layer. The TC layer provides the following functions:

The TPF SNA Output Message Transmission (OMT) package, acting as owner and manager of the message queue, provides the DFC services. As an alternative to using OMT, the user is able to define and implement PSV exit routines which own and manage the message queue via Queue Manager, thus assuming the DFC responsibility. Although the user should provide the full complement of DFC functions, only those specified in the associated TPF BIND image can be used for that session. For example, the TPF BIND image for NPSI (MCH and VC) LU resources precludes the support of BRACKET protocols, and any use of BRACKET protocols for that session will cause errors.

User DFC Interface

The DFC functions are closely related to the Request/Response Header (RH) indicator settings and DFC RU commands of the PIU. Upon receipt of a PIU, the RH and RU dictate which DFC services must be performed; similarly, the DFC functions that are used dictate the RH and RU of the outbound PIU. Because of this interdependence, TPF provides the user DFC with:

The ROUTC user exit and PSV routines provide the user interface to the SNA DFC layer of TPF SNA. The interface is described in Table 14.

Table 14. DFC ROUTC Interface

RU Type AM0SG Fields RCPL Setting
  1. Any DFC Command
  2. Data

  1. DFC Command
    • AM0FCH = 0 (Chaining not permitted)
    • AM0CCT = length of DFC Command RU + 5
    • AM0TXT = DFC Command RU
  2. Data
    • AM0FCH = 0 (Chaining not permitted)
    • AM0CCT = length of Data RU + 5
    • AM0TXT = Data RU

  • RCPLORG & RCPLDES fields
  • RCPLCTL0 (See Note (CTL0).)
  • RCPLCTL1 = 0 (Reserved)
  • RCPLCTL2 = 0 (Reserved)
  • RCPLCTL3 = 0 (Reserved)
  • RCPLCTL4 = 0 (Reserved)
  • RCPLCTL5 = 0 (Reserved)
  • RCPLGDD = RCPLDRH (X'40')
  • RCPLCTR = X'07' (length of GDA)
  • RCPLGDA
    • X'06' - length of GDA data
    • 2 Byte PIU Sequence Number
    • 3 Byte SNA RH (See Note (GDARH).)
    • 1 Byte Indicator (X'00')

Notes:

  1. RCPLCTL0 indicators:
    RCPL0DTY (X'80')
    indicates input (Destination = TPF Application)
    RCPL0OTY (X'40')
    indicates output (Origin = TPF Application)
    RCPL0TRM (X'02')
    indicates RID addressing used.
    RCPL0FMT (X'01')
    indicates expanded RCPL used.

  2. TPF ensures that the setting of the following RH indicators (as defined in PIUEQ) are set to zero:
    RH0CIB (Byte 0, X'20')
    Session Control and Network Services.
    RH0AWM (Byte 0, X'10')
    Reserved
    RH1PEM (Byte 1, X'40')
    Reserved
    RH1RBM (Byte 1, X'08')
    Reserved
    RH1RLWIM (Byte 1, X'04')
    Reserved
    RH1QRI (Byte 1, X'02')
    Queued Response Indicator
    RH1PCEM (Byte 1, X'01')
    Pacing Indicator
    RH0B2CE (Byte 2, X'01')
    Conditional End Bracket Indicator (LU6.2 only)

Outbound Message Interface

An application or PSV (Process Selection Vector) sends output messages using the ROUTC macro. If an output message cannot be delivered to its destination, the originating application/PSV may have requested that:

  1. The output message is returned to the originator. The originator indicates this to TPF by setting the RCPL Returned Message Indicator off (RCPL0RET = 0).
  2. The output message is queued by TPF for later transmission. The originator indicates this to TPF by setting the RCPL Returned Message Indicator on (RCPL0RET = 1).

The user DFC interface (see Table 14) precludes the application/PSV from requesting the message that is queued. Outbound messages across the user DFC interface are to be considered as having been transmitted to the network. Queueing of the message for later transmission is the user DFC's responsibility.

Output messages that cannot be sent, such as when no session exists, are passed to the originator as input. In this situation, the RCPL Returned Message Indicator is set on (RCPL0RET = 1). Applications and PSV exit routines should be designed with the capability of processing returned output messages.

Pacing Considerations

The TPF TC layer enforces the session pacing protocols. When the user provides the DFC layer, the TPF TC layer queues messages when the session is at the pacing limit or if a pacing queue exists. Upon the return from the ROUTC request, the user DFC should consider the message to have been transmitted. Messages stalled by pacing limits are not returned to the originator, but are discarded during session end processing.

Undeliverable Message Considerations

Messages being returned by TPF to the application may differ from those sent by the application as the original messages may have been altered by the ROUTC Exit or a PSV routine. Thus, when using these facilities, regardless of the DFC layer implementation and/or use of PSV routines, TPF must return messages to the originator (application/PSV) via the same path (ROUTC Exit / PSV), rather than directly to the application via the RCAT enter expansion.

Response Protocols/Error Handling

The user DFC is given all PIU responses (positive or negative) during the session. A TPF sample negative response analysis program per LU type is provided to perform the analysis for each -RSP sense code received:

The PSV may use the TPF sample or a user modified version. The sample analysis programs are activated via ENTRC using the interface described in Table 15.

Table 15. Sample Negative Response Handler Interface

Interface Input Returned
Registers Irrelevant
  • R0-R6: Not changed
  • R7: Recommended Action (Reference Table 19)

ECB Workarea Irrelevant Not Changed
Data Levels D0 = PIU Not Changed
Protect Key Working Storage Working Storage

Upon return from the analysis segment, the user should start the processing corresponding to the action code(s) specified in register 7. See Table 19 for detailed information.

Note:
These do not include BATCH_LU and SLU-P conditions.

Table 16. LU0 (3600, NPSI) -RSP Analysis

SENSE Description User Action
X'0802' Intervention Required HOLDQ
X'0813' Bracket BID Reject - No RTR forthcoming HOLDQ + WAIT
X'0814' Bracket BID Reject - RTR forthcoming HOLDQ + WAIT
X'0817' XIO unsuccessful (GATE/PAD) MCH Inactive HOLDQ
X'081B' Receiver in Transmit RESYNC
X'1xxx' Request Error TERMINATE
X'2xxx' State Error RESYNC
X'4xxx' Request Header (RH) Usage Error TERMINATE
X'8xxx' PATH Error TERMINATE

Table 17. 3274/76 (LU1, LU2, LU3) Sense Code Table

SENSE Description User Action
X'0802' Intervention Required HOLDQ + WAIT
X'0807' Resource Not Available - LUSTAT Forthcoming HOLDQ + WAIT
X'0811' BREAK RETRY
X'0813' Bracket Bid Reject - No RTR Forthcoming HOLDQ + WAIT
X'0814' Bracket Bid Reject - RTR Forthcoming HOLDQ + WAIT
X'081B' Receiver in Transmit Mode SIGNAL
X'0829' Change Direction Required RESYNC
X'082A' Presentation Space Alteration REFORMAT
X'082B' Presentation Space Integrity Lost REFORMAT
X'082D' LU Busy HOLDQ + WAIT
X'082E' Intervention Required at LU Subsidiary Device HOLDQ + WAIT
X'082F' Permanent Error at LU Subsidiary Device RETRY
X'0831' LU Disconnected HOLDQ + WAIT
X'1xxx' Request Error TERMINATE
X'2xxx' State Error RESYNC
X'4xxx' Request Header (RH) Usage Error TERMINATE
X'8xxx' PATH Error TERMINATE
X'FFFF' DEFAULT Use actions shown in Table 16 if sense not found here.

Table 18. 3274/76 (LU1, LU2, LU3) LUSTAT SENSE TABLE

SENSE Description User Action
X'00010000' LU Available (T1/T3) WAKEUP
X'0001B000' Printer - Available (T2) WAKEUP
X'0001D000' Display - Available (T2) WAKEUP
X'00020000' No Data to Send WAKEUP
X'082B0000' Available, Presentation Space Integrity Lost, Formatting Required. REFORMAT
X'08310000' Powered Off or Disconnected HOLDQ + CD
X'FFFF0000' DEFAULT TERMINATE

Table 19. Negative Response Processing Actions

Action Value Processing Description
CD X'00000001' Yield direction to the remote. Set change direction indicator of the RH (RH0B2CD = 1) in the RCPL GDA for the next ROUTC request.
HOLDQ X'00000010' Suspend processing of messages queued for transmission. Queue all ensuing transmit requests.
REFORMAT X'00000020' Application must format the screen.
RETRY X'00000030' Resend message up to some user defined limit before starting HOLDQ and awaiting LUSTAT with available sense data.
RESYNC X'00000040' Initiate resynchronization process. Using the Session Services Interface request 'RESYNC' activation of this session.
SIGNAL X'00000050' Send SIGNAL DFC request to obtain direction.
TERMINATE X'00000060' No recovery possible for this error. Using the Session Services Interface request 'FORCED' termination of this session.
WAIT X'00000002' Do not initiate any further transmissions. Wait for an indication from the remote resource (that is, LUSTAT or RTR) before resuming transmit processing.
WAKEUP X'00000070' Resource now available. Treat as Session Started Notification.