|
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