Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

KCLBK

Prolog  

Control Block Contents  
   KCLBK DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


KCLBK Prolog

 NAME       : HCPKCLBK
 DESCRIPTION: ISFC Link Layer message frame
 DSECT      : KCLBK
 FUNCTION   :
              This structure defines the message frames sent across
              the ISFC Link to control the link devices.
 LOCATED BY :
              The ISFC Link Layer allocates storage to send this
              frame across a link device, and reads this frame
              from the link device into local storage.
 CREATED BY :
              ISFC Link Management.
 DELETED BY :
              ISFC Link Management.
 SERIALIZED :
              Each KCLBK instance is owned by a single task.
              The serialization that protects the associated
              link or device also protects this KCLBK.
 RELOCATION CONSIDERATIONS : None
 NOTES      :
              INCLUDE HCPLWKBK COPY
              Link Level 0 (LNKLEVEL==LNKLVL00) -
              This means the remote driver level is not known.
              The initial exchange of LINK and/or IDX frames
              will help us classify the remote driver.
              Link Level 1 (LNKLEVEL==LNKLVL01) -
              This designates the original MDEBK based ISFC
              protocol.  Messages are exchanged using structures
              defined in HCPMDEBK COPY.
              Link Level 2 (LNKLEVEL==LNKLVL02) -
              This designates the MBHBK based ISFC protocol.
              Messages are exchanged using structures defined
              here.
              Every independent ISFC frame has the following general
              structure:
              KCLFRAME structure {
              KCLFRMLN = Frame length (includes KCLFRMLN field)
              KCLFRMID = Frame ID (IDX, DVX, or DATA)
              KCLFRMXT = Frame contents:
              KCLHDRLN = Header length (includes KCLHDRLN field)
              KCLHDRFN = Header function
              KCLHDRXT = Additional fields based on function
              }
              Other elements may follow the header.  If they are
              considered part of the KCLFRAME, KCLFRMLN must account
              for those elements and they must be sent in the same
              I/O buffer.
              Raw user data may be transmitted after the appropriate
              KCLFRAME (not counted in KCLFRMLN) or as part of the
              KCLFRAME (counted in KCLFRMLN).  Refer to KCLTX_MODE
              for more information.
              The EOD (End of Data) frame is a special case.  It is
              not independent, but it may be transmitted in a separate
              I/O buffer.  It uses the KCLFRAME prefix without an
              additional header structure.

 

KCLBK Control Block Content


KCLBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      KCLBK          ISFC Link Layer message frame
      The frame structure begins here.
          00000000       KCLFRAME       * ISFC Frame
0000    0 Bitstring    4 KCLPFX (0)     Prefix (FRMLN+FRMID)
0000    0 Signed       2 KCLFRMLN       Frame length (from KCLPFX)
0002    2 Signed       2 KCLFRMID       Frame type
          00000001       KCLIDX         1 KCLIDX - Initial Device
                                        Exchange frame
          00000002       KCLDC          2 KCLDC - Link Device Control
                                        frame
          00000003       KCLDATA        3 KCLDATA - Link Data Exchange
                                        frame
          00000004       KCLEOD         4 KCLEOD - Link End of Data frame
          00000004       KCLPFXLN       *-KCLPFX Length of frame prefix
          00000004       KCLFRMXT       * Variable length frame content
      Generic frame header.
0004    4 Bitstring    1 KCLHDR (0)     Header extension (variable)
0004    4 Bitstring    1 KCLHDRLN       Header length
0005    5 Bitstring    1 KCLHDRFN       Header function
0006    6 Bitstring 4090 KCLHDRXT       Variable length header content
      When KCLFRMID==KCLIDX (Initial Device Exchange)
          00000004       KCLIDX_FRAME   * Start IDX frame
0004    4 Bitstring    1 KCLIDXLN       IDX frame length
0005    5 Bitstring    1 KCLIDXFN       IDX function
          00000001       KCLIDX_CONNECT 1 KCLIDX_CONNECT - Connect
                                        Request
          00000002       KCLIDX_ACCEPT  2 KCLIDX_ACCEPT - Connect Accept
0006    6 Bitstring    1 KCLIDXID       IDX format
          00000001       KCLIDX01       1 KCLIDX01 - IDX format 1 (first
                                        version)
0007    7 Bitstring    1 *              Reserved for IBM Use
0008    8 Bitstring    8 KCLIDXRF       Reference (CONNECT TOD)
0010   16 Bitstring    8 KCLVER         Driver version (Vnnn.nnn)
0018   24 Bitstring    8 KCLCAPS (0)    Driver capability flags
0018   24 Bitstring    1 KCLCAP0        Capability byte 0
          1... ....      KCLDRV02       X'80' KCLDRV02 - Support DRV02
                                        (MBHBK)
0019   25 Bitstring    1 KCLCAP1        Capability byte 2
001A   26 Bitstring    1 KCLCAP2        Capability byte 3
001B   27 Bitstring    1 KCLCAP3        Capability byte 4
001C   28 Bitstring    1 KCLCAP4        Capability byte 5
001D   29 Bitstring    1 KCLCAP5        Capability byte 6
001E   30 Bitstring    1 KCLCAP6        Capability byte 7
001F   31 Bitstring    1 KCLCAP7        Capability byte 1
0020   32 Character    8 KCLNODE        ISFC node ID (printable)
0028   40 Character    4 KCLDEVID       Real device address (printable)
002C   44 Signed       2 KCLMFL         Maximum Frame Length
002E   46 Character   18 KCLUID (0)     Unique identifier
002E   46 Bitstring    1 KCLUIDLN       Length(KCLUID)
002F   47 Bitstring    1 KCLUIDVN       Version of KCLUID
0030   48 Bitstring    8 KCLUIDCP       Host CPUID (PFXCPUID)
0038   56 Bitstring    8 KCLUIDTS       Host IPL TOD (SYSTODST)
0040   64 Bitstring    8 KCLLKTOD       Link Creation TOD
          00000044       KCLIDX_LN      *-KCLIDX_FRAME Max length of this
                                        element
      When KCLFRMID==KCLDC (Link Device Control frame)
          00000004       KCLDC_FRAME    * Start DC frame
0004    4 Bitstring    1 KCLDCLN        Device Control frame length
0005    5 Bitstring    1 KCLDCFN        Device Control function
          00000001       KCLDC_STOP     1 KCLDC_STOP - Stop this device
          00000002       KCLDC_TESTRQ   2 KCLDC_TESTRQ - Request a device
                                        response
          00000003       KCLDC_TESTRS   3 KCLDC_TESTRS - Respond to a
                                        test request
0006    6 Bitstring    2 *              Reserved for IBM use
0008    8 Bitstring    8 KCLDCREF       Reference (TOD of Request)
0010   16 Signed       4 KCLDCREASON    Reason code
          00000010       KCLDC_LN       *-KCLDC_FRAME Max length of this
                                        element
      When KCLFRMID==KCLDATA (Data control map).
          00000004       KCLDATA_FRAME  * Start DATA frame
0004    4 Bitstring    1 KCLTXLN        Frame header length
0005    5 Bitstring    1 KCLTXFN        Data Transfer function
          00000001       KCLTX_OFFER    1 KCLTX_OFFER - Offer/Send data
          00000002       KCLTX_REQUEST  2 KCLTX_REQUEST - Request a data
                                        package
0006    6 Bitstring    1 KCLTXMD        Data Transfer Mode
          00000001       LWK_SYNC       1 LWK_SYNC - Synchronous mode
          00000002       LWK_ASYNC      2 LWK_ASYNC - Asynchronous mode
          00000003       LWK_IMBED      3 LWK_IMBED - Imbedded
                                        (Synchronous) mode
0007    7 Bitstring    1 KCLPRIOR       Message priority
0008    8 Signed       2 KCLSEQNO       Frame sequence number
000A   10 Signed       2 KCLACKNO       Frame ack sequence number
000C   12 Signed       2 KCLWSIZE       Window size for inbound frames
000E   14 Bitstring    2 *              Reserved for IBM use
0010   16 Bitstring    1 KCLFLAG        Processing flags
          1... ....      LWKTX_RESEND   X'80' LWKTX_RESEND Resend LWKBK
                                        following error
0011   17 Bitstring    1 KCLSTGMS       Storage Management status
          00000080       LNKSTG_TROUBLE X'80' LNKSTG_TROUBLE - Storage is
                                        constrained
          00000040       LNKSTG_RXQUECT X'40' LNKSTG_RXQUECT -
                                        LNKRX_QUEUE too large
0012   18 Signed       2 KCLMBHCT       Messages (MBHBKs) in this unit
0014   20 Signed       4 KCLBYTES       Bytes in this unit
0018   24 Signed       4 KCLREQUE       Times out-going LWKBK requeued
          00000018       KCLDATA_LN     *-KCLDATA_FRAME Max length of
                                        this element
          0000001C       KCLMAP         * Location of first MBHDR
      Notes      :
        When KCLTXFN==KCLTX_OFFER the map begins here
        (at KCLMAP).  Each message (for a total of KCLMBHCT)
        is represented by one MBHDR and a series of MBHBF
        entries.  This map must NOT cross the 4KB boundary.
        If KCLTXMD==KCLTX_IMBED then data frames and the EOD
        frame will be appended after the last MBHBF entry.
        Otherwise, data frames will follow in subsequent
        I/O buffers.
      When KCLFRMID==KCLEOD (End of Data marker)
          00000004       KCLEOD_FRAME   * Start EOD frame
0004    4 Bitstring    1 KCLEOD_RSVD    Reserved for IBM use
0005    5 Bitstring    1 KCLEOD_PRIORITY
                                        Referenced KCLPRIOR value
0006    6 Signed       2 KCLEOD_SEQNO   Referenced KCLSEQNO frame
          00000004       KCLEOD_LN      *-KCLEOD_FRAME Max length of this
                                        element
     ------- End the comment containing assembler code ---------*/

 

KCLBK Storage Layout

          
*** KCLBK - ISFC Link Layer message frame
*
*     +-------------+-------------+------+------+-------------+
*   0 |  KCLFRMLN   |  KCLFRMID   |:HDRLN|:HDRFN|             |
*     +-------------+-------------+------+------+             |
*   8 |                                                       |
*     =                       KCLHDRXT                        =
*     |                                                       |
*     +-------------------------------------------------------+
*1000
*
*** KCLBK - ISFC Link Layer message frame
          
*** Overlay for KCLHDR in KCLBK
*
*                                 +------+------+------+------+
*   0 ...                       4 |:IDXLN|:IDXFN|:IDXID|//////|
*     +---------------------------+------+------+------+------+
*   8 |                       KCLIDXRF                        |
*     +-------------------------------------------------------+
*  10 |                        KCLVER                         |
*     +------+------+------+------+------+------+------+------+
*  18 |:CAP0 |:CAP1 |:CAP2 |:CAP3 |:CAP4 |:CAP5 |:CAP6 |:CAP7 |
*     +------+------+------+------+------+------+------+------+
*  20 |                       KCLNODE                         |
*     +---------------------------+-------------+------+------+
*  28 |         KCLDEVID          |   KCLMFL    |:UIDLN|:UIDVN|
*     +---------------------------+-------------+------+------+
*  30 |                       KCLUIDCP                        |
*     +-------------------------------------------------------+
*  38 |                       KCLUIDTS                        |
*     +-------------------------------------------------------+
*  40 |                       KCLLKTOD                        |
*     +-------------------------------------------------------+
*  48
*
*** Overlay for KCLHDR in KCLBK
          
*** Overlay for KCLHDR in KCLBK
*
*                                 +------+------+-------------+
*   0 ...                       4 |:DCLN |:DCFN |/////////////|
*     +---------------------------+------+------+-------------+
*   8 |                       KCLDCREF                        |
*     +---------------------------+---------------------------+
*  10 |       KCLDCREASON         | 14
*     +---------------------------+
*
*** Overlay for KCLHDR in KCLBK
          
*** Overlay for KCLHDR in KCLBK
*
*                                 +------+------+------+------+
*   0 ...                       4 |:TXLN |:TXFN |:TXMD |:PRIOR|
*     +-------------+-------------+------+------+------+------+
*   8 |  KCLSEQNO   |  KCLACKNO   |  KCLWSIZE   |/////////////|
*     +------+------+-------------+-------------+-------------+
*  10 |:FLAG |:STGMS|  KCLMBHCT   |         KCLBYTES          |
*     +------+------+-------------+---------------------------+
*  18 |         KCLREQUE          | 1C
*     +---------------------------+
*
*** Overlay for KCLHDR in KCLBK
          
*** Overlay for KCLHDR in KCLBK
*
*                                 +------+------+-------------+
*   0 ...                       4 |(004) |(005) |KCLEOD_SEQNO |
*                                 +------+------+-------------+
*   8
*
*** Overlay for KCLHDR in KCLBK

 

KCLBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
KCLACKNO       000A
KCLBYTES       0014
KCLCAPS        0018
KCLCAP0        0018
KCLCAP1        0019
KCLCAP2        001A
KCLCAP3        001B
KCLCAP4        001C
KCLCAP5        001D
KCLCAP6        001E
KCLCAP7        001F
KCLDATA        0002 00000003
KCLDATA_FRAME  0010 00000004
KCLDATA_LN     0018 00000018
KCLDC          0002 00000002
KCLDC_FRAME    0040 00000004
KCLDC_LN       0010 00000010
KCLDC_STOP     0005 00000001
KCLDC_TESTRQ   0005 00000002
KCLDC_TESTRS   0005 00000003
KCLDCFN        0005
KCLDCLN        0004
KCLDCREASON    0010
KCLDCREF       0008
KCLDEVID       0028
KCLDRV02       0018 80
KCLEOD         0002 00000004
KCLEOD_FRAME   0018 00000004
KCLEOD_LN      0006 00000004
KCLEOD_PRIORITY
               0005
KCLEOD_RSVD    0004
KCLEOD_SEQNO   0006
KCLFLAG        0010
KCLFRAME       0000 00000000
KCLFRMID       0002
KCLFRMLN       0000
KCLFRMXT       0002 00000004
KCLHDR         0004
KCLHDRFN       0005
KCLHDRLN       0004
KCLHDRXT       0006
KCLIDX         0002 00000001
KCLIDX_ACCEPT  0005 00000002
KCLIDX_CONNECT
               0005 00000001
KCLIDX_FRAME   0006 00000004
KCLIDX_LN      0040 00000044
KCLIDXFN       0005
KCLIDXID       0006
KCLIDXLN       0004
KCLIDXRF       0008
KCLIDX01       0006 00000001
KCLLKTOD       0040
KCLMAP         0018 0000001C
KCLMBHCT       0012
KCLMFL         002C
KCLNODE        0020
KCLPFX         0000
KCLPFXLN       0002 00000004
KCLPRIOR       0007
KCLREQUE       0018
KCLSEQNO       0008
KCLSTGMS       0011
KCLTX_OFFER    0005 00000001
KCLTX_REQUEST  0005 00000002
KCLTXFN        0005
KCLTXLN        0004
KCLTXMD        0006
KCLUID         002E
KCLUIDCP       0030
KCLUIDLN       002E
KCLUIDTS       0038
KCLUIDVN       002F
KCLVER         0010
KCLWSIZE       000C
LNKSTG_RXQUECT
               0011 00000040
LNKSTG_TROUBLE
               0011 00000080
LWK_ASYNC      0006 00000002
LWK_IMBED      0006 00000003
LWK_SYNC       0006 00000001
LWKTX_RESEND   0010 80

This information is based on z/VM V6R2.0. Last updated on 21 Nov 2011 at 11:06:16 EDT.
Copyright IBM Corporation, 1990, 2011