Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
KCLBK
Control Block Contents
KCLBK DSECT
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
Copyright IBM Corporation, 1990, 2011