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.1.0 Last updated on 22 Jun 2018 at 11:50:17 EDT.
Copyright IBM Corporation, 1990, 2018