KCLBK | Back to Index page

| Prolog Control Block Contents KCLBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

KCLBK Prolog | Top of page

     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 | Top of page

     KCLBK DSECT
    Top of page

    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 | Top of page

    *** 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 | Top of page

    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 7.2.0 Last updated on 24 Jun 2020 at 09:28:46 EDT.
Copyright IBM Corporation, 1990, 2020